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

Winkelbeheer & operations

Agovena installeren

Installeer Agovena op Ubuntu of Debian en configureer daarna webserver, queueworker en cron.

Op deze pagina

Bekijk de ondersteunde omgevingen op de pagina Serververeisten voordat je een route kiest.

Draai Nginx en Apache niet op dezelfde poorten. Een native installatie heeft één van beide nodig als webserver.

1. Bereid de server voor

Native Linux

Gebruik de tab voor jouw besturingssysteem. De onderstaande pakketten installeren de benodigde PHP-extensies, MariaDB, Composer, Git, archieftools en cron.

bash
sudo apt update
sudo apt install -y ca-certificates curl git tar unzip composer cron mariadb-server mariadb-client \
  php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-intl php-bcmath
sudo systemctl enable --now mariadb cron

Controleer de PHP-versie voordat je verdergaat. Dit moet PHP 8.3 of PHP 8.4 zijn:

bash
php -v
php -m | grep -E 'bcmath|curl|intl|mbstring|mysql|xml|zip'

Zoek de PHP-FPM-service en start de service voor de geïnstalleerde PHP-versie:

bash
systemctl list-unit-files 'php*-fpm.service'
sudo systemctl enable --now php8.3-fpm

Gebruik je PHP 8.4, vervang dan php8.3-fpm door php8.4-fpm. Houd de versies van PHP CLI en PHP-FPM gelijk.

Maak de database

Maak een aparte MariaDB-database en gebruiker. Gebruik het MariaDB-rootaccount niet in .env:

bash
sudo mariadb
sql
CREATE DATABASE agovena CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'agovena'@'localhost' IDENTIFIED BY 'CHANGE_ME';
GRANT ALL PRIVILEGES ON agovena.* TO 'agovena'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Vervang CHANGE_ME door een wachtwoord dat je in een password manager bewaart. Zet het niet in Git, screenshots of supportvragen.

2. Haal Agovena op

Maak de applicatiemap aan:

bash
sudo mkdir -p /var/www/agovena
sudo chown "$USER":"$USER" /var/www/agovena

Laatste release

De volgende opdracht zoekt via GitHub het nieuwste gepubliceerde Agovena-archief en downloadt het. De opdracht downloadt niet de bewegende main-branch:

bash
cd /var/www
rm -rf /tmp/agovena-release
mkdir -p /tmp/agovena-release
RELEASE_URL="$(curl -fsSL https://api.github.com/repos/milovd/Agovena/releases/latest 2>/dev/null | sed -n 's/.*"browser_download_url": "\(https:[^"]*agovena-[^"]*\.tar\.gz\)".*/\1/p' | head -n 1 || true)"
if [ -z "$RELEASE_URL" ]; then
  printf '%s\n' 'Geen passend gepubliceerd release-archief gevonden. Gebruik in plaats daarvan de source checkout.'
  exit 1
fi
curl -fL "$RELEASE_URL" -o /tmp/agovena-latest.tar.gz
tar -xzf /tmp/agovena-latest.tar.gz -C /tmp/agovena-release
sudo cp -a /tmp/agovena-release/agovena-*/. /var/www/agovena/

Meldt de opdracht dat geen archief is gevonden? Gebruik dan de Source checkout hieronder. Wanneer een archief beschikbaar is, bevat het de bijbehorende Composer-afhankelijkheden en gebouwde frontend-assets al.

Source checkout

Gebruik een source checkout wanneer je bewust de actuele main-branch uitrolt of zelf de release bouwt:

bash
sudo git clone --depth 1 --branch main https://github.com/milovd/Agovena.git /var/www/agovena
sudo chown -R "$USER":www-data /var/www/agovena
cd /var/www/agovena
composer install --no-dev --optimize-autoloader
npm ci
npm run build

Gebruik voor een latere source-update git pull --ff-only origin main in deze checkout. Gebruik geen composer update; daarmee kunnen andere dependencyversies worden geselecteerd.

3. Configureer de omgeving

Maak .env alleen bij een nieuwe installatie aan:

bash
cd /var/www/agovena
cp .env.example .env
php artisan key:generate

Bewerk .env en vul de echte waarden van je winkel in:

env
APP_ENV=production
APP_DEBUG=false
APP_URL=https://store.example
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=agovena
DB_USERNAME=agovena
DB_PASSWORD=[REDACTED]
QUEUE_CONNECTION=database

Configureer ook de mailtransport die je winkel gebruikt. Houd .env buiten versiebeheer. Overschrijf tijdens een update of herstel nooit een bestaande .env en genereer geen nieuwe APP_KEY.

4. Stel de bestandsrechten in

De webserver, queueworker en scheduler hebben schrijfrechten nodig voor storage/ en bootstrap/cache/. Laat de deploymentgebruiker eigenaar blijven van de rest van de applicatie:

bash
cd /var/www/agovena
DEPLOY_USER="${SUDO_USER:-$USER}"
sudo chown -R "$DEPLOY_USER":www-data /var/www/agovena
sudo chmod -R ug+rwX storage bootstrap/cache

Gebruik geen chmod 777. Houd .env, storage/app/private en de applicatiebron buiten de publieke documentroot.

5. Voer de installer uit

Voer de databasemigraties uit, maak de publieke storage-link en start de Agovena-installer:

bash
cd /var/www/agovena
php artisan migrate --force
php artisan storage:link
php artisan agovena:install

De installer vraagt om de eigenaar, winkelnaam, taal, tijdzone, valuta en het thema. De wachtwoordprompt is verborgen. Je kunt ook /install openen nadat de webserver is ingesteld.

Een geïnstalleerde winkel mag niet opnieuw worden geïnstalleerd. Bewaar de installatiemarkering in storage/app/agovena/.

6. Kies de webserver

Stel de documentroot in op de public/-map:

text
/var/www/agovena/public

Wijs een webserver nooit naar /var/www/agovena. Kies precies één handleiding:

Kies de webserver nadat Agovena in /var/www/agovena staat en de applicatieomgeving is geconfigureerd. De webserver is het publieke toegangspunt, niet een vervanging voor de Agovena-installer.

Kies een webserver

Installeer en configureer Nginx met PHP-FPM via de Nginx-handleiding. Stel de root in op /var/www/agovena/public, laad Nginx opnieuw en open de winkel-URL.

Stel APP_URL in op hetzelfde HTTPS-adres zodra de webserver werkt. Volg de HTTPS-handleiding voordat je gegevens van klanten of beheerders verzamelt.

7. Start de queueworker

Agovena gebruikt een blijvende queueworker voor e-mail, webhooks, abonnementswerk en provisioning. Installeer de meegeleverde systemd-unit:

bash
cd /var/www/agovena
sudo cp deploy/systemd/agovena-queue.service /etc/systemd/system/agovena-queue.service
sudo systemctl daemon-reload
sudo systemctl enable --now agovena-queue.service
sudo systemctl status agovena-queue.service

De unit voert dit uit:

bash
/usr/bin/php /var/www/agovena/artisan queue:work --sleep=1 --tries=3 --timeout=60 --backoff=5 --max-time=3600

Gebruik je een ander PHP-pad of een andere applicatiemap, pas de unit dan vóór activering aan. Gebruik voor dezelfde worker systemd óf de meegeleverde Supervisorconfiguratie, niet beide.

8. Voeg de scheduler-cronjob toe

Open de crontab van dezelfde runtimegebruiker als PHP-FPM en de queueworker:

bash
sudo -u www-data crontab -e

Voeg deze regel toe:

cron
* * * * * cd /var/www/agovena && /usr/bin/php artisan schedule:run >> /dev/null 2>&1

Deze ene cronjob voert taken uit zodra ze aan de beurt zijn. De regel moet ook na updates blijven staan. Controleer de regel met:

bash
sudo -u www-data crontab -l
php artisan schedule:list
php artisan schedule:run

schedule:run voert taken uit. Het is tijdens het instellen nuttig, maar geen alleen-lezen opdracht.

9. Schakel HTTPS in

Laat je DNS-record naar de server wijzen en open poort 80 en 443. Volg daarna de HTTPS-handleiding. Gebruik HTTPS ook voor APP_URL en controleer certificaatvernieuwing voordat je de winkel opent.

10. Controleer de installatie

Voer de platformcontroles uit en bekijk de echte servicestatus:

bash
cd /var/www/agovena
composer check-platform-reqs --no-dev
php artisan agovena:doctor
sudo systemctl is-active nginx
sudo systemctl is-active mariadb
sudo systemctl is-active agovena-queue.service

Open de publieke store-URL en doorloop de installer als dit een nieuwe installatie is. Controleer daarna een publieke afbeelding, een route die geen fysiek bestand is, e-mailaflevering, één queuejob en de scheduler-heartbeat in Admin.

11. Na de installatie

Ga verder met:

  1. De winkel configureren.
  2. Het eerste product toevoegen.
  3. Betalingen configureren.
  4. Back-ups instellen.
  5. Lees updates en databasemigraties voordat je applicatiebestanden vervangt.

Doorzoek de documentatie

Zoek handleidingen, commando’s en API-endpoints

Waar ben je naar op zoek?

Documentatie