#### NETWORKS networks: traefik_front_network: external: true back_network_phpipam: driver: bridge attachable: true #### SERVICES services: ### phpipam-web phpipam-web: container_name: phpipam-app hostname: phpipam-app image: phpipam/phpipam-www:latest networks: - traefik_front_network - back_network_phpipam environment: - TZ=Europe/Paris - IPAM_DISABLE_INSTALLER=true - IPAM_DATABASE_HOST=phpipam-db - IPAM_DATABASE_USER=phpipam - IPAM_DATABASE_NAME=phpipam - IPAM_DATABASE_PASS=my_secret_phpipam_pass - IPAM_DATABASE_WEBHOST=maria-db - IPAM_TRUST_X_FORWARDED=true restart: unless-stopped volumes: - ./phpipam-logo:/phpipam/css/images/logo - ./phpipam-ca:/usr/local/share/ca-certificates:ro depends_on: phpipam-db: condition: service_healthy restart: true msmtpd: condition: service_healthy restart: true labels: - "com.centurylinklabs.watchtower.enable=true" - "traefik.enable=true" - "traefik.docker.network=traefik_front_network" # HTTP - "traefik.http.routers.ipam-http.rule=Host(`ipam.tips-of-mine.com`)" - "traefik.http.routers.ipam-http.entrypoints=http" # HTTPS - "traefik.http.routers.ipam-https.rule=Host(`ipam.tips-of-mine.com`)" - "traefik.http.routers.ipam-https.entrypoints=https" - "traefik.http.routers.ipam-https.service=ipam-service" - "traefik.http.routers.ipam-https.tls=true" # Middleware # Service - "traefik.http.services.ipam-service.loadbalancer.server.port=80" ### phpipam-cron phpipam-cron: container_name: phpipam-cron hostname: phpipam-cron image: phpipam/phpipam-cron:latest networks: - back_network_phpipam environment: - TZ=Europe/Paris - IPAM_DATABASE_HOST=phpipam-db - IPAM_DATABASE_USER=phpipam - IPAM_DATABASE_PASS=my_secret_phpipam_pass - SCAN_INTERVAL=1h restart: unless-stopped volumes: - ./phpipam-ca:/usr/local/share/ca-certificates:ro depends_on: - phpipam-db ### phpipam-db phpipam-db: container_name: phpipam-db hostname: phpipam-db image: mariadb:latest networks: - back_network_phpipam environment: - MYSQL_USER=phpipam - MYSQL_PASSWORD=my_secret_phpipam_pass - MYSQL_DATABASE=phpipam - MYSQL_ROOT_PASSWORD=my_secret_mysql_root_pass restart: unless-stopped volumes: - ./phpipam-db-data:/var/lib/mysql healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] start_period: 10s interval: 10s timeout: 5s retries: 3 labels: - "com.centurylinklabs.watchtower.enable=true" ### phpipam-db-backup: container_name: phpipam-db-backup hostname: phpipam-db-backup image: mariadb:10 volumes: - ./phpipam-dump:/dump - /etc/localtime:/etc/localtime:ro entrypoint: | bash -c 'bash -s < /dump/dump_\`date +%d-%m-%Y"_"%H_%M_%S\`.sql.gz (ls -t /dump/dump*.sql.gz|head -n $$BACKUP_NUM_KEEP;ls /dump/dump*.sql.gz)|sort|uniq -u|xargs rm -- {} sleep $$BACKUP_FREQUENCY done EOF' networks: - back_network_phpipam labels: - "com.centurylinklabs.watchtower.enable=true" ### phpipam msmtpd: container_name: phpipam-msmtpd hostname: phpipam-msmtpd image: crazymax/msmtpd:latest networks: - back_network_phpipam environment: - "TZ=Europe/Paris" - "PUID=1500" - "PGID=1500" - "SMTP_HOST=10.0.4.52" - "SMTP_PORT=587" - "SMTP_TLS=on" - "SMTP_STARTTLS=on" - "SMTP_TLS_CHECKCERT=off" - "SMTP_AUTH=on" - "SMTP_USER=hostinfo@tips-of-mine.fr" - "SMTP_PASSWORD=Whf2VtLEd2QR4er" - "SMTP_DOMAIN=localhost" - "SMTP_FROM=hostinfo@tips-of-mine.fr" restart: always healthcheck: test: ["CMD-SHELL", "echo EHLO localhost"] interval: 5s timeout: 5s retries: 5 labels: - "com.centurylinklabs.watchtower.enable=true"