-
Notifications
You must be signed in to change notification settings - Fork 9
/
docker-compose.yml
310 lines (281 loc) · 10 KB
/
docker-compose.yml
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
# 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
version: '2.4'
# >= v3.9 also works
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
# 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: on-failure
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"
i2p:
# https://geti2p.net/en/
# https://hub.docker.com/r/divax/i2p
image: divax/i2p:current
ports:
- 7070:7070
- 4444:4444
- 4445:4445
- 9050:9050
# - 127.0.0.1:8080:8080 # optional: proxy port for accessing i2p
cpus: 2 # tune according to your system & preferences
mem_limit: 2048m # tune according to your system & preferences
restart: on-failure
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: on-failure
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: on-failure
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: on-failure
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: on-failure
# 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: on-failure
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: on-failure
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: on-failure
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
# http://127.0.0.1:5001
# 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: on-failure
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
image: storjlabs/storagenode
ports:
- 28967:28967
- 127.0.0.1:14002:14002
environment:
- WALLET=YOUR_STORJ_PAYOUT_ADDRESS_HERE
- EMAIL=YOUR_EMAIL_HERE@example.com
- STORAGE=100GB
volumes:
- ./data/storj/config:/app/config
- ./data/storj/identity/storagenode:/app/identity
cpus: 2
mem_limit: 2048m
restart: on-failure
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"
sia:
# https://sia.tech/
# https://hub.docker.com/r/nebulouslabs/sia
image: nebulouslabs/sia
ports:
- 9981:9981
- 9982:9982
- 9983:9983
- 9984:9984
- 127.0.0.1:9980:9980
volumes:
- ./data/sia:/sia-data
cpus: 2
mem_limit: 2048m
restart: on-failure
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: on-failure
labels:
- "com.centurylinklabs.watchtower.scope=goodkarmakit"