drone/README.md

2.8 KiB
Raw Permalink Blame History

Drone

Build Status

  • Category: Apps
  • Status: 1, alpha
  • Image: drone/drone, 4, upstream
  • Healthcheck: Yes
  • Backups: ?
  • Email: ?
  • Tests: 2
  • SSO: 3 (OAuth)

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:

     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