Ga naar de inhoud
agovena.
agovena.
Aan de slag
Community

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:

bash
docker --version
docker compose version

2. Haal de Core-checkout op

Clone de Core-repository op de host waarop de stack draait:

bash
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:

bash
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:

bash
cd /opt/agovena
cp .env.example .env
nano .env

Stel deze waarden in:

env
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:

bash
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:

bash
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:

bash
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:

bash
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.

Doorzoek de documentatie

Zoek handleidingen, commando’s en API-endpoints

Waar ben je naar op zoek?

Documentatie