-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
316 lines (288 loc) · 11 KB
/
Copy pathdocker-compose.yml
File metadata and controls
316 lines (288 loc) · 11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
# The Good Karma Kit
# MIT License | https://github.com/ArchiveBox/good-karma-kit
# Initial Setup ##########################################################################
#
# Install Docker & Docker-Comose on your system: https://docs.docker.com/get-docker/
#
# Read through all the services below, and for each <container> e.g. archivewarrior:
#
# 1. tune the cpu, memory, storage limits, and example env config
# 2. pull and start the container
# $ docker-compose pull archivewarrior
# $ docker-compose up archivewarrior
# 3. log in to the web UIs or online accounts to finish configuring each project, e.g.
# $ open http://127.0.0.1:8001
# Usage Examples #########################################################################
#
# docker-compose help
# docker-compose pull # download the latest version of the images
# docker-compose down # stop all containers
# docker-compose up # start all the containers
# docker-compose ps # view container statuses, pids, ports, etc.
# docker-compose exec <container> /bin/sh # run a shell command inside a container
services:
### Autoupdater (optional, uncomment to enable)
# watchtower:
# # Automatically updates & restarts the containers when they have new versions available
# # https://containrrr.dev/watchtower
# # https://github.com/containrrr/watchtower
# image: containrrr/watchtower
# command: --scope goodkarmakit
# restart: always
# volumes:
# # Security warning: in order to apply updates, it needs admin access to administer *all* docker containers on the host system
# - /var/run/docker.sock:/var/run/docker.sock
### Distributed networking projects
tor:
# View your stats on the leaderboard with your public IP address or node ID:
# https://metrics.torproject.org/rs.html#search
# https://www.torproject.org/
# https://community.torproject.org/relay/setup/bridge/docker/
# https://hub.docker.com/r/thetorproject/obfs4-bridge
image: thetorproject/obfs4-bridge
ports:
- 9393:9393
- 9292:9292
environment:
- OR_PORT=9393
- PT_PORT=9292
- EMAIL=youremail@example.com
volumes:
- ./data/tor:/var/lib/tor # optional to store temp config between restarts
cpus: 2 # tune according to your system & preferences
mem_limit: 2048m # tune according to your system & preferences
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"
i2p:
# source: https://geti2p.net/en/download/docker
# 1. The only port you have to expose is the one leading to
# 12345. To do so, replace the three CHANGEME below
# by a random port 1024 and 65535 and make sure it
# supports both UDP and TCP. Dont forget to uncomment those lines
# You might need to open the UPnP ports depending on your network configuration.
# 2. Browser to 127.0.0.1:7657 to configure your i2p setup.
# Note: i2p is not fast to get peers so wait up to 30 minutes
# before investigating potential issues.
image: geti2p/i2p
volumes:
- ./data/i2p:/i2p/.i2p
environment:
- EXT_PORT=CHANGEME
ports:
# For management:
- 127.0.0.1:7657:7657 # router console
# Needed to receive from the internet:
# - CHANGEME:12345/tcp # I2NP protocol
# - CHANGEME:12345/udp # I2NP protocol
# Related to UPnP, might be needed depending on your network configuration:
# - YOURLANINTERFACE:7652:7652/tcp # UPnP
# - YOURLANINTERFACE:7653:7653/udp # UPnP
# If you want to use I2P yourself:
# - 127.0.0.1:4444:4444/tcp # HTTP proxy
# - 127.0.0.1:4445:4445/tcp # HTTPS proxy
# - 127.0.0.1:6668:6668/tcp # IRC Proxy
# - 127.0.0.1:7654:7654/tcp # I2CP protocol
# - 127.0.0.1:7656:7656/tcp # SAM Bridge TCP
# - 127.0.0.1:7658:7658/tcp # I2P Site
# - 127.0.0.1:7659:7659/tcp # SMTP Proxy
# - 127.0.0.1:7660:7660/tcp # POP3 Proxy
cpus: 2 # tune according to your system & preferences
mem_limit: 2048m # tune according to your system & preferences
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"
### Distributed computing projects
boinc:
# Set up your active project and resources in the Web UI
# http://127.0.0.1:7279
# https://boinc.berkeley.edu/
# https://hub.docker.com/r/linuxserver/boinc
image: ghcr.io/linuxserver/boinc
ports:
- 127.0.0.1:7279:8080
# devices: # optional, uncomment to use GPU
# - /dev/dri:/dev/dri
volumes:
- ./data/boinc:/config
cpus: 4 # tune according to your system & preferences
mem_limit: 4096m # tune according to your system & preferences
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"
foldingathome:
# Set up your active project and resources in the Web UI
# http://127.0.0.1:7396
# https://foldingathome.org/
# https://hub.docker.com/r/linuxserver/foldingathome
image: ghcr.io/linuxserver/foldingathome
ports:
- 127.0.0.1:7396:7396
- 127.0.0.1:36330:36330 # optional
volumes:
- ./data/foldingathome:/config
cpus: 4 # tune according to your system & preferences
mem_limit: 4096m # tune according to your system & preferences
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"
### Internet Archiving projects
archivewarrior:
# Choose an active project and view your stats using the web UI
# http://127.0.0.1:8001
# http://warrior.archiveteam.org/
# https://hub.docker.com/r/archiveteam/warrior-dockerfile/
image: atdr.meo.ws/archiveteam/warrior-dockerfile
ports:
- 127.0.0.1:8001:8001
environment:
# - HTTP_USERNAME=
# - HTTP_PASSWORD=
- DOWNLOADER=ANY_UNIQUE_WORKER_NICKNAME # e.g. DOWNLOADER=JaneDoe4242
- WORKER_ID=ANY_UNIQUE_WORKER_NICKNAME # WORKER_ID=JaneDoe4242
- SELECTED_PROJECT=auto
- CONCURRENT_ITEMS=3
cpus: 3
mem_limit: 3072m
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"
# zimfarm:
# # Contact OpenZIM to register for zimfarm before uncommenting this (requires static IP)
# # https://github.com/openzim/zimfarm/blob/master/workers/README.md#run-a-worker
# # https://farm.openzim.org/
# # https://github.com/openzim/zimfarm
# # https://hub.docker.com/r/openzim/zimfarm-worker-manager
# image: ghcr.io/openzim/zimfarm-worker-manager
# environment:
# - ZIMFARM_USERNAME=
# - ZIMFARM_ROOT=/data/zimfarm
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
# - ./data/zimfarm:/data/zimfarm
# cpus: 3
# mem_limit: 3072m
# restart: always
# labels:
# - "com.centurylinklabs.watchtower.scope=goodkarmakit"
kiwix:
# Make sure to download some ZIM files to serve + create a library.xml first
# https://wiki.kiwix.org/wiki/Content_in_all_languages
# https://wiki.kiwix.org/wiki/Kiwix-manage
# https://wiki.kiwix.org/wiki/Kiwix-serve
# https://www.kiwix.org/en/
# https://hub.docker.com/r/kiwix/kiwix-serve
image: kiwix/kiwix-serve:latest
entrypoint: "/usr/local/bin/kiwix-serve --port 9494 --verbose --library /data/library.xml"
ports:
- 0.0.0.0:9494:9494
volumes:
- ./data/kiwix:/data:ro
cpus: 1
mem_limit: 768m
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"
archivebox:
# Make sure to add some archived content with the web UI
# http://127.0.0.1:9595/add/
# https://archivebox.io
# https://hub.docker.com/r/archivebox/archivebox/
image: archivebox/archivebox:latest
command: server --quick-init 0.0.0.0:9595
ports:
- 0.0.0.0:9595:9595
environment:
- PUBLIC_INDEX=True
- PUBLIC_SNAPSHOTS=True
- PUBLIC_ADD_VIEW=False
volumes:
- ./data/archivebox:/data
cpus: 3
mem_limit: 3072m
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"
pywb:
# Make sure to add some archived content with the web UI
# http://127.0.0.1:9797
# https://github.com/webrecorder/pywb
# https://hub.docker.com/r/webrecorder/pywb
image: webrecorder/pywb:latest
command: wayback
environment:
- INIT_COLLECTION=YOUR_COLLECTION_NAME
ports:
- 127.0.0.1:9797:8080
volumes:
- ./data/pywb:/webarchive
cpus: 3
mem_limit: 3072m
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"
### Distribued storage projects
ipfs:
# Make sure to pin some files you want to host for others using the web UI at http://127.0.0.1:5001/webui
# https://ipfs.io
# https://docs.ipfs.tech/install/run-ipfs-inside-docker/
# https://hub.docker.com/r/ipfs/kubo/
image: ipfs/kubo
ports:
- 4001:4001
- 4001:4001/udp # public swarm UDP
- 8080:8080 # public gateway
- 127.0.0.1:5001:5001 # private API
volumes:
- ./data/ipfs:/data/ipfs
cpus: 2
mem_limit: 2048m
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"
storj:
# Make sure to first create a Storj wallet to hold your earnings
# https://registration.storj.io/
# http://127.0.0.1:14002/
# https://www.storj.io/
# https://hub.docker.com/r/storjlabs/storagenode
# Also take note of the comment about the SETUP env variable
image: storjlabs/storagenode
ports:
- 28967:28967/tcp
- 28967:28967/udp
- 127.0.0.1:14002:14002
environment:
- WALLET=YOUR_STORJ_PAYOUT_ADDRESS_HERE
- EMAIL=YOUR_EMAIL_HERE@example.com
- STORAGE=100GB
- SETUP=true # this needs to be set on the first run of that container, then must be removed
volumes:
- ./data/storj/config:/app/config
- ./data/storj/identity/storagenode:/app/identity
cpus: 2
mem_limit: 2048m
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"
transmission:
image: linuxserver/transmission
# Add files to seed via the Web UI:
# https://127.0.0.1:9091
# https://github.com/transmission/transmission
# https://hub.docker.com/r/linuxserver/transmission/
ports:
- 127.0.0.1:9091:9091 # admin HTTP UI
- 51413:51413 # public BitTorrent TCP port
- 51413:51413/udp # public BitTorrent UDP port
# environment:
# - USER=yourDesiredAdminUsernameHere
# - PASS=CHANGETHISPASSWORD
volumes:
- ./data/transmission/files:/data
- ./data/transmission:/config
cpus: 2
mem_limit: 2048m
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"