Skip to content

Latest commit

 

History

History
81 lines (56 loc) · 4.67 KB

README.md

File metadata and controls

81 lines (56 loc) · 4.67 KB

Deploy Drone CI

Stack

All Contributors license PRs Welcome Build Status David Dependancy Status

Watch on GitHub Star on GitHub Follow Tweet

Prerequisites:

  1. Ansible
  2. Ubuntu 16.04 server & ssh access to that server

Installation steps:

  1. Update server ip in hosts file. If you are planning to use same server for both drone and nginx - just put same ip for both, drone & nginx targets.
  2. Install Ansible role dependencies with one command: ./bin/install-ansible-dependencies.sh
  3. Update github application callback url to either point to your server ip address or your domain. For example: http://ci.myapp.com/login or just http://server_ip/login.
  4. Set server ip variable or domain name in vars/main.yml (nginx_drone_server_name variable).
  5. Update drone_user_create in vars/main.yml - github user, who will be initial administrator and will be able to grant the administrator role to additional accounts.
  6. Rename credentials-template.yml into credentials.yml and update your github clientId, clientSecret as well as username and password for PostgreSQL database.

Once you done all above, run the following command:

./bin/setup-server.sh && ./bin/deploy-drone.sh

You should have Drone CI installed by now. The only step remaining is to make Drone work behind Nginx proxy.

Setting up Nginx for Drone CI

If you would like to install nginx on a same server with Drone CI - just run following command:

./bin/setup-nginx.sh

If you already have nginx installed somewhere else and just would like to attach drone nginx configuration to existing nginx server you can do following:

  1. Set nginx server ip in hosts file for the nginx target
  2. Run same command ./bin/setup-nginx.sh, but reply no to the question about nginx installation.

In this case nginx configuration for Drone CI will be copied to the existing nginx server.

Setting up ssl for production Drone CI

  1. Place your ssl keys into int ssl-keys directory as app.crt and app.key (they are in a .gitignore)
  2. Make sure that server_setup_ssl is set to true in vars/main.yml
  3. Deploy ssl using ./bin/setup-server.sh --tags "nginx"
  4. Update callback url in the Github application to start from https

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Mar1nka
Mar1nka

💻
arlovaalina
arlovaalina

💻

This project follows the all-contributors specification. Contributions of any kind welcome!