Code Schnippsel
📦 bentopdf
ORDNER: ../docker/bentopdf
# docker-compose.yml
services:
bentopdf:
image: ghcr.io/alam00000/bentopdf-simple:latest
ports:
- '3214:8080'
restart: unless-stopped
#
# Quelle: https://github.com/alam00000/bentopdf
# Image-Version angeben/festlegen:ghcr.io/alam00000/bentopdf-simple:v2.8.6
#
Display More
📦 Wallos (Abo-Kosten im Blick)
ORDNER: wallos
SUB-Ordner: wallos/db wallos/logo
services:
wallos:
container_name: wallos
image: bellamy/wallos:latest
ports:
- "8282:80"
environment:
TZ: Europe/Berlin
volumes:
- /volume1/docker/wallos/db:/var/www/html/db
- /volume1/docker/wallos/logos:/var/www/html/images/uploads/logos
restart: unless-stopped
healthcheck:
test: ["NONE"]
Display More
mit Healthcheck: (nicht empfohlen)
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
📦 Projekt SnapOtter
Ordner: /volume1/docker/snapotter
Standard Installation ohne GPU
services:
SnapOtter:
image: snapotter/snapotter:1.17.1
container_name: snapotter
ports:
# For internet-facing deployments, bind to localhost only:
# - "127.0.0.1:1349:1349"
- "1349:1349"
# devices: # mit GPU
# - /dev/dri:/dev/dri # mit GPU
volumes:
- /volume1/docker/snapotter/data:/data # Database, AI models, user files
- /volume1/docker/snapotter/workspace:/tmp/workspace # Temp processing (auto-cleaned)
environment:
- AUTH_ENABLED=true
- DEFAULT_USERNAME=admin
# Set a strong password. Default is 'admin' -- CHANGE THIS for any non-local deployment.
# - DEFAULT_PASSWORD=your-strong-password-here
- DEFAULT_PASSWORD=adminPass
# - LIBVA_DRIVER_NAME=iHD # mit GPU
- SKIP_MUST_CHANGE_PASSWORD=${SKIP_MUST_CHANGE_PASSWORD:-false}
- MAX_UPLOAD_SIZE_MB=${MAX_UPLOAD_SIZE_MB:-0}
- MAX_BATCH_SIZE=${MAX_BATCH_SIZE:-0}
- MAX_MEGAPIXELS=${MAX_MEGAPIXELS:-0}
- CONCURRENT_JOBS=${CONCURRENT_JOBS:-0}
- MAX_WORKER_THREADS=${MAX_WORKER_THREADS:-0}
- PROCESSING_TIMEOUT_S=${PROCESSING_TIMEOUT_S:-0}
- MAX_PIPELINE_STEPS=${MAX_PIPELINE_STEPS:-0}
- RATE_LIMIT_PER_MIN=${RATE_LIMIT_PER_MIN:-0}
- MAX_USERS=${MAX_USERS:-0}
- SESSION_DURATION_HOURS=${SESSION_DURATION_HOURS:-168}
- TRUST_PROXY=${TRUST_PROXY:-true}
# OIDC Authentication (optional)
# - EXTERNAL_URL=https://photos.example.com
# - OIDC_ENABLED=false
# - OIDC_ISSUER_URL=
# - OIDC_CLIENT_ID=
# - OIDC_CLIENT_SECRET=
# - OIDC_SCOPES=openid profile email
# - OIDC_AUTO_CREATE_USERS=true
# - OIDC_DEFAULT_ROLE=user
# - OIDC_AUTO_LINK_USERS=false
# - OIDC_PROVIDER_NAME=
# - OIDC_USERNAME_CLAIM=preferred_username
# - OIDC_CLOCK_TOLERANCE=30
# - COOKIE_SECRET=
restart: unless-stopped
# --- Security hardening ---
mem_limit: 6g
memswap_limit: 6g
cpus: 4
pids_limit: 512
cap_drop:
- ALL
cap_add:
- CHOWN
- SETUID
- SETGID
- DAC_OVERRIDE
- FOWNER
# NOTE: security_opt: [no-new-privileges:true] is intentionally omitted.
# gosu requires setuid to drop from root to the snapotter user.
# Mitigation: cap_drop: ALL limits available capabilities after privilege drop.
# NOTE: read_only: true is not set because PUID/PGID remapping requires
# writing to /etc/passwd and /etc/group. Consider using Docker --user flag
# instead of PUID/PGID for read-only rootfs support.
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:1349/api/v1/health"]
interval: 30s
timeout: 5s
start_period: 60s
retries: 3
shm_size: '2gb'
logging:
driver: json-file
options:
max-size: "50m"
max-file: "5"
volumes:
SnapOtter-data:
SnapOtter-workspace:
Display More
Erweiterte Installation mit GPU-Unterstützung (Änderungen)
...
devices:
- /dev/dri:/dev/dri
volumes:
...
environment:
...
- LIBVA_DRIVER_NAME=iHD
...
# GPU-Unterstützung prüfen:
sudo docker exec -it SnapOtter id
sudo docker exec -it SnapOtter ls -l /dev/dri
Wenn dort card0 und renderD128 erscheinen, ist die GPU erfolgreich im Container angekommen.
📦 Hawser-Agent installieren
AGENT_NAME: Frei wählbar
TOKEN: Frei wählbar
version: "3.8"
services:
hawser:
image: ghcr.io/finsys/hawser:latest
container_name: hawser
restart: unless-stopped
ports:
- "2376:2376"
environment:
TOKEN: "dockhand-ugreen-2026"
AGENT_NAME: "UGREEN-NAS"
PORT: "2376"
DOCKER_SOCKET: "/var/run/docker.sock"
LOG_LEVEL: "info"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Display More
📦 IT-Tools unter Docker
version: "3.8"
services:
it-tools:
image: ghcr.io/corentinth/it-tools:latest
container_name: it-tools
restart: unless-stopped
ports:
- "8085:80"
📦 Dockhand unter Docker installieren
#Ordner ./dockhand
Port: viriabel:3000
services:
dockhand:
image: fnsys/dockhand:latest
container_name: dockhand
ports:
- "3876:3000"
volumes:
- /volume1/docker/dockhand:/app/data
- /var/run/docker.sock:/var/run/docker.sock
restart: always
📦 Dockhand (optimierte Version/Synology)
#Ordner ./dockhand
Port: viriabel:3000
services:
dockhand:
image: fnsys/dockhand:latest
container_name: dockhand
ports:
- "3876:3000"
volumes:
- /volume1/docker/dockhand:/app/data
- /volume1/docker:/volume1/docker
- /var/run/docker.sock:/var/run/docker.sock
restart: always
Display More
✅ Link zur Artikelseite
✅ Portainer installieren (empfohlen: LTS-Version)
#Ordner: /portainer
#Console Befehl:
docker run -d \
-p 8000:8000 \
-p 8457:9443 \
--name=portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /Volume1/Docker/Portainer:/data \
portainer/portainer-ce:lts
✅ Portainer Registries hinzufügen
Name: beliebig
Quelle: ghcr.io und codeberg.org
✅ OpenSpeedTest (lokaler Speedtest-Server)
🔧 Port: 3310
📁 Daten: keine Volumes nötig
version: "3.8"
services:
openspeedtest:
image: openspeedtest/latest
container_name: openspeedtest
restart: unless-stopped
ports:
- "3310:3000"
📦 Watchtower – Automatische Updates für Docker-Container
Mit Watchtower kannst du deine Docker-Container automatisch aktualisieren lassen. Der folgende Befehl startet Watchtower im Hintergrund:
docker run -d \
--name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower
📚 Hoarder (jetzt KaraKeep) installieren
Hoarder – jetzt bekannt als KaraKeep – ist ein CLI-Tool zum automatisierten Herunterladen und Archivieren von Hörbüchern, Podcasts und Audio-Inhalten, sowie zum Verwalten von Favoriten. Installation via Docker:
services:
web:
image: ghcr.io/karakeep-app/karakeep:latest
container_name: Karakeep-WEB
restart: on-failure:4
volumes:
# By default, the data is stored in a docker volume called "data"
# If you want to mount a custom directory, change the volume mapping to:
# - /path/to/your/directory:/data
- /volume1/docker/karakeep/data:/data:rw
ports:
# By default, the port is 3000, you can change it
- 3033:3000
environment:
MEILI_ADDR: http://meilisearch:7700
BROWSER_WEB_URL: http://chrome:9222
# OPENAI_API_KEY: [dein-openai-api-key]
DATA_DIR: /data
NEXTAUTH_SECRET: [YourRandomSecureKey]
MEILI_MASTER_KEY: [YourMeiliMasterKey] #WICHTIG der muss unten noch einmal rein
chrome:
image: gcr.io/zenika-hub/alpine-chrome:123
container_name: Karakeep-CHROME
restart: on-failure:4
command:
- --no-sandbox
- --disable-gpu
- --remote-debugging-address=0.0.0.0
- --remote-debugging-port=9222
meilisearch:
image: getmeili/meilisearch:v1.6
container_name: Karakeep-MEILI
restart: on-failure:4
volumes:
- /volume1/docker/karakeep/meili:/meili_data:rw
environment:
MEILI_MASTER_KEY: [YourMeiliMasterKey]
MEILI_NO_ANALYTICS: true
Display More
🔐 Hinweis:
Ersetze YourRandomSecureKeyund YourMeiliMasterKeyim obigen Code mit deinen eigenen Schlüsseln.
Verwende dafür den Token-Generator:
👉 https://it-tools.tech/token-generato…4&numbers=false
und für Meili: https://it-tools.tech/token-generator?length=32
Beispiel-Platzhalter:
NEXTAUTH_SECRET: [YourRandomSecureKey]
MEILI_MASTER_KEY: [YourMeiliMasterKey]
📦 Heimdall unter Synology
Heimdall ist ein übersichtliches Dashboard, mit dem du deine wichtigsten Web-Anwendungen und Links zentral an einem Ort verwalten kannst. Mit dieser Docker-Compose Vorlage kannst du Heimdall ganz einfach auf deiner Synology starten.
version: "3.8"
services:
heimdall:
image: lscr.io/linuxserver/heimdall:latest
container_name: heimdall
environment:
- PUID=1026 # <-- anpassen: Benutzer-ID (id <deinuser>)
- PGID=100 # <-- anpassen: Gruppen-ID (id <deinuser>)
- TZ=Europe/Berlin
volumes:
- /volume1/docker/heimdall/config:/config
ports:
- "8081:80" # HTTP extern:intern
- "444:443" # HTTPS extern:intern (optional)
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/"]
interval: 30s
timeout: 5s
retries: 5
# Optional: eigenes Netzwerk statt default-bridge
# networks:
# default:
# name: heimdall_net
# driver: bridge
Display More
📦 Heimdall unter proxmox (cli)
---
services:
heimdall:
image: lscr.io/linuxserver/heimdall:latest
container_name: heimdall
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
- ALLOW_INTERNAL_REQUESTS=false #optional
volumes:
- /heimdall-data:/config
ports:
- 80:80
- 443:443
restart: unless-stopped
Display More
📦 Jellyfin unter Docker installieren
---
services:
jellyfin:
image: ghcr.io/linuxserver/jellyfin
container_name: jellyfin
environment:
- PUID=1024
- PGID=100
- TZ=Europe/Berlin
- JELLYFIN_PublishedServerUrl=192.168.0.10 #optional
volumes:
- /volume1/docker/jellyfin/config:/config
- /volume1/docker/jellyfin/data/series:/tv
- /volume1/docker/jellyfin/data/movies:/movies
- /volume1/docker/jellyfin/data/music:/music
# - /opt/vc/lib:/opt/vc/lib #optional
ports:
- 8096:8096
restart: on-failure:5
Display More
weitere Schnipsel folgen
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!