A third party ATProto appview
1# Local Development Docker Compose Configuration
2# Usage: docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
3#
4# This override file adds:
5# - Volume mounts for hot-reload (code changes apply immediately)
6# - Lower resource limits suitable for local development
7# - Debug logging enabled
8# - Ports exposed for direct access
9
10services:
11 # Database with lower resource settings for local dev
12 db:
13 command: postgres -c max_connections=100 -c shared_buffers=1GB -c effective_cache_size=2GB -c work_mem=16MB -c maintenance_work_mem=256MB
14 ports:
15 - "5432:5432"
16 shm_size: 1gb
17 deploy:
18 resources:
19 limits:
20 memory: 2G
21
22 # Redis with lower memory for local dev
23 redis:
24 command: redis-server --maxmemory 512mb --maxmemory-policy noeviction --appendonly yes --appendfsync everysec
25 ports:
26 - "6379:6379"
27
28 # Python Firehose with hot-reload
29 python-firehose:
30 volumes:
31 - ./python-firehose:/app:rw
32 environment:
33 - LOG_LEVEL=DEBUG
34 - REDIS_MAX_STREAM_LEN=10000
35 deploy:
36 resources:
37 limits:
38 memory: 512M
39
40 # Python Worker with hot-reload
41 python-worker:
42 volumes:
43 - ./python-firehose:/app:rw
44 environment:
45 - LOG_LEVEL=DEBUG
46 - DB_POOL_SIZE=10
47 - BATCH_SIZE=5
48 - PARALLEL_CONSUMERS=2
49 deploy:
50 resources:
51 limits:
52 memory: 1G
53
54 # Python Unified Worker with hot-reload (the one we just fixed!)
55 python-backfill-worker:
56 volumes:
57 - ./python-firehose:/app:rw
58 environment:
59 - LOG_LEVEL=DEBUG
60 - DB_POOL_SIZE=10
61 - BACKFILL_DAYS=0
62 deploy:
63 resources:
64 limits:
65 memory: 1G
66
67 # App service with hot-reload
68 app:
69 volumes:
70 - ./appview-signing-key.json:/app/appview-signing-key.json:ro
71 - ./appview-private.pem:/app/appview-private.pem:ro
72 - ./public/did.json:/app/public/did.json:ro
73 - ./oauth-keyset.json:/app/oauth-keyset.json:ro
74 - ./src:/app/src:rw
75 - ./public:/app/public:rw
76 environment:
77 - LOG_LEVEL=DEBUG
78 - DB_POOL_SIZE=20
79 - NODE_ENV=development
80 ports:
81 - "5000:5000"
82 deploy:
83 resources:
84 limits:
85 memory: 2G
86
87 # Constellation bridge with lower limits
88 constellation-bridge:
89 deploy:
90 resources:
91 limits:
92 memory: 256M