# Drone Server

## Setup on Dokku

Create APP

    dokku apps:create cicd

Setup Network & Domains

    dokku network:create cicd_net
    dokku network:set cicd initial-network cicd_net
    dokku config:set --no-restart cicd DOKKU_LETSENCRYPT_EMAIL=username@example.com
    
Setup Database

    dokku postgres:create cicd
    dokku postgres:link cicd cicd

Setup Volumes

    dokku storage:mount cicd /home/data/cicd.drone:/data

Setup Configuration

    dokku config:set cicd DRONE_DATABASE_DRIVER=postgres
    dokku config:set cicd DRONE_GIT_ALWAYS_AUTH=false
    dokku config:set cicd DRONE_GITEA_SERVER=https://gitea.example.com
    dokku config:set cicd DRONE_SERVER_HOST=cicd.example.com
    dokku config:set cicd DRONE_SERVER_PROTO=https
    dokku config:set cicd DRONE_TLS_AUTOCERT=false

Setup Secrets

    dokku config:set cicd DRONE_COOKIE_SECRET=$(openssl rand -hex 16)
    dokku config:set cicd DRONE_RPC_SECRET=$(openssl rand -hex 16)
    dokku config:set cicd DRONE_GITEA_CLIENT_ID=FIXME
    dokku config:set cicd DRONE_GITEA_CLIENT_SECRET=FIXME
    dokku config:set cicd DRONE_USER_CREATE=username:admin,machine:false,admin:true,token:$(openssl rand -hex 16)

Deploy

    git remote add dokku dokku@dokku.example.com:cicd
    git push dokku master

    dokku git:from-image cicd "glenux/service-drone-server:$IMAGE_TAG"