]> Untitled Git - lemmy.git/blob - docker/federation/docker-compose.yml
Version 0.9.7
[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-ui
19       - lemmy-beta-ui
20       - lemmy-gamma-ui
21       - lemmy-delta-ui
22       - lemmy-epsilon-ui
23
24   pictrs:
25     restart: always
26     image: asonix/pictrs:v0.2.5-r0
27     user: 991:991
28     volumes:
29       - ./volumes/pictrs_alpha:/mnt
30
31   lemmy-alpha-ui:
32     image: dessalines/lemmy-ui:0.9.7
33     environment:
34       - LEMMY_INTERNAL_HOST=lemmy-alpha:8541
35       - LEMMY_EXTERNAL_HOST=localhost:8541
36       - LEMMY_HTTPS=false
37     depends_on:
38       - lemmy-alpha
39   lemmy-alpha:
40     image: lemmy-federation:latest
41     environment:
42       - LEMMY_HOSTNAME=lemmy-alpha:8541
43       - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_alpha:5432/lemmy
44       - LEMMY_JWT_SECRET=changeme
45       - LEMMY_FEDERATION__ENABLED=true
46       - LEMMY_TLS_ENABLED=false
47       - LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-beta,lemmy-gamma,lemmy-delta,lemmy-epsilon
48       - LEMMY_PORT=8541
49       - LEMMY_SETUP__ADMIN_USERNAME=lemmy_alpha
50       - LEMMY_SETUP__ADMIN_PASSWORD=lemmy
51       - LEMMY_SETUP__SITE_NAME=lemmy-alpha
52       - LEMMY_RATE_LIMIT__POST=99999
53       - LEMMY_RATE_LIMIT__REGISTER=99999
54       - LEMMY_CAPTCHA__ENABLED=false
55       - LEMMY_TEST_SEND_SYNC=1
56       - RUST_BACKTRACE=1
57       - RUST_LOG=debug
58     depends_on:
59       - postgres_alpha
60     ports: 
61       - "8541:8541"
62   postgres_alpha:
63     image: postgres:12-alpine
64     environment:
65       - POSTGRES_USER=lemmy
66       - POSTGRES_PASSWORD=password
67       - POSTGRES_DB=lemmy
68     volumes:
69       - ./volumes/postgres_alpha:/var/lib/postgresql/data
70
71   lemmy-beta-ui:
72     image: dessalines/lemmy-ui:0.9.7
73     environment:
74       - LEMMY_INTERNAL_HOST=lemmy-beta:8551
75       - LEMMY_EXTERNAL_HOST=localhost:8551
76       - LEMMY_HTTPS=false
77     depends_on:
78       - lemmy-beta
79   lemmy-beta:
80     image: lemmy-federation:latest
81     environment:
82       - LEMMY_HOSTNAME=lemmy-beta:8551
83       - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_beta:5432/lemmy
84       - LEMMY_JWT_SECRET=changeme
85       - LEMMY_FEDERATION__ENABLED=true
86       - LEMMY_TLS_ENABLED=false
87       - LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-alpha,lemmy-gamma,lemmy-delta,lemmy-epsilon
88       - LEMMY_PORT=8551
89       - LEMMY_SETUP__ADMIN_USERNAME=lemmy_beta
90       - LEMMY_SETUP__ADMIN_PASSWORD=lemmy
91       - LEMMY_SETUP__SITE_NAME=lemmy-beta
92       - LEMMY_RATE_LIMIT__POST=99999
93       - LEMMY_RATE_LIMIT__REGISTER=99999
94       - LEMMY_CAPTCHA__ENABLED=false
95       - LEMMY_TEST_SEND_SYNC=1
96       - RUST_BACKTRACE=1
97       - RUST_LOG=debug
98     depends_on:
99       - postgres_beta
100     ports: 
101       - "8551:8551"
102   postgres_beta:
103     image: postgres:12-alpine
104     environment:
105       - POSTGRES_USER=lemmy
106       - POSTGRES_PASSWORD=password
107       - POSTGRES_DB=lemmy
108     volumes:
109       - ./volumes/postgres_beta:/var/lib/postgresql/data
110
111   lemmy-gamma-ui:
112     image: dessalines/lemmy-ui:0.9.7
113     environment:
114       - LEMMY_INTERNAL_HOST=lemmy-gamma:8561
115       - LEMMY_EXTERNAL_HOST=localhost:8561
116       - LEMMY_HTTPS=false
117     depends_on:
118       - lemmy-gamma
119   lemmy-gamma:
120     image: lemmy-federation:latest
121     environment:
122       - LEMMY_HOSTNAME=lemmy-gamma:8561
123       - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_gamma:5432/lemmy
124       - LEMMY_JWT_SECRET=changeme
125       - LEMMY_FEDERATION__ENABLED=true
126       - LEMMY_TLS_ENABLED=false
127       - LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-alpha,lemmy-beta,lemmy-delta,lemmy-epsilon
128       - LEMMY_PORT=8561
129       - LEMMY_SETUP__ADMIN_USERNAME=lemmy_gamma
130       - LEMMY_SETUP__ADMIN_PASSWORD=lemmy
131       - LEMMY_SETUP__SITE_NAME=lemmy-gamma
132       - LEMMY_RATE_LIMIT__POST=99999
133       - LEMMY_RATE_LIMIT__REGISTER=99999
134       - LEMMY_CAPTCHA__ENABLED=false
135       - LEMMY_TEST_SEND_SYNC=1
136       - RUST_BACKTRACE=1
137       - RUST_LOG=debug
138     depends_on:
139       - postgres_gamma
140     ports: 
141       - "8561:8561"
142   postgres_gamma:
143     image: postgres:12-alpine
144     environment:
145       - POSTGRES_USER=lemmy
146       - POSTGRES_PASSWORD=password
147       - POSTGRES_DB=lemmy
148     volumes:
149       - ./volumes/postgres_gamma:/var/lib/postgresql/data
150
151   # An instance with only an allowlist for beta
152   lemmy-delta-ui:
153     image: dessalines/lemmy-ui:0.9.7
154     environment:
155       - LEMMY_INTERNAL_HOST=lemmy-delta:8571
156       - LEMMY_EXTERNAL_HOST=localhost:8571
157       - LEMMY_HTTPS=false
158     depends_on:
159       - lemmy-delta
160   lemmy-delta:
161     image: lemmy-federation:latest
162     environment:
163       - LEMMY_HOSTNAME=lemmy-delta:8571
164       - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_delta:5432/lemmy
165       - LEMMY_JWT_SECRET=changeme
166       - LEMMY_FEDERATION__ENABLED=true
167       - LEMMY_TLS_ENABLED=false
168       - LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-beta
169       - LEMMY_PORT=8571
170       - LEMMY_SETUP__ADMIN_USERNAME=lemmy_delta
171       - LEMMY_SETUP__ADMIN_PASSWORD=lemmy
172       - LEMMY_SETUP__SITE_NAME=lemmy-delta
173       - LEMMY_RATE_LIMIT__POST=99999
174       - LEMMY_RATE_LIMIT__REGISTER=99999
175       - LEMMY_CAPTCHA__ENABLED=false
176       - LEMMY_TEST_SEND_SYNC=1
177       - RUST_BACKTRACE=1
178       - RUST_LOG=debug
179     depends_on:
180       - postgres_delta
181     ports: 
182       - "8571:8571"
183   postgres_delta:
184     image: postgres:12-alpine
185     environment:
186       - POSTGRES_USER=lemmy
187       - POSTGRES_PASSWORD=password
188       - POSTGRES_DB=lemmy
189     volumes:
190       - ./volumes/postgres_delta:/var/lib/postgresql/data
191
192   # An instance who has a blocklist, with lemmy-alpha blocked
193   lemmy-epsilon-ui:
194     image: dessalines/lemmy-ui:0.9.7
195     environment:
196       - LEMMY_INTERNAL_HOST=lemmy-epsilon:8581
197       - LEMMY_EXTERNAL_HOST=localhost:8581
198       - LEMMY_HTTPS=false
199     depends_on:
200       - lemmy-epsilon
201   lemmy-epsilon:
202     image: lemmy-federation:latest
203     environment:
204       - LEMMY_HOSTNAME=lemmy-epsilon:8581
205       - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_epsilon:5432/lemmy
206       - LEMMY_JWT_SECRET=changeme
207       - LEMMY_FEDERATION__ENABLED=true
208       - LEMMY_TLS_ENABLED=false
209       - LEMMY_FEDERATION__BLOCKED_INSTANCES=lemmy-alpha
210       - LEMMY_PORT=8581
211       - LEMMY_SETUP__ADMIN_USERNAME=lemmy_epsilon
212       - LEMMY_SETUP__ADMIN_PASSWORD=lemmy
213       - LEMMY_SETUP__SITE_NAME=lemmy-epsilon
214       - LEMMY_RATE_LIMIT__POST=99999
215       - LEMMY_RATE_LIMIT__REGISTER=99999
216       - LEMMY_CAPTCHA__ENABLED=false
217       - LEMMY_TEST_SEND_SYNC=1
218       - RUST_BACKTRACE=1
219       - RUST_LOG=debug
220     depends_on:
221       - postgres_epsilon
222     ports: 
223       - "8581:8581"
224   postgres_epsilon:
225     image: postgres:12-alpine
226     environment:
227       - POSTGRES_USER=lemmy
228       - POSTGRES_PASSWORD=password
229       - POSTGRES_DB=lemmy
230     volumes:
231       - ./volumes/postgres_epsilon:/var/lib/postgresql/data
232
233   iframely:
234     image: dogbin/iframely:latest
235     volumes:
236       - ../iframely.config.local.js:/iframely/config.local.js:ro
237     restart: always