xmr.sh/docker-compose.yml

119 lines
4.6 KiB
YAML

version: "3.7"
x-traefik-command-le: &traefik-command-le
command:
- "--log.level=${TRAEFIK_LOGLEVEL}"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:${TRAEFIK_HTTP_PORT}"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
- "--entrypoints.web.http.redirections.entrypoint.permanent=true"
- "--entrypoints.websecure.address=:${TRAEFIK_TLS_PORT}"
- "--certificatesresolvers.le.acme.httpchallenge=true"
- "--certificatesresolvers.le.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.le.acme.email=${TRAEFIK_ACME_EMAIL}"
- "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
x-traefik-command-nole: &traefik-command-nole
command:
- "--log.level=${TRAEFIK_LOGLEVEL}"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:${TRAEFIK_HTTP_PORT}"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
- "--entrypoints.web.http.redirections.entrypoint.permanent=true"
- "--entrypoints.websecure.address=:${TRAEFIK_TLS_PORT}"
x-monerod-command: &monerod-command
command: >-
--restricted-rpc --public-node --no-igd --no-zmq
--enable-dns-blocklist --rpc-restricted-bind-ip=0.0.0.0
--rpc-restricted-bind-port=${MONEROD_RPC_PORT} --confirm-external-bind
${MONEROD_EXTRA_PARAMS}
x-tor-service: &tor-service
tor:
container_name: tor
image: vdo1138/tor-hidden-service:${TOR_TAG}
links:
- monerod
environment:
MONEROD_TOR_SERVICE_HOSTS: "${TOR_HTTP_PORT}:monerod:${MONEROD_RPC_PORT}"
volumes:
- tor-keys:/var/lib/tor/hidden_service/
x-explorer-service: &explorer-service
explorer:
image: vdo1138/xmrblocks:${EXPLORER_TAG}
container_name: explorer
restart: unless-stopped
volumes:
- monerod-data:/home/monero/.bitmonero
ports:
- ${EXPLORER_PORT}
depends_on:
- monerod
labels:
- "traefik.enable=true"
- "traefik.http.routers.explorer.rule=(PathPrefix(`/explorer`) )" #!nole
# - "traefik.http.routers.explorer.rule=(Host(`${DOMAIN}`) && PathPrefix(`/explorer`) )" #!le
# - "traefik.http.routers.explorer.tls.certresolver=le" #!le
- "traefik.http.middlewares.stripprefix.stripprefix.prefixes=/explorer"
- "traefik.http.routers.explorer.middlewares=stripprefix"
- "traefik.http.routers.explorer.entrypoints=websecure"
- "traefik.http.routers.explorer.tls"
- "traefik.http.routers.explorer.service=explorer"
- "traefik.http.services.explorer.loadbalancer.server.port=${EXPLORER_PORT}"
x-watchtower-service: &watchtower-service
watchtower:
container_name: watchtower
image: containrrr/watchtower:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- com.centurylinklabs.watchtower.enable="false"
command: --interval 360 --include-stopped
services:
traefik:
image: traefik:${TRAEFIK_TAG}
container_name: traefik
ports:
- ${TRAEFIK_HTTP_PORT}:${TRAEFIK_HTTP_PORT}
- ${TRAEFIK_TLS_PORT}:${TRAEFIK_TLS_PORT}
volumes:
# - "./letsencrypt:/letsencrypt" #!le
- "/var/run/docker.sock:/var/run/docker.sock:ro"
<<: *traefik-command-nole #!traefik-command
restart: always
monerod:
container_name: monerod
image: sethsimmons/simple-monerod:${MONEROD_TAG}
<<: *monerod-command
ports:
- "${MONEROD_P2P_PORT}:${MONEROD_P2P_PORT}" # Exposes P2P port
- "${MONEROD_RPC_PORT}"
volumes:
- "monerod-data:/home/monero/.bitmonero"
labels:
- "traefik.enable=true"
# - "traefik.http.routers.monerod.rule=(Host(`${DOMAIN}`) && PathPrefix(`/`))" #!le
# - "traefik.http.routers.monerod.tls.certresolver=le" #!le
- "traefik.http.routers.monerod.rule=(PathPrefix(`/`))" #!nole
- "traefik.http.routers.monerod.entrypoints=websecure"
- "traefik.http.routers.monerod.tls"
- "traefik.http.routers.monerod.service=monerod"
- "traefik.http.services.monerod.loadbalancer.server.port=${MONEROD_RPC_PORT}"
# - "traefik.http.middlewares.corsheader.headers.accessControlAllowOriginList=${MONEROD_accessControlAllowOriginList}" #!cors
# - "traefik.http.routers.monerod.middlewares=corsheader" #!cors
restart: unless-stopped
# <<: *tor-service #!tor
# <<: *explorer-service #!explorer
# <<: *watchtower-service #!watchtower
volumes:
monerod-data: {}
# tor-keys: {} #!tor