forked from portainer/templates
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtemplates-2.0.json
626 lines (613 loc) · 22.3 KB
/
templates-2.0.json
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
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
{
"version": "2",
"templates": [
{
"type": 3,
"title": "Immich {shmolf}",
"name": "immich",
"categories": ["photos", "backup"],
"description": "Self-hosted backup solution for photos and videos on mobile device.",
"logo": "https://raw.githubusercontent.com/shmolf/portainer-templates/main/assets/logos/immich-logo.svg",
"note": "<a target='_blank' href='https://immich.app'>Application documentation 🗗</a>",
"env": [
{
"default": "1000",
"label": "PUID",
"name": "PUID"
},
{
"label": "PGID",
"name": "PGID",
"default": "1000"
},
{
"label": "Immich version",
"name": "IMMICH_VERSION",
"default": "release",
"description": "To want to lock to a specific tag, provide a value such as 'v1.71.0'"
},
{
"label": "Database username",
"name": "DB_USERNAME",
"default": "postgres"
},
{
"label": "Database password",
"name": "DB_PASSWORD",
"default": "please-change-this-to-a-random-secret",
"description": "This should be changed to a random secret"
},
{
"label": "Database name",
"name": "DB_DATABASE_NAME",
"default": "immich"
},
{
"label": "Database hostname",
"name": "DB_HOSTNAME",
"default": "immich_postgres",
"description": "The default value references a service within the stack"
},
{
"label": "File backup location",
"name": "UPLOAD_LOCATION",
"default": "/portainer/Files/AppData/Immich/upload",
"description": "You can leave this path as-is, and the system will auto-create the needed folders. Feel free to change if you desire an alternative location."
},
{
"label": "Redis hostname",
"name": "REDIS_HOSTNAME",
"default": "immich_redis",
"description": "The default value references a service within the stack"
},
{
"default": "2283",
"label": "Http Port",
"name": "PORT"
}
],
"platform": "linux",
"repository": {
"stackfile": "stacks/immich/docker-compose.yml",
"url": "https://github.com/shmolf/portainer-templates"
}
},
{
"type": 3,
"title": "Penpot (http) {shmolf}",
"name": "penpot-http",
"categories": ["graphic design"],
"description": "Penpot is the first Open Source design and prototyping platform meant for cross-domain teams.",
"logo": "https://raw.githubusercontent.com/shmolf/portainer-templates/main/assets/logos/penpot-logo.svg",
"note": "<a target='_blank' href='https://community.penpot.app/'>Application documentation 🗗</a>. See <a target='_blank' href='https://help.penpot.app/technical-guide/configuration/#advanced-configuration'>documentation 🗗</a> for more details regarding the flags.",
"env": [
{
"default": "1000",
"label": "PUID",
"name": "PUID"
},
{
"label": "PGID",
"name": "PGID",
"default": "1000"
},
{
"label": "Frontend Flags",
"name": "PENPOT_FLAGS_FE",
"default": "enable-registration disable-secure-session-cookies enable-insecure-register enable-login-with-password"
},
{
"label": "Backend Flags",
"name": "PENPOT_FLAGS_BE",
"default": "enable-registration disable-secure-session-cookies enable-insecure-register disable-email-verification"
},
{
"label": "Public URI",
"name": "PUBLIC_URI",
"default": "http://192.168.1.1:8624",
"description": "Public URI. If you are going to expose this instance to the internet and use it under different domain than 'localhost', you will need to adjust it to the final domain."
},
{
"label": "Penpot Telemetry Enabled?",
"name": "TELEMETRY_ENABLED",
"select": [
{
"text": "Yes, enable telemetry",
"value": "true",
"default": true
},
{
"text": "No, disable telemetry",
"value": "false"
}
],
"description": "When enabled, a periodical process will send anonymous data about this instance."
},
{
"default": "8624",
"label": "Http Port",
"name": "PORT",
"description": "This should match the port specified in the Public URI, or 80/443 if using standard ports."
}
],
"platform": "linux",
"repository": {
"stackfile": "stacks/penpot/docker-compose-http.yml",
"url": "https://github.com/shmolf/portainer-templates"
}
},
{
"type": 1,
"title": "Watchtower {shmolf}",
"name": "watchtower",
"categories": ["docker"],
"description": "A container-based solution for automating Docker container base image updates",
"note": "<a target='_blank' href='https://containrrr.dev/watchtower/'>Application documentation 🗗</a>",
"logo": "https://raw.githubusercontent.com/shmolf/portainer-templates/main/assets/logos/watchtower-logo.png",
"platform": "linux",
"image": "containrrr/watchtower",
"ports": ["9001/tcp"],
"restart_policy": "always",
"volumes": [{
"container": "/var/run/docker.sock",
"bind": "/var/run/docker.sock"
}
]
},
{
"type": 1,
"title": "Stirling PDF {shmolf}",
"name": "stirling-pdf",
"categories": ["tools", "pdf"],
"description": "Your locally hosted one-stop-shop for all your PDF needs.",
"note": "To support multiple languages for OCR, per the <a target='_blank' href='https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToUseOCR.md'>Official documentation 🗗</a>, download your Tess Data from <a target='_blank' href='https://github.com/tesseract-ocr/tessdata'>from another repo 🗗</a>. <br>Then, place said 'traineddata' files into <code>/portainer/Files/AppData/Libraries/StirlingPDF/tessdata</code> <br>For more information about login, read <a target='_blank' href='https://github.com/Stirling-Tools/Stirling-PDF?tab=readme-ov-file#prerequisites'>the official documentation 🗗</a>.",
"logo": "https://raw.githubusercontent.com/shmolf/portainer-templates/main/assets/logos/stirling-pdf.svg",
"platform": "linux",
"image": "frooodle/s-pdf:0.18.1",
"ports": ["5417:8080/tcp"],
"restart_policy": "unless-stopped",
"env": [
{
"label": "PUID",
"name": "PUID",
"default": "1000"
},
{
"label": "PGID",
"name": "PGID",
"default": "1000"
},
{
"label": "Enable Login",
"name": "DOCKER_ENABLE_SECURITY",
"select": [
{
"text": "Yes, enable login",
"value": "true"
},
{
"text": "No, disable login",
"value": "false",
"default": true
}
],
"description": "If you want to enable the login, you'll also need to enable login through the Config's settings.yml"
}
],
"volumes": [
{
"bind": "/portainer/Files/AppData/Config/StirlingPDF",
"container": "/configs"
},
{
"bind": "/portainer/Files/AppData/Libraries/StirlingPDF/tessdata",
"container": "/usr/share/tesseract-ocr/5/tessdata"
}
]
},
{
"type": 1,
"title": "Terraria Server {shmolf}",
"name": "terraria-server",
"categories": ["games"],
"description": "Docker container for a Terraria dedicated server.",
"note": "Link to <a target='_blank' href='https://terraria.fandom.com/wiki/Guide:Setting_up_a_Terraria_server'>Official documentation 🗗</a> for setting up the server.",
"logo": "https://raw.githubusercontent.com/shmolf/portainer-templates/main/assets/logos/terraria-server.png",
"platform": "linux",
"image": "passivelemon/terraria-docker:latest",
"ports": ["7777:7777/tcp"],
"restart_policy": "unless-stopped",
"env": [
{
"label": "PUID",
"name": "PUID",
"default": "1000"
},
{
"label": "PGID",
"name": "PGID",
"default": "1000"
},
{
"label": "World name",
"name": "WORLD",
"default": "dockerworld"
}
],
"volumes": [
{
"bind": "/portainer/Files/AppData/Libraries/StirlingPDF/tessdata",
"container": "/usr/share/tesseract-ocr/5/tessdata"
}
]
},
{
"type": 1,
"title": "Cockpit {shmolf}",
"name": "cockpit-cms",
"categories": ["cms"],
"description": "Cockpit is a headless CMS with an API-first approach that puts content first.",
"note": "Link to <a target='_blank' href='https://v1.getcockpit.com/'>Official documentation 🗗</a>.<br>After deployment, continue to setup by visiting <a target='_blank' href='http://localhost:8088/install'>http://localhost:8088/install</a>",
"logo": "https://raw.githubusercontent.com/shmolf/portainer-templates/main/assets/logos/cockpit.svg",
"platform": "linux",
"image": "agentejo/cockpit:latest",
"ports": ["8088:80/tcp"],
"restart_policy": "unless-stopped"
},
{
"type": 3,
"title": "Asciinema {shmolf}",
"name": "asciinema",
"categories": ["tools"],
"description": "Self-hosted terminal recording and playback",
"logo": "https://raw.githubusercontent.com/shmolf/portainer-templates/main/assets/logos/asciinema.svg",
"note": "<a target='_blank' href='https://docs.asciinema.org/getting-started/#self-hosting-the-server'>Application documentation 🗗</a><br>For the application secret key, you can use the terminal command <code>tr -dc A-Za-z0-9 </dev/urandom | head -c 64; echo</code>",
"env": [
{
"default": "1000",
"label": "PUID",
"name": "PUID"
},
{
"label": "PGID",
"name": "PGID",
"default": "1000"
},
{
"label": "Hostname",
"name": "HOST_NAME",
"default": "localhost",
"description": "Localhost for use within the application runtime"
},
{
"label": "Host Port",
"name": "HOST_PORT",
"default": "3033",
"description": "Published port for use within the application runtime"
},
{
"label": "Secret Application Key",
"name": "SECRET_KEY",
"default": "please-change-this-to-a-random-secret"
}
],
"platform": "linux",
"repository": {
"stackfile": "stacks/asciinema/docker-compose.yml",
"url": "https://github.com/shmolf/portainer-templates"
}
},
{
"type": 1,
"title": "Code-server {shmolf}",
"name": "code-server",
"note": "Portainer App Templates by <a href='https://www.technorabilia.com' target='_blank'>Technorabilia</a> based on data provided by <a href='https://www.linuxserver.io' target='_blank'>LinuxServer.io</a>.</p><p>This will bind to the following directory on the host filesystem:</p><p><code>/portainer/Files/AppData/Config/code-server</code></p><ul><li>Proxy Domain: See <a href='https://github.com/cdr/code-server/blob/master/docs/FAQ.md#sub-domains' target='_blank'>Documentation 🗗</a></li><li>Timezones: See <a href='https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List' target='_blank'>list 🗗</a></li></ul>",
"description": "Code-server (https://coder.com) is VS Code running on a remote server, accessible through the browser. - Code on your Chromebook, tablet, and laptop with a consistent dev environment. - If you have a Windows or Mac workstation, more easily develop for Linux. - Take advantage of large cloud servers to speed up tests, compilations, downloads, and more. - Preserve battery life when you're on the go. - All intensive computation runs on your server. - You're no longer running excess instances of Chrome.",
"categories": [
"Development"
],
"platform": "linux",
"logo": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/code-server-banner.png",
"image": "linuxserver/code-server:latest",
"env": [
{
"name": "PUID",
"label": "PUID",
"default": "1000",
"description": "for UserID"
},
{
"name": "PGID",
"label": "PGID",
"default": "1000",
"description": "for GroupID"
},
{
"name": "TZ",
"label": "TZ",
"default": "Europe/Amsterdam",
"description": "specify a timezone to use"
},
{
"name": "PASSWORD",
"label": "PASSWORD",
"default": "password",
"description": "Optional web gui password, if `PASSWORD` or `HASHED_PASSWORD` is not provided, there will be no auth."
},
{
"name": "HASHED_PASSWORD",
"label": "HASHED_PASSWORD",
"default": "",
"description": "Optional web gui password, overrides `PASSWORD`, instructions on how to create it is below."
},
{
"name": "SUDO_PASSWORD",
"label": "SUDO_PASSWORD",
"default": "password",
"description": "If this optional variable is set, user will have sudo access in the code-server terminal with the specified password."
},
{
"name": "SUDO_PASSWORD_HASH",
"label": "SUDO_PASSWORD_HASH",
"default": "",
"description": "Optionally set sudo password via hash (takes priority over `SUDO_PASSWORD` var). Format is `$type$salt$hashed`."
},
{
"name": "PROXY_DOMAIN",
"label": "PROXY_DOMAIN",
"default": "code-server.my.domain",
"description": "If this optional variable is set, this domain will be proxied for subdomain proxying."
},
{
"name": "DEFAULT_WORKSPACE",
"label": "DEFAULT_WORKSPACE",
"default": "/config/workspace",
"description": "If this optional variable is set, code-server will open this directory by default"
}
],
"ports": [
"8443:8443/tcp"
],
"volumes": [
{
"container": "/config",
"bind": "/portainer/Files/AppData/Config/code-server"
}
],
"restart_policy": "unless-stopped"
},
{
"type": 3,
"title": "Infisical {shmolf}",
"name": "infisical",
"categories": ["secrets", "management"],
"description": "The open-source secret management platform: Sync secrets/configs across your team/infrastructure and prevent secret leaks.",
"logo": "https://raw.githubusercontent.com/shmolf/portainer-templates/main/assets/logos/infisical-black.webp",
"note": "<a target='_blank' href='https://infisical.com/docs/documentation/getting-started/introduction'>Application documentation 🗗</a>",
"env": [
{
"default": "8078",
"label": "Http Port",
"name": "PORT"
},
{
"default": "c6606cd2daad581c4de96531427aae0d",
"label": "Encryption Key",
"name": "ENCRYPTION_KEY",
"description": "Required key for platform encryption/decryption ops. 32 character hex string"
},
{
"default": "5lrMXKKWCVocS/uerPsl7V+TX/aaUaI7iDkgl3tSmLE=",
"label": "JWT Key",
"name": "AUTH_SECRET",
"description": "Required secrets to sign JWT tokens"
},
{
"default": "postgres_password",
"label": "Postgres Password",
"name": "POSTGRES_PASSWORD"
},
{
"default": "infisical",
"label": "Postgres User",
"name": "POSTGRES_USER"
},
{
"default": "infisical",
"label": "Postgres Database",
"name": "POSTGRES_DB"
},
{
"default": "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}",
"label": "DB Connection URI",
"name": "DB_CONNECTION_URI"
},
{
"default": "http://localhost:8078",
"label": "Website URL",
"name": "SITE_URL"
},
{
"default": "redis://redis:6379",
"label": "Redis URL",
"name": "REDIS_URL"
},
{
"default": "",
"label": "Email Host (Optional)",
"name": "SMTP_HOST"
},
{
"default": "",
"label": "Email Port (Optional)",
"name": "SMTP_PORT"
},
{
"default": "",
"label": "Email Name (Optional)",
"name": "SMTP_NAME"
},
{
"default": "",
"label": "Email Username (Optional)",
"name": "SMTP_USERNAME"
},
{
"default": "",
"label": "Email Password (Optional)",
"name": "SMTP_PASSWORD"
},
{
"default": "",
"label": "Heroku Client ID (Optional)",
"name": "CLIENT_ID_HEROKU",
"description": "Optional, only needed if integration is used"
},
{
"default": "",
"label": "Heroku Client Secret (Optional)",
"name": "CLIENT_SECRET_HEROKU",
"description": "Optional, only needed if integration is used"
},
{
"default": "",
"label": "Vercel Client ID (Optional)",
"name": "CLIENT_ID_VERCEL",
"description": "Optional, only needed if integration is used"
},
{
"default": "",
"label": "Vercel Client Secret (Optional)",
"name": "CLIENT_SECRET_VERCEL",
"description": "Optional, only needed if integration is used"
},
{
"default": "",
"label": "Vercel Client Slug (Optional)",
"name": "CLIENT_SLUG_VERCEL",
"description": "Optional, only needed if integration is used"
},
{
"default": "",
"label": "Netlify Client ID (Optional)",
"name": "CLIENT_ID_NETLIFY",
"description": "Optional, only needed if integration is used"
},
{
"default": "",
"label": "Netlify Client Secret (Optional)",
"name": "CLIENT_SECRET_NETLIFY",
"description": "Optional, only needed if integration is used"
},
{
"default": "",
"label": "GitHub Client ID (Optional)",
"name": "CLIENT_ID_GITHUB",
"description": "Optional, only needed if integration is used"
},
{
"default": "",
"label": "GitHub Client Secret (Optional)",
"name": "CLIENT_SECRET_GITHUB",
"description": "Optional, only needed if integration is used"
},
{
"default": "",
"label": "GitLab Client ID (Optional)",
"name": "CLIENT_ID_GITLAB",
"description": "Optional, only needed if integration is used"
},
{
"default": "",
"label": "GitLab Client Secret (Optional)",
"name": "CLIENT_SECRET_GITLAB",
"description": "Optional, only needed if integration is used"
},
{
"default": "",
"label": "Bitbucket Client ID (Optional)",
"name": "CLIENT_ID_BITBUCKET",
"description": "Optional, only needed if integration is used"
},
{
"default": "",
"label": "Bitbucket Client Secret (Optional)",
"name": "CLIENT_SECRET_BITBUCKET",
"description": "Optional, only needed if integration is used"
},
{
"default": "",
"label": "Sentry DSN (Optional)",
"name": "SENTRY_DSN",
"description": "Optional, only needed if monitoring is used"
},
{
"default": "",
"label": "Google Client ID (Optional)",
"name": "CLIENT_ID_GOOGLE_LOGIN",
"description": "Optional, only needed if SSO is used"
},
{
"default": "",
"label": "Google Client Secret (Optional)",
"name": "CLIENT_SECRET_GOOGLE_LOGIN",
"description": "Optional, only needed if SSO is used"
},
{
"default": "",
"label": "GitHub Client ID (Optional)",
"name": "CLIENT_ID_GITHUB_LOGIN",
"description": "Optional, only needed if SSO is used"
},
{
"default": "",
"label": "GitHub Client Secret (Optional)",
"name": "CLIENT_SECRET_GITHUB_LOGIN",
"description": "Optional, only needed if SSO is used"
},
{
"default": "",
"label": "GitLab Client ID (Optional)",
"name": "CLIENT_ID_GITLAB_LOGIN",
"description": "Optional, only needed if SSO is used"
},
{
"default": "",
"label": "GitLab Client Secret (Optional)",
"name": "CLIENT_SECRET_GITLAB_LOGIN",
"description": "Optional, only needed if SSO is used"
},
{
"default": "",
"label": "Captcha Secret (Optional)",
"name": "CAPTCHA_SECRET",
"description": "Optional, only needed if captcha is used"
},
{
"default": "",
"label": "Captcha Site Key (Optional)",
"name": "NEXT_PUBLIC_CAPTCHA_SITE_KEY",
"description": "Optional, only needed if captcha is used"
},
{
"default": "",
"label": "Plain API Key (Optional)",
"name": "PLAIN_API_KEY",
"description": "Optional, only needed if Plain is used"
},
{
"default": "",
"label": "Plain Wish Label IDs (Optional)",
"name": "PLAIN_WISH_LABEL_IDS",
"description": "Optional, only needed if Plain is used"
}
],
"platform": "linux",
"repository": {
"stackfile": "stacks/infisical/compose.yml",
"url": "https://github.com/shmolf/portainer-templates"
},
"restart_policy": "unless-stopped"
}
]
}