nostream/docker-compose.yml

148 lines
3.8 KiB
YAML
Raw Permalink Normal View History

2022-10-12 01:19:44 +00:00
services:
nostream:
2022-10-12 01:19:44 +00:00
build: .
container_name: nostream
2022-10-12 01:19:44 +00:00
environment:
2023-05-05 22:18:28 +02:00
SECRET: ${SECRET}
2022-12-21 01:28:42 -05:00
RELAY_PORT: 8008
# Master
NOSTR_CONFIG_DIR: /home/node/.nostr
DB_HOST: nostream-db
2022-10-12 01:19:44 +00:00
DB_PORT: 5432
2022-10-17 04:35:12 +00:00
DB_USER: nostr_ts_relay
DB_PASSWORD: nostr_ts_relay
DB_NAME: nostr_ts_relay
2022-12-20 22:53:30 -05:00
DB_MIN_POOL_SIZE: 16
DB_MAX_POOL_SIZE: 64
DB_ACQUIRE_CONNECTION_TIMEOUT: 60000
# Read Replica
READ_REPLICAS: 2
READ_REPLICA_ENABLED: 'false'
# Read Replica No. 1
RR0_DB_HOST: db
RR0_DB_PORT: 5432
RR0_DB_USER: nostr_ts_relay
RR0_DB_PASSWORD: nostr_ts_relay
RR0_DB_NAME: nostr_ts_relay
RR0_DB_MIN_POOL_SIZE: 16
RR0_DB_MAX_POOL_SIZE: 64
RR0_DB_ACQUIRE_CONNECTION_TIMEOUT: 10000
# Read Replica No. 2
RR1_DB_HOST: db
RR1_DB_PORT: 5432
RR1_DB_USER: nostr_ts_relay
RR1_DB_PASSWORD: nostr_ts_relay
RR1_DB_NAME: nostr_ts_relay
RR1_DB_MIN_POOL_SIZE: 16
RR1_DB_MAX_POOL_SIZE: 64
RR1_DB_ACQUIRE_CONNECTION_TIMEOUT: 10000
# Add RR2, RR3, etc. to configure more read replicas
# Redis
REDIS_HOST: nostream-cache
REDIS_PORT: 6379
REDIS_USER: default
REDIS_PASSWORD: nostr_ts_relay
2022-12-24 19:35:00 +01:00
TOR_HOST: tor_proxy
TOR_CONTROL_PORT: 9051
TOR_PASSWORD: nostr_ts_relay
HIDDEN_SERVICE_PORT: 80
# Payments Processors
# Zebedee
ZEBEDEE_API_KEY: ${ZEBEDEE_API_KEY}
2023-05-15 11:07:28 -04:00
# Nodeless.io
NODELESS_API_KEY: ${NODELESS_API_KEY}
NODELESS_WEBHOOK_SECRET: ${NODELESS_WEBHOOK_SECRET}
# OpenNode
OPENNODE_API_KEY: ${OPENNODE_API_KEY}
# Lnbits
LNBITS_API_KEY: ${LNBITS_API_KEY}
2022-12-23 02:17:19 -05:00
# Enable DEBUG for troubleshooting. Examples:
# DEBUG: "primary:*"
2022-12-23 02:17:19 -05:00
# DEBUG: "worker:*"
# DEBUG: "knex:query"
2022-10-17 04:35:12 +00:00
user: node:node
2022-10-12 01:19:44 +00:00
volumes:
- ${PWD}/.nostr:/home/node/.nostr
2022-10-12 01:19:44 +00:00
ports:
- 127.0.0.1:8008:8008
2022-10-12 01:19:44 +00:00
depends_on:
nostream-cache:
condition: service_healthy
nostream-db:
2022-10-12 01:19:44 +00:00
condition: service_healthy
nostream-migrate:
2022-10-12 01:19:44 +00:00
condition: service_completed_successfully
2022-11-06 19:30:12 -05:00
restart: on-failure
2022-10-12 01:19:44 +00:00
networks:
2022-11-06 19:30:12 -05:00
default:
nostream-db:
image: postgres
container_name: nostream-db
2022-10-12 01:19:44 +00:00
environment:
2022-12-20 22:53:30 -05:00
POSTGRES_DB: nostr_ts_relay
2022-10-17 04:35:12 +00:00
POSTGRES_USER: nostr_ts_relay
POSTGRES_PASSWORD: nostr_ts_relay
2022-10-12 01:19:44 +00:00
volumes:
2022-12-20 22:53:30 -05:00
- ${PWD}/.nostr/data:/var/lib/postgresql/data
- ${PWD}/.nostr/db-logs:/var/log/postgresql
- ${PWD}/postgresql.conf:/postgresql.conf
2022-10-12 01:19:44 +00:00
networks:
2022-11-06 19:30:12 -05:00
default:
2022-12-20 22:53:30 -05:00
command: postgres -c 'config_file=/postgresql.conf'
2022-10-12 01:19:44 +00:00
restart: always
healthcheck:
2022-10-17 04:35:12 +00:00
test: ["CMD-SHELL", "pg_isready -U nostr_ts_relay"]
2022-10-12 01:19:44 +00:00
interval: 5s
timeout: 5s
retries: 5
2022-12-20 22:53:30 -05:00
start_period: 360s
nostream-cache:
image: redis:7.0.5-alpine3.16
container_name: nostream-cache
volumes:
- cache:/data
command: redis-server --loglevel warning --requirepass nostr_ts_relay
networks:
default:
restart: always
healthcheck:
test: [ "CMD", "redis-cli", "ping", "|", "grep", "PONG" ]
interval: 1s
timeout: 5s
retries: 5
nostream-migrate:
2022-11-06 19:30:12 -05:00
image: node:18-alpine3.16
container_name: nostream-migrate
2022-10-12 01:19:44 +00:00
environment:
DB_HOST: nostream-db
2022-10-12 01:19:44 +00:00
DB_PORT: 5432
2022-10-17 04:35:12 +00:00
DB_USER: nostr_ts_relay
DB_PASSWORD: nostr_ts_relay
DB_NAME: nostr_ts_relay
2022-10-12 01:19:44 +00:00
entrypoint:
- sh
- -c
2023-01-13 23:38:30 -05:00
- 'cd code && npm install --no-save --quiet knex@2.4.0 pg@8.8.0 && npx knex migrate:latest'
2022-10-12 01:19:44 +00:00
volumes:
2022-10-17 04:35:12 +00:00
- ./migrations:/code/migrations
- ./knexfile.js:/code/knexfile.js
2022-10-12 01:19:44 +00:00
depends_on:
nostream-db:
2022-12-20 22:53:30 -05:00
condition: service_healthy
2022-10-12 01:19:44 +00:00
networks:
2022-11-06 19:30:12 -05:00
default:
2022-10-12 01:19:44 +00:00
networks:
2022-11-06 19:30:12 -05:00
default:
name: nostream
2022-11-06 19:30:12 -05:00
ipam:
driver: default
config:
- subnet: 10.10.10.0/24
2022-10-12 01:19:44 +00:00
volumes:
2022-12-20 22:53:30 -05:00
cache: