Portainer Stack: ``` --- version: "3.8" services: drone: container_name: drone image: drone/drone:2 restart: unless-stopped environment: - DRONE_GITEA_SERVER= - DRONE_GITEA_CLIENT_ID= - DRONE_GITEA_CLIENT_SECRET= - DRONE_RPC_SECRET= - DRONE_SERVER_HOST= - DRONE_SERVER_PROTO=https - DRONE_USER_CREATE=username:myUsername,admin:true volumes: - /etc/localtime:/etc/localtime:ro - /drone/data:/data ports: - 80:80 - 443:443 labels: - com.centurylinklabs.watchtower.enable=true drone_runner: container_name: drone_runner image: drone/drone-runner-docker:1 restart: unless-stopped environment: - DRONE_GITEA_SERVER= - DRONE_RPC_PROTO=https - DRONE_RPC_HOST= - DRONE_RPC_SECRET= - DRONE_RUNNER_CAPACITY=2 - DRONE_RUNNER_NAME=drone_runner - DRONE_RUNNER_SECRETS=docker_username:myUsername,docker_password:myPassword volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock ports: - 3000:3000 labels: - com.centurylinklabs.watchtower.enable=true - hide_container=true ``` [Drone Documentation](https://docs.drone.io/) is very detailed and well constructed. ![drone01](../images/drone/drone01.png){: align=left width=200 }