drone ===== [Drone][1] is a Continuous Integration platform built on Docker, written in Go. ## github ```yaml drone: image: drone/drone:1.5-linux-amd64 ports: - "8080:80" volumes: - ./data:/data environment: - DRONE_AGENTS_ENABLED=true - DRONE_SERVER_PROTO=http - DRONE_SERVER_HOST=drone.easypi.pro - DRONE_RPC_SECRET=secret - DRONE_GITHUB_SERVER=https://github.com - DRONE_GITHUB_CLIENT_ID=xxxxxx - DRONE_GITHUB_CLIENT_SECRET=xxxxxx restart: always ``` ```yaml # # Github » Settings » Applications » Developer applications » Register new application # Application name: drone Homepage URL: http://drone.easypi.pro/ Application description: Drone is a Continuous Integration platform built on Docker, written in Go Authorization callback URL: http://drone.easypi.pro/authorize Client ID: ... (generated by github) Client Secret: ... (generated by github) ``` > Drone will register gogs webhooks automatically, you don't need to do it manually. ## nginx/sites-enabled/drone ``` server { listen 80; server_name drone.easypi.pro; 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:8080; proxy_redirect off; proxy_http_version 1.1; proxy_buffering off; chunked_transfer_encoding off; } } ``` ## up and running ```bash # server $ cd ~/fig/drone/ $ docker-compose up -d $ docker-compose logs -f # client (login with remote driver credential) $ firefox http://drone.easypi.pro/ ``` [1]: https://readme.drone.io