networks: app-network: driver: bridge volumes: dbdata: services: nginx: build: context: ./nginx dockerfile: Dockerfile container_name: nginx env_file: ./.env restart: unless-stopped depends_on: - backend - icecast2 networks: - app-network ports: - 80:80 - 443:443 volumes: - ./certbot/conf:/etc/letsencrypt - ./certbot/www:/var/www/certbot certbot: image: certbot/certbot container_name: certbot volumes: - ./certbot/entrypoint.sh:/entrypoint.sh - ./certbot/conf:/etc/letsencrypt - ./certbot/www:/var/www/certbot entrypoint: ["/entrypoint.sh"] networks: - app-network backend: build: context: ./backend dockerfile: Dockerfile container_name: "${BACKEND_HOST}" restart: unless-stopped depends_on: - db networks: - app-network env_file: - ./.env volumes: - ./backend/token/:/backend/token - ${OBSIDIAN_DIR}:/backend/notes - ./logs:/backend/logs db: image: postgres:16 container_name: "${POSTGRES_HOST}" restart: unless-stopped env_file: - ./.env networks: - app-network volumes: - dbdata:/var/lib/postgresql/data icecast2: build: context: ./icecast2 dockerfile: Dockerfile container_name: "${ICECAST_HOST}" restart: always networks: - app-network env_file: - ./.env ports: - "${ICECAST_PORT}:${ICECAST_PORT}"