drone ===== [Drone][1] is a Continuous Integration platform built on Docker, written in Go. ## github ```yaml # # Github » Settings » Applications » Developer applications » Register new application # Application name: drone Homepage URL: http://drone.easypi.info/ Application description: Drone is a Continuous Integration platform built on Docker, written in Go Authorization callback URL: http://drone.easypi.info/authorize Client ID: ... (generated by github) Client Secret: ... (generated by github) ``` ## docker-compose.yml ```yaml drone: image: drone/drone ports: - "8000:8000" volumes: - ./drone:/var/lib/drone - /var/run/docker.sock:/var/run/docker.sock environment: - REMOTE_DRIVER=github - REMOTE_CONFIG=https://github.com?client_id=...&client_secret=... # - REMOTE_DRIVER=gogs # - REMOTE_CONFIG=https://git.easypi.info/?open=false - DEBUG=false restart: always wall: image: drone/drone-wall ports: - "8080:80" restart: always ``` > 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.info; 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:8000; proxy_redirect off; proxy_http_version 1.1; proxy_buffering off; chunked_transfer_encoding off; } } server { listen 80; server_name wall.easypi.info; location / { proxy_pass http://127.0.0.1:8080; } } ``` ## up and running ```bash # server $ cd ~/fig/drone/ $ docker-compose up -d $ docker-compose logs # client (login with remote driver credential) $ firefox http://drone.easypi.info/ # dashboard $ firefox http://wall.easypi.info/ ``` [1]: http://readme.drone.io/usage/overview/