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