-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
7396 lines (7396 loc) · 249 KB
/
docker-compose.yml
File metadata and controls
7396 lines (7396 loc) · 249 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
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
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
name: compose
networks:
default:
name: compose_default
nextcloud-aio:
external: true
x-jitsi-admin: &jitsi_admin_app
image: h2invent/jitsi-admin-main:latest@sha256:dcebcc7eab4b95f97751a3ced9d11cd3b65b41297652bac40aea405e8efe4694
#build: .
environment:
APACHE_DOCUMENT_ROOT: "public/"
PHP_EXTENSION_XDEBUG: "1"
PHP_INI_MEMORY_LIMIT: "1G"
PHP_EXTENSION_LDAP: 1
PHP_EXTENSION_INTL: 1
x-maxun: &maxun-env
environment:
NODE_ENV: production
JWT_SECRET: ${MAXUN_JWT_SECRET}
DB_NAME: maxun
DB_USER: maxun
DB_PASSWORD: ${MAXUN_DB_PASSWORD}
DB_HOST: maxun-pg-db
DB_PORT: 5432
ENCRYPTION_KEY: ${MAXUN_ENCRYPTION_KEY}
SESSION_SECRET: ${MAXUN_SESSION_SECRET}
MINIO_ENDPOINT: minio
MINIO_PORT: 9000
MINIO_CONSOLE_PORT: 9001
MINIO_ACCESS_KEY: ${MAXUN_MINIO_ACCESS_KEY}
MINIO_SECRET_KEY: ${MAXUN_MINIO_SECRET_KEY}
REDIS_HOST: maxun-valkey
REDIS_PORT: 6379
BACKEND_PORT: 8080
FRONTEND_PORT: 5173
BACKEND_URL: https://scrape.${MY_TLD}
PUBLIC_URL: https://scrape.${MY_TLD}
VITE_BACKEND_URL: https://scrape.${MY_TLD}
VITE_PUBLIC_URL: https://scrape.${MY_TLD}
MAXUN_TELEMETRY: true
PLAYWRIGHT_BROWSERS_PATH: /ms-playwright
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 0
CHROMIUM_FLAGS: "--disable-gpu --no-sandbox --headless=new"
#DEBUG: pw:api
#PWDEBUG: 1
x-penpot-flags: &penpot-flags
PENPOT_FLAGS: enable-smtp enable-prepl-server login-with-password webhooks
x-penpot-uri: &penpot-public-uri
PENPOT_PUBLIC_URI: https://penpot.${MY_TLD}
x-penpot-body-size: &penpot-http-body-size
# Max body size (30MiB); Used for plain requests, should never be
# greater than multi-part size
PENPOT_HTTP_SERVER_MAX_BODY_SIZE: 31457280
# Max multipart body size (350MiB)
PENPOT_HTTP_SERVER_MAX_MULTIPART_BODY_SIZE: 367001600
x-signoz-common: &signoz-common
profiles: ["rinoa-apps"]
restart: unless-stopped
x-signoz-clickhouse-defaults: &signoz-clickhouse-defaults
<<: *signoz-common
# adding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab
image: clickhouse/clickhouse-server:25.5.6-alpine
tty: true
labels:
signoz.io/scrape: "true"
signoz.io/port: "9363"
signoz.io/path: "/metrics"
depends_on:
signoz-init-clickhouse:
condition: service_completed_successfully
signoz-zookeeper-1:
condition: service_healthy
healthcheck:
test:
- CMD
- wget
- --spider
- -q
- 0.0.0.0:8123/ping
interval: 30s
timeout: 5s
retries: 3
ulimits:
nproc: 65535
nofile:
soft: 262144
hard: 262144
environment:
- CLICKHOUSE_SKIP_USER_SETUP=1
x-signoz-zookeeper-defaults: &signoz-zookeeper-defaults
<<: *signoz-common
image: bitnami/zookeeper:3.7.1
user: root
labels:
signoz.io/scrape: "true"
signoz.io/port: "9141"
signoz.io/path: "/metrics"
healthcheck:
test:
- CMD-SHELL
- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
interval: 30s
timeout: 5s
retries: 3
x-signoz-db-depend: &signoz-db-depend
<<: *signoz-common
depends_on:
signoz-clickhouse:
condition: service_healthy
signoz-schema-migrator-sync:
condition: service_completed_successfully
x-valkey-params: &valkey-params
healthcheck:
test: redis-cli ping || exit 1
image: docker.io/valkey/valkey:8-alpine@sha256:e706d1213aaba6896c162bb6a3a9e1894e1a435f28f8f856d14fab2e10aa098b
environment:
ALLOW_EMPTY_PASSWORD: yes
VALKEY_DATA_DIR: /data/valkey
VALKEY_DATABASE: 0
expose:
- 6379
profiles: ["rinoa-apps"]
restart: unless-stopped
x-zammad:
zammad-service: &zammad-service
environment: &zammad-environment
MEMCACHE_SERVERS: ${ZAMMAD_MEMCACHE_SERVERS:-zammad-memcached:11211}
POSTGRESQL_DB: ${ZAMMAD_POSTGRES_DB:-zammad_production}
POSTGRESQL_HOST: ${ZAMMAD_POSTGRES_HOST:-zammad-postgresql}
POSTGRESQL_USER: ${ZAMMAD_POSTGRES_USER:-zammad}
POSTGRESQL_PASS: ${ZAMMAD_POSTGRES_PASS:-zammad}
POSTGRESQL_PORT: ${ZAMMAD_POSTGRES_PORT:-5432}
POSTGRESQL_OPTIONS: ${ZAMMAD_POSTGRESQL_OPTIONS:-?pool=50}
POSTGRESQL_DB_CREATE:
REDIS_URL: ${ZAMMAD_REDIS_URL:-redis://zammad-redis:6379}
S3_URL: http://${ZAMMAD_S3_ACCESS_KEY}:${ZAMMAD_S3_SECRET_KEY}@minio:9000/zammad-storage-bucket?region=us-east-fh-pln&force_path_style=true
# Backup settings
BACKUP_DIR: "${BACKUP_DIR:-/var/tmp/zammad}"
BACKUP_TIME: "${BACKUP_TIME:-03:00}"
HOLD_DAYS: "${HOLD_DAYS:-7}"
TZ: "${TZ:-Europe/Berlin}"
# Allow passing in these variables via .env:
AUTOWIZARD_JSON:
AUTOWIZARD_RELATIVE_PATH:
ELASTICSEARCH_ENABLED: false
ELASTICSEARCH_SCHEMA:
ELASTICSEARCH_HOST:
ELASTICSEARCH_PORT:
ELASTICSEARCH_USER: ${ELASTICSEARCH_USER:-elastic}
ELASTICSEARCH_PASS: ${ELASTICSEARCH_PASS:-zammad}
ELASTICSEARCH_NAMESPACE:
ELASTICSEARCH_REINDEX:
NGINX_PORT:
NGINX_EXPOSE_PORT: 15257
NGINX_CLIENT_MAX_BODY_SIZE:
NGINX_SERVER_NAME:
NGINX_SERVER_SCHEME:
RAILS_TRUSTED_PROXIES: 172.18.0.0/16
ZAMMAD_HTTP_TYPE:
ZAMMAD_FQDN:
ZAMMAD_WEB_CONCURRENCY:
ZAMMAD_PROCESS_SESSIONS_JOBS_WORKERS:
ZAMMAD_PROCESS_SCHEDULED_JOBS_WORKERS:
ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS:
# ZAMMAD_SESSION_JOBS_CONCURRENT is deprecated, please use ZAMMAD_PROCESS_SESSIONS_JOBS_WORKERS instead.
ZAMMAD_SESSION_JOBS_CONCURRENT:
# Variables used by ngingx-proxy container for reverse proxy creations
# for docs refer to https://github.com/nginx-proxy/nginx-proxy
VIRTUAL_HOST:
VIRTUAL_PORT:
# Variables used by acme-companion for retrieval of LetsEncrypt certificate
# for docs refer to https://github.com/nginx-proxy/acme-companion
LETSENCRYPT_HOST:
LETSENCRYPT_EMAIL:
image: ${IMAGE_REPO:-ghcr.io/zammad/zammad}:${VERSION:-6.5.0-15}
profiles: ["rinoa-apps"]
restart: ${RESTART:-always}
volumes:
- zammad-storage:/opt/zammad/storage
depends_on:
- zammad-memcached
- zammad-postgresql
- zammad-redis
services:
13ft:
container_name: 13ft
image: ghcr.io/wasi-master/13ft:latest@sha256:563ce7794a7173250c25c9162495bf2f510dd714067d74363c9ab2bd0e5a994f
labels:
swag: enable
swag_port: 5000
swag_proto: http
swag_url: 13ft.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: 13ft Ladder
swag.uptime-kuma.monitor.url: https://13ft.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
homepage.group: Personal Tools
homepage.name: 13ft Ladder
homepage.icon: 13ft.svg
homepage.href: https://13ft.${MY_TLD}
homepage.description: Web interface for blocking ads and paywalls
ports:
- 10633:5000
profiles: ["rinoa-apps"]
restart: unless-stopped
actual_server:
container_name: actualbudget
environment:
ACTUAL_LOGIN_METHOD: "password"
ACTUAL_PORT: 5006
# - ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB=20
# - ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB=50
# - ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB=20
# See all options and more details at https://actualbudget.github.io/docs/Installing/Configuration
# !! If you are not using any of these options, remove the 'environment:' tag entirely.
image: docker.io/actualbudget/actual-server:latest@sha256:32dceb536149fcfe6e5292a6a568403c363e9fd59a41596da002b994a0b2216e
labels:
swag: enable
swag_port: 5006
swag_proto: http
swag_url: fin.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: Actual Budget
swag.uptime-kuma.monitor.url: https://13ft.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
homepage.group: Lifestyle
homepage.name: Actual Budget
homepage.icon: actual-budget.svg
homepage.href: https://fin.${MY_TLD}
homepage.description: Privacy-focused app for managing finances
ports:
- 5006:5006
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- ${DOCKER_VOLUME_CONFIG}/actual-budget:/data
adguard:
cap_add:
- NET_BIND_SERVICE
- NET_RAW
container_name: adguard
environment:
TZ: ${TZ}
image: adguard/adguardhome:v0.107.67@sha256:927dc14b3e3cbd359e84658914590270a77d54446a6565e9498bef3444c286a4
labels:
swag: enable
swag_proto: http
swag_port: 8008
swag_address: 192.168.1.254
swag_url: adgh.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: AdGuard Home
swag.uptime-kuma.monitor.url: https://adgh.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
homepage.group: System Administration
homepage.name: AdGuard Home
homepage.icon: adguard-home.png
homepage.href: https://adgh.${MY_TLD}
homepage.description: Ad-blocking/DNS
homepage.widget.type: adguard
homepage.widget.url: http://192.168.1.254:8008
homepage.widget.username: admin
homepage.widget.password: ${ADGUARD_PASSWORD}
network_mode: host
privileged: true
# ports:
# - "192.168.1.254:53:53/udp"
# - "192.168.1.254:53:53/tcp"
# - 3001:3000
# - "192.168.1.254:446:443/tcp"
# - 8008:80
# - "192.168.1.254:853:853/tcp"
# - 67:67
# - 688:68
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- ${DOCKER_VOLUME_CONFIG}/adguard/work:/opt/adguardhome/work
- ${DOCKER_VOLUME_CONFIG}/adguard/conf:/opt/adguardhome/conf
- ${DOCKER_VOLUME_CONFIG}/swag/etc/letsencrypt/:/opt/adguardhome/certs
apcupsd-cgi:
container_name: apcupsd-cgi
environment:
UPSHOSTS: 192.168.1.254
UPSNAMES: Rinoa
TZ: ${TZ}
DASHBOARD_PROVISION: false
image: bnhf/apcupsd-cgi:latest@sha256:e8733930739719aca608fd97aecfb0aa5f53aaf7681bf4bbccd49dbf67132bf8
labels:
swag: enable
swag_proto: http
swag_auth: authelia
swag_url: apc.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: APC UPS Web
swag.uptime-kuma.monitor.url: https://apc.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
homepage.group: Infrastructure/App Performance Monitoring
homepage.name: APC UPS Web
homepage.icon: apc.svg
homepage.href: https://apc.${MY_TLD}
homepage.description: Web interface for apcupsd
homepage.widget.type: apcups
homepage.widget.url: tcp://192.168.1.254:3551
ports:
- 3552:80
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- ${DOCKER_VOLUME_CONFIG}/apcupsd:/etc/apcupsd
apprise-api:
container_name: apprise-api
environment:
PUID: ${PUID}
PGID: ${PGID}
TZ: ${TZ}
APPRISE_ATTACH_DIR: /attach
APPRISE_ATTACH_SIZE: 500
APPRISE_CONFIG_DIR: /config
APPRISE_STATEFUL_MODE: simple
image: lscr.io/linuxserver/apprise-api:latest@sha256:31fc75e049546a808fb287af2d26b934c6417d1961c739e8fb583066de99bfca
labels:
cloudflare.tunnel.enable: true
cloudflare.tunnel.hostname: apprise.${MY_TLD}
cloudflare.tunnel.service: http://apprise:8000
cloudflare.tunnel.zonename: ${MY_TLD}
cloudflare.tunnel.no_tls_verify: true
homepage.group: Infrastructure/App Performance Monitoring
homepage.name: Apprise
homepage.icon: apprise.png
homepage.href: http://192.168.1.254:54995
homepage.description: Multi-channel notification API
homepage.widget.type: customapi
homepage.widget.headers: "Accept: application/json"
homepage.widget.url: http://apprise-api:8000/status
homepage.widget.method: GET
homepage.widget.mappings[0].label: Status
homepage.widget.mappings[0].field: status.details
# homepage.widget[1].type: customapi
# homepage.widget[1].headers: 'Accept: application/json'
# homepage.widget[1].url: http://apprise-api:8111/json/urls/apprise?privacy=1
# homepage.widget[1].method: GET
# homepage.widget[1].mappings[0].label: URLS
# homepage.widget[1].mappings[0].field: urls
# homepage.widget[1].mappings[0].format: size
ports:
- 54995:8000
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- ${DOCKER_VOLUME_CONFIG}/apprise/conf:/config
- ${DOCKER_VOLUME_CONFIG}/apprise/attachments:/attach #optional
archivebox:
container_name: archivebox
environment:
ADMIN_USERNAME: admin # creates an admin user on first run with the given user/pass combo
ADMIN_PASSWORD: ${ARCHIVEBOX_ADMIN_PASSWORD}
ALLOWED_HOSTS: "*" # set this to the hostname(s) you're going to serve the site from!
CSRF_TRUSTED_ORIGINS: http://localhost:8000 # you MUST set this to the server's URL for admin login and the REST API to work
PUBLIC_INDEX: false # set to False to prevent anonymous users from viewing snapshot list
PUBLIC_SNAPSHOTS: false # set to False to prevent anonymous users from viewing snapshot content
PUBLIC_ADD_VIEW: false # set to True to allow anonymous users to submit new URLs to archive
SEARCH_BACKEND_ENGINE: ripgrep # tells ArchiveBox to use sonic container below for fast full-text search
image: archivebox/archivebox:latest@sha256:fdf2936192aa1e909b0c3f286f60174efa24078555be4b6b90a07f2cef1d4909
labels:
homepage.group: Personal Tools
homepage.name: ArchiveBox
homepage.href: https://archive.${MY_TLD}
homepage.icon: archivebox.png
homepage.description: Open-source and self-hosted web archiving
swag: enable
swag_port: 8000
swag_proto: http
swag_url: archive.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: ArchiveBox
swag.uptime-kuma.monitor.url: https://archive.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
ports:
- 21324:8000
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- ${DOCKER_VOLUME_CONFIG}/archivebox:/data
# ./data/personas/Default/chrome_profile/Default:/data/personas/Default/chrome_profile/Default
asciinema:
container_name: asciinema
depends_on:
asciinema-pg-db:
condition: service_healthy
required: true
environment:
DATABASE_URL: postgresql://asciinema:${ASCIINEMA_PG_DB_PASSWORD}@asciinema-pg-db:5432/asciinema
DEFAULT_AVATAR: gravatar
MAIL_FROM_ADDRESS: noreply@${MY_TLD}
SECRET_KEY_BASE: ${ASCIINEMA_SECRET_KEY_BASE}
SIGN_UP_DISABLED: true
SMTP_HOST: postal-smtp
SMTP_USERNAME: ${POSTAL_SMTP_AUTH_USER}
SMTP_PASSWORD: ${POSTAL_SMTP_AUTH_PASSWORD}
SMTP_PORT: 25
UPLOAD_AUTH_REQUIRED: true
URL_HOST: asciinema.trez.wtf
URL_PORT: 4000
URL_SCHEME: https
image: ghcr.io/asciinema/asciinema-server:latest@sha256:8da830a6eb0b6715becf31b2495877aa5d661674f29c52a3a3363110847c5598
labels:
homepage.group: Code/DevOps
homepage.name: Asciinema
homepage.href: https://asciinema.${MY_TLD}
homepage.icon: asciinema.svg
homepage.description: Platform for hosting and sharing terminal session recordings
swag: enable
swag_port: 4000
swag_proto: http
swag_url: asciinema.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: Asciinema
swag.uptime-kuma.monitor.url: https://asciinema.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
ports:
- 4000:4000
- 4002:4002
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- asciinema-data:/var/opt/asciinema
asciinema-pg-db:
container_name: asciinema-pg-db
environment:
POSTGRES_PASSWORD: ${ASCIINEMA_PG_DB_PASSWORD}
POSTGRES_USER: asciinema
POSTGRES_DB: asciinema
expose:
- 5432
healthcheck:
test: ["CMD-SHELL", "pg_isready -U asciinema"]
interval: 2s
timeout: 5s
retries: 10
image: postgres:14-alpine@sha256:49f7dcce1efddd8d86ae3f37dcba206b5655d9fac3d3872d2823177fd6c1e7fa
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- asciinema-pg-data:/var/lib/postgresql/data
audiobookshelf:
container_name: audiobookshelf
environment:
CONFIG_PATH: /config
HOME: /config/.home
LOG_LEVEL: info
METADATA_PATH: /metadata
TZ: America/New_York
hostname: Rinoa
image: ghcr.io/advplyr/audiobookshelf:latest@sha256:dd4a3079d26bfe9f0ea63de3e3eff483dfa25fef05ef850a5a9d121dca3794b2
labels:
homepage.group: Media Library
homepage.name: Audiobookshelf
homepage.href: https://abs.${MY_TLD}
homepage.icon: audiobookshelf.png
homepage.description: Podcasts, eBooks, & Audiobooks
homepage.widget.type: audiobookshelf
homepage.widget.url: http://audiobookshelf:80
homepage.widget.key: ${AUDIOBOOKSHELF_ROOT_API_KEY}
swag: enable
swag_address: audiobookshelf
swag_proto: http
swag_url: abs.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: Audiobookshelf
swag.uptime-kuma.monitor.url: https://abs.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
networks:
default: null
ports:
- 13378:80
profiles: ["rinoa-apps"]
restart: unless-stopped
user: 1000:1000
volumes:
- bind:
create_host_path: true
read_only: true
source: /etc/localtime
target: /etc/localtime
type: bind
- bind:
create_host_path: true
source: ${DOCKER_VOLUME_CONFIG}/audiobookshelf
target: /config
type: bind
- bind:
create_host_path: true
source: ${DOCKER_VOLUME_CONFIG}/audiobookshelf/.metadata
target: /metadata
type: bind
- bind:
create_host_path: true
source: /rinoa-storage
target: /storage
type: bind
authelia:
container_name: authelia
depends_on:
authelia-pg:
condition: service_started
required: true
lldap:
condition: service_started
required: true
environment:
AUTHELIA_AUTHENTICATION_BACKEND_LDAP_PASSWORD: ${AUTHELIA_AUTH_BIND_LDAP_PASSWORD}
AUTHELIA_JWT_SECRET: ${AUTHELIA_JWT_SECRET}
AUTHELIA_NOTIFIER_SMTP_PASSWORD: ${POSTAL_SMTP_AUTH_PASSWORD}
AUTHELIA_NOTIFIER_SMTP_USERNAME: ${POSTAL_SMTP_AUTH_USER}
AUTHELIA_SESSION_SECRET: ${AUTHELIA_SESSION_SECRET}
AUTHELIA_STORAGE_ENCRYPTION_KEY: ${AUTHELIA_STORAGE_ENCRYPTION_KEY}
AUTHELIA_STORAGE_POSTGRES_PASSWORD: ${AUTHELIA_STORAGE_POSTGRES_PASSWORD}
PGID: ${PGID}
PUID: ${PUID}
TZ: ${TZ}
X_AUTHELIA_CONFIG_FILTERS: template
expose:
- 9091
image: authelia/authelia:master@sha256:80323064bab83a8e8b383dedcb335908cec3009f36e836a7d4d9efdc4eb92833
labels:
homepage.group: Privacy/Security
homepage.name: Authelia
homepage.href: https://auth.${MY_TLD}
homepage.icon: authelia.svg
homepage.description: Authentication/authorization server with MFA & SSO
swag: enable
swag_proto: http
swag_port: 9091
swag_url: auth.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: Authelia
swag.uptime-kuma.monitor.url: https://auth.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
networks:
default: null
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- source: ${DOCKER_VOLUME_CONFIG}/authelia/
target: /config
type: bind
bind:
create_host_path: true
authelia-pg:
container_name: authelia-pg
environment:
POSTGRES_PASSWORD: ${AUTHELIA_STORAGE_POSTGRES_PASSWORD}
POSTGRES_USER: authelia
POSTGRES_DB: authelia
expose:
- 5432
image: postgres:16-alpine@sha256:84fb5d5bdd7d47f1889f325e534f3ce643f853f460832c8a61949f5391b8dc42
networks:
default: null
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- source: authelia-pg-db
target: /var/lib/postgresql/data
type: volume
bind:
create_host_path: true
authelia-valkey:
container_name: authelia-valkey
<<: *valkey-params
volumes:
- authelia-valkey-data:/data/valkey
bazarr:
container_name: bazarr
environment:
PGID: ${PGID}
PUID: ${PUID}
TZ: ${TZ}
DOCKER_MODS: ghcr.io/gilbn/theme.park:bazarr
hostname: Rinoa
image: lscr.io/linuxserver/bazarr:latest@sha256:cf7a02a46d37899eeafd1d96b81984168f771f89c554a52a2fd35437fdc16cb6
labels:
homepage.group: Servarr Stack
homepage.name: Bazarr
homepage.href: https://bazarr.${MY_TLD}
homepage.icon: bazarr.png
homepage.description: Subtitle automation for TV shows/movies
homepage.widget.type: bazarr
homepage.widget.url: http://bazarr:6767
homepage.widget.key: ${BAZARR_API_KEY}
swag: enable
swag_proto: http
swag_port: 6767
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: Bazarr
swag.uptime-kuma.monitor.url: https://bazaar.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
networks:
default: null
ports:
- 6767:6767
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- bind:
create_host_path: true
read_only: true
source: /etc/localtime
target: /etc/localtime
type: bind
- bind:
create_host_path: true
source: ${DOCKER_VOLUME_CONFIG}/bazarr
target: /config
type: bind
- bind:
create_host_path: true
source: /rinoa-storage
target: /storage
type: bind
beszel:
container_name: beszel
extra_hosts:
- host.docker.internal:host-gateway
image: henrygd/beszel:latest@sha256:4a7aeba2e1ee2b4b9391c362cbbb6c2b3c5eb7de996d966d4e968f51dc080ef6
labels:
homepage.group: Infrastructure/App Performance Monitoring
homepage.name: Beszel
homepage.href: https://beszel.${MY_TLD}
homepage.icon: beszel.svg
homepage.description: Lightweight server monitoring hub
homepage.widget.type: beszel
homepage.widget.url: http://beszel:8090
homepage.widget.username: ${SWAG_ENVIRONMENT_EMAIL}
homepage.widget.password: ${BESZEL_ADMIN_PASSWORD}
homepage.widget.version: 2
swag: enable
swag_proto: http
swag_port: 8090
swag_url: beszel.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: Beszel
swag.uptime-kuma.monitor.url: https://beszel.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
ports:
- 22220:8090
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- ${DOCKER_VOLUME_CONFIG}/beszel:/beszel_data
beszel-agent:
container_name: beszel-agent
depends_on:
- beszel
environment:
PORT: 45876
# Do not remove quotes around the key
KEY: "${BESZEL_RINOA_AGENT_KEY}"
expose:
- 45876
image: henrygd/beszel-agent:latest@sha256:ad1fe17fb4cc1dfca9ace15505ab7dddebb8d17ca8f8b95bdd84593a8415b6d1
network_mode: host
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /rinoa-storage:/extra-filesystems/rinoa-storage:ro
- /dev/nvme0n1:/extra-filesystems/nvme0n1:ro
bitwarden:
container_name: bitwarden
environment:
ADMIN_TOKEN: ${BITWARDEN_ENVIRONMENT_ADMIN_TOKEN}
DATABASE_URL: data/db.sqlite3
DISABLE_ADMIN_TOKEN: "false"
DOMAIN: https://bitwarden.${MY_TLD}
ENABLE_DB_WAL: "true"
INVITATIONS_ALLOWED: "false"
SHOW_PASSWORD_HINT: "false"
SIGNUPS_ALLOWED: "true"
SIGNUPS_VERIFY: "true"
TZ: America/New_York
WEBSOCKET_ENABLED: "true"
hostname: Rinoa
image: vaultwarden/server:latest@sha256:84fd8a47f58d79a1ad824c27be0a9492750c0fa5216b35c749863093bfa3c3d7
labels:
homepage.group: Privacy/Security
homepage.name: Vaultwarden
homepage.icon: vaultwarden.svg
homepage.href: https://bitwarden.${MY_TLD}
homepage.description: Credential/Information Vault
swag: enable
swag_url: bitwarden.${MY_TLD}
swag_proto: http
swag_port: 80
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: Vaultwarden
swag.uptime-kuma.monitor.url: https://bitwarden.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
networks:
default: null
ports:
- 3012:3012
- 8013:80
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- bind:
create_host_path: true
read_only: true
source: /etc/localtime
target: /etc/localtime
type: bind
- bind:
create_host_path: true
source: ${DOCKER_VOLUME_CONFIG}/bitwarden
target: /data
type: bind
- bind:
create_host_path: true
source: /rinoa-storage
target: /storage
type: bind
bluesky-pds:
container_name: bluesky-pds
environment:
PDS_ADMIN_EMAIL: charish.patel@${MY_TLD}
PDS_HOSTNAME: bsky.${MY_TLD}
PDS_JWT_SECRET: ${BLUESKY_PDS_JWT_SECRET}
PDS_ADMIN_PASSWORD: ${BLUESKY_PDS_ADMIN_PASSWORD}
PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX: ${BLUESKY_PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX}
PDS_DATA_DIRECTORY: /pds
PDS_EMAIL_SMTP_URL: smtp://${POSTAL_SMTP_AUTH_USER}:${POSTAL_SMTP_AUTH_PASSWORD}@postal-smtp:25
PDS_EMAIL_FROM_ADDRESS: noreply@${MY_TLD}
PDS_BLOBSTORE_DISK_LOCATION: /pds/blocks
PDS_BLOB_UPLOAD_LIMIT: 52428800
PDS_DID_PLC_URL: ${PDS_DID_PLC_URL}
PDS_BSKY_APP_VIEW_URL: ${PDS_BSKY_APP_VIEW_URL}
PDS_BSKY_APP_VIEW_DID: ${PDS_BSKY_APP_VIEW_DID}
PDS_REPORT_SERVICE_URL: ${PDS_REPORT_SERVICE_URL}
PDS_REPORT_SERVICE_DID: ${PDS_REPORT_SERVICE_DID}
PDS_CRAWLERS: ${PDS_CRAWLERS}
LOG_ENABLED: true
expose:
- 3000
image: code.modernleft.org/gravityfargo/bluesky-pds:v0.4.158@sha256:44810dc5cf9c78135d20dfd60e0999e2db0dfc5fd56dc7e45e8844d1b57c54bd
labels:
swag: enable
swag_port: 3000
swag_url: bsky.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: BlueSky PDS
swag.uptime-kuma.monitor.url: https://bsky.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- type: bind
source: ${DOCKER_VOLUME_CONFIG}/bluesky-pds
target: /pds
browserless:
container_name: browserless
environment:
ALLOW_FILE_PROTOCOL: true
CONCURRENT: 20
HEALTH: false
PROXY_HOST: browserless
PROXY_PORT: 3000
PROXY_SSL: false
QUEUED: 20
TIMEOUT: 300000
TOKEN: ${CHROMIUM_TOKEN}
TZ: ${TZ}
expose:
- 3000
extra_hosts:
- "host.docker.internal:host-gateway"
image: ghcr.io/browserless/chromium:latest@sha256:8021eadd6ab7d8a5cdd25a6d7b539680bf4a71a1ad9bf6637ee65e891193140c
labels:
swag: enable
swag_proto: http
swag_port: 3000
swag_url: browse.${MY_TLD}
networks:
default: null
profiles: ["rinoa-apps"]
restart: unless-stopped
bytestash:
container_name: bytestash
environment:
BASE_PATH:
JWT_SECRET: ${BYTESTASH_JWT_SECRET}
TOKEN_EXPIRY: 24h
ALLOW_NEW_ACCOUNTS: true
DEBUG: true
DISABLE_ACCOUNTS: false
DISABLE_INTERNAL_ACCOUNTS: false
image: ghcr.io/jordan-dalby/bytestash:latest@sha256:f57d694a727bfbe1daf72acd3d98620b2ff9b1e4f4aafbacc5cda89c31da3512
labels:
homepage.description: Code Gists/Snippets
homepage.group: Code/DevOps
homepage.href: https://gist.${MY_TLD}
homepage.icon: bytestash.svg
homepage.name: ByteStash
swag: enable
swag_port: 5000
swag_proto: http
swag_url: gist.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: ByteStash
swag.uptime-kuma.monitor.url: https://gist.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
ports:
- 62139:5000
profiles: ["rinoa-apps"]
restart: always
volumes:
- ${DOCKER_VOLUME_CONFIG}/bytestash:/data/snippets
castopod:
container_name: castopod
depends_on:
mariadb:
condition: service_healthy
required: true
restart: true
castopod-valkey:
condition: service_healthy
required: true
environment:
MYSQL_DATABASE: castopod
MYSQL_USER: castopod
MYSQL_PASSWORD: ${CASTOPOD_MYSQL_PASSWORD}
CP_DATABASE_HOSTNAME: mariadb
CP_DATABASE_NAME: castopod
CP_DATABASE_USERNAME: castopod
CP_DATABASE_PASSWORD: ${CASTOPOD_MYSQL_PASSWORD}
CP_BASEURL: "https://pod.${MY_TLD}"
CP_ANALYTICS_SALT: ${CASTOPOD_ANALYTICS_SALT}
CP_CACHE_HANDLER: redis
CP_DISABLE_HTTPS: 0
CP_REDIS_HOST: castopod-valkey
CP_EMAIL_SMTP_HOST: postal-smtp
CP_EMAIL_FROM: noreply@${MY_TLD}
CP_EMAIL_SMTP_USERNAME: ${POSTAL_SMTP_AUTH_USER}
CP_EMAIL_SMTP_PASSWORD: ${POSTAL_SMTP_AUTH_PASSWORD}
expose:
- 8000
image: castopod/castopod:latest@sha256:e59262a89b035d1cb7decd7dcc387670c5ba81e31b67c7e0e89ef827d7f58ea9
labels:
homepage.group: Social
homepage.name: Castopod
homepage.href: https://pod.${MY_TLD}
homepage.icon: castopod.png
homepage.description: Podcast self-hosting
swag: enable
swag_address: castopod
swag_port: 8000
swag_url: pod.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: Castopod
swag.uptime-kuma.monitor.url: https://pod.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- castopod-media:/var/www/castopod/public/media
castopod-valkey:
container_name: castopod-valkey
<<: *valkey-params
volumes:
- castopod-valkey-data:/data/valkey
changedetection:
container_name: changedetection
depends_on:
changedetection-chrome:
condition: service_started
environment:
PORT: 5000
LOGGER_LEVEL: TRACE
PLAYWRIGHT_DRIVER_URL: ws://browser-sockpuppet-chrome:3000
BASE_URL: https://chdt.${MY_TLD}
USE_X_SETTINGS: 1
HIDE_REFERER: true
ALLOW_FILE_URI: False
TZ: ${TZ}
LC_ALL: en_US.UTF-8
LISTEN_HOST: 0.0.0.0
image: ghcr.io/dgtlmoon/changedetection.io@sha256:d8113bf66f47895d29c6935000bbac4c0f33d79588ae37d9ed6000ed328c5833
labels:
homepage.description: Page change monitoring with alerts
homepage.group: System Administration
homepage.href: https://chdt.${MY_TLD}
homepage.icon: changedetection.svg
homepage.name: ChangeDetection
homepage.widget.type: changedetectionio
homepage.widget.url: http://changedetection:5000
homepage.widget.key: ${CHANGEDETECTION_HOMEPAGE_API_KEY}
swag: enable
swag_port: 5000
swag_proto: http
swag_url: chdt.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: ChangeDetection
swag.uptime-kuma.monitor.url: https://chdt.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
ports:
- 15827:5000
profiles: ["rinoa-apps"]
restart: unless-stopped
volumes:
- changedetection-data:/datastore
changedetection-chrome:
cap_add:
- SYS_ADMIN
container_name: changedetection-chrome
image: dgtlmoon/sockpuppetbrowser:latest@sha256:9f2df6791a4cd9b2c3138cb62b5a8de7f27953cab84729fe09d28cbd341a8973
environment:
SCREEN_WIDTH: 1920
SCREEN_HEIGHT: 1024
SCREEN_DEPTH: 16
MAX_CONCURRENT_CHROME_PROCESSES: 10
profiles: ["rinoa-apps"]
restart: unless-stopped
chrome:
container_name: chrome
command:
- --no-sandbox
- --disable-gpu
- --disable-dev-shm-usage
- --remote-debugging-address=0.0.0.0
- --remote-debugging-port=9222
- --hide-scrollbars
image: gcr.io/zenika-hub/alpine-chrome:123@sha256:e38563d4475a3d791e986500a2e4125c9afd13798067138881cf770b1f6f3980
profiles: ["rinoa-apps"]
restart: unless-stopped
clipcascade:
container_name: clipcascade
environment:
CC_MAX_MESSAGE_SIZE_IN_MiB: 25 # Maximum message size in MiB (ignored if P2P mode is enabled)
CC_P2P_ENABLED: false # Enables or disables peer-to-peer(P2P) mode
# CC_ALLOWED_ORIGINS: https://clipcascade.example.com # Defines allowed CORS origins for security
CC_SIGNUP_ENABLED: false # Enables or disables user self-registration
image: sathvikrao/clipcascade:latest@sha256:0f7aadec03af6b22a157466ade3ed1730dfd3b390d2989e55c0180e1d12d736f
labels:
homepage.group: Personal Tools
homepage.name: ClipCascade
homepage.href: https://clip.${MY_TLD}
homepage.icon: sh-clipcascade.svg
homepage.description: Online file converter
swag: enable
swag_port: 8080
swag_proto: http
swag_url: clip.${MY_TLD}
swag.uptime-kuma.enabled: true