Managing containers
| Task | Command |
|---|---|
| Start all services | docker compose up -d |
| Stop all services | docker compose down |
| View logs (all) | docker compose logs -f |
| View web logs only | docker compose logs -f web |
| Restart web container | docker compose restart web |
| Open a shell in the container | docker compose exec web bash |
| Apply database migrations | docker compose exec web php scripts/migrate.php |
Backups
Database backup
Full data backup
Back up the entiredocker-data/ directory to capture uploads, configuration, and database files:
Scheduled backups
Add to your crontab for nightly automatic backups:Troubleshooting
Containers won't start
Containers won't start
Check for port conflicts — another process may already be using port 8080 or 3306:Review container logs for the specific error:
Database connection refused
Database connection refused
The If the database shows
db container may still be initialising. Check its status:starting, wait 30–60 seconds and try again. On the very first boot, MariaDB needs time to apply the schema and migrations.Also verify that the DB_HOST, DB_NAME, DB_USER, and DB_PASS values in your .env match the environment section in docker-compose.yml.File uploads failing
File uploads failing
Check that the uploads directory is owned by The entrypoint script sets ownership automatically, but if you manually created directories on the host they may have incorrect permissions. Fix with:If using a reverse proxy, also check that
www-data:client_max_body_size is set to at least 50M in your Nginx configuration.Push notifications not working
Push notifications not working
Ensure the following variables are set in your
.env:WEB_PUSH_ENABLED=trueVAPID_PUBLIC_KEYVAPID_PRIVATE_KEYVAPID_SUBJECT
Emails not sending
Emails not sending
Test your SMTP configuration from inside the container:Verify that
APP_URL is set to your public HTTPS URL. Email links are built from this value.Lost PII encryption keys
Lost PII encryption keys
If you have lost your
docker-data/config/.env file and the PII_ENCRYPTION_KEY or PII_HMAC_KEY values, encrypted data in the database (names, emails, phone numbers) cannot be decrypted. There is no recovery method.Always back up docker-data/config/.env to a secure location.