version: '3.7' services: ganache: build: ./ganache container_name: ganache restart: always ports: - "8545:8545" user: root volumes: - ./volumes/ganache_db:/home/ganache_db - ./volumes/ganache_keys:/home/ganache_keys # Simple rendezvous server image # Reference: # https://hub.docker.com/r/libp2p/websocket-star-rendezvous rendezvous: image: libp2p/websocket-star-rendezvous:release container_name: rendezvous restart: always ports: - "9090:9090" apella: build: ./ container_name: apella-app restart: always env_file: - ./env/apella.env networks: - apella-net expose: - "3000" # Nginx reverse proxy container # Reference: # https://github.com/jwilder/nginx-proxy nginx-proxy: # TODO: maybe split this to the two underlying images? image: jwilder/nginx-proxy container_name: apella-nginx-proxy restart: always environment: - DEFAULT_HOST=apella.tk labels: com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true" logging: options: max-size: '4m' max-file: '10' networks: - apella-net ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro - conf:/etc/nginx/conf.d - vhost:/etc/nginx/vhost.d - html:/usr/share/nginx/html - dhparam:/etc/nginx/dhparam - certs:/etc/nginx/certs:ro # Letsencrypt automated creation, renewal and use of Let's Encrypt certificates # Reference: # https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion letsencrypt: image: jrcs/letsencrypt-nginx-proxy-companion container_name: apella-proxy-le restart: always depends_on: - nginx-proxy logging: options: max-size: '4m' max-file: '10' networks: - apella-net volumes: - conf:/etc/nginx/conf.d - vhost:/etc/nginx/vhost.d - html:/usr/share/nginx/html - dhparam:/etc/nginx/dhparam - certs:/etc/nginx/certs:rw - /var/run/docker.sock:/var/run/docker.sock:ro # Networks in use networks: apella-net: driver: bridge volumes: conf: vhost: html: dhparam: certs: