ansible-role-samourai-dojo/README.md

96 lines
2.7 KiB
Markdown
Raw Normal View History

# Ansible Role: samourai-dojo
This Ansible Role builds and installs a single Podman [container](https://github.com/samourai/docker) that runs the Node.js code for Samourai Dojo.
For educational purposes: it is intended to be composed with separate roles for Podman, mysql, and web proxy. Backended by a [nixbitcoin](https://github.com/fort-nix/nix-bitcoin) node.
For experts only: Usage of this role implies complete personal accountability and you should never reach out to the Samourai team for support regarding it. This project has no relation to Samourai.
## Requirements
* [podman](docs/PODMAN.md)
* [containers.podman](https://github.com/containers/ansible-podman-collections)
* [mariadb](docs/DATABASE.md)
## Dependencies
* [nginx_conf](docs/NGINX.md) (optional)
## Secrets
Use your favorite secret-store. As an example, you could use GNU pass:
```bash
pass generate -n SAMOURAI_DOJO_API
pass generate -n SAMOURAI_DOJO_ADMIN
pass generate -n SAMOURAI_DOJO_JWT
pass generate -n SAMOURAI_DOJO_MARIADB_PASSWORD
pass generate -n BITCOIND_DOJO_RPC_PASSWORD
```
Then source them into your local environment.
## Role Variables
See the [defaults](defaults/main.yml) for the role.
```yaml
2023-07-16 20:25:07 +00:00
samourai_dojo_version: "1.20.0"
samourai_dojo_onion_address: "{{ lookup('ansible.builtin.env', 'SAMOURAI_DOJO_ONION') }}"
samourai_dojo_onion_port: 80
```
## Example Playbook
```yaml
- hosts: dojo
roles:
- role: nginxinc.nginx_core.nginx
become: true
- role: fauust.mariadb
become: true
- role: alvistack.podman
become: true
- role: bleetube.dojo
tags: dojo
tasks:
- import_tasks: nginx_conf.yml
become: true
```
Have tor, bitcoind, and electrs running separately (e.g. nixbitcoin). And optionally whirlpool-cli.
For a working example, see [bleetube/satstack](https://github.com/bleetube/satstack).
## Systemd
```
systemctl --user status container-dojo.service
```
## Upgrades
Configure `samourai_dojo_version` and rerun the playbook.
```bash
ansible-playbook playbooks/samourai.yml --tags dojo
```
Mind any changes specifically to Node.js [environment variables](https://code.samourai.io/dojo/samourai-dojo/-/tree/master/docker/my-dojo/node), and the Dojo [install scripts](https://code.samourai.io/dojo/samourai-dojo/-/tree/master/docker/my-dojo/install) (or wait for this role to document any extra upgrade steps).
## Monitoring
See [dojo-exporter](https://github.com/bleetube/dojo_exporter)
## Troubleshooting
```bash
podman logs --follow dojo
podman inspect dojo | jq .[].Config.Env
2023-07-16 21:55:02 +00:00
ngrep -d lo port 80 -W byline
```
## Resources
* [Dojo repo](https://code.samourai.io/dojo/samourai-dojo)
* [Dojo docs](https://docs.samourai.io/en/dojo)