2014-10-11 23:56:03 +00:00
|
|
|
[![Build Status](http://test.drone.io/v1/badge/github.com/drone/drone/status.svg)](http://test.drone.io/github.com/drone/drone)
|
2014-08-12 18:43:49 +00:00
|
|
|
[![GoDoc](https://godoc.org/github.com/drone/drone?status.png)](https://godoc.org/github.com/drone/drone)
|
2014-10-12 00:50:52 +00:00
|
|
|
[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/drone/drone?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
2014-07-14 02:53:59 +00:00
|
|
|
|
2014-08-02 18:21:39 +00:00
|
|
|
## System Requirements
|
2014-02-13 22:43:02 +00:00
|
|
|
|
2014-08-02 18:21:39 +00:00
|
|
|
* 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:`
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
2014-10-11 23:56:03 +00:00
|
|
|
**This is project is alpha stage. Consider yourself warned**
|
|
|
|
|
|
|
|
We have optimized the installation process for Ubuntu since that is what we test with internally.
|
|
|
|
You can run the following commands to quickly download an install Drone on an Ubuntu machine.
|
2014-08-02 18:21:39 +00:00
|
|
|
|
|
|
|
```sh
|
2014-10-12 16:22:51 +00:00
|
|
|
# Ubuntu, Debian
|
2014-10-11 23:56:03 +00:00
|
|
|
wget downloads.drone.io/master/drone.deb
|
2014-08-02 18:21:39 +00:00
|
|
|
sudo dpkg -i drone.deb
|
2014-10-12 16:22:51 +00:00
|
|
|
|
|
|
|
# CentOS, RedHat
|
|
|
|
wget downloads.drone.io/master/drone.rpm
|
|
|
|
sudo yum localinstall drone.rpm
|
2014-08-02 18:21:39 +00:00
|
|
|
```
|
|
|
|
|
2014-10-01 18:58:27 +00:00
|
|
|
## Database
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
2014-10-12 00:50:52 +00:00
|
|
|
```toml
|
2014-10-01 18:58:27 +00:00
|
|
|
# to use postgres
|
2014-10-11 23:34:53 +00:00
|
|
|
[database]
|
2014-10-01 18:58:27 +00:00
|
|
|
driver="postgres"
|
2014-10-11 23:56:03 +00:00
|
|
|
datasource="host=127.0.0.1 user=postgres dbname=drone sslmode=disable"
|
2014-10-01 18:58:27 +00:00
|
|
|
|
|
|
|
# to use mysql
|
2014-10-11 23:34:53 +00:00
|
|
|
[database]
|
2014-10-01 18:58:27 +00:00
|
|
|
driver="mysql"
|
2014-10-11 23:56:03 +00:00
|
|
|
datasource="root@tcp(127.0.0.1:3306)/drone"
|
2014-10-01 18:58:27 +00:00
|
|
|
```
|
|
|
|
|
2014-09-03 07:23:36 +00:00
|
|
|
## Setup
|
2014-08-02 18:21:39 +00:00
|
|
|
|
2014-09-03 07:23:36 +00:00
|
|
|
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:
|
2014-03-08 22:22:49 +00:00
|
|
|
|
2014-09-03 07:23:36 +00:00
|
|
|
```sh
|
2014-10-11 23:56:03 +00:00
|
|
|
droned --config=/path/to/drone.toml
|
2014-09-03 07:23:36 +00:00
|
|
|
```
|
2014-08-02 18:21:39 +00:00
|
|
|
|
2014-10-11 23:56:03 +00:00
|
|
|
The configuration file is in TOML format. If installed using the `drone.deb` file
|
|
|
|
will be located in `/etc/drone/drone.toml`.
|
2014-09-03 07:23:36 +00:00
|
|
|
|
|
|
|
```toml
|
2014-09-05 03:53:32 +00:00
|
|
|
|
2014-10-11 21:30:51 +00:00
|
|
|
[server]
|
|
|
|
port=""
|
|
|
|
|
|
|
|
[server.ssl]
|
|
|
|
key=""
|
|
|
|
cert=""
|
|
|
|
|
2014-10-12 03:33:06 +00:00
|
|
|
[session]
|
|
|
|
secret=""
|
|
|
|
duration=""
|
|
|
|
|
2014-10-01 19:01:02 +00:00
|
|
|
[database]
|
2014-10-01 18:58:27 +00:00
|
|
|
driver=""
|
2014-10-11 23:34:53 +00:00
|
|
|
datasource=""
|
2014-10-01 18:58:27 +00:00
|
|
|
|
2014-09-05 03:53:32 +00:00
|
|
|
[registration]
|
|
|
|
open=true
|
|
|
|
|
2014-09-03 07:23:36 +00:00
|
|
|
[github]
|
|
|
|
client=""
|
|
|
|
secret=""
|
|
|
|
|
|
|
|
[github_enterprise]
|
|
|
|
client=""
|
|
|
|
secret=""
|
|
|
|
api=""
|
|
|
|
url=""
|
2014-09-07 18:26:16 +00:00
|
|
|
private_mode=false
|
2014-09-03 07:23:36 +00:00
|
|
|
|
|
|
|
[bitbucket]
|
|
|
|
client=""
|
|
|
|
secret=""
|
|
|
|
|
2014-09-04 03:48:13 +00:00
|
|
|
[gitlab]
|
|
|
|
url=""
|
|
|
|
|
2014-09-03 07:23:36 +00:00
|
|
|
[smtp]
|
|
|
|
host=""
|
|
|
|
port=""
|
|
|
|
from=""
|
|
|
|
user=""
|
|
|
|
pass=""
|
2014-09-07 21:55:37 +00:00
|
|
|
|
|
|
|
[worker]
|
|
|
|
nodes=[
|
|
|
|
"unix:///var/run/docker.sock",
|
|
|
|
"unix:///var/run/docker.sock"
|
|
|
|
]
|
|
|
|
|
2014-09-03 07:23:36 +00:00
|
|
|
```
|
2014-08-02 18:21:39 +00:00
|
|
|
|
2014-09-03 07:23:36 +00:00
|
|
|
Or you can use environment variables
|
2014-02-07 10:10:01 +00:00
|
|
|
|
2014-09-03 07:23:36 +00:00
|
|
|
```sh
|
2014-09-07 18:26:16 +00:00
|
|
|
|
2014-10-11 21:30:51 +00:00
|
|
|
# custom database settings
|
|
|
|
export DRONE_SERVER_PORT=""
|
|
|
|
export DRONE_SERVER_SSL_KEY=""
|
|
|
|
export DRONE_SERVER_SSL_CERT=""
|
|
|
|
|
2014-10-01 18:58:27 +00:00
|
|
|
# custom database settings
|
2014-10-01 19:01:02 +00:00
|
|
|
export DRONE_DATABASE_DRIVER=""
|
2014-10-11 23:34:53 +00:00
|
|
|
export DRONE_DATABASE_DATASOURCE=""
|
2014-10-01 18:58:27 +00:00
|
|
|
|
2014-09-07 18:26:16 +00:00
|
|
|
# enable users to self-register
|
|
|
|
export DRONE_REGISTRATION_OPEN=false
|
|
|
|
|
2014-09-03 07:23:36 +00:00
|
|
|
# github configuration
|
|
|
|
export DRONE_GITHUB_CLIENT=""
|
2014-09-04 03:48:13 +00:00
|
|
|
export DRONE_GITHUB_SECRET=""
|
2014-09-03 07:23:36 +00:00
|
|
|
|
|
|
|
# github enterprise configuration
|
|
|
|
export DRONE_GITHUB_ENTERPRISE_CLIENT=""
|
|
|
|
export DRONE_GITHUB_ENTERPRISE_SECRET=""
|
|
|
|
export DRONE_GITHUB_ENTERPRISE_API=""
|
|
|
|
export DRONE_GITHUB_ENTERPRISE_URL=""
|
2014-09-07 18:26:16 +00:00
|
|
|
export DRONE_GITHUB_ENTERPRISE_PRIVATE_MODE=false
|
2014-09-03 07:23:36 +00:00
|
|
|
|
|
|
|
# bitbucket configuration
|
|
|
|
export DRONE_BITBUCKET_CLIENT=""
|
|
|
|
export DRONE_BITBUCKET_SECRET=""
|
|
|
|
|
2014-09-04 03:48:13 +00:00
|
|
|
# gitlab configuration
|
|
|
|
export DRONE_GITLAB_URL=""
|
|
|
|
|
2014-09-03 07:23:36 +00:00
|
|
|
# email configuration
|
|
|
|
export DRONE_SMTP_HOST=""
|
|
|
|
export DRONE_SMTP_PORT=""
|
|
|
|
export DRONE_SMTP_FROM=""
|
|
|
|
export DRONE_SMTP_USER=""
|
|
|
|
export DRONE_SMTP_PASS=""
|
2014-09-07 21:55:37 +00:00
|
|
|
|
|
|
|
# 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"
|
2014-09-03 07:23:36 +00:00
|
|
|
```
|
2014-08-02 18:22:49 +00:00
|
|
|
|
2014-09-04 03:48:13 +00:00
|
|
|
Or a combination of the two:
|
|
|
|
|
|
|
|
```sh
|
2014-10-11 23:56:03 +00:00
|
|
|
DRONE_GITLAB_URL="https://gitlab.com" droned --config=/path/to/drone.conf
|
2014-09-04 03:48:13 +00:00
|
|
|
```
|
|
|
|
|
2014-10-01 04:35:30 +00:00
|
|
|
## GitHub
|
|
|
|
|
|
|
|
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:
|
2014-10-01 04:44:15 +00:00
|
|
|
|
|
|
|
```
|
2014-10-01 04:35:30 +00:00
|
|
|
http://localhost:8000/
|
2014-10-01 04:44:15 +00:00
|
|
|
```
|
2014-10-01 04:35:30 +00:00
|
|
|
|
|
|
|
Authorization callback URL:
|
2014-10-01 04:44:15 +00:00
|
|
|
|
|
|
|
```
|
2014-10-01 04:35:30 +00:00
|
|
|
http://localhost:8000/api/auth/github.com
|
2014-10-01 04:44:15 +00:00
|
|
|
```
|