# Deploying Capsul on a server ## Installing prerequisites for Spoke Mode On your spoke (see [Architecture](./architecture.md) 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](./local-set-up.md) 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`: ```sh 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: ```sh 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](https://git.autonomic.zone/coop-cloud/capsul/src/branch/main/.envrc.sample). Load the environment variables (using Python `direnv`, or a manual `set -a && source .env && set +a`), insert any necessary secrets, then run the deployment: ```sh 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](https://git.autonomic.zone/coop-cloud/capsul/). ### Using docker-compose TODO