Version 1.0.0
Language EN

Single Machine

The goal of this document is to give you enough technical specifics to configure and run the Drone server in single-machine mode. The Drone server will use an embedded sqlite database and will execute pipelines on the same machine as the server.

Prerequisites

Create an OAuth Application

Create a GitLab OAuth application. The Consumer Key and Consumer Secret are used to authorize access to Bitbucket resources. The Authorization callback URL must match the below format and path, and must use your exact server scheme and host.

gitlab_token_create gitlab_token_create

Download the Server

The Drone server is distributed as a lightweight Docker image. The image is self-contained and does not have any external dependencies.

docker pull drone/drone:1.0.0-rc.1

Start the Server

The server container can be started with the below command. The container is configured through environment variables. For a full list of configuration parameters, please see the configuration reference.

$ docker run \
  --volume=/var/run/docker.sock:/var/run/docker.sock \
  --volume=/var/lib/drone:/data \
  --env=DRONE_GIT_ALWAYS_AUTH=false \
  --env=DRONE_GITLAB_SERVER=https://gitlab.com \
  --env=DRONE_GITLAB_CLIENT_ID={% your-gitlab-client-id %} \
  --env=DRONE_GITLAB_CLIENT_SECRET={% your-gitlab-client-secret %} \
  --env=DRONE_RUNNER_CAPACITY=2 \
  --env=DRONE_SERVER_HOST={% your-drone-server-host %} \
  --env=DRONE_SERVER_PROTO={% your-drone-server-protocol %} \
  --env=DRONE_TLS_AUTOCERT=false \
  --publish=80:80 \
  --publish=443:443 \
  --restart=always \
  --detach=true \
  --name=drone \
  drone/drone:1.0.0-rc.1

Server Reference

This section provides additional explanation of the configuration variables used earlier in this document. This represents a subset of configuration parameters. For a full list please see the configuration reference.

DRONE_GITLAB_CLIENT_ID

A string containing your GitLab oauth Client ID.

DRONE_GITLAB_CLIENT_ID=05136e57d80189bef462

DRONE_GITLAB_CLIENT_SECRET

A string containing your GitLab oauth Client Secret.

DRONE_GITLAB_CLIENT_SECRET=7c229228a77d2cbddaa61ddc78d45e

DRONE_GITLAB_SERVER

A string contianer your GitLab server address. The default value is the official https://gitlab.com server address.

DRONE_GITLAB_SERVER=https://gitlab.com

DRONE_GIT_ALWAYS_AUTH

Boolean value configures Drone to authenticate when cloning public repositories. This is only required when your source code management system (e.g. GitHub Enterprise) has private mode enabled.

DRONE_GIT_ALWAYS_AUTH=false

DRONE_RUNNER_CAPACITY

An integer defining the maximum number of pipelines the agent should execute concurrently. The default value is two pipelines.

DRONE_RUNNER_CAPACITY=2

DRONE_SERVER_PROTO

A string containing your Drone server protocol scheme. This value should be set to http or https. This field defaults to https if you configure ssl or acme.

DRONE_SERVER_PROTO=https

DRONE_SERVER_HOST

A string containing your Drone server hostname or IP address.

DRONE_SERVER_HOST=drone.domain.com

DRONE_TLS_AUTOCERT

An boolean indicating debug level logs should be use for automatic SSL certification generation and configuration. The default value is false.

DRONE_TLS_AUTOCERT=false

Docker Reference

Publish

The server listens on standard http and https ports inside the container, which should be published on the host machine:

--publish=80:80
--publish=443:443

Volumes

Mount the Docker Socket

The server requires access to your host machine Docker socket. This is used to launch pipelines in Docker containers on the host machine. This is required if you are running Drone in single-machine mode.

--volume=/var/run/docker.sock:/var/run/docker.sock

Mount the Data Volume

The server creates a sqlite database and persists to a contianer volume at /data. To prevent dataloss, we recommend mounting the data volume to the host machine when using the default sqlite database.

--volume=/var/lib/drone:/data

On This Page:

Getting Help

Mailing List
Search for information in the mailing list archives, or post a question.
Chat Support
Real-time chat support from maintainers and community members.