version: '3' services: database: image: postgres:9.4-alpine environment: POSTGRES_USER: mediagoblin POSTGRES_PASSWORD: "${DATABASE_PASSWORD}" POSTGRES_DB: mediagoblin PGDATA: /var/lib/postgresql/data/pgdata mail-relay: image: alterrebe/postfix-relay environment: RELAY_HOST_NAME: "${HOSTNAME}" ACCEPTED_NETWORKS: 172.0.0.0/8 EXT_RELAY_HOST: "${EMAIL_HOST}" # "0" prefix is hack to sidestep assumption that port 465 means use smtp_tls_wrappermode. EXT_RELAY_PORT: "0${EMAIL_PORT}" SMTP_LOGIN: "${EMAIL_USERNAME}" SMTP_PASSWORD: "${EMAIL_PASSWORD}" USE_TLS: "yes" TLS_VERIFY: encrypt volumes: - /etc/ssl:/etc/ssl:ro mediagoblin: build: . environment: NOTIFICATION_EMAIL: "${NOTIFICATION_EMAIL}" EMAIL_RELAY_HOST: "mail-relay" DATABASE_URL: "postgresql://mediagoblin:${DATABASE_PASSWORD}@database/mediagoblin" VIRTUAL_HOST: "${HOSTNAME}" LETSENCRYPT_HOST: "${HOSTNAME}" LETSENCRYPT_EMAIL: "${ADMIN_EMAIL}" volumes: - /var/lib/mediagoblin/user_dev:/app/user_dev depends_on: - database - mail-relay nginx-proxy: image: jwilder/nginx-proxy ports: - 80:80 - 443:443 volumes: - /etc/nginx/vhost.d:/etc/nginx/vhost.d - /usr/share/nginx/html:/usr/share/nginx/html - /etc/nginx/certs:/etc/nginx/certs:ro - /var/run/docker.sock:/tmp/docker.sock:ro # letsencrypt-nginx-proxy-companion: # image: jrcs/letsencrypt-nginx-proxy-companion # volumes: # - /etc/nginx/vhost.d:/etc/nginx/vhost.d # - /usr/share/nginx/html:/usr/share/nginx/html # - /etc/nginx/certs:/etc/nginx/certs:rw # - /var/run/docker.sock:/var/run/docker.sock:ro # environment: # NGINX_DOCKER_GEN_CONTAINER: nginx-proxy # NGINX_PROXY_CONTAINER: nginx-proxy