version: '3' services: reverse-proxy: image: traefik:v2.2 command: # Try to enable this if something isn't working. Chances are, Traefik will tell you why # Be careful on production as it exposes the traffic you might not want to expose # --log.level=DEBUG # --api.dashboard=true # --api.insecure=true --entrypoints.http.address=:80 --entrypoints.https.address=:443 --providers.docker=true --api=false --certificatesresolvers.letsencrypt.acme.httpchallenge=true --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=http --certificatesresolvers.letsencrypt.acme.email=${ACME_EMAIL} --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json restart: always ports: - 80:80 - 443:443 volumes: - /var/run/docker.sock:/var/run/docker.sock - ${DATA_DIR}/letsencrypt:/letsencrypt drone-server: image: drone/drone:1 container_name: server restart: always ports: - 8000:80 volumes: - ${DATA_DIR}/drone-server:/data environment: DRONE_GITEA_SERVER: ${DRONE_GITEA_SERVER} DRONE_GITHUB_CLIENT_ID: ${DRONE_GITEA_CLIENT_ID} DRONE_GITHUB_CLIENT_SECRET: ${DRONE_GITEA_CLIENT_SECRET} DRONE_RPC_SECRET: ${DRONE_RPC_SECRET} DRONE_SERVER_HOST: ${DRONE_SERVER_HOST} DRONE_SERVER_PROTO: ${DRONE_SERVER_PROTO} DRONE_USER_FILTER: ${DRONE_USER} DRONE_USER_CREATE: username:${DRONE_USER},admin:true labels: - "traefik.http.routers.https.rule=Host(`${DRONE_SERVER_HOST}`)" - "traefik.http.routers.http.rule=Host(`${DRONE_SERVER_HOST}`)" - "traefik.http.routers.https.entrypoints=https" - "traefik.http.routers.http.entrypoints=http" - "traefik.http.routers.https.tls=true" - "traefik.http.routers.https.tls.certresolver=letsencrypt" drone-runner: image: drone/drone-runner-docker:1 ports: - 3000:3000 restart: always container_name: runner volumes: - /var/run/docker.sock:/var/run/docker.sock environment: DRONE_RPC_PROTO: ${DRONE_SERVER_PROTO} DRONE_RPC_HOST: drone-server DRONE_RPC_SECRET: ${DRONE_RPC_SECRET} DRONE_RUNNER_CAPACITY: 2 DRONE_RUNNER_NAME: ${DRONE_RUNNER_NAME} DRONE_UI_USERNAME: ${DRONE_UI_USERNAME} DRONE_UI_PASSWORD: ${DRONE_UI_PASSWORD}