Skip to content

Commit

Permalink
some initial documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
bradrydzewski committed May 24, 2015
1 parent 52c62d4 commit 14f0ffb
Show file tree
Hide file tree
Showing 5 changed files with 144 additions and 4 deletions.
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ build:
go build -o bin/drone -ldflags "-X main.revision $(SHA) -X main.version $(VERSION).$(SHA)" github.com/drone/drone/cmd/drone-server
go build -o bin/drone-agent -ldflags "-X main.revision $(SHA) -X main.version $(VERSION).$(SHA)" github.com/drone/drone/cmd/drone-agent

run:
bin/drone-server --debug

clean:
find . -name "*.out" -delete
Expand Down
37 changes: 36 additions & 1 deletion doc/install-docker.md
Original file line number Diff line number Diff line change
@@ -1 +1,36 @@
install-docker.md
An official Drone image is available in the [Docker registry](https://registry.hub.docker.com/u/drone/drone/). This is the recommended way to install and run Drone on non-Ubuntu environments. Pull the latest Drone image to get started:

```bash
sudo docker pull drone/drone
```

An example command to run your Drone instance with GitHub enabled:

```bash
sudo docker run -d \
-v /var/lib/drone:/var/lib/drone \
-e DRONE_GITHUB_CLIENT=c0aaff74c060ff4a950d \
-e DRONE_GITHUB_SECRET=1ac1eae5ff1b490892f5546f837f306265032412 \
-p 80:80 --name=drone drone/drone
```

### Persistence

When running Drone inside Docker we recommend mounting a volume for your sqlite database. This ensures the database is not lost if the container is accidentally stopped and removed. Below is an example that mounts `/var/lib/drone` on your host machine:

```bash
sudo docker run \
-v /var/lib/drone:/var/lib/drone \
--name=drone drone/drone
```

### Configuration

When running Drone inside Docker we recommend using environment variables to configure the system. All configuration attributes in the `drone.toml` may also be provided as environment variables. Below demonstrates how to configure GitHub from environment variables:

```bash
sudo docker run \
-e DRONE_GITHUB_CLIENT=c0aaff74c060ff4a950d \
-e DRONE_GITHUB_SECRET=1ac1eae5ff1b490892f5546f837f306265032412 \
--name=drone drone/drone
```
47 changes: 46 additions & 1 deletion doc/install-source.md
Original file line number Diff line number Diff line change
@@ -1 +1,46 @@
install-source.md
This document provides a brief overview of Drone's build process, so that you can build and run Drone directly from source. For more detail, please see the `.drone.yml` and `Makefile`.

### Requirements

* Make
* Go 1.4+
* Libsqlite3

### Build and Test

We use `make` to build and package Drone. You can execute the following commands to build compile Drone locally:

```bash
make deps
make
make test
```

The `all` directive compiles binary files to the `bin/` directory and embeds all static content (ie html, javascript, css files) directly into the binary for simplified distribution.

The `test` directive runs the `go vet` tool for simple linting and executes the suite of unit tests.

**NOTE** if you experience slow compile times you can `go install` the `go-sqlite3` library from the vendored dependencies. This will prevent Drone from re-compiling on every build:

```bash
go install github.com/drone/drone/Godeps/_workspace/src/github.com/mattn/go-sqlite3
```

### Run

To run Drone you can invoke `make run`. This will start Drone with the `--debug` flag which instructs Drone to server static content from disk. This is helpful if you are doing local development and editing the static JavaScript or CSS files.


### Distribute

To generate a debian package:

```bash
make dist
```

To generate a Docker container:

```bash
docker build --rm=true -t drone/drone .
```
40 changes: 39 additions & 1 deletion doc/install-ubuntu.md
Original file line number Diff line number Diff line change
@@ -1 +1,39 @@
install.md
These are the instructions for running Drone on Ubuntu . We recommend using Ubuntu 14.04, the latest stable distribution. We also highly recommend using AUFS as the default file system driver for Docker.

### System Requirements

The default Drone installation uses a SQLite3 database for persistence. Please ensure you have `libsqlite3-dev` installed:

```bash
sudo apt-get update
sudo apt-get install libsqlite3-dev
```

The default Drone installation also assumes Docker is installed locally on the host machine. To install Docker on Ubuntu:

```bash
wget -qO- https://get.docker.com/ | sh
```

### Installation

Once the environment is prepared you can install Drone from a debian file. Drone will automatically start on port 80. Edit /etc/drone/drone.toml to modify the port.

```bash
wget downloads.drone.io/master/drone.deb
sudo dpkg --install drone.deb
```

### Start & Stop

The Drone service is managed by upstart and can be started, stopped or restarted using the following commands:

```bash
sudo start drone
sudo stop drone
sudo restart drone
```

### Logging

The Drone service logs are written to `/var/log/upstart/drone.log`.
22 changes: 21 additions & 1 deletion doc/setup-nginx.md
Original file line number Diff line number Diff line change
@@ -1 +1,21 @@
setup-nginx.md
Using a proxy server is not really necessary. Drone serves most static content from a CDN and uses the Go standard library’s high-performance net/http package to serve dynamic content. If using Nginx to proxy traffic to Drone you may use the following configuration:

```nginx
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header Origin "";
proxy_pass http://127.0.0.1:8000;
proxy_redirect off;
}
```

You may also want to change Drone’s default port when proxying traffic. You can change the port in the `/etc/drone/drone.toml` configuration file:

```toml
[server]
addr = ":8000"
```

0 comments on commit 14f0ffb

Please sign in to comment.