Site Tools


start

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

Paperles-ngx Installation

Docker Compose yml

start.txt · Last modified: by 192.168.7.102