citadel-core/docker-compose.yml
Aaron Dewes 8bcb66f0fa
Citadel 0.1.8 (#90)
* Move LND into an app

* Add JWT pubkey module

* Remove old LND dir

* Clean up

* Some cleanups

* WIP: LND app

* Clean up output of ls-installed

* Clean up app system

* Various cleanups

* Fix volume name

* Update dependencies.yml

* Update app-manager

* Fix some minor issues

* Update manager

* Some fixes for the LND app

* Some fixes

* WIP: Caddy

* WIP: More https

* Caddy improvements

* Some more fixes

* Fix caddy port

* Fix for LND app

* Fixes for some apps

* Code cleanups

* Fix entry name

* Fix python

* Update app-manager

* Some Caddy fixes

* Update app-manager

* Fix tor

* Fix Caddy

* Fix caddy

* Minor fix

* Fix

* Fix https

* Update dependencies.yml

* Fix for CLN (#1)

* Update dependencies.yml

* Fix Caddyfile

* Expose IP address to manager

* Update API

* Use API from Docker Hub

* Update dependencies.yml

* Update dependencies.yml

* Update dependencies.yml

* Some fixes

* Minor syntax fix

* How did I even do that?

* Update docker-compose.yml

* Allow restarting Caddy

* Add configure trigger

* Replace configure with a caddy config update

* Update dependencies.yml

* Update Tor

* Update dependencies.yml

* Update dependencies.yml

* Update dependencies.yml

* Latest dashboard

* Move to ghcr.io

* Update 01-run.sh

* Update 01-run.sh

* Update 01-run.sh

* Update dependencies.yml

* Clean up

* Fix mount

* Update mount

* Create .gitkeep

* Dynamic caddy updates

* Update app-cli

* Update dependencies.yml

* Update dependencies.yml

* Remove Lightning logs from debug script

* Update app manager

* Clean up

* Update app-cli

* Citadel 0.1.8

* Remove host gateway
2023-04-16 21:12:12 +02:00

163 lines
5.0 KiB
YAML

services:
tor:
container_name: tor
image: ghcr.io/runcitadel/tor-latest:main@sha256:761948a86f8367238eb61f991cf87094b12a8a772be0eabec00d66164d13075f
user: toruser
restart: on-failure
volumes:
- ${PWD}/tor/torrc-core:/etc/tor/torrc
- ${PWD}/tor/data:/var/lib/tor/
ports:
- 127.0.0.1:$TOR_PROXY_PORT:$TOR_PROXY_PORT
networks:
default:
ipv4_address: $TOR_PROXY_IP
extra_hosts:
- host.docker.internal:host-gateway
app-tor:
container_name: app-tor
image: ghcr.io/runcitadel/tor-latest:main@sha256:761948a86f8367238eb61f991cf87094b12a8a772be0eabec00d66164d13075f
user: toruser
restart: on-failure
volumes:
- ${PWD}/tor/torrc-apps:/etc/tor/torrc
- ${PWD}/tor/data:/var/lib/tor/
networks:
default:
ipv4_address: $APPS_TOR_IP
extra_hosts:
- host.docker.internal:host-gateway
app-2-tor:
container_name: app-2-tor
image: ghcr.io/runcitadel/tor-latest:main@sha256:761948a86f8367238eb61f991cf87094b12a8a772be0eabec00d66164d13075f
user: toruser
restart: on-failure
volumes:
- ${PWD}/tor/torrc-apps-2:/etc/tor/torrc
- ${PWD}/tor/data:/var/lib/tor/
networks:
default:
ipv4_address: $APPS_2_TOR_IP
extra_hosts:
- host.docker.internal:host-gateway
app-3-tor:
container_name: app-3-tor
image: ghcr.io/runcitadel/tor-latest:main@sha256:761948a86f8367238eb61f991cf87094b12a8a772be0eabec00d66164d13075f
user: toruser
restart: on-failure
volumes:
- ${PWD}/tor/torrc-apps-3:/etc/tor/torrc
- ${PWD}/tor/data:/var/lib/tor/
networks:
default:
ipv4_address: $APPS_3_TOR_IP
extra_hosts:
- host.docker.internal:host-gateway
caddy:
container_name: caddy
image: ghcr.io/runcitadel/caddy:main@sha256:a64ed99ad821ab53119c5e314aab47b37406c5d6caf1ec0bcd65c8da981823d8
volumes:
- ${PWD}/caddy/data:/data
- ${PWD}/caddy/Caddyfile:/etc/caddy/Caddyfile
restart: on-failure
stop_grace_period: 30s
network_mode: host
bitcoin:
container_name: bitcoin
image: ghcr.io/runcitadel/bitcoinknots:main@sha256:5fbee0f6f0d09d42aacc11c373ffe6162210c42ce21e6eba294e547e3ad80219
depends_on:
- tor
volumes:
- ${PWD}/bitcoin:/data/.bitcoin
restart: on-failure
stop_grace_period: 1m
ports:
- $BITCOIN_P2P_PORT:$BITCOIN_P2P_PORT
networks:
default:
ipv4_address: $BITCOIN_IP
dashboard:
container_name: dashboard
image: ghcr.io/runcitadel/dashboard:no-https@sha256:7fc5a5b70496240e6e48a381e8ac3c7978e7343285fda4951c00846580d6216d
restart: on-failure
stop_grace_period: 1m30s
networks:
default:
ipv4_address: $DASHBOARD_IP
manager:
container_name: manager
image: runcitadel/api:main@sha256:12d299d8850d830fa5abd0e64c8537dfcbaec662de18376b0d7b01fa59895132
depends_on:
- tor
restart: on-failure
init: true
stop_grace_period: 5m30s
volumes:
- ${PWD}/info.json:/info.json
- ${PWD}/db:/db
- ${PWD}/events:/events
- ${PWD}/apps:/apps
- ${PWD}/statuses:/statuses
- ${PWD}/tor/data:/var/lib/tor/
- jwt-public-key:/jwt-public-key
- jwt-private-key:/jwt-private-key
environment:
USER_PASSWORD_FILE: /db/user.json
JWT_PUBLIC_KEY_FILE: /jwt-public-key/jwt.pem
JWT_PRIVATE_KEY_FILE: /jwt-private-key/jwt.key
JWT_EXPIRATION: '3600'
DEVICE_HOSTS: ${DEVICE_HOSTS:-"http://citadel.local"}
DEVICE_HOSTNAME: ${DEVICE_HOSTNAME:-""}
MIDDLEWARE_API_URL: http://$MIDDLEWARE_IP
MIDDLEWARE_API_PORT: 3000
SEED_FILE: /db/citadel-seed/seed
BITCOIN_HOST: $BITCOIN_IP
BITCOIN_P2P_PORT: $BITCOIN_P2P_PORT
BITCOIN_RPC_PORT: $BITCOIN_RPC_PORT
BITCOIN_RPC_USER: $BITCOIN_RPC_USER
BITCOIN_RPC_PASSWORD: $BITCOIN_RPC_PASS
GITHUB_REPO: runcitadel/core
GITHUB_BRANCH: ${UPDATE_CHANNEL:-"stable"}
VERSION_FILE: /info.json
UPDATE_LOCK_FILE: /statuses/update-in-progress
BACKUP_STATUS_FILE: /statuses/backup-status.json
DEBUG_STATUS_FILE: /statuses/debug-status.json
TOR_PROXY_IP: ${TOR_PROXY_IP}
TOR_PROXY_PORT: ${TOR_PROXY_PORT}
TOR_HIDDEN_SERVICE_DIR: /var/lib/tor
IS_CITADEL_OS: ${IS_CITADEL_OS:-"true"}
I2P_PASSWORD: $I2P_PASSWORD
I2P_USERNAME: i2pd
ELECTRUM_HOST: $APP_ELECTRUM_IP
ELECTRUM_PORT: 50001
KAREN_SOCKET: /events/karen.socket
IP_ADDR: $DEVICE_IP
networks:
default:
ipv4_address: $MANAGER_IP
i2p:
container_name: i2p
user: 1000:1000
image: purplei2p/i2pd:latest@sha256:d8e1a28a8428ed9bda15bbf773e355cf46c89c652dcaa6cd9131606ee308ae47
working_dir: /data
volumes:
- ${PWD}/i2p:/home/i2pd/data
restart: on-failure
stop_grace_period: 1m
init: true
networks:
default:
ipv4_address: $I2P_IP
networks:
default:
name: citadel_main_network
ipam:
driver: default
config:
- subnet: $NETWORK_IP/24
volumes:
jwt-public-key:
name: citadel-jwt-public-key
jwt-private-key:
name: citadel-jwt-private-key