Self-signed SSL certificates are now generated at first startup instead of being baked into the Docker image. Certificates persist in ./certs/ and are reused on subsequent runs. Users can provide their own certs
101 lines
3.1 KiB
YAML
101 lines
3.1 KiB
YAML
services:
|
|
palladiumd:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.palladium-node
|
|
image: palladium-node:local
|
|
container_name: palladium-node
|
|
restart: unless-stopped
|
|
ports:
|
|
- "127.0.0.1:2332:2332" # RPC port mainnet (host-local only)
|
|
- "0.0.0.0:2333:2333" # P2P port mainnet (accessible from network)
|
|
- "127.0.0.1:28332:28332" # ZMQ hashblock (host-local debug only)
|
|
- "127.0.0.1:28334:28334" # ZMQ rawblock (host-local debug only)
|
|
- "127.0.0.1:28335:28335" # ZMQ rawtx (host-local debug only)
|
|
# For testnet, expose: 12332 (RPC) and 12333 (P2P)
|
|
|
|
volumes:
|
|
# Mount .palladium folder (contains config and blockchain data)
|
|
- ./.palladium:/root/.palladium
|
|
|
|
command: >
|
|
palladiumd
|
|
-conf=/root/.palladium/palladium.conf
|
|
-datadir=/root/.palladium
|
|
-daemon=0
|
|
-printtoconsole=1
|
|
|
|
electrumx:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.electrumx
|
|
image: electrumx-server:local
|
|
container_name: electrumx-server
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- palladiumd
|
|
ports:
|
|
- "0.0.0.0:50001:50001" # TCP (accessible from network)
|
|
- "0.0.0.0:50002:50002" # SSL (accessible from network)
|
|
|
|
environment:
|
|
# ===== Network Configuration =====
|
|
# For MAINNET use: COIN: "Palladium", NET: "mainnet"
|
|
# For TESTNET use: COIN: "Palladium", NET: "testnet"
|
|
|
|
COIN: "Palladium" # Always "Palladium" for both networks
|
|
NET: "mainnet"
|
|
|
|
# NOTE: RPC credentials are automatically read from palladium.conf
|
|
# No need to configure DAEMON_URL manually anymore!
|
|
|
|
SERVICES: "tcp://0.0.0.0:50001,ssl://0.0.0.0:50002"
|
|
|
|
SSL_CERTFILE: "/certs/server.crt"
|
|
SSL_KEYFILE: "/certs/server.key"
|
|
|
|
DB_DIRECTORY: "/data"
|
|
PEER_DISCOVERY: "on"
|
|
PEER_ANNOUNCE: "true"
|
|
# REPORT_SERVICES is auto-detected at startup. Set manually only to override.
|
|
# REPORT_SERVICES: "tcp://your.public.ip:50001,ssl://your.public.ip:50002"
|
|
INITIAL_CONCURRENT: "2"
|
|
COST_SOFT_LIMIT: "0"
|
|
COST_HARD_LIMIT: "0"
|
|
DONATION_ADDRESS: "plm1qdq3gu2zvg9lyr8gxd6yln4wavc5tlp8prmvfay"
|
|
|
|
ulimits:
|
|
nofile:
|
|
soft: 1048576
|
|
hard: 1048576
|
|
|
|
volumes:
|
|
- ./electrumx-data:/data
|
|
- ./.palladium/palladium.conf:/palladium-config/palladium.conf:ro
|
|
- ./certs:/certs
|
|
|
|
dashboard:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.dashboard
|
|
image: palladium-dashboard:local
|
|
container_name: palladium-dashboard
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- palladiumd
|
|
- electrumx
|
|
ports:
|
|
- "0.0.0.0:8080:8080" # Web Dashboard (accessible from network)
|
|
|
|
environment:
|
|
PALLADIUM_RPC_HOST: "palladiumd"
|
|
PALLADIUM_RPC_PORT: "2332"
|
|
ELECTRUMX_RPC_HOST: "electrumx"
|
|
ELECTRUMX_RPC_PORT: "8000"
|
|
DASHBOARD_AUTH_USERNAME: "${DASHBOARD_AUTH_USERNAME:-admin}"
|
|
DASHBOARD_AUTH_PASSWORD: "${DASHBOARD_AUTH_PASSWORD:-change-me-now}"
|
|
|
|
volumes:
|
|
- ./.palladium/palladium.conf:/palladium-config/palladium.conf:ro
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|