version: '3.6' networks: transmission: name: transmission jellyfin: name: jellyfin gitea: name: gitea nextcloud: name: nextcloud autism_app_network: name: autism_app_network services: # # NGINX AND CERTBOT # nginx: image: nginx:latest container_name: nginx restart: unless-stopped depends_on: - transmission - jellyfin - gitea - nextcloud - nextcloud_db - autism_app ports: - 80:80 - 443:443 volumes: - ${DOCKER_CONFIG_DIR}/nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ${DOCKER_CONFIG_DIR}/certbot/conf:/etc/letsencrypt:ro - ${DOCKER_CONFIG_DIR}/certbot/www:/var/www/certbot:ro - ${NGINX_LOG_DIR}/:/logs command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'" networks: - transmission - jellyfin - gitea - nextcloud - autism_app_network certbot: image: certbot/certbot:latest container_name: certbot restart: unless-stopped volumes: - ${DOCKER_CONFIG_DIR}/certbot/conf:/etc/letsencrypt:rw - ${DOCKER_CONFIG_DIR}/certbot/www:/var/www/certbot:rw entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'" # # HOMESERVER SERVICES # transmission: image: lscr.io/linuxserver/transmission:latest container_name: transmission restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - TRANSMISSION_WEB_HOME=/combustion-release/ - USER=${TRANSMISSION_USERNAME} - PASS=${TRANSMISSION_PASSWORD} volumes: - ${DOCKER_CONFIG_DIR}/transmission/config:/config - ${DOCKER_DATA_DIR}/transmission/downloads:/downloads - ${DOCKER_DATA_DIR}/transmission/watch:/watch networks: - transmission jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - JELLYFIN_PublishedServerUrl=${JELLYFIN_DOMAIN_NAME} volumes: - ${DOCKER_CONFIG_DIR}/jellyfin/library:/config - /mnt/drive-one/media/series:/data/series - /mnt/drive-one/media/movies:/data/movies networks: - jellyfin gitea: image: gitea/gitea:latest container_name: gitea restart: unless-stopped environment: - USER_UID=1000 - USER_GID=1000 volumes: - ${DOCKER_DATA_DIR}/gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro networks: - gitea nextcloud: image: nextcloud:latest container_name: nextcloud restart: unless-stopped depends_on: - nextcloud_db environment: - POSTGRES_HOST=nextcloud_db - POSTGRES_DB=nextcloud - POSTGRES_USER=${POSTGRES_NEXTCLOUD_USERNAME} - POSTGRES_PASSWORD=${POSTGRES_NEXTCLOUD_PASSWORD} volumes: - ${DOCKER_DATA_DIR}/nextcloud:/var/www/html networks: - nextcloud nextcloud_db: image: postgres:latest container_name: nextcloud_db hostname: nextcloud_db restart: unless-stopped volumes: - ${DOCKER_DATA_DIR}/nextcloud_db:/var/lib/postgresql/data environment: - POSTGRES_DB=nextcloud - POSTGRES_USER=${POSTGRES_NEXTCLOUD_USERNAME} - POSTGRES_PASSWORD=${POSTGRES_NEXTCLOUD_PASSWORD} networks: - nextcloud # # HOME-AUTOMATION SERVICES # # # OTHER SERVICES # autism_app: container_name: autism_app image: autism_app build: context: ./autism-app volumes: - ./autism-app/src:/app/src networks: - autism_app_network