diff --git a/apps/electrs/app.yml b/apps/electrs/app.yml new file mode 100644 index 0000000..bd38364 --- /dev/null +++ b/apps/electrs/app.yml @@ -0,0 +1,48 @@ +citadel_version: 4 + +metadata: + name: Electrs + version: 0.9.9 + category: Electrum Servers + tagline: Lightweight Electrum server + developers: + Roman Zeyde: https://github.com/romanz + permissions: + - bitcoind + repo: + Electrs: https://github.com/romanz/electrs + Container: https://github.com/runcitadel/docker-electrs + support: https://t.me/runcitadel/ + gallery: + - 1.jpg + - 2.jpg + - 3.jpg + description: |- + Electrs is a lightweight Electrum server for personal use. + + It's slower than Fulcrum, but uses less CPU, RAM and disk space. + implements: electrum + +services: + main: + image: nginx:1.21.6@sha256:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767 + init: true + port: 80 + mounts: + data: + nginx/snowflake: /var/www/snowflake + nginx/nginx.conf: /etc/nginx/nginx.conf + + service: + image: ghcr.io/runcitadel/electrs:v0.9.9@sha256:9751e0d16130cab592dc18ddf2677300600c51843a86bb677821df912d532d52 + working_dir: /data + mounts: + bitcoin: /bitcoin + data: + data: /data + electrs.toml: /data/electrs.toml + restart: on-failure + stop_grace_period: 5m + required_ports: + tcp: + 50001: 50001 diff --git a/apps/electrs/data/.gitkeep b/apps/electrs/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/apps/electrs/electrs.toml.jinja b/apps/electrs/electrs.toml.jinja new file mode 100644 index 0000000..773a723 --- /dev/null +++ b/apps/electrs/electrs.toml.jinja @@ -0,0 +1,12 @@ +log_filters = "INFO" +{% if BITCOIN_NETWORK == "mainnet" %} +network = "bitcoin" +{% else %} +network = "{{ BITCOIN_NETWORK }}" +{% endif %} +db_dir = "/data/db" +daemon_dir = "/bitcoin" +daemon_rpc_addr = "{{ BITCOIN_IP }}:{{ BITCOIN_RPC_PORT }}" +daemon_p2p_addr = "{{ BITCOIN_IP }}:{{ BITCOIN_P2P_PORT }}" +electrum_rpc_addr = "0.0.0.0:50001" +server_banner = "Electrs on Citadel" diff --git a/apps/electrs/nginx/electrum/index.html b/apps/electrs/nginx/electrum/index.html new file mode 100644 index 0000000..322e1cd --- /dev/null +++ b/apps/electrs/nginx/electrum/index.html @@ -0,0 +1,17 @@ + + + + + + + Electrum is running + + + +

Electrum is running

+ You don't need to keep this window open, Electrum will keep running on your node. + + More information will be shown here soon. + + + diff --git a/apps/electrs/nginx/nginx.conf b/apps/electrs/nginx/nginx.conf new file mode 100644 index 0000000..0de3698 --- /dev/null +++ b/apps/electrs/nginx/nginx.conf @@ -0,0 +1,47 @@ +user nginx; +worker_processes auto; + +error_log /var/log/nginx/error.log crit; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + access_log off; + + server_tokens off; + + sendfile on; + + keepalive_timeout 95; + + # Enable response compression + gzip on; + # Compression level: 1-9 + gzip_comp_level 1; + # Minimum length of response before gzip kicks in + gzip_min_length 128; + # Compress these MIME types in addition to text/html + gzip_types application/json; + # Help with proxying by adding the Vary: Accept-Encoding response + gzip_vary on; + + server { + listen 80; + server_name _; + + root /var/www/electrum; + index index.html; + + # serve static files + location / { + try_files $uri $uri/ =404; + } + } +} diff --git a/apps/fulcrum/app.yml b/apps/fulcrum/app.yml new file mode 100644 index 0000000..7ec5992 --- /dev/null +++ b/apps/fulcrum/app.yml @@ -0,0 +1,43 @@ +citadel_version: 4 +metadata: + name: Fulcrum + version: 1.8.1 + category: Electrum Servers + tagline: Fast Electrum server + developers: + Calin Culianu: https://github.com/cculianu/Fulcrum + description: Fulcrum is a very fast Electrum server. While it's faster than Electrs, it uses more CPU, RAM and disk space. + permissions: + - bitcoind + repo: + Public: https://github.com/cculianu/Fulcrum + support: https://t.me/runcitadel + gallery: + - 1.jpg + - 2.jpg + - 3.jpg + defaultPassword: null + torOnly: false + implements: electrum +services: + service: + image: cculianu/fulcrum:latest@sha256:c0543f8b8a5bf6b0c447d8525d6b4360a6c07532f7741f19cc2c179968e71848 + stop_grace_period: 5m + restart: on-failure + command: /usr/bin/Fulcrum /data/fulcrum.conf + mounts: + data: + data: /data + fulcrum.conf: /data/fulcrum.conf + required_ports: + tcp: + 50001: 50001 + 50003: 50003 + main: + image: nginx:1.8.1@sha256:9b3e9f189890ef9d6713c3384da3809731bdb0bff84e7b68da330ebadf533085 + init: true + port: 80 + mounts: + data: + nginx/snowflake: /var/www/snowflake + nginx/nginx.conf: /etc/nginx/nginx.conf diff --git a/apps/fulcrum/data/.gitkeep b/apps/fulcrum/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/apps/fulcrum/fulcrum.conf.jinja b/apps/fulcrum/fulcrum.conf.jinja new file mode 100644 index 0000000..a390487 --- /dev/null +++ b/apps/fulcrum/fulcrum.conf.jinja @@ -0,0 +1,11 @@ +datadir = /data +bitcoind = {{ BITCOIN_IP }}:{{ BITCOIN_RPC_PORT }} +rpcuser = {{ BITCOIN_RPC_USER }} +rpcpassword = {{ BITCOIN_RPC_PASS }} +tcp = 0.0.0.0:50001 +ws = 0.0.0.0:50003 +peering = false +announce = false +admin = 8000 +stats = 8080 +tor_proxy = {{ TOR_PROXY_IP }}:{{ TOR_PROXY_PORT }} diff --git a/apps/fulcrum/nginx/electrum/index.html b/apps/fulcrum/nginx/electrum/index.html new file mode 100644 index 0000000..322e1cd --- /dev/null +++ b/apps/fulcrum/nginx/electrum/index.html @@ -0,0 +1,17 @@ + + + + + + + Electrum is running + + + +

Electrum is running

+ You don't need to keep this window open, Electrum will keep running on your node. + + More information will be shown here soon. + + + diff --git a/apps/fulcrum/nginx/nginx.conf b/apps/fulcrum/nginx/nginx.conf new file mode 100644 index 0000000..0de3698 --- /dev/null +++ b/apps/fulcrum/nginx/nginx.conf @@ -0,0 +1,47 @@ +user nginx; +worker_processes auto; + +error_log /var/log/nginx/error.log crit; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + access_log off; + + server_tokens off; + + sendfile on; + + keepalive_timeout 95; + + # Enable response compression + gzip on; + # Compression level: 1-9 + gzip_comp_level 1; + # Minimum length of response before gzip kicks in + gzip_min_length 128; + # Compress these MIME types in addition to text/html + gzip_types application/json; + # Help with proxying by adding the Vary: Accept-Encoding response + gzip_vary on; + + server { + listen 80; + server_name _; + + root /var/www/electrum; + index index.html; + + # serve static files + location / { + try_files $uri $uri/ =404; + } + } +}