Portainer Stack:
```yaml
---
version: "3.9"
services:
  drone:
    container_name: drone
    image: drone/drone:2
    restart: ${RST-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=${AutoUpdate-true}

  drone_runner:
    container_name: drone_runner
    image: drone/drone-runner-docker:1
    restart: ${RST-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=${AutoUpdate-true}
      - hide_container=true
```
<br>
<br>

[Drone Documentation](https://docs.drone.io/) is very detailed and well constructed. Read it to complete the stack above and to find examples on how to use it.

<br>

![drone01](../images/drone/drone01.png){: align=center width=500 }



Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```