Certificates
Drone supports native SSL configuration by mounting certificates into the server container. If your server is public you should consider using Lets Encrypt.
- Mount your certificate and key into the server container:
$ docker run \
-v /etc/certs/drone.company.com/server.crt:/etc/certs/drone.company.com/server.crt \
-v /etc/certs/drone.company.com/server.key:/etc/certs/drone.company.com/server.key - Configure the path to your certificate and key:
$ docker run \
-e DRONE_TLS_CERT=/etc/certs/drone.company.com/server.crt \
-e DRONE_TLS_KEY=/etc/certs/drone.company.com/server.key - Expose the standard http and https ports:
$ docker run \
-p 80:80 \
-p 443:443
Lets Encrypt
Drone supports automated SSL configuration and updates using Let’s Encrypt. You can enable Let’s encrypt with the following flag:
- Enable Lets Encrypt with the following parameter:
DRONE_TLS_AUTOCERT=true
- Ensure the desired hostname is configured:
DRONE_SERVER_HOST=domain.com
DRONE_SERVER_PROTO=https - Expose the standard http and https ports:
docker run \
-p 80:80 \
-p 443:443 - Mount the certificate cache to the host:
docker run \
-v /var/lib/drone:/data
Certificate Cache
Drone caches generated certificates on disk at /data/golang-autocert
. This prevents the system from re-requesting certificates on restart. It is best practice to bind mount the /data
directory to the host.
Certificate Upgrades
Drone uses the official Go acme library which will handle certificate upgrades. There should be no additional configuration or management required.