Drone is a continuous integration and delivery platform that helps in automating the software development lifecycle. If you are using Pop!_OS as your operating system, this tutorial will give you step-by-step instructions to install Drone.
Before installing Drone, we need the following tools installed on our system:
You can install Docker by following the instructions here. You can install Git and OpenSSL by running the following commands:
sudo apt update
sudo apt install git openssl
The installation of Drone involves the following steps:
Drone stores its metadata in a database. We can use the PostgreSQL database for this purpose. You can install PostgreSQL by running the following command:
sudo apt install postgresql postgresql-client
After installing PostgreSQL, create a user and a database for Drone:
sudo -u postgres createuser drone --pwprompt
sudo -u postgres createdb drone
Make a note of the password that you set for the user drone.
Drone uses tokens to authenticate between the server and runner. We will generate tokens for the server and runner using OpenSSL.
openssl rand -hex 16
You will get a random string of 32 characters. Set it as an environment variable:
export DRONE_RPC_SECRET=<your-random-string>
Generate the runner token:
openssl rand -hex 16
Set it as an environment variable:
export DRONE_RPC_SECRET=<your-runner-string>
Now we can start the Drone server and runner using Docker. Create a file docker-compose.yml with the following configuration:
version: '2'
services:
drone-server:
image: drone/drone:latest
ports:
- 80:80
- 443:443
volumes:
- /var/lib/drone:/data
restart: always
environment:
- DRONE_AGENTS_ENABLED=true
- DRONE_RPC_SECRET=${DRONE_RPC_SECRET}
- DRONE_SERVER_HOST=<your-server-hostname>
- DRONE_SERVER_PROTO=http
- DRONE_TLS_AUTOCERT=false
- DRONE_USER_CREATE=username:<your-github-username>,admin:true
- DRONE_GITHUB_CLIENT_ID=<your-client-id>
- DRONE_GITHUB_CLIENT_SECRET=<your-client-secret>
drone-runner:
image: drone/drone-runner-docker:latest
restart: always
depends_on:
- drone-server
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- DRONE_RPC_SECRET=${DRONE_RPC_SECRET}
- DRONE_RPC_HOST=<your-server-hostname>
- DRONE_RPC_PROTO=http
- DRONE_RUNNER_CAPACITY=2
Replace <your-server-hostname> with the hostname or IP address of your server. Replace <your-github-username>, <your-client-id>, and <your-client-secret> with your GitHub username, client ID, and client secret respectively.
Start the Drone services using Docker Compose:
docker-compose up -d
You can access the Drone web interface at http://your-server-hostname and log in using your GitHub account.
This tutorial has provided the steps to install Drone on Pop!_OS. You can now use Drone to automate your software development workflows.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!