initial commit

This commit is contained in:
root
2026-07-31 14:19:58 +02:00
commit 8684f85ee0
19 changed files with 717 additions and 0 deletions
+160
View File
@@ -0,0 +1,160 @@
####################################
# 🦎 KOMODO COMPOSE - VARIABLES 🦎 #
####################################
## These compose variables can be used with all Komodo deployment options.
## Pass these variables to the compose up command using `--env-file komodo/compose.env`.
## Additionally, they are passed to both Komodo Core and Komodo Periphery with `env_file: ./compose.env`,
## so you can pass any additional environment variables to Core / Periphery directly in this file as well.
## Stick to a specific version, or use `latest`
COMPOSE_KOMODO_IMAGE_TAG=2
## Store dated database backups on the host - https://komo.do/docs/setup/backup
COMPOSE_KOMODO_BACKUPS_PATH=/etc/komodo/backups
## DB credentials
KOMODO_DB_USERNAME=admin
KOMODO_DB_PASSWORD=#gentoo#
## Configure a secure passkey to authenticate between Core / Periphery.
KOMODO_PASSKEY=smf3JR9ZjzZg3mGCsLskrsDub8C3GBT
## Set your time zone for schedules
## https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TZ=Europe/Berlin
#=-------------------------=#
#= Komodo Core Environment =#
#=-------------------------=#
## Full variable list + descriptions are available here:
## 🦎 https://github.com/moghtech/komodo/blob/main/config/core.config.toml 🦎
## Note. Secret variables also support `${VARIABLE}_FILE` syntax to pass docker compose secrets.
## Docs: https://docs.docker.com/compose/how-tos/use-secrets/#examples
## Used for Oauth / Webhook url suggestion / Caddy reverse proxy.
KOMODO_HOST=https://komodo.solusar.de
## Displayed in the browser tab.
KOMODO_TITLE=Komodo
## Create a server matching this address as the "first server".
## Use `https://host.docker.internal:8120` when using systemd-managed Periphery.
KOMODO_FIRST_SERVER=https://periphery:8120
## Give the first server a custom name.
KOMODO_FIRST_SERVER_NAME=Local
## Make all buttons just double-click, rather than the full confirmation dialog.
KOMODO_DISABLE_CONFIRM_DIALOG=false
## Rate Komodo polls your servers for
## status / container status / system stats / alerting.
## Options: 1-sec, 5-sec, 15-sec, 1-min, 5-min, 15-min
## Default: 15-sec
KOMODO_MONITORING_INTERVAL="15-sec"
## Interval at which to poll Resources for any updates / automated actions.
## Options: 15-min, 1-hr, 2-hr, 6-hr, 12-hr, 1-day
## Default: 1-hr
KOMODO_RESOURCE_POLL_INTERVAL="1-hr"
## Used to auth incoming webhooks. Alt: KOMODO_WEBHOOK_SECRET_FILE
KOMODO_WEBHOOK_SECRET=6Jwm9j57MejRWCvDXdkDvQJapzj7upW
## Used to generate jwt. Alt: KOMODO_JWT_SECRET_FILE
KOMODO_JWT_SECRET=RHQ9LqwuHb8RSmaTh2nxrc8CJ6ZXgP8
## Time to live for jwt tokens.
## Options: 1-hr, 12-hr, 1-day, 3-day, 1-wk, 2-wk
KOMODO_JWT_TTL="1-day"
## Enable login with username + password.
KOMODO_LOCAL_AUTH=true
## Set the initial admin username created upon first launch.
## Comment out to disable initial user creation,
## and create first user using signup button.
KOMODO_INIT_ADMIN_USERNAME=admin
## Set the initial admin password
KOMODO_INIT_ADMIN_PASSWORD=#gentoo#
## Disable new user signups.
KOMODO_DISABLE_USER_REGISTRATION=false
## All new logins are auto enabled
KOMODO_ENABLE_NEW_USERS=false
## Disable non-admins from creating new resources.
KOMODO_DISABLE_NON_ADMIN_CREATE=false
## Allows all users to have Read level access to all resources.
KOMODO_TRANSPARENT_MODE=false
## Prettier logging with empty lines between logs
KOMODO_LOGGING_PRETTY=false
## More human readable logging of startup config (multi-line)
KOMODO_PRETTY_STARTUP_CONFIG=false
## OIDC Login
KOMODO_OIDC_ENABLED=true
## Must reachable from Komodo Core container
KOMODO_OIDC_PROVIDER=https://auth.solusar.de/application/o/komodo/
## Change the host to one reachable be reachable by users (optional if it is the same as above).
## DO NOT include the `path` part of the URL.
# KOMODO_OIDC_REDIRECT_HOST=https://oidc.provider.external
## Your OIDC client id
KOMODO_OIDC_CLIENT_ID=0EahA1Pf7Me00r1sM3cexBX4JdBkFwfpW2hsaG5p
## Your OIDC client secret.
## If your provider supports PKCE flow, this can be ommitted.
KOMODO_OIDC_CLIENT_SECRET=2c74OugufUkiRmHN9f06Re2L5pZ5XvOdLAbFP1L028PVMdTMFshXrjvdfqihHqU47eM4UBe6mJ9VaSTT9MNrFVvtejXixwLGRw31qkmzkIui1Y7NkJxuHCPAtfkCUww1
## Make usernames the full email.
## Note. This does not work for all OIDC providers.
# KOMODO_OIDC_USE_FULL_EMAIL=true
## Add additional trusted audiences for token claims verification.
## Supports comma separated list, and passing with _FILE (for compose secrets).
# KOMODO_OIDC_ADDITIONAL_AUDIENCES=abc,123 # Alt: KOMODO_OIDC_ADDITIONAL_AUDIENCES_FILE
## Github Oauth
KOMODO_GITHUB_OAUTH_ENABLED=false
# KOMODO_GITHUB_OAUTH_ID= # Alt: KOMODO_GITHUB_OAUTH_ID_FILE
# KOMODO_GITHUB_OAUTH_SECRET= # Alt: KOMODO_GITHUB_OAUTH_SECRET_FILE
## Google Oauth
KOMODO_GOOGLE_OAUTH_ENABLED=false
# KOMODO_GOOGLE_OAUTH_ID= # Alt: KOMODO_GOOGLE_OAUTH_ID_FILE
# KOMODO_GOOGLE_OAUTH_SECRET= # Alt: KOMODO_GOOGLE_OAUTH_SECRET_FILE
## Aws - Used to launch Builder instances.
KOMODO_AWS_ACCESS_KEY_ID= # Alt: KOMODO_AWS_ACCESS_KEY_ID_FILE
KOMODO_AWS_SECRET_ACCESS_KEY= # Alt: KOMODO_AWS_SECRET_ACCESS_KEY_FILE
#=------------------------------=#
#= Komodo Periphery Environment =#
#=------------------------------=#
## Full variable list + descriptions are available here:
## 🦎 https://github.com/moghtech/komodo/blob/main/config/periphery.config.toml 🦎
## Specify the root directory used by Periphery agent.
PERIPHERY_ROOT_DIRECTORY=/etc/komodo
## Periphery passkeys must include KOMODO_PASSKEY to authenticate.
PERIPHERY_PASSKEYS=${KOMODO_PASSKEY}
## Specify whether to disable the terminals feature
## and disallow remote shell access (inside the Periphery container).
PERIPHERY_DISABLE_TERMINALS=false
## Enable SSL using self signed certificates.
## Connect to Periphery at https://address:8120.
PERIPHERY_SSL_ENABLED=true
## If the disk size is overreporting, can use one of these to
## whitelist / blacklist the disks to filter them, whichever is easier.
## Accepts comma separated list of paths.
## Usually whitelisting just /etc/hostname gives correct size.
PERIPHERY_INCLUDE_DISK_MOUNTS=/etc/hostname
# PERIPHERY_EXCLUDE_DISK_MOUNTS=/snap,/etc/repos
## Prettier logging with empty lines between logs
PERIPHERY_LOGGING_PRETTY=false
## More human readable logging of startup config (multi-line)
PERIPHERY_PRETTY_STARTUP_CONFIG=false
# git providers
[[git_provider]]
domain = "gitea.realm.local" # use a custom provider, like self-hosted gitea
accounts = [
{ username = "caelebfi", token = "d592b900dacb1749cbce7d3b2adeb0dbb8a26a49" },
]
+1
View File
@@ -0,0 +1 @@
mongodb/
+82
View File
@@ -0,0 +1,82 @@
################################
# 🦎 KOMODO COMPOSE - MONGO 🦎 #
################################
## This compose file will deploy:
## 1. MongoDB
## 2. Komodo Core
## 3. Komodo Periphery
services:
mongo:
image: mongo
labels:
komodo.skip: # Prevent Komodo from stopping with StopAllContainers
command: --quiet --wiredTigerCacheSizeGB 0.25
restart: unless-stopped
# ports:
# - 27017:27017
volumes:
- mongo-data:/data/db
- mongo-config:/data/configdb
environment:
MONGO_INITDB_ROOT_USERNAME: ${KOMODO_DB_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${KOMODO_DB_PASSWORD}
core:
image: ghcr.io/moghtech/komodo-core:${COMPOSE_KOMODO_IMAGE_TAG:-latest}
labels:
komodo.skip: # Prevent Komodo from stopping with StopAllContainers
restart: unless-stopped
depends_on:
- mongo
ports:
- 9120:9120
env_file: ./.env
init: true
environment:
KOMODO_DATABASE_ADDRESS: mongo:27017
KOMODO_DATABASE_USERNAME: ${KOMODO_DB_USERNAME}
KOMODO_DATABASE_PASSWORD: ${KOMODO_DB_PASSWORD}
volumes:
## Store dated backups of the database - https://komo.do/docs/setup/backup
- ${COMPOSE_KOMODO_BACKUPS_PATH}:/backups
- keys:/config/keys
## Store sync files on server
# - /path/to/syncs:/syncs
## Optionally mount a custom core.config.toml
# - /path/to/core.config.toml:/config/config.toml
## advanced: local root ca for trust
- /usr/local/share/ca-certificates/minica.crt:/usr/local/share/ca-certificates/minica.crt
## Allows for systemd Periphery connection at
## "https://host.docker.internal:8120"
# extra_hosts:
# - host.docker.internal:host-gateway
## Deploy Periphery container using this block,
## or deploy the Periphery binary with systemd using
## https://github.com/moghtech/komodo/tree/main/scripts
periphery:
image: ghcr.io/moghtech/komodo-periphery:${COMPOSE_KOMODO_IMAGE_TAG:-latest}
labels:
komodo.skip: # Prevent Komodo from stopping with StopAllContainers
restart: unless-stopped
init: true
env_file: ./.env
volumes:
## Mount external docker socket
- /var/run/docker.sock:/var/run/docker.sock
## Allow Periphery to see processes outside of container
- /proc:/proc
## Specify the Periphery agent root directory.
## Must be the same inside and outside the container,
## or docker will get confused. See https://github.com/moghtech/komodo/discussions/180.
## Default: /etc/komodo.
- ${PERIPHERY_ROOT_DIRECTORY:-/etc/komodo}:${PERIPHERY_ROOT_DIRECTORY:-/etc/komodo}
- keys:/config/keys
volumes:
# Mongo
mongo-data:
mongo-config:
keys:
+17
View File
@@ -0,0 +1,17 @@
services:
cli:
image: ghcr.io/moghtech/komodo-cli
## Optionally specify a specific folder with `--restore-folder`,
## otherwise restores the most recent backup.
command: km database restore -y # --restore-folder 2025-08-14_03-00-01
volumes:
# Same mount to backup files as above
- /opt/komodo/backups:/backups
environment:
## Database port must be reachable.
## Note the different env vars needed compared to backup.
## This is to prevent any accidental restores.
KOMODO_CLI_DATABASE_TARGET_ADDRESS: mongo:27017
KOMODO_CLI_DATABASE_TARGET_USERNAME: admin
KOMODO_CLI_DATABASE_TARGET_PASSWORD: #gentoo#
KOMODO_CLI_DATABASE_TARGET_DB_NAME: komodo
+30
View File
@@ -0,0 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIFIzCCAwugAwIBAgIUGyhkhG3aoGU1O26gMG/SPRWsZd8wDQYJKoZIhvcNAQEL
BQAwITELMAkGA1UEBhMCWFgxEjAQBgNVBAMMCXBlcmlwaGVyeTAeFw0yNTEwMTcw
NzE1MDhaFw0zNTEwMTUwNzE1MDhaMCExCzAJBgNVBAYTAlhYMRIwEAYDVQQDDAlw
ZXJpcGhlcnkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDT7vUXsI6v
EnLxiY7RRpk2bAIh6T+pYvwswnTg+zQKMPD+kdOQvjPnciYiTvVbkyZoD3MJxZhH
Mv9beFyJUuvEO3dDVGP1Q3Ipdhu3BEdguB9UtCJU90xjhisLHIoC7QSZXMczyrRt
Rve9wx+M2arlC8Jv7W2GjFeggoO/KlE4c/nWhDnAp45r6sOZ7Xh/WShpzWnuQbqK
k3fNBBXvb3xH22mJR+77rtaGsmjLCUcBs55dpSoJ5JM3ifQOOyQXpscdrFLFzFO+
QmrQpfWr0o2680RpIVkkyRv7F1BWtGwnD81B11N/juX9Op5LifXtbOiENah/04gn
KGxFrY2F1C+zR1E2oXmRDu3UZztJuvPCKlQ1UocOqVhZ5bdtokEu1Fh9de7TzvAI
u0nj9F3qdSeqvfIc3Ws+awAqOUznBUxIWvxj8lRmmSW6HwOal2ygkiE/dqzDj/i+
O4r1g6OrqL85N2k6I9qK8k8eiFxpbX41wQaJou1gw16thG+cLYI33iL/ufgcSCW0
Ac4EqaEYxtuWkzJ9kPAEmJ44uiGcXLNYd0L22AA6TxS3mSoqeoqAUeffLb+79o+z
PyGbbbeFfOVk5gDT84bjDYCSI+dBbkIWMadBcdo7EqHVHcflkyWlliQZNu312IG0
3wtlY/X1hwZtl3mmZ6odvwBzMyQSvbPNowIDAQABo1MwUTAdBgNVHQ4EFgQUjVis
eKIEeiTi0yC7W3Xq4lCd5dswHwYDVR0jBBgwFoAUjViseKIEeiTi0yC7W3Xq4lCd
5dswDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAnQfWFCKAew+S
5n52fDS84JYQTYp6aAodm4h9hkWrhdKf1fz8tvsYESdlRLWzUNiyjQHNADSXfDds
pp6jXLel9RCxhYkKNeygg3HIJE0Lik1ZApCqPWXgn2XMdR/M3h8K7f+v0ORLiW3M
YjswfZRuSsAvee2+QTUzxmiR+vCah2a10dDFf4hBeaD2MGxC3d9kQqxEux1sJOJ/
+uGgiknW7W5c2UdilabIVNTlbFd+sgoJUatsHsaj0wEbB2e0LLgxs/SIKzD4Nvrw
LrTo/zABVKlg3ZOeeDSlK3JVX3fF95jBf+qyLwuCB3vSiZCxwyYlXFYAAWLbmvMM
dPRI+qoR4woeIHoP8NCJSIqyy1Yvr/Z7Z3tnbrztxZhnAbuEeaDPjBjQajMXtp95
gZNd3bjbvUcJ3DdUeXYg5yMsOQBr5qlVXh9Vvl6SWqgexm5W9NVErxhobGGaIFwK
B+jwy8zBWclxk07tiudE6xqfOxabi+TO0vHGV98A0ZhUIemYQs6451uUOMDICkWI
rsSYwdD619Uo9/eZMZKqiosNgO7lqSwRl3PzXbYgIgJRN+K1PUnhJpHU9GcHi0sn
93FHSouXgCC/rtlr6Dl1MW5fx7xsbd9cHWO/KkPIYRXfKySAS1N2fI2pJwLegvoe
yFDDpmOEtm9FB9QmMCRXenuXiuXYDLs=
-----END CERTIFICATE-----
+52
View File
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
qEpsHAmiYPLhUTpDR4ZPkZxulstHuBblzXeJCaECggEBALyvRRM2TQOJno8wm0Tj
AtC4/dHUnXSvFL5u7W50gnOXFweW/0Vp72eTA5zxJp+e8Tadp6WqO8RBLUXpkdJ6
3V/bZsmPDT5edv4uwvAHWLECZBvap3ab9xCV+NVt8WUI8o/HET7vjFHGkaC1ek0h
Ac6dr4F0kXgamXi2KO/vXEMSjs2nshnuuKv40kS8o/LqCpTi1FD7p5T12OjgOk2N
+gPvYaHXcAiFqC18s/JHgKemHipbgO8g2rEu3gO8Nu+a3jKcjrfP1ywsmsUolrkI
N9WZ+AK5zpH1Y8PzZ7kjKeJaqBmDQrS5fEy0SStvI3WQTEpO+Xfi7IQPKbeTZkT4
CCkCggEBAOjoVcuxSz6NCKL+jJ6f0us5UBk2DzZ0ku7G9h0RWXWOgq3TFkeDBeyl
i6kpG233HqYwIr8cCY+0Tqp59fnhnhGSqKWsTY8+dFSbLtL7K+P/nX087vX0Nj7V
fx7ZHuofW1kVW73JxNHyGwN6Zzi3hRTcuMdFVq9qKm53gZOWKs7VhqkBhOCJ6Ozj
8xx7gtihDJ7UkMnKr7m+2Okd6wDiUtmSjDMMD6Pcj0fedr1ytdW46a5tW/twPKxh
EJBKE+7HsfudFBW73RyQxJu1gVs4tKsf7gP6nbOlHb6fSZEWcxS5dqE48EzA927q
BinQeyEqt+X3hwHWlAKFQ8acFHXMU38=
-----END PRIVATE KEY-----
+17
View File
@@ -0,0 +1,17 @@
services:
check-mk-raw:
stdin_open: true
tty: true
ports:
- 8083:5000
- 8000:8000
tmpfs: /opt/omd/sites/cmk/tmp:uid=1000,gid=1000
volumes:
- monitoring:/omd/sites
- /etc/localtime:/etc/localtime:ro
container_name: monitoring
restart: always
image: checkmk/check-mk-raw:2.4.0p17
volumes:
monitoring:
name: monitoring
+27
View File
@@ -0,0 +1,27 @@
services:
deconz:
container_name: deconz
restart: always
network_mode: host
volumes:
- /etc/localtime:/etc/localtime:ro
- /opt/deconz:/opt/deCONZ
devices:
- /dev/ttyUSB0
environment:
- DECONZ_DEVICE=/dev/ttyUSB0
- DECONZ_BAUDRATE=115200
- DECONZ_VNC_MODE=1
- DECONZ_VNC_PASSWORD=gentoo
- DECONZ_WEB_PORT=80
- DECONZ_WS_PORT=8443
- DEBUG_INFO=1
- DEBUG_APS=0
- DEBUG_ZCL=0
- DEBUG_ZDP=0
- DEBUG_OTA=0
- DEBUG_HTTP=0
- DEBUG_ERROR=0
- DECONS_START_VERBOSE=0
image: deconzcommunity/deconz:latest
networks: {}
+27
View File
@@ -0,0 +1,27 @@
services:
deconz:
container_name: deconz
restart: always
network_mode: host
volumes:
- /etc/localtime:/etc/localtime:ro
- /opt/deconz.old:/opt/deCONZ
devices:
- /dev/ttyACM0
environment:
- DECONZ_DEVICE=/dev/ttyACM0
# - DECONZ_BAUDRATE=115200
- DECONZ_VNC_MODE=1
- DECONZ_VNC_PASSWORD=gentoo
- DECONZ_WEB_PORT=80
- DECONZ_WS_PORT=443
- DECONZ_UPNP=1
- DEBUG_INFO=1
- DEBUG_APS=0
- DEBUG_ZCL=0
- DEBUG_ZDP=0
- DEBUG_OTA=0
- DEBUG_HTTP=0
- DECONS_START_VERBOSE=0
image: deconzcommunity/deconz
networks: {}
+8
View File
@@ -0,0 +1,8 @@
OPENID_AUTHORIZATION_ENDPOINT=https://auth.solusar.de/application/o/authorize/
OPENID_CLIENT_ID=9HsIPpBNLW29beN7nvRnahocram74nbzNLZszJLn
OPENID_ISSUER=https://auth.solusar.de/application/o/guacamole/
OPENID_JWKS_ENDPOINT=https://auth.solusar.de/application/o/guacamole/jwks/
OPENID_REDIRECT_URI=https://guacamole.solusar.de/guacamole/
OPENID_USERNAME_CLAIM_TYPE=preferred_username
OPENID_ENABLED=true
EXTENSION_PRIORITY=*,openid
+61
View File
@@ -0,0 +1,61 @@
services:
# guacd
guacd:
container_name: guacd
image: guacamole/guacd:1.6.0
networks:
- guacnetwork_compose
restart: always
volumes:
- /opt/guacamole/drive:/drive:rw
- /opt/guacamole/record:/record:rw
# postgres
postgres:
container_name: postgres
environment:
PGDATA: /var/lib/postgresql/data/guacamole
POSTGRES_DB: guacamole_db
POSTGRES_PASSWORD: 'eCVwK6rYFJYLjchR'
POSTGRES_USER: guacamole_user
image: postgres:15.2-alpine
networks:
- guacnetwork_compose
restart: always
volumes:
- /opt/guacamole/init:/docker-entrypoint-initdb.d:z
- /opt/guacamole/data:/var/lib/postgresql/data:Z
# guacamole
guacamole:
container_name: guacamole
group_add:
- "1000"
depends_on:
- guacd
- postgres
environment:
GUACD_HOSTNAME: guacd
POSTGRESQL_DATABASE: guacamole_db
POSTGRESQL_HOSTNAME: postgres
POSTGRESQL_PASSWORD: 'eCVwK6rYFJYLjchR'
POSTGRESQL_USERNAME: guacamole_user
RECORDING_SEARCH_PATH: /record
OPENID_ENABLED: "true"
OPENID_AUTHORIZATION_ENDPOINT: https://auth.solusar.de/application/o/authorize/
OPENID_CLIENT_ID: p6l9nrnjIo2BrYa2RTty8vprwsbYCn1PNhvhabOu
OPENID_ISSUER: https://auth.solusar.de/application/o/guacamole/
OPENID_JWKS_ENDPOINT: https://auth.solusar.de/application/o/guacamole/jwks/
OPENID_REDIRECT_URI: https://guacamole.solusar.de/guacamole/
OPENID_USERNAME_CLAIM_TYPE: preferred_username
EXTENSION_PRIORITY: openid
image: guacamole/guacamole:1.6.0
networks:
- guacnetwork_compose
volumes:
- /opt/guacamole/record:/record:rw
ports:
- 8080:8080/tcp # Guacamole is on :8080/guacamole, not /.
restart: always
networks:
guacnetwork_compose:
driver: bridge
+37
View File
@@ -0,0 +1,37 @@
services:
wyoming-whisper:
image: rhasspy/wyoming-whisper:2.5.0
container_name: ha-whisper
ports:
- 10300:10300
volumes:
- /opt/rhasspy/whisper:/data
# command: --model tiny-int8 --language en
command: --model tiny --language de
restart: unless-stopped
environment:
- TZ=Europe/Berlin
wyoming-piper:
container_name: ha-piper
image: rhasspy/wyoming-piper:1.3.2
command: --voice de_DE-ramona-low
volumes:
- /opt/rhasspy/piper-data:/data
environment:
- TZ=Europe/Berlin
restart: unless-stopped
ports:
- 10200:10200
networks: {}
# wyoming-openwakeword:
# image: rhasspy/wyoming-openwakeword
# container_name: ha-wakeword
# command: [ "--preload-model", "ok_nabu" ]
# volumes:
# - "/opt/rhasspy/openwakeword/custom-models:/custom"
# environment:
# - TZ=Europe/Berlin
# restart: unless-stopped
# ports:
# - 10400:10400
+21
View File
@@ -0,0 +1,21 @@
LAM_SKIP_PRECONFIGURE=false
LDAP_DOMAIN=realm.local
LDAP_BASE_DN=dc=ldap,dc=realm,dc=local
LDAP_USERS_DN=dc=ldap,dc=realm,dc=local
LDAP_GROUPS_DN=dc=ldap,dc=realm,dc=local
LDAP_SERVER=ldap://192.168.0.40:389
LDAP_USER=uid=lam93,cn=users,dc=ldap,dc=realm,dc=local
LAM_LANG=de_DE
LAM_PASSWORD=Moppel+Kotze4
LAM_CONFIGURE_CRON=false
LAM_CONFIGURATION_DATABASE=files
LAM_CONFIGURATION_HOST=
LAM_CONFIGURATION_PORT=
LAM_CONFIGURATION_USER=
LAM_CONFIGURATION_PASSWORD=
LAM_CONFIGURATION_DATABASE_NAME=
LAM_LICENSE=
LAM_DISABLE_TLS_CHECK=false
LDAP_ORGANISATION="LDAP Account Manager Demo"
LDAP_ADMIN_PASSWORD=adminpw
LDAP_READONLY_USER_PASSWORD=readonlypw
+20
View File
@@ -0,0 +1,20 @@
services:
ldap-account-manager:
image: ghcr.io/ldapaccountmanager/lam:stable
restart: unless-stopped
ports:
- "8084:80"
volumes:
- lamconfig:/var/lib/ldap-account-manager/config
environment:
- LAM_PASSWORD=${LAM_PASSWORD}
- LAM_LANG=de_DE
- LDAP_SERVER=${LDAP_SERVER}
- LDAP_DOMAIN=${LDAP_DOMAIN}
- LDAP_BASE_DN=${LDAP_BASE_DN}
- LDAP_USER=cn=admin,${LDAP_BASE_DN}
- DEBUG=true
hostname: ldap-account-manager
volumes:
lamconfig:
+4
View File
@@ -0,0 +1,4 @@
OT_RCP_DEVICE=spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200
OT_INFRA_IF=ens18
OT_THREAD_IF=wpan0
OT_LOG_LEVEL=7
+31
View File
@@ -0,0 +1,31 @@
services:
matter-server:
container_name: matter-server
image: ghcr.io/home-assistant-libs/python-matter-server:stable
restart: unless-stopped
network_mode: host # Critical for Thread network access
security_opt:
- apparmor=unconfined
volumes:
- /opt/matter:/data
otbr:
container_name: otbr
image: ghcr.io/ownbee/hass-otbr-docker
restart: unless-stopped
privileged: true
network_mode: host
environment:
DEVICE: "/dev/ttyACM0" # Replace with the device found in Step 1
FLOW_CONTROL: 1
FIREWALL: 1
NAT64: 1
BAUDRATE: 115200
OTBR_REST_PORT: 8081
OTBR_WEB_PORT: 7586
AUTOFLASH_FIRMWARE: 0
BACKBONE_IF: "ens18" # Replace with your network interface found in Step 3
devices:
- /dev/ttyACM0
volumes:
- /opt/otbr_data:/var/lib/thread
+64
View File
@@ -0,0 +1,64 @@
services:
database:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_DB: patchmon_db
POSTGRES_USER: patchmon_user
POSTGRES_PASSWORD: GQ22vbfGmcJC6ny3
volumes:
- /opt/patchmon/postgres_data:/var/lib/postgresql/data
healthcheck:
test:
- CMD-SHELL
- pg_isready -U patchmon_user -d patchmon_db
interval: 3s
timeout: 5s
retries: 7
redis:
image: redis:7-alpine
restart: unless-stopped
command: redis-server --requirepass M9zQvGGE5yUJufMG # CHANGE THIS TO YOUR REDIS PASSWORD
volumes:
- /opt/patchmon/redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "--no-auth-warning", "-a", "your-redis-password-here", "ping"] # CHANGE THIS TO YOUR REDIS PASSWORD
interval: 3s
timeout: 5s
retries: 7
backend:
image: ghcr.io/patchmon/patchmon-backend:latest
restart: unless-stopped
# See PatchMon Docker README for additional environment variables and configuration instructions
environment:
LOG_LEVEL: info
DATABASE_URL: postgresql://patchmon_user:GQ22vbfGmcJC6ny3@database:5432/patchmon_db
JWT_SECRET: 81093711ad0855badb44907c05b035e865d74d905e4c9b0d6b8b2cd076fa535ab8c54035e4e8aa0ad5f548ee357906bc3ac668a31003baeb1c5f7f5d10033e6d
SERVER_PROTOCOL: https
SERVER_HOST: patchmon.realm.local
SERVER_PORT: 443
CORS_ORIGIN: https://patchmon.realm.local
# Redis Configuration
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_PASSWORD: M9zQvGGE5yUJufMG # CHANGE THIS TO YOUR REDIS PASSWORD
REDIS_DB: 0
volumes:
- /opt/patchmon/agent_files:/app/agents
depends_on:
database:
condition: service_healthy
frontend:
image: ghcr.io/patchmon/patchmon-frontend:latest
restart: unless-stopped
ports:
- 3000:3000
depends_on:
backend:
condition: service_healthy
networks:
patchmon: {}
+15
View File
@@ -0,0 +1,15 @@
---
services:
projectsend:
image: lscr.io/linuxserver/projectsend:latest
container_name: projectsend
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- /opt/projectsend/config:/config
- /opt/docker/projectsend/data:/data
ports:
- 8083:80
restart: unless-stopped
+43
View File
@@ -0,0 +1,43 @@
services:
roundcubedb:
image: mysql:5.7
container_name: roundcubedb
restart: unless-stopped
volumes:
- /opt/roundcube/db/mysql:/var/lib/mysql
# ports:
# - 34010:5432
# - 33006:3306
environment:
- MYSQL_ROOT_PASSWORD=3FnPAnyxJcUR4Hzw
- MYSQL_DATABASE=roundcubemail
roundcubemail:
image: roundcube/roundcubemail:latest
container_name: roundcubemail
restart: unless-stopped
depends_on:
- roundcubedb
links:
- roundcubedb
volumes:
- /opt/roundcube/www/plugins/twofactor_gauthenticator:/var/www/html/plugins/twofactor_gauthenticator
ports:
- 9002:80
environment:
- ROUNDCUBEMAIL_DB_TYPE=mysql
- ROUNDCUBEMAIL_DB_HOST=roundcubedb
- ROUNDCUBEMAIL_DB_PASSWORD=3FnPAnyxJcUR4Hzw
- ROUNDCUBEMAIL_SKIN=elastic
- ROUNDCUBEMAIL_DEFAULT_HOST=ssl://mail.solusar.de
- ROUNDCUBEMAIL_DEFAULT_PORT=993
- ROUNDCUBEMAIL_SMTP_SERVER=tls://mail.solusar.de
- ROUNDCUBEMAIL_SMTP_PORT=587
- ROUNDCUBEMAIL_PLUGINS=twofactor_gauthenticator
adminer:
container_name: adminer
image: adminer
restart: always
ports:
- 8082:8080
environment:
ADMINER_DEFAULT_SERVER: roundcubedb