Winkelbeheer & operations
Docker Compose
Draai Agovena met Docker Compose, inclusief webcontainer, database, worker en scheduler.
Op deze pagina
Docker Compose draait de Agovena-applicatie, webcontainer, MariaDB, Redis, queueworker en scheduler samen. Gebruik deze handleiding in plaats van de native Linux-stappen. De web-service bevat Nginx voor het containernetwerk.
1. Installeer Docker
Installeer Docker Engine en de Docker Compose-plugin volgens de officiële instructies voor jouw besturingssysteem. Controleer of beide opdrachten werken:
docker --version
docker compose version
2. Haal de Core-checkout op
Clone de Core-repository op de host waarop de stack draait:
sudo git clone --depth 1 --branch main https://github.com/milovd/Agovena.git /opt/agovena
sudo chown -R "$USER":"$USER" /opt/agovena
cd /opt/agovena
Haal voor een latere source-update de nieuwste revisie op met:
git pull --ff-only origin main
De Compose-build maakt de PHP-FPM-applicatie-image. Op de host is geen native PHP-FPM- of MariaDB-installatie nodig.
3. Configureer Compose-variabelen
Maak .env voor de applicatie en de Compose-variabelen samen aan:
cd /opt/agovena
cp .env.example .env
nano .env
Stel deze waarden in:
APP_ENV=production
APP_DEBUG=false
APP_URL=https://store.example
AGOVENA_DB_PASSWORD=[REDACTED]
AGOVENA_DB_ROOT_PASSWORD=[REDACTED]
Gebruik afzonderlijke sterke wachtwoorden en houd dit bestand buiten Git en supportuitvoer. Het Compose-bestand gebruikt de twee AGOVENA_*-variabelen voor MariaDB en injecteert de interne database- en Redis-hosts in de applicatie-, worker- en schedulercontainers.
4. Start de stack
Start alle services. Dit start webcontainer, applicatie, database, Redis, worker en scheduler:
docker compose -f docker-compose.prod.yml up -d --build
De webservice luistert op hostpoort 8080. Behoud de benoemde MariaDB- en Redis-volumes. Publiceer de applicatiecontainer niet rechtstreeks wanneer de winkel publiek is; plaats HTTPS vóór de webservice.
5. Installeer Agovena
Voer de databasemigraties uit, maak de publieke storage-link en start de installer in de app-container:
docker compose -f docker-compose.prod.yml exec app php artisan key:generate
docker compose -f docker-compose.prod.yml exec app php artisan migrate --force
docker compose -f docker-compose.prod.yml exec app php artisan storage:link
docker compose -f docker-compose.prod.yml exec app php artisan agovena:install
De installer vraagt om de eigenaar, winkelnaam, taal, tijdzone, valuta en het thema. Een geïnstalleerde winkel mag niet opnieuw worden geïnstalleerd.
6. Controleer de Compose-services
Controleer de servicestatus en applicatiegezondheid:
docker compose -f docker-compose.prod.yml ps
docker compose -f docker-compose.prod.yml logs --tail=50 app worker scheduler
docker compose -f docker-compose.prod.yml exec app php artisan agovena:doctor
De worker-service draait queue:work. De scheduler-service draait schedule:work. Voeg voor deze scheduler geen host-cronjob toe. Houd beide services actief na herstarts.
7. Publiceer de winkel
Plaats een TLS reverse proxy vóór de web-service en stuur verkeer door naar hostpoort 8080. Stel APP_URL in op het publieke HTTPS-adres. De containerconfiguratie staat in docker/nginx/default.conf en verschilt van de native Nginx-handleiding.
Controleer de storefront, /login, /admin, publieke media en een Laravel-route voordat je gegevens accepteert.
8. Werk de Compose-stack bij
Maak vóór een update een back-up van MariaDB, .env, publieke media, private bestanden en geïnstalleerde pakketten. Haal de nieuwste bron op en bouw de services opnieuw:
cd /opt/agovena
git pull --ff-only origin main
docker compose -f docker-compose.prod.yml up -d --build
docker compose -f docker-compose.prod.yml exec app php artisan agovena:upgrade
docker compose -f docker-compose.prod.yml exec app php artisan agovena:doctor
Behoud de benoemde volumes. Voer op een geïnstalleerde winkel geen migrate:fresh uit en verwijder geen volumes. De worker- en schedulerservices gebruiken de opnieuw gebouwde applicatie-image nadat Compose ze opnieuw heeft aangemaakt.