forked from 3wordchant/capsul-flask
69 lines
2.2 KiB
Markdown
69 lines
2.2 KiB
Markdown
|
# 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
|