capsul-flask/docs/deployment.md

2.2 KiB

Deploying Capsul on a server

Installing prerequisites for Spoke Mode

On your spoke (see Architecture You'll need libvirtd, dnsmasq, and qemu-kvm, plus a /tank diectory with some operating system images in it:

sudo apt install libvirt-daemon-system virtinst git dnsmasq qemu qemu-kvm
sudo mkdir -p /var/www /tank/{vm,img,config}
sudo mkdir -p /tank/img/debian/10
cd !$
sudo wget https://cloud.debian.org/images/cloud/buster/20201023-432/debian-10-genericcloud-amd64-20201023-432.qcow2 -O root.img.qcow2

TODO: network set-up TODO: cyberia-cloudinit.yml

Deploying capsul-flask

Extra Manual™

Follow the local set-up instructions on your server.

Make sure to set BASE_URL correctly, generate your own secret tokens, and configure your own daemon management for the capsul-flask server (e.g. writing init scripts, or SystemD unit files).

Use the suggested gunicorn command (with appropriately-set address and port), instead of flask run, to launch the server.

TODO: cron runner

Using vanilla Docker Swarm

Download the Co-op Cloud swarm compose.yml:

wget https://git.autonomic.zone/coop-cloud/capsul/src/branch/main/compose.yml

Optionally, download add-on compose files for Stripe, BTCPay, and Spoke Mode:

wget https://git.autonomic.zone/coop-cloud/capsul/src/branch/main/compose.{stripe,btcpay,spoke}.yml

Then, create a .env file and configure appropriately -- you probably want to define most settings in the Co-op Cloud .envrc.sample file.

Load the environment variables (using Python direnv, or a manual set -a && source .env && set +a), insert any necessary secrets, then run the deployment:

docker stack deploy -c compose.yml -c compose.stripe.yml your_capsul

(where you'd add an extra -c compose.btcpay.yml for each optional compose file you want, and set your_capsul to the "stack name" you want).

TODO: cron runner

Using Co-op Cloud / Docker Swarm

Follow the guide in the README for the Co-op Cloud capsul package.

Using docker-compose

TODO