version: '3.8' services: ff_admin_aio_reverse_proxy: image: nginx:alpine container_name: ff_admin_aio_reverse_proxy ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - ff_admin_aio_backend - ff_admin_aio_frontend ff_admin_aio_frontend: image: docker.registry.jk-effects.cloud/ehrenamt/ff-admin/app:latest container_name: ff_admin_aio_frontend restart: unless-stopped ports: - "80" environment: - SERVERADDRESS=${SERVERADDRESS} - APPNAMEOVERWRITE=${APPNAMEOVERWRITE} - IMPRINTLINK=${IMPRINTLINK} - PRIVACYLINK=${PRIVACYLINK} - CUSTOMLOGINMESSAGE=${CUSTOMLOGINMESSAGE} volumes: - ./icons/favicon.ico:/usr/share/nginx/html/favicon.ico - ./icons/favicon.png:/usr/share/nginx/html/favicon.png - ./icons/Logo.png:/usr/share/nginx/html/Logo.png ff_admin_aio_backend: image: docker.registry.jk-effects.cloud/ehrenamt/ff-admin/server:latest container_name: ff_admin_aio_backend restart: unless-stopped ports: - "5000" environment: - DB_TYPE=mysql - DB_HOST=ff_admin_aio_database - DB_PORT=3306 - DB_NAME=${MYSQL_DATABASE} - DB_USERNAME=${MYSQL_USER} - DB_PASSWORD=${MYSQL_PASSWORD} - JWT_SECRET=${JWT_SECRET} - JWT_EXPIRATION=${JWT_EXPIRATION} - REFRESH_EXPIRATION=${REFRESH_EXPIRATION} - PWA_REFRESH_EXPIRATION=${PWA_REFRESH_EXPIRATION} - MAIL_USERNAME=${MAIL_USERNAME} - MAIL_PASSWORD=${MAIL_PASSWORD} - MAIL_HOST=${MAIL_HOST} - MAIL_PORT=${MAIL_PORT} - MAIL_SECURE=${MAIL_SECURE} - CLUB_NAME=${CLUB_NAME} - CLUB_WEBSITE=${CLUB_WEBSITE} - BACKUP_INTERVAL=${BACKUP_INTERVAL} - BACKUP_COPIES=${BACKUP_COPIES} - BACKUP_AUTO_RESTORE=${BACKUP_AUTO_RESTORE} volumes: - ./files:/app/files networks: - ff_admin_aio_internal depends_on: - ff_admin_aio_database ff_admin_aio_database: image: mariadb:11.2 container_name: ff_admin_aio_database restart: unless-stopped ports: - "3306:3306" environment: - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} volumes: - ./database:/var/lib/mysql networks: - ff_admin_aio_internal networks: ff_admin_aio_internal: