Lokale ontwikkelomgeving¶
De lokale omgeving draait volledig via Docker Compose. Er is geen Vagrant meer actief; het README.md beschrijft nog de oude Vagrant-aanpak, maar die is vervangen door de Docker-setup in docker-compose.yml.
Vereisten¶
- Docker Desktop (of vergelijkbare Docker-runtime)
- Composer (of laat de container het bij eerste start automatisch installeren)
- Een productie- of bèta-dump van
atx_www(eenmalig, voor de golden volume)
Architectuur van de Docker-omgeving¶
docker-compose.yml definieert vier services:
| Service | Image | Poort | Doel |
|---|---|---|---|
app |
docker/Dockerfile (PHP 8.2 + Apache) |
80 | Applicatieserver |
db |
mariadb:10.11 |
3306 | MariaDB, zelfde versie als productie (10.11.14-MariaDB) |
memcached |
memcached:1.6-alpine |
11211 | Cachelaag |
mailpit |
axllent/mailpit |
1025 (SMTP), 8025 (Web UI) | Mail-opvang voor lokale e-mails |
De app-container monteert de volledige repo als volume en overschrijft _www/appconfig/environment_constants.php read-only met docker/environment_constants.docker.php (docker-compose.yml:11-12). Jouw lokale environment_constants.php blijft zo onaangetast.
Golden database¶
De zware productie-/bèta-snapshot wordt éénmalig geladen in een Docker-volume <project>_db_golden dat bewust buiten de normale db_data-lifecycle valt — docker compose down -v verwijdert het niet (docker-compose.yml:57-58).
Eenmalige import (van een .sql of .sql.gz-dump):
docker/db/import-golden.sh /pad/naar/atx_www.sql.gz
Dit start een tijdelijke MariaDB-container, importeert atx_www en seeded de nevenschema's (atx_3d, atx_dwh, atx_log, atx_queue) vanuit _data/. Zie docker/db/import-golden.sh.
Reset naar golden baseline (seconden, btrfs reflink zonder SQL-reimport):
docker/db/reset.sh
Snapshot maken van de huidige werkdatabase als nieuwe golden baseline:
docker/db/snapshot.sh
Starten¶
docker compose up
Bij het eerste opstarten installeert de entrypoint (docker/entrypoint.sh) automatisch Composer-dependencies als vendor/autoload.php nog ontbreekt. Vervolgens worden de benodigde runtime-mappen aangemaakt (tmp/, cache/, _www/tmp/, _static/uploads/, _shopupdating/exports/).
De database wordt bij een lege db_data-volume automatisch geseed via docker/db-init/01-seed.sh: atx_www (inclusief doctrine_migration_versions), de nevenschema's en alle referentietabellen (channel, cms_text, customer, customer_user, language, setting, vehicle_* enz.).
Hostnamen instellen¶
Voeg de volgende regels toe aan je /etc/hosts (of gebruik de browsertruc hieronder):
127.0.0.1 www.atraxion.localhost manage.atraxion.localhost
127.0.0.1 admin.atraxion.localhost api.atraxion.localhost
127.0.0.1 autodoc.atraxion.localhost shopupdating.atraxion.localhost
127.0.0.1 static.atraxion.localhost staticcore.atraxion.localhost
Alternatief voor Chromium: gebruik --host-resolver-rules="MAP *.atraxion.localhost 127.0.0.1" als startflag (handig om de shop te testen zonder je /etc/hosts aan te passen).
De Apache-virtualhosts (docker/apache/vhosts.conf) mappen:
| Hostname | DocumentRoot |
|---|---|
www.atraxion.localhost |
_www/ |
manage.atraxion.localhost |
_www/ |
admin.atraxion.localhost |
_cp/ |
api.atraxion.localhost |
_api/ |
autodoc.atraxion.localhost |
_autodoc/ |
shopupdating.atraxion.localhost |
_shopupdating/ |
static.atraxion.localhost |
_static/ |
staticcore.atraxion.localhost |
_staticcore/ |
Inloggen¶
Er is geen standaard testgebruiker met een bekend wachtwoord voorzien. Om in te loggen op een klantaccount:
- Kies een klantnummer uit de golden database (bv. klantnr
5024240heeftte-monteren-carts). - Genereer een bcrypt-hash van een gewenst wachtwoord (bv. via
password_hash('test', PASSWORD_BCRYPT)). - Sla de hash op in
customer_user.Passvoor het gewenste account.
Cache-warmup¶
Na het opstarten of na het toevoegen van cms_text-vertalingen via migraties:
./cli.php cache:warmup
of de alias:
./cli.php c:w
Zonder warmup renderen trans()-aanroepen leeg. Memcached herstarten volstaat niet. Zie ook Caching.
Migraties uitvoeren¶
./bin/doctrine m:m -n
Voertuigdata laden (DriveRight)¶
Na een verse import of reset:
cd _shopupdating/cronjobs/atx/vehicles/driveright && php updateDriveRight.php
Frontend-assets bouwen¶
Zie INSTALL.md voor de npm-stappen:
npm install
cd _static/assets && npm install && npm run build
Uitgaande e-mails¶
Mailpit onderschept alle SMTP-verkeer (poort 1025). Bekijk de gevangen mails via http://localhost:8025.