version: "3.8" services: webserver: depends_on: - wordpress image: nginx:1.23 container_name: webserver profiles: - webserver restart: unless-stopped ports: - "80:80" - "443:443" volumes: - wordpress:/var/www/html - jellyfin:/var/www/jellyfin - ./nginx-conf:/etc/nginx/conf.d - certbot-cert:/etc/letsencrypt:ro networks: - app-network wp_db: image: mariadb:10.10.2 container_name: wp_db profiles: - wp_db restart: unless-stopped env_file: - env/wp_database.env volumes: - dbdata:/var/lib/mysql networks: - app-network wordpress: depends_on: - wp_db image: wordpress:6.1.1-php8.1-fpm container_name: wordpress profiles: - wordpress restart: unless-stopped env_file: - env/wordpress.env # environment: # - WORDPRESS_DB_HOST=wp_db:3306 volumes: - wordpress:/var/www/html networks: - app-network flask_website: build: context: ./bensuperpc_website dockerfile: Dockerfile container_name: flask_website profiles: - flask_website depends_on: - flask_db volumes: - ./bensuperpc_website:/app:rw env_file: - env/flask_website.env restart: unless-stopped ports: - 5000:5000 networks: - app-network flask_db: image: postgres:latest container_name: flask_db profiles: - flask_db restart: unless-stopped env_file: - env/flask_database.env # ports: # - 5432:5432 volumes: - postgres-data:/var/lib/postgresql/data networks: - app-network qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent profiles: - qbittorrent environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - WEBUI_PORT=8080 volumes: - qbittorrent-conf:/config - qbittorrent-downloads:/downloads #ports: # - 8080:8080 # - 6881:6881 # - 6881:6881/udp restart: unless-stopped networks: - app-network jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin profiles: - jellyfin environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - JELLYFIN_PublishedServerUrl=192.168.0.5 #optional volumes: - jellyfin-config:/config - jellyfin-tvseries:/data/tvshows - jellyfin-movies:/data/movies - jellyfin:/var/www/html #ports: # - 8096:8096 # - 8920:8920 #optional # - 7359:7359/udp #optional # - 1900:1900/udp #optional restart: unless-stopped networks: - app-network certbot: depends_on: - webserver image: certbot/certbot:v1.32.0 container_name: certbot profiles: - certbot volumes: - certbot-cert:/etc/letsencrypt - wordpress:/var/www/html - jellyfin:/var/www/jellyfin #command: certonly --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --staging --webroot --webroot-path=/var/www/html --domain bensuperpc.org --domain www.bensuperpc.org --webroot-path=/var/www/jellyfin --domain jellyfin.bensuperpc.org --domain www.jellyfin.bensuperpc.org #command: certonly --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --force-renewal --webroot --webroot-path=/var/www/html --domain bensuperpc.org --domain www.bensuperpc.org --webroot-path=/var/www/jellyfin --domain jellyfin.bensuperpc.org --domain www.jellyfin.bensuperpc.org command: certonly --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --keep-until-expiring --webroot --webroot-path=/var/www/html --domain bensuperpc.org --domain www.bensuperpc.org --webroot-path=/var/www/jellyfin --domain jellyfin.bensuperpc.org --domain www.jellyfin.bensuperpc.org phpmyadmin: image: phpmyadmin:5.2.0 container_name: phpmyadmin profiles: - phpmyadmin restart: unless-stopped env_file: - env/phpmyadmin.env # ports: # - 8080:80 depends_on: - wp_db networks: - app-network pgadmin: container_name: pgadmin_container image: dpage/pgadmin4:6.16 profiles: - pgadmin restart: unless-stopped env_file: - env/pgadmin.env depends_on: - flask_db networks: - app-network volumes: certbot-cert: name: certbot-cert wordpress: name: wordpress dbdata: name: dbdata qbittorrent-downloads: name: qbittorrent-downloads qbittorrent-conf: name: qbittorrent-conf jellyfin-config: name: jellyfin-config jellyfin-tvseries: name: jellyfin-tvseries jellyfin-movies: name: jellyfin-movies jellyfin: name: jellyfin postgres-data: name: postgres-data networks: app-network: driver: bridge name: app-network