Table of Contents
OMV-Nextcloud Home Server
Docker Compose
Anmeldung mit Token
Copy access token
Use this token as a password when you sign in from the Docker CLI client. Learn more
Make sure you copy your personal access token now. Your personal access token is only displayed once. It isn't stored and can't be retrieved later.
Access token description
OMV7Docker
Expires on
Never
Access permissions
Public Repo Read-only
To use the access token from your Docker CLI client:
1. Run
docker login -u sommerb1969
2. At the password prompt, enter the personal access token.
dckr_pat_4xOUTJEOpwLWLKGZwrpRkOv6zmA
BookStack
Docker Compose
services:
bookstack:
image: lscr.io/linuxserver/bookstack:latest
container_name: bookstack
environment:
- PUID=1004 # ggf. an deinen OMV-Benutzer anpassen (id -u deinuser)
- PGID=100 # ggf. an deine Gruppe anpassen (id -g deinuser)
- TZ=Europe/Berlin
- APP_URL=https://bookstack.ads26.home64.de # WICHTIG: mit https und deiner Subdomain!
- DB_HOST=bookstack_db
- DB_USER=bookstack
- DB_PASS=Bootstack1969 # bitte direkt ändern!
- DB_DATABASE=bookstackapp
volumes:
- /srv/dev-disk-by-uuid-19b4ff80-89ec-4075-91d0-29f7cba9a5e9/docker_config/bookstack/config:/config
restart: unless-stopped
depends_on:
- bookstack_db
networks:
- caddy_network
# KEIN ports: Eintrag → nur intern erreichbar!
bookstack_db:
image: mariadb:10.11
container_name: bookstack_db
environment:
- MYSQL_ROOT_PASSWORD=Bootstack1969
- MYSQL_DATABASE=bookstackapp
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=Bootstack1969
volumes:
- /srv/dev-disk-by-uuid-19b4ff80-89ec-4075-91d0-29f7cba9a5e9/docker_config/bookstack/mysql:/var/lib/mysql
restart: unless-stopped
networks:
- caddy_network
networks:
caddy_network: name: caddy_network # muss exakt so heißen wie das Netzwerk deines Caddy-Containers! external: true # weil Caddy ja schon läuft und dieses Netzwerk besitzt
Nextcloud
Nextcloud Docker Compose
docker-compose.yml————————————————————————————- services:
nextcloud:
image: lscr.io/linuxserver/nextcloud:latest
container_name: nextcloud
environment:
- PUID=1004
- PGID=100
- TZ=Europe/Berlin
volumes:
- /srv/dev-disk-by-uuid-19b4ff80-89ec-4075-91d0-29f7cba9a5e9/docker_data/nextcloud/config:/config
- /srv/dev-disk-by-uuid-19b4ff80-89ec-4075-91d0-29f7cba9a5e9/docker_data/data:/data
depends_on:
mariadb:
condition: service_healthy
redis:
condition: service_started
restart: unless-stopped
networks:
- caddy-net
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80/status.php"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
deploy:
resources:
limits:
memory: 2G
reservations:
memory: 512M
mariadb:
image: lscr.io/linuxserver/mariadb:latest
container_name: mariadb
environment:
- PUID=1004
- PGID=100
- TZ=Europe/Berlin
- MYSQL_ROOT_PASSWORD=Nextcloud1969
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=Nextcloud1969
volumes:
- /srv/dev-disk-by-uuid-19b4ff80-89ec-4075-91d0-29f7cba9a5e9/docker_data/mariadb/config:/config
restart: unless-stopped
networks:
- caddy-net
healthcheck:
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
redis:
image: redis:alpine
container_name: redis
command: redis-server --save 60 1 --loglevel warning --requirepass Nextcloud1969
volumes:
- /srv/dev-disk-by-uuid-19b4ff80-89ec-4075-91d0-29f7cba9a5e9/docker_data/redis:/data
restart: unless-stopped
networks:
- caddy-net
healthcheck:
test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
interval: 30s
timeout: 10s
retries: 3
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 128M
# Optional: Cron für Nextcloud-Hintergrundaufgaben # Das LinuxServer.io Image hat einen eingebauten Cron, daher ist dieser Container optional # Falls gewünscht, kann dieser Block aktiviert werden # nextcloud-cron: # image: lscr.io/linuxserver/nextcloud:latest # container_name: nextcloud-cron # environment: # - PUID=1004 # - PGID=100 # - TZ=Europe/Berlin # volumes: # - /srv/dev-disk-by-uuid-19b4ff80-89ec-4075-91d0-29f7cba9a5e9/docker_data/nextcloud/config:/config # - /srv/dev-disk-by-uuid-19b4ff80-89ec-4075-91d0-29f7cba9a5e9/docker_data/data:/data # entrypoint: /cron.sh # depends_on: # - nextcloud # restart: unless-stopped # networks: # - caddy-net # deploy: # resources: # limits: # memory: 512M
networks:
caddy-net: external: true
Nextcloud config.php
nextcloud/config/config.php———————————————————————————
<?php $CONFIG = array (
'instanceid' => 'ocd1uqzo1smq', 'passwordsalt' => '6DF4HLXWiOHOfGX5qu6qJiYWTHxLnU', 'secret' => 'Ur6Fp2nzsOZX+YnM4s+68ezt7o/+ibsZy1/iFEnWUyOamMEq', 'trusted_domains' => array ( 0 => 'localhost', 1 => '192.168.7.1', 2 => 'nextcloud.ads26.home64.de', 3 => 'ads26.home64.de', ), 'datadirectory' => '/data', 'dbtype' => 'mysql', 'version' => '32.0.2.2', 'overwrite.cli.url' => 'https://nextcloud.ads26.home64.de', 'overwriteprotocol' => 'https', 'overwritehost' => 'nextcloud.ads26.home64.de', 'dbname' => 'nextcloud', 'dbhost' => 'mariadb', 'dbport' => '', 'dbtableprefix' => 'oc_', 'mysql.utf8mb4' => true, 'dbuser' => 'nextcloud', 'dbpassword' => 'Nextcloud1969', 'trusted_proxies' => array ( 0 => '127.0.0.1', 1 => '::1', 2 => '172.16.0.0/12', ), 'forwarded_for_headers' => array ( 0 => 'HTTP_X_FORWARDED_FOR', 1 => 'HTTP_X_REAL_IP', ), 'memcache.local' => '\\OC\\Memcache\\Redis', 'memcache.distributed' => '\\OC\\Memcache\\Redis', 'memcache.locking' => '\\OC\\Memcache\\Redis', 'redis' => array ( 'host' => 'redis', 'port' => 6379, 'password' => 'Nextcloud1969', 'timeout' => 0.0, 'dbindex' => 0, ),
Caddy
Caddyfile
Caddyfile——————————————————————————- nano /srv/dev-disk-by-uuid-19b4ff80-89ec-4075-91d0-29f7cba9a5e9/docker_data/caddy/conf/Caddyfile
# Globale Einstellungen (gilt für alle Domains) {
email bernd@sommersweb.de
}
# Security-Header-Snippet (security_headers) {
header {
X-Content-Type-Options nosniff
X-Frame-Options SAMEORIGIN
X-XSS-Protection "1; mode=block"
Referrer-Policy strict-origin-when-cross-origin
Strict-Transport-Security "max-age=31536000; includeSubDomains"
}
}
# Nextcloud nextcloud.ads26.home64.de {
import security_headers reverse_proxy nextcloud:80
}
# n8n n8n.ads26.home64.de {
import security_headers reverse_proxy n8n:5678
}
# DokuWiki dokuwiki.ads26.home64.de {
import security_headers reverse_proxy dokuwiki:80
}
# PhotoPrism photoprism.ads26.home64.de {
import security_headers reverse_proxy photoprism:2342
}
Photoprism
–> Direkt als OVM Plugin installiert!!
Immich Installation
Docker Compose
services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
volumes:
- /srv/dev-disk-by-uuid-19b4ff80-89ec-4075-91d0-29f7cba9a5e9/immich_data:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
environment:
# Datenbank-Konfiguration - WICHTIG!
DB_HOSTNAME: immich_postgres
DB_USERNAME: immich
DB_PASSWORD: Immich1969
DB_DATABASE_NAME: immich
# Redis-Konfiguration
REDIS_HOSTNAME: immich_redis
# Weitere Einstellungen
LOG_LEVEL: log
TZ: Europe/Berlin
ports:
- '2283:3001'
depends_on:
- redis
- database
restart: always
healthcheck:
disable: false
immich-machine-learning:
container_name: immich_machine_learning
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- /srv/dev-disk-by-uuid-19b4ff80-89ec-4075-91d0-29f7cba9a5e9/immich_model:/cache
environment:
TZ: Europe/Berlin
restart: always
healthcheck:
disable: false
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-alpine
restart: always
healthcheck:
test: valkey-cli ping || exit 1
interval: 30s
timeout: 3s
retries: 3
database:
container_name: immich_postgres
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0
environment:
POSTGRES_PASSWORD: Immich1969
POSTGRES_USER: immich
POSTGRES_DB: immich
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
- /srv/dev-disk-by-uuid-19b4ff80-89ec-4075-91d0-29f7cba9a5e9/immich_db:/var/lib/postgresql/data
command: ["postgres", "-c", "shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U immich -d immich"]
interval: 10s
timeout: 5s
retries: 5
