{ pkgs, ... }: { project.name = "atitraining"; networks.atitraining.external = false; services = { db = { service = { image = "mariadb:11.4"; container_name = "atitraining-db"; restart = "unless-stopped"; networks = [ "atitraining" ]; volumes = [ "/var/atitraining/db:/var/lib/mysql" ]; environment = { MARIADB_DATABASE = "atitraining"; MARIADB_USER = "atitraining"; MARIADB_PASSWORD = "atitraining"; MARIADB_ROOT_PASSWORD = "atitrainingroot"; }; healthcheck = { test = [ "CMD" "healthcheck.sh" "--connect" "--innodb_initialized" ]; interval = "10s"; timeout = "5s"; retries = 10; }; }; }; wordpress = { service = { # Image pre-built by build-atitraining-image.service from nixos/atitraining/Dockerfile # Pinned to WordPress 6.7.2-php8.3-apache. image = "atitraining-wordpress:local"; container_name = "atitraining-wordpress"; restart = "unless-stopped"; networks = [ "atitraining" ]; depends_on = [ "db" ]; ports = [ "127.0.0.1:3015:80" ]; volumes = [ "/var/atitraining/wp-uploads:/var/www/html/wp-content/uploads" ]; environment = { WORDPRESS_DB_HOST = "db"; WORDPRESS_DB_NAME = "atitraining"; WORDPRESS_DB_USER = "atitraining"; WORDPRESS_DB_PASSWORD = "atitraining"; # Change this after first login via /wp-admin WORDPRESS_ADMIN_PASSWORD = "changeme"; }; }; }; }; }