version: '3.3' services: nginx-proxy: image: nginxproxy/nginx-proxy container_name: nginx-proxy ports: - 80:80 - 443:443 volumes: - ./volume/nginx-proxy/certs:/etc/nginx/certs - ./volume/nginx-proxy/vhost:/etc/nginx/vhost.d - ./volume/nginx-proxy/html:/usr/share/nginx/html - /var/run/docker.sock:/tmp/docker.sock:ro networks: - front - tubearchivist_network - umami_network - drone_network nginx-proxy-acme: image: nginxproxy/acme-companion container_name: nginx-proxy-acme volumes: - ./volume/nginx-proxy/certs:/etc/nginx/certs - ./volume/nginx-proxy/vhost:/etc/nginx/vhost.d - ./volume/nginx-proxy/html:/usr/share/nginx/html - ./volume/nginx-proxy/acme:/etc/acme.sh - /var/run/docker.sock:/var/run/docker.sock:ro environment: - NGINX_PROXY_CONTAINER=nginx-proxy networks: - front # main flask site nginx: build: ./tubearchivist/nginx container_name: backend_nginx restart: always expose: - "8000" depends_on: - tubearchivist environment: - VIRTUAL_HOST=tubearchivist.com,www.tubearchivist.com - LETSENCRYPT_HOST=tubearchivist.com,www.tubearchivist.com networks: - tubearchivist_network tubearchivist: container_name: tubearchivist build: ./tubearchivist/web restart: always env_file: - ./env/tubearchivist.env expose: - "8080" networks: - tubearchivist_network # backend postgres postgres: image: postgres:14 container_name: postgres restart: always volumes: - ./volume/postgres:/var/lib/postgresql/data/ env_file: - ./env/postgres.env expose: - "5432" networks: - tubearchivist_network # umami stats umami: image: ghcr.io/mikecao/umami:postgresql-latest container_name: umami expose: - "3000" env_file: - ./env/umami.env environment: - VIRTUAL_HOST=www.stats.tubearchivist.com - LETSENCRYPT_HOST=www.stats.tubearchivist.com depends_on: - umami-db restart: always networks: - umami_network umami-db: image: postgres:14 container_name: umami-db env_file: - ./env/umami.env volumes: - ./volume/umami/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro - ./volume/umami/db:/var/lib/postgresql/data restart: always networks: - umami_network # drone build server drone: image: drone/drone:2 container_name: drone expose: - "80" env_file: - ./env/drone.env environment: - VIRTUAL_HOST=www.drone.tubearchivist.com,drone.tubearchivist.com - LETSENCRYPT_HOST=www.drone.tubearchivist.com,drone.tubearchivist.com volumes: - ./volume/drone/server:/data restart: always networks: - drone_network drone-runner-amd64: image: drone/drone-runner-docker:1.8.1-linux-amd64 container_name: drone-runner-amd64 expose: - "3000" env_file: - ./env/drone.env volumes: - /var/run/docker.sock:/var/run/docker.sock restart: always networks: - drone_network drone-runner-arm64: image: drone/drone-runner-docker:1.8.1-linux-arm64 container_name: drone-runner-arm64 expose: - "3001" env_file: - ./env/drone.env volumes: - /var/run/docker.sock:/var/run/docker.sock restart: always networks: - drone_network networks: front: driver: bridge tubearchivist_network: driver: bridge umami_network: driver: bridge drone_network: driver: bridge