🐳 Docker Implementation: - Add Dockerfile with Alpine Linux (46MB image) - Add docker-compose.yml with production-ready config - Add manage-relay.sh for easy local management - Add stella-relay.service for systemd auto-start - Published images: silberengel/orly-relay:latest, :v1, :v2 🔧 Apache Reverse Proxy: - Add comprehensive Apache proxy guide for Plesk and standard Apache - Add working WebSocket proxy configuration (ws:// not http://) - Add troubleshooting guide based on real deployment experience - Add debug-websocket.sh script for systematic diagnosis
94 lines
2.3 KiB
YAML
94 lines
2.3 KiB
YAML
# Docker Compose for Stella's Nostr Relay
|
|
# Owner: npub1v30tsz9vw6ylpz63g0a702nj3xa26t3m7p5us8f2y2sd8v6cnsvq465zjx
|
|
|
|
version: '3.8'
|
|
|
|
services:
|
|
stella-relay:
|
|
image: silberengel/orly-relay:latest
|
|
container_name: stella-nostr-relay
|
|
restart: unless-stopped
|
|
ports:
|
|
- "127.0.0.1:7777:7777"
|
|
volumes:
|
|
- relay_data:/data
|
|
- ./profiles:/profiles:ro
|
|
environment:
|
|
# Relay Configuration
|
|
- ORLY_DATA_DIR=/data
|
|
- ORLY_LISTEN=0.0.0.0
|
|
- ORLY_PORT=7777
|
|
- ORLY_LOG_LEVEL=info
|
|
- ORLY_MAX_CONNECTIONS=1000
|
|
- ORLY_OWNERS=npub1v30tsz9vw6ylpz63g0a702nj3xa26t3m7p5us8f2y2sd8v6cnsvq465zjx
|
|
- ORLY_ADMINS=npub1v30tsz9vw6ylpz63g0a702nj3xa26t3m7p5us8f2y2sd8v6cnsvq465zjx,npub1l5sga6xg72phsz5422ykujprejwud075ggrr3z2hwyrfgr7eylqstegx9z
|
|
|
|
# Performance Settings (based on v0.4.8 optimizations)
|
|
- ORLY_CONCURRENT_WORKERS=0 # 0 = auto-detect CPU cores
|
|
- ORLY_BATCH_SIZE=1000
|
|
- ORLY_CACHE_SIZE=10000
|
|
|
|
# Database Settings
|
|
- BADGER_LOG_LEVEL=ERROR
|
|
- BADGER_SYNC_WRITES=false # Better performance, slightly less durability
|
|
|
|
# Security Settings
|
|
- ORLY_REQUIRE_AUTH=false
|
|
- ORLY_MAX_EVENT_SIZE=65536
|
|
- ORLY_MAX_SUBSCRIPTIONS=20
|
|
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:7777"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 10s
|
|
|
|
# Resource limits
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 1G
|
|
cpus: '1.0'
|
|
reservations:
|
|
memory: 256M
|
|
cpus: '0.25'
|
|
|
|
# Logging configuration
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
# Optional: Nginx reverse proxy for SSL/domain setup
|
|
nginx:
|
|
image: nginx:alpine
|
|
container_name: stella-nginx
|
|
restart: unless-stopped
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
- ./nginx/ssl:/etc/nginx/ssl:ro
|
|
- nginx_logs:/var/log/nginx
|
|
depends_on:
|
|
- stella-relay
|
|
profiles:
|
|
- proxy # Only start with: docker-compose --profile proxy up
|
|
|
|
volumes:
|
|
relay_data:
|
|
driver: local
|
|
driver_opts:
|
|
type: none
|
|
o: bind
|
|
device: ./data
|
|
nginx_logs:
|
|
driver: local
|
|
|
|
networks:
|
|
default:
|
|
name: stella-relay-network
|