]> Untitled Git - lemmy.git/blob - docker/federation/docker-compose.yml
49c4ae85712a50857efbfd76617e59cd06f4c350
[lemmy.git] / docker / federation / docker-compose.yml
1 version: '3.3'
2
3 services:
4   nginx:
5     image: nginx:1.17-alpine
6     ports:
7       - "8540:8540"
8       - "8550:8550"
9       - "8560:8560"
10       - "8570:8570"
11       - "8580:8580"
12     volumes:
13       - ./nginx.conf:/etc/nginx/nginx.conf
14     restart: on-failure
15     depends_on:
16       - pictrs
17       - iframely
18       - lemmy-alpha
19       - lemmy-beta
20       - lemmy-gamma
21       - lemmy-delta
22       - lemmy-epsilon
23
24   pictrs:
25     restart: always
26     image: asonix/pictrs:v0.1.13-r0
27     user: 991:991
28     volumes:
29       - ./volumes/pictrs_alpha:/mnt
30
31   lemmy-alpha:
32     image: lemmy-federation:latest
33     environment:
34       - LEMMY_HOSTNAME=lemmy-alpha:8540
35       - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_alpha:5432/lemmy
36       - LEMMY_JWT_SECRET=changeme
37       - LEMMY_FRONT_END_DIR=/app/dist
38       - LEMMY_FEDERATION__ENABLED=true
39       - LEMMY_FEDERATION__TLS_ENABLED=false
40       - LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-beta,lemmy-gamma,lemmy-delta,lemmy-epsilon
41       - LEMMY_PORT=8540
42       - LEMMY_SETUP__ADMIN_USERNAME=lemmy_alpha
43       - LEMMY_SETUP__ADMIN_PASSWORD=lemmy
44       - LEMMY_SETUP__SITE_NAME=lemmy-alpha
45       - LEMMY_RATE_LIMIT__POST=99999
46       - LEMMY_RATE_LIMIT__REGISTER=99999
47       - LEMMY_CAPTCHA__ENABLED=false
48       - RUST_BACKTRACE=1
49       - RUST_LOG=debug
50     depends_on:
51       - postgres_alpha
52   postgres_alpha:
53     image: postgres:12-alpine
54     environment:
55       - POSTGRES_USER=lemmy
56       - POSTGRES_PASSWORD=password
57       - POSTGRES_DB=lemmy
58     volumes:
59       - ./volumes/postgres_alpha:/var/lib/postgresql/data
60
61   lemmy-beta:
62     image: lemmy-federation:latest
63     environment:
64       - LEMMY_HOSTNAME=lemmy-beta:8550
65       - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_beta:5432/lemmy
66       - LEMMY_JWT_SECRET=changeme
67       - LEMMY_FRONT_END_DIR=/app/dist
68       - LEMMY_FEDERATION__ENABLED=true
69       - LEMMY_FEDERATION__TLS_ENABLED=false
70       - LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-alpha,lemmy-gamma,lemmy-delta,lemmy-epsilon
71       - LEMMY_PORT=8550
72       - LEMMY_SETUP__ADMIN_USERNAME=lemmy_beta
73       - LEMMY_SETUP__ADMIN_PASSWORD=lemmy
74       - LEMMY_SETUP__SITE_NAME=lemmy-beta
75       - LEMMY_RATE_LIMIT__POST=99999
76       - LEMMY_RATE_LIMIT__REGISTER=99999
77       - LEMMY_CAPTCHA__ENABLED=false
78       - RUST_BACKTRACE=1
79       - RUST_LOG=debug
80     depends_on:
81       - postgres_beta
82   postgres_beta:
83     image: postgres:12-alpine
84     environment:
85       - POSTGRES_USER=lemmy
86       - POSTGRES_PASSWORD=password
87       - POSTGRES_DB=lemmy
88     volumes:
89       - ./volumes/postgres_beta:/var/lib/postgresql/data
90
91   lemmy-gamma:
92     image: lemmy-federation:latest
93     environment:
94       - LEMMY_HOSTNAME=lemmy-gamma:8560
95       - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_gamma:5432/lemmy
96       - LEMMY_JWT_SECRET=changeme
97       - LEMMY_FRONT_END_DIR=/app/dist
98       - LEMMY_FEDERATION__ENABLED=true
99       - LEMMY_FEDERATION__TLS_ENABLED=false
100       - LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-alpha,lemmy-beta,lemmy-delta,lemmy-epsilon
101       - LEMMY_PORT=8560
102       - LEMMY_SETUP__ADMIN_USERNAME=lemmy_gamma
103       - LEMMY_SETUP__ADMIN_PASSWORD=lemmy
104       - LEMMY_SETUP__SITE_NAME=lemmy-gamma
105       - LEMMY_RATE_LIMIT__POST=99999
106       - LEMMY_RATE_LIMIT__REGISTER=99999
107       - LEMMY_CAPTCHA__ENABLED=false
108       - RUST_BACKTRACE=1
109       - RUST_LOG=debug
110     depends_on:
111       - postgres_gamma
112   postgres_gamma:
113     image: postgres:12-alpine
114     environment:
115       - POSTGRES_USER=lemmy
116       - POSTGRES_PASSWORD=password
117       - POSTGRES_DB=lemmy
118     volumes:
119       - ./volumes/postgres_gamma:/var/lib/postgresql/data
120
121   # An instance with only an allowlist for beta
122   lemmy-delta:
123     image: lemmy-federation:latest
124     environment:
125       - LEMMY_HOSTNAME=lemmy-delta:8570
126       - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_delta:5432/lemmy
127       - LEMMY_JWT_SECRET=changeme
128       - LEMMY_FRONT_END_DIR=/app/dist
129       - LEMMY_FEDERATION__ENABLED=true
130       - LEMMY_FEDERATION__TLS_ENABLED=false
131       - LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-beta
132       - LEMMY_PORT=8570
133       - LEMMY_SETUP__ADMIN_USERNAME=lemmy_delta
134       - LEMMY_SETUP__ADMIN_PASSWORD=lemmy
135       - LEMMY_SETUP__SITE_NAME=lemmy-delta
136       - LEMMY_RATE_LIMIT__POST=99999
137       - LEMMY_RATE_LIMIT__REGISTER=99999
138       - LEMMY_CAPTCHA__ENABLED=false
139       - RUST_BACKTRACE=1
140       - RUST_LOG=debug
141     depends_on:
142       - postgres_delta
143   postgres_delta:
144     image: postgres:12-alpine
145     environment:
146       - POSTGRES_USER=lemmy
147       - POSTGRES_PASSWORD=password
148       - POSTGRES_DB=lemmy
149     volumes:
150       - ./volumes/postgres_delta:/var/lib/postgresql/data
151
152   # An instance who has a blocklist, with lemmy-alpha blocked
153   lemmy-epsilon:
154     image: lemmy-federation:latest
155     environment:
156       - LEMMY_HOSTNAME=lemmy-epsilon:8580
157       - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_epsilon:5432/lemmy
158       - LEMMY_JWT_SECRET=changeme
159       - LEMMY_FRONT_END_DIR=/app/dist
160       - LEMMY_FEDERATION__ENABLED=true
161       - LEMMY_FEDERATION__TLS_ENABLED=false
162       - LEMMY_FEDERATION__BLOCKED_INSTANCES=lemmy-alpha
163       - LEMMY_PORT=8580
164       - LEMMY_SETUP__ADMIN_USERNAME=lemmy_epsilon
165       - LEMMY_SETUP__ADMIN_PASSWORD=lemmy
166       - LEMMY_SETUP__SITE_NAME=lemmy-epsilon
167       - LEMMY_RATE_LIMIT__POST=99999
168       - LEMMY_RATE_LIMIT__REGISTER=99999
169       - LEMMY_CAPTCHA__ENABLED=false
170       - RUST_BACKTRACE=1
171       - RUST_LOG=debug
172     depends_on:
173       - postgres_epsilon
174   postgres_epsilon:
175     image: postgres:12-alpine
176     environment:
177       - POSTGRES_USER=lemmy
178       - POSTGRES_PASSWORD=password
179       - POSTGRES_DB=lemmy
180     volumes:
181       - ./volumes/postgres_epsilon:/var/lib/postgresql/data
182
183   iframely:
184     image: dogbin/iframely:latest
185     volumes:
186       - ../iframely.config.local.js:/iframely/config.local.js:ro
187     restart: always