Refactor and enhance Archipelago setup and API
- Revamped GETTING_STARTED.md for clarity and completeness, detailing the Docker development environment and installation steps. - Updated Cargo.lock and Cargo.toml to replace deprecated dependencies and add new ones, including hyper-ws-listener and env_logger. - Improved WebSocket handling in the API to support upgrades and error management. - Enhanced Neode UI scripts to manage Docker containers during development. - Adjusted dummy app configurations for accurate LAN addresses. - Sorted app entries in the UI for better organization and accessibility.
This commit is contained in:
@@ -0,0 +1,323 @@
|
||||
services:
|
||||
# Bitcoin Core - regtest mode (no blockchain sync)
|
||||
bitcoin:
|
||||
image: lncm/bitcoind:v27.0
|
||||
container_name: archy-bitcoin
|
||||
ports:
|
||||
- "18443:18443" # RPC
|
||||
- "18444:18444" # P2P
|
||||
volumes:
|
||||
- bitcoin-data:/data/.bitcoin
|
||||
command: |
|
||||
-regtest
|
||||
-server
|
||||
-rpcuser=bitcoin
|
||||
-rpcpassword=bitcoinpass
|
||||
-rpcallowip=0.0.0.0/0
|
||||
-rpcbind=0.0.0.0
|
||||
-txindex=1
|
||||
-zmqpubrawblock=tcp://0.0.0.0:28332
|
||||
-zmqpubrawtx=tcp://0.0.0.0:28333
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
# BTCPay Server
|
||||
btcpay:
|
||||
image: btcpayserver/btcpayserver:1.13.5
|
||||
container_name: archy-btcpay
|
||||
ports:
|
||||
- "14142:49392"
|
||||
environment:
|
||||
BTCPAY_PROTOCOL: http
|
||||
BTCPAY_HOST: localhost:14142
|
||||
BTCPAY_CHAINS: btc
|
||||
BTCPAY_BTCEXPLORERURL: http://mempool:4080
|
||||
BTCPAY_BTCRPCURL: http://bitcoin:18443
|
||||
BTCPAY_BTCRPCUSER: bitcoin
|
||||
BTCPAY_BTCRPCPASSWORD: bitcoinpass
|
||||
depends_on:
|
||||
- bitcoin
|
||||
- postgres-btcpay
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
postgres-btcpay:
|
||||
image: postgres:15-alpine
|
||||
container_name: archy-btcpay-db
|
||||
environment:
|
||||
POSTGRES_DB: btcpay
|
||||
POSTGRES_USER: btcpay
|
||||
POSTGRES_PASSWORD: btcpaypass
|
||||
volumes:
|
||||
- postgres-btcpay-data:/var/lib/postgresql/data
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
# Home Assistant
|
||||
homeassistant:
|
||||
image: homeassistant/home-assistant:2024.1
|
||||
container_name: archy-homeassistant
|
||||
ports:
|
||||
- "8123:8123"
|
||||
volumes:
|
||||
- homeassistant-data:/config
|
||||
environment:
|
||||
TZ: America/New_York
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
# Grafana
|
||||
grafana:
|
||||
image: grafana/grafana:10.2.0
|
||||
container_name: archy-grafana
|
||||
ports:
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
- grafana-data:/var/lib/grafana
|
||||
environment:
|
||||
GF_SECURITY_ADMIN_PASSWORD: admin
|
||||
GF_USERS_ALLOW_SIGN_UP: "false"
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
# Fedimint (using guardians setup)
|
||||
fedimint:
|
||||
image: fedimint/fedimintd:v0.3.0
|
||||
container_name: archy-fedimint
|
||||
ports:
|
||||
- "8173:8173"
|
||||
volumes:
|
||||
- fedimint-data:/data
|
||||
environment:
|
||||
FM_BIND_P2P: 0.0.0.0:8173
|
||||
FM_BIND_API: 0.0.0.0:8174
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
# Lightning Network Daemon (LND)
|
||||
lnd:
|
||||
image: lightninglabs/lnd:v0.17.4-beta
|
||||
container_name: archy-lnd
|
||||
ports:
|
||||
- "9735:9735" # P2P
|
||||
- "8080:8080" # REST
|
||||
- "10009:10009" # gRPC
|
||||
volumes:
|
||||
- lnd-data:/root/.lnd
|
||||
command: |
|
||||
--bitcoin.active
|
||||
--bitcoin.regtest
|
||||
--bitcoin.node=bitcoind
|
||||
--bitcoind.rpchost=bitcoin:18443
|
||||
--bitcoind.rpcuser=bitcoin
|
||||
--bitcoind.rpcpass=bitcoinpass
|
||||
--bitcoind.zmqpubrawblock=tcp://bitcoin:28332
|
||||
--bitcoind.zmqpubrawtx=tcp://bitcoin:28333
|
||||
--debuglevel=info
|
||||
--rpclisten=0.0.0.0:10009
|
||||
--restlisten=0.0.0.0:8080
|
||||
--noseedbackup
|
||||
depends_on:
|
||||
- bitcoin
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
# Mempool Explorer
|
||||
mempool-web:
|
||||
image: mempool/frontend:v2.5.0
|
||||
container_name: archy-mempool-web
|
||||
ports:
|
||||
- "4080:8080"
|
||||
environment:
|
||||
FRONTEND_HTTP_PORT: 8080
|
||||
BACKEND_MAINNET_HTTP_HOST: mempool-api
|
||||
depends_on:
|
||||
- mempool-api
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
mempool-api:
|
||||
image: mempool/backend:v2.5.0
|
||||
container_name: archy-mempool-api
|
||||
environment:
|
||||
MEMPOOL_BACKEND: electrum
|
||||
ELECTRUM_HOST: bitcoin
|
||||
ELECTRUM_PORT: 50001
|
||||
ELECTRUM_TLS_ENABLED: "false"
|
||||
CORE_RPC_HOST: bitcoin
|
||||
CORE_RPC_PORT: 18443
|
||||
CORE_RPC_USERNAME: bitcoin
|
||||
CORE_RPC_PASSWORD: bitcoinpass
|
||||
DATABASE_ENABLED: "true"
|
||||
DATABASE_HOST: mysql-mempool
|
||||
DATABASE_DATABASE: mempool
|
||||
DATABASE_USERNAME: mempool
|
||||
DATABASE_PASSWORD: mempoolpass
|
||||
depends_on:
|
||||
- bitcoin
|
||||
- mysql-mempool
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
mysql-mempool:
|
||||
image: mariadb:10.11
|
||||
container_name: archy-mempool-db
|
||||
environment:
|
||||
MYSQL_DATABASE: mempool
|
||||
MYSQL_USER: mempool
|
||||
MYSQL_PASSWORD: mempoolpass
|
||||
MYSQL_ROOT_PASSWORD: rootpass
|
||||
volumes:
|
||||
- mysql-mempool-data:/var/lib/mysql
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
# Ollama (Local LLM)
|
||||
ollama:
|
||||
image: ollama/ollama:latest
|
||||
container_name: archy-ollama
|
||||
ports:
|
||||
- "11434:11434"
|
||||
volumes:
|
||||
- ollama-data:/root/.ollama
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
# SearXNG
|
||||
searxng:
|
||||
image: searxng/searxng:latest
|
||||
container_name: archy-searxng
|
||||
ports:
|
||||
- "8082:8080"
|
||||
volumes:
|
||||
- searxng-data:/etc/searxng
|
||||
environment:
|
||||
SEARXNG_BASE_URL: http://localhost:8082/
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
# OnlyOffice Document Server
|
||||
onlyoffice:
|
||||
image: onlyoffice/documentserver:7.5.1
|
||||
container_name: archy-onlyoffice
|
||||
ports:
|
||||
- "8083:80"
|
||||
volumes:
|
||||
- onlyoffice-data:/var/www/onlyoffice/Data
|
||||
- onlyoffice-logs:/var/log/onlyoffice
|
||||
environment:
|
||||
JWT_ENABLED: "false"
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
# Penpot
|
||||
penpot-frontend:
|
||||
image: penpotapp/frontend:latest
|
||||
container_name: archy-penpot-frontend
|
||||
ports:
|
||||
- "9001:80"
|
||||
environment:
|
||||
PENPOT_FLAGS: enable-registration enable-login-with-password
|
||||
PENPOT_BACKEND_URI: http://penpot-backend:6060
|
||||
depends_on:
|
||||
- penpot-backend
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
penpot-backend:
|
||||
image: penpotapp/backend:latest
|
||||
container_name: archy-penpot-backend
|
||||
environment:
|
||||
PENPOT_FLAGS: enable-registration enable-login-with-password disable-email-verification
|
||||
PENPOT_DATABASE_URI: postgresql://postgres-penpot/penpot
|
||||
PENPOT_DATABASE_USERNAME: penpot
|
||||
PENPOT_DATABASE_PASSWORD: penpotpass
|
||||
PENPOT_REDIS_URI: redis://redis-penpot/0
|
||||
PENPOT_ASSETS_STORAGE_BACKEND: assets-fs
|
||||
PENPOT_STORAGE_ASSETS_FS_DIRECTORY: /opt/data/assets
|
||||
volumes:
|
||||
- penpot-assets:/opt/data/assets
|
||||
depends_on:
|
||||
- postgres-penpot
|
||||
- redis-penpot
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
postgres-penpot:
|
||||
image: postgres:15-alpine
|
||||
container_name: archy-penpot-db
|
||||
environment:
|
||||
POSTGRES_DB: penpot
|
||||
POSTGRES_USER: penpot
|
||||
POSTGRES_PASSWORD: penpotpass
|
||||
volumes:
|
||||
- postgres-penpot-data:/var/lib/postgresql/data
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
redis-penpot:
|
||||
image: redis:7-alpine
|
||||
container_name: archy-penpot-redis
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
# Placeholder services for apps without direct Docker images
|
||||
# These will show "coming soon" pages or simple status pages
|
||||
|
||||
endurain:
|
||||
image: nginx:alpine
|
||||
container_name: archy-endurain
|
||||
ports:
|
||||
- "8084:80"
|
||||
volumes:
|
||||
- ./docker/endurain-placeholder:/usr/share/nginx/html:ro
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
morphos:
|
||||
image: nginx:alpine
|
||||
container_name: archy-morphos
|
||||
ports:
|
||||
- "8081:80"
|
||||
volumes:
|
||||
- ./docker/morphos-placeholder:/usr/share/nginx/html:ro
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- archy-net
|
||||
|
||||
volumes:
|
||||
bitcoin-data:
|
||||
postgres-btcpay-data:
|
||||
homeassistant-data:
|
||||
grafana-data:
|
||||
fedimint-data:
|
||||
lnd-data:
|
||||
mysql-mempool-data:
|
||||
ollama-data:
|
||||
searxng-data:
|
||||
onlyoffice-data:
|
||||
onlyoffice-logs:
|
||||
penpot-assets:
|
||||
postgres-penpot-data:
|
||||
|
||||
networks:
|
||||
archy-net:
|
||||
driver: bridge
|
||||
Reference in New Issue
Block a user