drone/README.md

92 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Drone
[![Build Status](https://drone.autonomic.zone/api/badges/coop-cloud/drone/status.svg)](https://drone.autonomic.zone/coop-cloud/drone)
<!-- metadata -->
* **Category**: Apps
* **Status**: 1, alpha
* **Image**: [`drone/drone`](https://hub.docker.com/r/drone/drone), 4, upstream
* **Healthcheck**: Yes
* **Backups**: ?
* **Email**: ?
* **Tests**: 2
* **SSO**: 3 (OAuth)
<!-- endmetadata -->
## Basic usage
1. Set up Docker Swarm and [`abra`]
2. Deploy [`coop-cloud/traefik`]
3. `abra app new drone --secrets` (optionally with `--pass` if you'd like
to save secrets in `pass`)
4. `abra app config YOURAPPDOMAIN` - be sure to change `DOMAIN` to something that resolves to
your Docker swarm box
5. `abra app deploy YOURAPPDOMAIN`
6. Open the configured domain in your browser to finish set-up
## Setup with Gitea
follow this guide: https://docs.drone.io/server/provider/gitea/
then you'll also need to setup drone-docker-runner (`abra app new drone-docker-runner`). More info at https://docs.drone.io/runner/docker/installation/linux/.
## Setting up a server for auto-deployment
For Drone to be able to deploy to a server, you need:
- A drone user on the server, added to the `docker` group
- An SSH key, added as a secret in Drone, and added to `/home/drone/.ssh/authorized_keys on the server`
1. Add a `drone` user on `example.zone`, the server which youre hosting the site on.
a. `sudo adduser drone`
b. create an SSH key for the user using `ssh-keygen` , e.g. `sudo -u drone ssh-keygen`
c. copy the contents of the public side of the new key to `/home/drone/.ssh/authorized_keys`
d. run `chmod go-rwx /home/drone/.ssh`
e. add `drone` to `AllowUsers` in `/etc/ssh/sshd_confand` restart SSH, `sudo service sshd restart`
2. Give the drone user access to the `docker` group; `sudo usermod -aG docker drone`
3. Generate a new SSH key and insert it as a Drone “orgsecret”
a. Log into Drone as `admin`, then either:
b. Add the “orgsecret” using the [Drone CLI](https://docs.drone.io/cli/install/):
i. Go to the “account” page https://drone.autonomic.zone/account
ii. Copy/paste the “Example CLI usage” into a terminal (you might want to add to `~/.bashrc` to make this easier next time)
iii. Run `drone orgsecret add [org you're adding the org secret to] [domain name] @drone_ssh_[example.zone]`
c. Add the “orgsecret” using the Drone web interface:
i. Find the repository page, or the page for another repository in the same organisation, in Drone
ii. On the “Settings” tab, under “Organization” on the left, click “Secrets”, then create a new secret and paste in the private key value
[`abra`]: https://git.autonomic.zone/autonomic-cooperative/abra
[`coop-cloud/traefik`]: https://git.autonomic.zone/coop-cloud/traefik