Compare commits

...

9 Commits

20 changed files with 381 additions and 103 deletions

View File

@@ -1,19 +0,0 @@
services:
postgres:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: ''
net.unraid.docker.webui: ''
net.unraid.docker.shell: ''
backend:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: ''
net.unraid.docker.webui: ''
net.unraid.docker.shell: ''
frontend:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: ''
net.unraid.docker.webui: ''
net.unraid.docker.shell: ''

View File

@@ -1,74 +0,0 @@
services:
postgres:
image: postgres:18-alpine
container_name: mokka-postgres
environment:
POSTGRES_DB: mokka
POSTGRES_USER: mokka
POSTGRES_PASSWORD: mokka
volumes:
- /mnt/user/appdata/mokka:/var/lib/postgresql
labels:
- folder.view2=Databases
healthcheck:
test: ["CMD-SHELL", "pg_isready -U mokka -d mokka"]
interval: 5s
timeout: 3s
retries: 20
backend:
image: registry.reset.inso-w.at/2025ws-ase-pr-group/25ws-ase-pr-qse-01/mokka-backend:latest
container_name: mokka-backend
depends_on:
postgres:
condition: service_healthy
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/mokka
SPRING_DATASOURCE_USERNAME: mokka
SPRING_DATASOURCE_PASSWORD: mokka
APP_CORS_ALLOWED_ORIGINS: "https://${FULL_DOMAIN}"
labels:
- folder.view2=Services
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:8080/actuator/health >/dev/null 2>&1 || exit 1"]
interval: 5s
timeout: 3s
retries: 30
frontend:
image: registry.reset.inso-w.at/2025ws-ase-pr-group/25ws-ase-pr-qse-01/mokka-frontend:latest
container_name: mokka-frontend
depends_on:
backend:
condition: service_healthy
environment:
BACKEND_URL: "http://backend:8080"
networks:
- default
- pangolin
labels:
- net.unraid.docker.webui=https://${FULL_DOMAIN}
- folder.view2=Services
- pangolin.public-resources.mokka-frontend.name=ASE MOKKA
- pangolin.public-resources.mokka-frontend.full-domain=${FULL_DOMAIN}
- pangolin.public-resources.mokka-frontend.protocol=http
- pangolin.public-resources.mokka-frontend.auth.sso-enabled=true
- pangolin.public-resources.mokka-frontend.auth.password=ase-2026
- pangolin.public-resources.mokka-frontend.targets[0].method=http
- pangolin.public-resources.mokka-frontend.targets[0].port=80
- pangolin.public-resources.mokka-frontend.targets[0].healthcheck.enabled=true
- pangolin.public-resources.mokka-frontend.targets[0].healthcheck.hostname=mokka-frontend
- pangolin.public-resources.mokka-frontend.targets[0].healthcheck.port=80
- pangolin.public-resources.mokka-frontend.targets[0].healthcheck.path=/
- pangolin.public-resources.mokka-frontend.targets[0].healthcheck.method=GET
- pangolin.public-resources.mokka-frontend.targets[0].healthcheck.status=200
- pangolin.public-resources.mokka-frontend.targets[0].healthcheck.interval=30
- pangolin.public-resources.mokka-frontend.targets[0].healthcheck.timeout=5
networks:
pangolin:
name: pangolin_net
external: true

View File

@@ -1 +0,0 @@
ase-mokka

View File

@@ -0,0 +1,7 @@
services:
borgmatic:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/borgmatic.png'
net.unraid.docker.webui: ''
net.unraid.docker.shell: ''

18
backup/docker-compose.yml Normal file
View File

@@ -0,0 +1,18 @@
services:
borgmatic:
image: ghcr.io/borgmatic-collective/borgmatic:latest
container_name: borgmatic
volumes:
- /mnt/user/nextcloud-data/tonitrus/files/documents/Schule:/mnt/source:ro # backup source
- /mnt/remotes/10.0.0.50_home/Drive/backup-cube-test:/mnt/borg-repository # backup target
- /mnt/user/appdata/borgmatic/borgmatic.d:/etc/borgmatic.d/ # borgmatic config file(s) + crontab.txt
- /mnt/user/appdata/borgmatic/.config/borg:/root/.config/borg # config and keyfiles
- /mnt/user/appdata/borgmatic/.ssh:/root/.ssh # ssh key for remote repositories
- /mnt/user/appdata/borgmatic/.cache/borg:/root/.cache/borg # checksums used for deduplication
- /mnt/user/appdata/borgmatic/.state/borgmatic:/root/.local/state/borgmatic # Here are the state files for periodic checks
env_file:
- .env
labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/borgmatic.png"
net.unraid.docker.shell: sh
folder.view2: "Services"

1
backup/name Normal file
View File

@@ -0,0 +1 @@
backup

1
immich/autostart Normal file
View File

@@ -0,0 +1 @@
true

View File

@@ -0,0 +1,25 @@
services:
immich-server:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/immich.png'
net.unraid.docker.webui: ''
net.unraid.docker.shell: ''
immich-machine-learning:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/immich.png'
net.unraid.docker.webui: ''
net.unraid.docker.shell: ''
redis:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/redis.png'
net.unraid.docker.webui: ''
net.unraid.docker.shell: ''
database:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/postgresql.png'
net.unraid.docker.webui: ''
net.unraid.docker.shell: ''

132
immich/docker-compose.yml Normal file
View File

@@ -0,0 +1,132 @@
#
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
#
# Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#name: immich
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities:
- gpu
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/data
- /etc/localtime:/etc/localtime:ro
ports:
- "2283:2283"
env_file:
- .env
depends_on:
- redis
- database
restart: always
healthcheck:
disable: false
networks:
- default
- pangolin
labels:
- net.unraid.docker.icon=https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/immich.png
- net.unraid.docker.webui=https://${FULL_DOMAIN}
- folder.view2=Services
- pangolin.public-resources.immich-server.name=${RESOURCE_NAME}
- pangolin.public-resources.immich-server.full-domain=${FULL_DOMAIN}
- pangolin.public-resources.immich-server.protocol=http
- pangolin.public-resources.immich-server.auth.sso-enabled=true
- pangolin.public-resources.immich-server.auth.sso-roles[0]=Member
- pangolin.public-resources.immich-server.targets[0].method=http
- pangolin.public-resources.immich-server.targets[0].healthcheck.enabled=true
- pangolin.public-resources.immich-server.targets[0].healthcheck.hostname=immich-server
- pangolin.public-resources.immich-server.targets[0].healthcheck.port=2283
- pangolin.public-resources.immich-server.targets[0].healthcheck.path=/
- pangolin.public-resources.immich-server.targets[0].healthcheck.method=GET
- pangolin.public-resources.immich-server.targets[0].healthcheck.status=200
- pangolin.public-resources.immich-server.targets[0].healthcheck.interval=30
- pangolin.public-resources.immich-server.targets[0].healthcheck.timeout=5
- pangolin.public-resources.immich-server.rules[0].action=allow
- pangolin.public-resources.immich-server.rules[0].match=path
- pangolin.public-resources.immich-server.rules[0].value=/api/*
- pangolin.public-resources.immich-server.rules[1].action=allow
- pangolin.public-resources.immich-server.rules[1].match=path
- pangolin.public-resources.immich-server.rules[1].value=/.well-known/immich
immich-machine-learning:
container_name: immich_machine_learning
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
# Example tag: ${IMMICH_VERSION:-release}-cuda
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-cuda
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities:
- gpu
volumes:
- model-cache:/cache
env_file:
- .env
restart: always
healthcheck:
disable: false
labels:
- net.unraid.docker.icon=https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/immich.png
- folder.view2=Services
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:9@sha256:546304417feac0874c3dd576e0952c6bb8f06bb4093ea0c9ca303c73cf458f63
healthcheck:
test: redis-cli ping || exit 1
restart: always
labels:
- net.unraid.docker.icon=https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/redis.png
- folder.view2=Databases
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
# Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
# DB_STORAGE_TYPE: 'HDD'
volumes:
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
shm_size: 128mb
restart: always
healthcheck:
disable: false
labels:
- net.unraid.docker.icon=https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/postgresql.png
- folder.view2=Databases
volumes:
model-cache:
networks:
pangolin:
name: pangolin_net
external: true

1
immich/name Normal file
View File

@@ -0,0 +1 @@
immich

View File

@@ -1,12 +1,31 @@
services:
it-tools:
image: 'corentinth/it-tools:latest'
image: corentinth/it-tools:latest
container_name: it-tools
networks:
- pangolin
labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/it-tools.png"
net.unraid.docker.webui: "https://tools.homecube.org/"
folder.view2: "Services"
- net.unraid.docker.icon=https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/it-tools.png
- net.unraid.docker.webui=https://${FULL_DOMAIN}
- folder.view2=Services
- pangolin.public-resources.it-tools.name=IT-Tools
- pangolin.public-resources.it-tools.full-domain=${FULL_DOMAIN}
- pangolin.public-resources.it-tools.protocol=http
- pangolin.public-resources.it-tools.auth.sso-enabled=true
- pangolin.public-resources.it-tools.auth.sso-roles[0]=Member
- pangolin.public-resources.it-tools.targets[0].method=http
- pangolin.public-resources.it-tools.targets[0].healthcheck.enabled=true
- pangolin.public-resources.it-tools.targets[0].healthcheck.hostname=it-tools
- pangolin.public-resources.it-tools.targets[0].healthcheck.port=80
- pangolin.public-resources.it-tools.targets[0].healthcheck.path=/
- pangolin.public-resources.it-tools.targets[0].healthcheck.method=GET
- pangolin.public-resources.it-tools.targets[0].healthcheck.status=200
- pangolin.public-resources.it-tools.targets[0].healthcheck.interval=30
- pangolin.public-resources.it-tools.targets[0].healthcheck.timeout=5
networks:
pangolin:

View File

@@ -5,9 +5,21 @@ services:
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/ollama.png'
net.unraid.docker.webui: ''
net.unraid.docker.shell: 'bash'
openwebui:
open-webui:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/open-webui.png'
net.unraid.docker.webui: 'https://ai.homecube.org/'
net.unraid.docker.shell: ''
blinko:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/blinko.png'
net.unraid.docker.webui: 'https://${BLINKO_URL}'
net.unraid.docker.shell: ''
blinko-db:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/postgresql.png'
net.unraid.docker.webui: ''
net.unraid.docker.shell: ''

View File

@@ -1,6 +1,7 @@
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
tty: true
ports:
- "11434:11434" # Ollama API
@@ -15,8 +16,9 @@ services:
net.unraid.docker.shell: bash
folder.view2: "Services"
openwebui:
open-webui:
image: ghcr.io/open-webui/open-webui:main-slim
container_name: open-webui
depends_on:
- ollama
ports:
@@ -33,3 +35,64 @@ services:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/open-webui.png"
net.unraid.docker.webui: "https://ai.homecube.org/"
folder.view2: "Services"
blinko-db:
image: postgres:15-alpine
container_name: blinko-db
environment:
POSTGRES_USER: blinko
POSTGRES_PASSWORD: blinko
POSTGRES_DB: blinko
volumes:
- /mnt/user/appdata/blinko/db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U blinko"]
interval: 10s
timeout: 5s
retries: 5
labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/postgresql.png"
folder.view2: "Databases"
blinko:
image: blinkospace/blinko:latest
container_name: blinko
networks:
- default
- pangolin
depends_on:
blinko-db:
condition: service_healthy
ollama:
condition: service_started
environment:
- DATABASE_URL=postgresql://blinko:blinko@blinko-db:5432/blinko
- NEXTAUTH_SECRET=${BLINKO_AUTH_SECRET}
- NEXTAUTH_URL=https://${BLINKO_URL}
labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/blinko.png"
net.unraid.docker.webui: "https://${BLINKO_URL}"
folder.view2: "Services"
pangolin.public-resources.blinko.name: ${BLINKO_RESOURCE_NAME}
pangolin.public-resources.blinko.full-domain: ${BLINKO_URL}
pangolin.public-resources.blinko.protocol: http
pangolin.public-resources.blinko.auth.sso-enabled: true
pangolin.public-resources.blinko.auth.sso-roles[0]: Member
pangolin.public-resources.blinko.targets[0].method: http
pangolin.public-resources.blinko.targets[0].healthcheck.enabled: true
pangolin.public-resources.blinko.targets[0].healthcheck.hostname: blinko
pangolin.public-resources.blinko.targets[0].healthcheck.port: 1111
pangolin.public-resources.blinko.targets[0].healthcheck.path: /
pangolin.public-resources.blinko.targets[0].healthcheck.method: GET
pangolin.public-resources.blinko.targets[0].healthcheck.status: 200
pangolin.public-resources.blinko.targets[0].healthcheck.interval: 30
pangolin.public-resources.blinko.targets[0].healthcheck.timeout: 5
networks:
pangolin:
name: pangolin_net
external: true

View File

@@ -1,6 +1,7 @@
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
networks:
- pangolin
environment:
@@ -10,7 +11,7 @@ services:
- /mnt/user/appdata/vaultwarden/data:/data/
labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/bitwarden.png"
net.unraid.docker.webui: "https://vw.homecube.org/"
net.unraid.docker.webui: "${DOMAIN}"
folder.view2: "Services"
networks:

View File

@@ -1,6 +1,6 @@
services:
newt:
image: fosrl/newt:1.6.0
image: fosrl/newt:1.8.1
networks:
- pangolin
container_name: newt

View File

@@ -5,3 +5,9 @@ services:
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/home-assistant.png'
net.unraid.docker.webui: 'https://home-assistant.homecube.org'
net.unraid.docker.shell: ''
matter-server:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/home-assistant.png'
net.unraid.docker.webui: ''
net.unraid.docker.shell: ''

View File

@@ -1,6 +1,6 @@
services:
home-assistant:
image: "ghcr.io/home-assistant/home-assistant:stable"
image: ghcr.io/home-assistant/home-assistant:stable
container_name: home-assistant
privileged: true
network_mode: host
@@ -13,3 +13,49 @@ services:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/home-assistant.png"
net.unraid.docker.webui: "https://home-assistant.homecube.org"
folder.view2: "Services"
# hass_otbr:
# container_name: hass_otbr
# privileged: true
# image: ghcr.io/ownbee/hass-otbr-docker
# restart: unless-stopped
# network_mode: host
# cap_add:
# - SYS_ADMIN
# - NET_ADMIN
# environment:
# DEVICE: "/dev/ttyUSB1"
# BACKBONE_IF: br0
# FLOW_CONTROL: 0
# FIREWALL: 1
# NAT64: 1
# BAUDRATE: 460800
# OTBR_REST_PORT: 8061
# OTBR_WEB_PORT: 8060
# AUTOFLASH_FIRMWARE: 0
# devices:
# - source: /dev/serial/by-id/usb-Espressif_USB_JTAG_serial_debug_unit_98:A3:16:8E:32:C0-if00
# target: /dev/ttyUSB1
# permissions: rwm
# volumes:
# - /mnt/user/appdata/hass_otbr:/var/lib/thread
# labels:
# folder.view2: "Services"
matter-server:
image: ghcr.io/matter-js/python-matter-server:stable
restart: unless-stopped
container_name: matter-server
# Required for mDNS to work correctly
network_mode: host
security_opt:
# Needed for Bluetooth via dbus
- apparmor:unconfined
volumes:
# Create an .env file that sets the USERDIR environment variable.
- /mnt/user/appdata/matter-server/data:/data/
# Required for Bluetooth via D-Bus
- /run/dbus:/run/dbus:ro
labels:
net.unraid.docker.icon: "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/refs/heads/main/png/matter.png"
folder.view2: "Services"

View File

@@ -0,0 +1,7 @@
services:
speedtest:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/librespeed-icon.png'
net.unraid.docker.webui: 'https://speedtest.homecube.org'
net.unraid.docker.shell: ''

View File

@@ -0,0 +1,32 @@
services:
speedtest:
image: ghcr.io/librespeed/speedtest:latest
container_name: librespeed-speedtest
networks:
- pangolin
labels:
- net.unraid.docker.icon=https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/librespeed-icon.png
- net.unraid.docker.webui=https://${FULL_DOMAIN}
- folder.view2=Services
- pangolin.public-resources.librespeed-speedtest.name=Speedtest (LibreSpeed)
- pangolin.public-resources.librespeed-speedtest.full-domain=${FULL_DOMAIN}
- pangolin.public-resources.librespeed-speedtest.protocol=http
- pangolin.public-resources.librespeed-speedtest.auth.sso-enabled=true
- pangolin.public-resources.librespeed-speedtest.targets[0].method=http
- pangolin.public-resources.librespeed-speedtest.targets[0].port=8080
- pangolin.public-resources.librespeed-speedtest.targets[0].healthcheck.enabled=true
- pangolin.public-resources.librespeed-speedtest.targets[0].healthcheck.hostname=librespeed-speedtest
- pangolin.public-resources.librespeed-speedtest.targets[0].healthcheck.port=8080
- pangolin.public-resources.librespeed-speedtest.targets[0].healthcheck.path=/
- pangolin.public-resources.librespeed-speedtest.targets[0].healthcheck.method=GET
- pangolin.public-resources.librespeed-speedtest.targets[0].healthcheck.status=200
- pangolin.public-resources.librespeed-speedtest.targets[0].healthcheck.interval=30
- pangolin.public-resources.librespeed-speedtest.targets[0].healthcheck.timeout=5
networks:
pangolin:
name: pangolin_net
external: true

1
speedtest/name Normal file
View File

@@ -0,0 +1 @@
speedtest