![Gitter](https://badges.gitter.im/Join Chat.svg)
- Docker
- AUFS
We highly recommend running Docker with the AUFS storage driver. You can verify Docker is using
the AUFS storage driver with the following command sudo docker info | grep Driver:
If you are upgrading from 0.2
I would recommend waiting a few weeks for the master
branch to stabilize. There was a huge amount of refactoring that destabilized the codebase
and I'd hate for that to impact any real world installations.
If you still want to upgrade to 0.2
please know that the databases are not compatible and
there is no automated migration due to some fundamental structural changes. You will need
to start with a fresh instance.
Example install for Ubuntu
sudo apt-get update
### Install Docker
# needed for AUFS
sudo apt-get -y install linux-image-extra-$(uname -r)
sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get -y install lxc-docker
### Install Go
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
source /root/.gvm/scripts/gvm
gvm listall
gvm install go1.3
gvm use go1.3
### Build custom drone 0.3 from sources
apt-get install -y mercurial zip libsqlite3-dev sqlite3
git clone https://github.com/armab/drone.git $GOPATH/src/github.com/armab/drone
cd $GOPATH/src/github.com/armab/drone
make deps
make build
make install
By default, Drone will create a SQLite database. Drone also supports Postgres and MySQL databases. You can customize the database settings using the configuration options described in the Setup section.
Below are some example configurations that you can use as reference:
# to use postgres
[database]
driver="postgres"
datasource="host=127.0.0.1 user=postgres dbname=drone sslmode=disable"
# to use mysql
[database]
driver="mysql"
datasource="root@tcp(127.0.0.1:3306)/drone"
We are in the process of moving configuration out of the UI and into configuration files and/or environment variables (your choice which). If you prefer configuration files you can provide Drone with the path to your configuration file:
droned --config=/path/to/drone.toml
The configuration file is in TOML format. If installed using the drone.deb
file
will be located in /etc/drone/drone.toml
.
You can find the current config of the master branch here.
[server]
port=""
file=".drone.yml"
[server.ssl]
key=""
cert=""
[session]
secret=""
expires=""
[database]
driver=""
datasource=""
[github]
client=""
secret=""
orgs=[]
open=false
status_context=Drone
[github_enterprise]
client=""
secret=""
api=""
url=""
orgs=[]
private_mode=false
open=false
[bitbucket]
client=""
secret=""
open=false
[gitlab]
url=""
client=""
secret=""
skip_verify=false
open=false
[gogs]
url=""
secret=""
open=false
[smtp]
host=""
port=""
from=""
user=""
pass=""
[docker]
cert=""
key=""
[worker]
nodes=[
"unix:///var/run/docker.sock",
"unix:///var/run/docker.sock"
]
Or you can use environment variables
# custom http server settings
export DRONE_SERVER_PORT=""
export DRONE_SERVER_SSL_KEY=""
export DRONE_SERVER_SSL_CERT=""
# session settings
export DRONE_SESSION_SECRET=""
export DRONE_SESSION_EXPIRES=""
# custom database settings
export DRONE_DATABASE_DRIVER=""
export DRONE_DATABASE_DATASOURCE=""
# github configuration
export DRONE_GITHUB_CLIENT=""
export DRONE_GITHUB_SECRET=""
export DRONE_GITHUB_OPEN=false
# github enterprise configuration
export DRONE_GITHUB_ENTERPRISE_CLIENT=""
export DRONE_GITHUB_ENTERPRISE_SECRET=""
export DRONE_GITHUB_ENTERPRISE_API=""
export DRONE_GITHUB_ENTERPRISE_URL=""
export DRONE_GITHUB_ENTERPRISE_PRIVATE_MODE=false
export DRONE_GITHUB_ENTERPRISE_OPEN=false
# bitbucket configuration
export DRONE_BITBUCKET_CLIENT=""
export DRONE_BITBUCKET_SECRET=""
export DRONE_BITBUCKET_OPEN=false
# gitlab configuration
export DRONE_GITLAB_URL=""
export DRONE_GITLAB_CLIENT=""
export DRONE_GITLAB_SECRET=""
export DRONE_GITLAB_SKIP_VERIFY=false
export DRONE_GITLAB_OPEN=false
# email configuration
export DRONE_SMTP_HOST=""
export DRONE_SMTP_PORT=""
export DRONE_SMTP_FROM=""
export DRONE_SMTP_USER=""
export DRONE_SMTP_PASS=""
# worker nodes
# these are optional. If not specified Drone will add
# two worker nodes that connect to $DOCKER_HOST
export DRONE_WORKER_NODES="tcp://0.0.0.0:2375,tcp://0.0.0.0:2375"
Or a combination of the two:
DRONE_GITLAB_URL="https://gitlab.com" droned --config=/path/to/drone.conf
In order to setup with GitHub you'll need to register your local Drone installation with GitHub (or GitHub Enterprise). You can read more about registering an application here: https://github.com/settings/applications/new
Below are example values when running Drone locally. If you are running Drone on a server
you should replace localhost
with your server hostname or address.
Homepage URL:
http://localhost:8000/
Authorization callback URL for github.com:
http://localhost:8000/api/auth/github.com
Authorization callback URL for GitHub Enterprise:
http://localhost:8000/api/auth/enterprise.github.com
You will need to include a .drone.yml
file in the root of your repository in order to
configure a build. I'm still working on updated documentation, so in the meantime please refer
to the 0.2
README to learn more about the .drone.yml
format: