Compare commits

...

36 Commits

Author SHA1 Message Date
Borgal
747a35e172 Containerquelle auf php:8.3 geändert 2025-09-18 15:02:45 +00:00
abdf5f660a paperless/README.md aktualisiert 2025-08-20 22:10:16 +00:00
Borgal
9dde4b5a25 Änderung DNS 2025-04-08 20:07:40 +00:00
Borgal
1a004a8490 env File angepasst 2025-04-02 19:31:15 +00:00
Borgal
72f4eb56f9 homeassistant/config angepasst 2025-02-07 09:04:27 +00:00
Borgal
f412d0889c homeassistant/config angepasst 2025-02-07 09:02:47 +00:00
Borgal
4f0d9f10a4 vdr/Searchtime neu eingelesen 2025-01-14 17:59:43 +00:00
Borgal
e830b0983b watchtower/Test für Monitor only zurückgenomme, da ohne Funktion 2025-01-14 10:10:58 +00:00
Borgal
f552e62ada vpn/Default DNS auf Adgurd IP angepasst 2025-01-14 10:09:19 +00:00
Borgal
bff16494fa homeassistant/USB Device Adresse angepasst 2025-01-14 10:07:51 +00:00
Borgal
96fb419f7d duplicati/Webservice Passwort hinzugefügt 2025-01-14 10:07:03 +00:00
Borgal
70896a9c83 bitwarden/Admin_Token hinzugefügt um Adminpage zu öffnen - benötigt für eMail 2025-01-14 10:03:32 +00:00
Borgal
ab7fced15f vpn/DNS angepasst 2024-11-26 23:43:40 +00:00
Borgal
fd74551bc2 paperless/Quellen aktualisiert und IPV6 entfernt 2024-11-26 23:40:47 +00:00
Borgal
a6dfd7c820 kasm/initial hinzugefügt 2024-11-17 21:04:19 +00:00
Borgal
30c22ce093 jellyfin/initial hinzugefügt 2024-11-17 21:03:58 +00:00
Borgal
c85101b221 webdav/Photo entfernt 2024-11-17 21:01:55 +00:00
Borgal
00128f9b55 grafana/chronograph hinzugefügt 2024-11-17 20:54:49 +00:00
Borgal
ce78560129 bitwarden/Auf Alpine Image gewechselt 2024-11-17 20:53:47 +00:00
Borgal
e91cec5420 proxy/auf latest Image gewechselt 2024-11-17 20:52:39 +00:00
Borgal
8b73baa31d vdr/markad deaktiviert zum testen 2024-10-25 18:42:11 +00:00
Borgal
2bd7e71378 proxy/Image auf neueste Version angepasst 2024-10-25 18:41:04 +00:00
Borgal
003a4ccfef immich/Port angepasst 2024-10-25 18:40:05 +00:00
Borgal
3221d41d93 grafana/Netzwerk angepasst 2024-10-25 18:39:15 +00:00
Borgal
97c6848dab paperless/API Timeout hinzugefügt 2024-10-01 21:07:30 +00:00
Borgal
7085b45442 vpn/Passwort auf HASH umgestellt 2024-10-01 21:05:43 +00:00
Borgal
b2b7a0eec0 immich/DB Command hinzugefügt 2024-10-01 21:04:23 +00:00
Borgal
b923f5bb10 watchtower/Uhrzeit angepasst 2024-08-16 08:21:03 +00:00
Borgal
78609fbc13 paperless/Officeunterstützung hinzugefügt 2024-07-23 20:42:14 +00:00
Borgal
9fb4fbc8d3 paperless/README.md aktualisiert 2024-07-18 14:01:37 +00:00
Borgal
df2ed521c9 paperless/Scripts hinzugefügt 2024-07-18 14:00:16 +00:00
Borgal
a92189f5a1 paperless/Barcode und Blankpage entfernen hinzugefügt 2024-07-18 13:55:17 +00:00
Borgal
f2d5f3008d paperless/README.md aktualisiert 2024-07-17 16:35:18 +00:00
Borgal
1ae807cc67 immich/Microservice entfernt, da nicht mehr benötigt 2024-07-06 23:11:50 +00:00
Borgal
cd3fe20478 node-red/user wieder hinzugefügt 2024-07-01 14:46:25 +00:00
Borgal
07d1218d72 unifi/README.md aktualisiert 2024-07-01 14:44:51 +00:00
30 changed files with 445 additions and 168 deletions

8
bitwarden/.env.sample Normal file
View File

@@ -0,0 +1,8 @@
# Admin-Token für die Anmeldung der Admin-Page
# Anmeldung über https: bitwarden.MyDomain.de/admin
# Hier ist das Passwort anzugeben, womit der Token erzeugt wurde
# Den Token kann man z.B. über docker exec -it bitwarden ./vaultwarden hash erzeugen
# WICHTIG - Wird die Admin Page nicht benötigt, dann sollte man die Zeile ADMIN_TOKEN in der docker-compose Datei mit einem # auskommentieren
ADMIN_TOKEN='ChangeMe'

View File

@@ -1,9 +1,10 @@
services:
bitwarden:
image: vaultwarden/server:latest
image: vaultwarden/server:latest-alpine
container_name: bitwarden
environment:
- TZ=Europe/Berlin
# - ADMIN_TOKEN=${ADMIN_TOKEN} # Wird die Admin-Page nicht gebraucht, bitte auskommentieren
volumes:
- /opt/bitwarden/bwdata/:/data/
ports:

View File

@@ -1,2 +1,3 @@
PASS=ChangeMe
NFS_SERVER=192.168.0.xxx # oder hostname oder Domain
PFAD=/Pfad/zum/Ordner

View File

@@ -6,7 +6,7 @@ services:
- PUID=0
- PGID=0
- TZ=Europe/Berlin
- CLI_ARGS= #optional
- DUPLICATI__WEBSERVICE_PASSWORD=${PASS}
volumes:
- ./config:/config
- backup:/backups

View File

@@ -1,8 +0,0 @@
#MySQL Datenbank
MYSQL_USER=changeMe
MYSQL_PASSWORD=changeMe
MYSQL_ROOT_PASSWORD=changeMe
NFS_SERVER=192.168.0.xxx # oder hostname oder Domain
PFAD_1=/Pfad/zum/Ordner/www
PFAD_2=/Pfad/zum/Ordner/energie

View File

@@ -1,10 +0,0 @@
<h2>Filerun</H2>
<p></p>
<p></p>
<img src="https://filerun.com/images/long-logo.png?v=2022" alt="Filerun" width="200" />
<p></p>
<p></p>
<b>Filerun</b> ist eine selbst gehostete Cloud-Alternative. Synchronisieren, teilen und bearbeiten Sie Dateien ganz einfach von Ihrem eigenen Server aus, während Sie Ihre Daten unter Ihrer Kontrolle behalten.
<p></p>
<a href="https://filerun.com/" target="_blank">Filerun</a>
<p></p>

View File

@@ -1,43 +0,0 @@
services:
db:
image: mariadb:10.1
container_name: filerun_db
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_DATABASE: filerun
restart: unless-stopped
volumes:
- ./db:/var/lib/mysql
filerun:
image: filerun/filerun
container_name: filerun_app
environment:
FR_DB_HOST: db
FR_DB_PORT: 3306
FR_DB_NAME: filerun
FR_DB_USER: ${MYSQL_USER}
FR_DB_PASS: ${MYSQL_PASSWORD}
depends_on:
- db
links:
- db:db
ports:
- "8013:80"
restart: unless-stopped
volumes:
- ./html:/var/www/html
- ./user-files:/user-files
- Dokumente:/user-files/Dokumente
volumes:
Dokumente:
name: Dokumente
driver: local
driver_opts:
type: nfs4
o: addr=${NFS_SERVER},rw
device: ":${PFAD_Dokumente}"

View File

@@ -1,10 +1,10 @@
services:
influxdb:
#image: influxdb
image: influxdb:1.6.4
container_name: influxdb
ports:
- 8096:8086
#- 8098:8088
volumes:
- ./influxdb:/var/lib/influxdb
environment:
@@ -14,10 +14,23 @@ services:
- INFLUXDB_REPORTING_DISABLED=true
#Determines which level of logs will be emitted. The available levels are error, warn, info, and debug.
- INFLUXDB_LOGGING_LEVEL=warn
#networks:
# - external_network
restart: unless-stopped
chronograf:
image: chronograf:1.6
container_name: chronograf
volumes:
- ./chronograf_data:/var/lib/chronograf
ports:
- 8088:8888
depends_on:
- influxdb
environment:
- INFLUXDB_URL=http://influxdb:8086
- INFLUXDB_USERNAME=${INFLUXDB_USERNAME}
- INFLUXDB_PASSWORD=${INFLUXDB_PASSWORD}
restart: always
grafana:
image: grafana/grafana:latest
container_name: grafana
@@ -31,10 +44,4 @@ services:
environment:
- GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME}
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
#networks:
# - external_network
restart: unless-stopped
#networks:
# external_network:
# external: true

View File

@@ -0,0 +1,16 @@
- id: '1734541261890'
alias: Batteriewarnung X5
description: ''
triggers:
- trigger: numeric_state
entity_id:
- sensor.max_watch_battery_max
below: 29.9
conditions: []
actions:
- action: notify.mobile_app_s20_lars
metadata: {}
data:
message: Batterie X5 unter 30%
title: Warnung
mode: single

View File

@@ -0,0 +1,37 @@
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
# Text to speech
tts:
- platform: google_translate
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
# Localhost als erlaubter zugang zulassen
homeassistant:
external_url: "https://ha.borgal.de"
internal_url: "https://docker:8123"
customize:
sensor.bitshake_smartmeterreader_aktuelle_wirkleistung:
unit_of_measurement: "W"
device_class: energy
sensor.bitshake_smartmeterreader_total_in:
unit_of_measurement: "kWh"
device_class: energy
sensor.bitshake_smartmeterreader_total_out:
unit_of_measurement: "kWh"
device_class: energy
http:
use_x_forwarded_for: true
trusted_proxies:
#- 0.0.0.0
- 192.168.0.111 # IP Docker
- 10.1.0.0/16 # IP Range Docker Container

View File

@@ -7,11 +7,15 @@ services:
- /etc/localtime:/etc/localtime:ro
- /dev/serial/by-id:/dev/serial/by-id
devices:
- /dev/ttyACM0:/dev/ttyACM0
# - /dev/ttyACM0:/dev/ttyACM0
- /dev/ttyUSB0:/dev/ttyUSB0
ports:
- 8123:8123
privileged: true
environment:
- TZ=Europe/Berlin
labels:
- com.centurylinklabs.watchtower.enable=true
restart: unless-stopped
network_mode: host

View File

@@ -9,6 +9,8 @@ IMMICH_VERSION=release
# Connection secrets for postgres and typesense. You should change these to random passwords
TYPESENSE_API_KEY=some-random-text
DB_PASSWORD=ChangeMe
IMMICH_HOST=0.0.0.0
PUBLIC_URL=https://immich.domain.de
# The values below this line do not need to be changed
###################################################################################

View File

@@ -2,30 +2,13 @@ services:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
command: [ "start.sh", "immich" ]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
ports:
- 8015:3001
depends_on:
- redis
- database
labels:
- "com.centurylinklabs.watchtower.monitor-only=true"
restart: always
immich-microservices:
container_name: immich_microservices
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
command: [ "start.sh", "microservices" ]
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
- 2283:2283
depends_on:
- redis
- database
@@ -62,10 +45,12 @@ services:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
- ./DB-data:/var/lib/postgresql/data
labels:
- "com.centurylinklabs.watchtower.monitor-only=true"
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
volumes:

5
jellyfin/.env.sample Normal file
View File

@@ -0,0 +1,5 @@
NFS_SERVER=192.168.0.xxx
PFAD=/Pfad/zu/den/Videos
#
# Auf Rechte achten
#

View File

@@ -0,0 +1,28 @@
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1001
- TZ=Europe/Berlin
#- JELLYFIN_PublishedServerUrl=http://192.168.0.5 #optional
volumes:
- ./config:/config
#- /path/to/tvseries:/data/tvshows
- video:/data/movies
ports:
- 8097:8096
#- 8920:8920 #optional
#- 7359:7359/udp #optional
#- 1900:1900/udp #optional
restart: unless-stopped
volumes:
video:
name: video
driver: local
driver_opts:
type: nfs4
o: addr=${NFS_SERVER},rw
device: ":${PFAD}"

22
kasm/docker-compose.yml Normal file
View File

@@ -0,0 +1,22 @@
services:
kasm:
image: lscr.io/linuxserver/kasm:latest
container_name: kasm
privileged: true
security_opt:
- apparmor:rootlesskit #optional
environment:
- KASM_PORT=8443
- TZ=Europe/Berlin
- PGID=1000
- PUID=1001
volumes:
- ./data:/opt
- ./profiles:/profiles
- ./dev/input:/dev/input
- ./run/udev/data:/run/udev/data
ports:
- 3001:3000
- 8443:8443
restart: unless-stopped

View File

@@ -2,7 +2,7 @@ services:
nodered:
container_name: node-red
image: nodered/node-red
#user: 0:0
user: 0:0
ports:
- 1880:1880
- 1883:1883

View File

@@ -9,12 +9,152 @@
<p></p>
<a href="https://docs.paperless-ngx.com/" target="_blank">Paperless ngx</a>
<p></p>
<h3>HowTo</h3>
<h2>HowTo</h2>
<hr>
<p></p>
<h2>/etc/fstab Mount zu Scanner Verzeichniss</h2>
<h4>/etc/fstab Mount zu Scanner Verzeichniss</h4>
<p></p>
<pre>192.168.0.102:/mnt/pool1/scanner /opt/paperless/consume nfs4 auto,mountvers=4.0 0 0</pre>
<pre>192.168.0.102:/mnt/pool1/scanner /opt/paperless/consume nfs auto 0 0</pre>
<p></p>
<h5>gegebenfalls noch die NFS Tools installieren</h5>
<pre>apt install nfs-common</pre>
<pre>apt install nfs-common</pre>
<p></p>
# Update Paperless-ngx mit DB-upgrade !
### Schritt 1: Datenbank sichern und vorbereiten
1. **Stoppen Sie den `webserver`-Dienst**, um zu verhindern, dass die Anwendung während des Backups Daten in die Datenbank schreibt. Der `db`-Dienst muss dabei **laufen**.
```
docker compose stop webserver
```
2. **Überprüfen Sie, ob der `db`-Dienst läuft**.
```
docker compose ps
```
Der Status von `paperless_db` sollte `Up` sein. Wenn er nicht läuft, müssen Sie die Logs mit `docker compose logs db` überprüfen, um das Problem zu beheben, bevor Sie fortfahren.
3. **Führen Sie den Backup-Befehl aus**. Dieser Befehl startet `pg_dump` innerhalb des laufenden `db`-Containers und speichert die Ausgabe in eine Datei auf Ihrem Host.
```
docker compose exec db pg_dump -U paperless -Fc paperless > paperless_db_backup.dump
```
Eine komprimierte Backup-Datei namens `paperless_db_backup.dump` wird im selben Verzeichnis wie Ihre `docker-compose.yml` erstellt.
----------
### Schritt 2: `docker-compose.yml` aktualisieren
1. **Stoppen Sie alle Dienste**, um eine saubere Ausgangsbasis zu schaffen.
```
docker compose down
```
2. **Bearbeiten Sie Ihre `docker-compose.yml`-Datei.**
- Ändern Sie das `image` für den `db`-Dienst von `postgres:13` auf `postgres:17`.
- **Wichtig:** Ändern Sie den `volumes`-Pfad für die neuen Datenbankdaten, um zu verhindern, dass die alten Daten überschrieben werden. PostgreSQL-Versionen sind nicht direkt kompatibel.
YAML
```
# ...
services:
# ...
db:
image: docker.io/library/postgres:17 # Version geändert
container_name: paperless_db
restart: unless-stopped
volumes:
- ./db_v17_data:/var/lib/postgresql/data # WICHTIG: Pfad geändert
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperless
labels:
- "com.centurylinklabs.watchtower.monitor-only=true"
# ...
```
3. **Starten Sie nur den neuen Datenbank-Container**.
```
docker compose up -d db
```
Dadurch wird ein neuer, leerer PostgreSQL 17-Container erstellt.
4. **Importieren über einen temporären Ordner**.
```
docker compose cp paperless_db_backup.dump db:/tmp/paperless_db_backup.dump
```
Dieser Befehl kopiert Ihre lokale Backup-Datei in das `/tmp`-Verzeichnis des laufenden `db`-Containers.
2. **Stellen Sie das Backup im Container wieder her:**
```
docker compose exec db sh -c "pg_restore -U paperless -d paperless /tmp/paperless_db_backup.dump"
```
Hierbei übergeben Sie den Pfad der Datei direkt an den `pg_restore`-Befehl, anstatt die Eingabe umzuleiten.
### Letzter Schritt: Dienste starten und bereinigen
1. **Starten Sie die Paperless-ngx-Dienste:** Führen Sie den folgenden Befehl aus, um alle Dienste, einschließlich des `webserver`s, zu starten.
Bash
```
docker compose up -d
```
2. **Überprüfen Sie die Funktionalität:** Öffnen Sie die Paperless-ngx-Weboberfläche in Ihrem Browser. Melden Sie sich an und überprüfen Sie, ob Ihre Dokumente korrekt angezeigt werden und die Anwendung wie erwartet funktioniert.
3. **Bereinigen Sie die temporären Dateien:** Wenn alles einwandfrei läuft, können Sie die erstellten Sicherungsdateien löschen.
Bash
```
rm paperless_db_backup.dump
```
Sie können auch das alte Datenbank-Volume löschen, um Speicherplatz freizugeben.
4. **Löschen Sie die alte Datenbank (optional):** Falls Sie das alte Datenbank-Volume nicht mehr benötigen, können Sie es ebenfalls entfernen. **Seien Sie hier vorsichtig, um keine wichtigen Daten zu verlieren.**
Bash
```
docker volume ls # find the old volume name
docker volume rm <old_volume_name>
```
Herzlichen Glückwunsch, Ihre PostgreSQL-Datenbank wurde erfolgreich von Version 13 auf 17 migriert!

View File

@@ -1,8 +1,8 @@
# The UID and GID of the user used to run paperless in the container. Set this
# to your UID and GID on the host so that you have write access to the
# consumption directory.
# USERMAP_UID=1000
# USERMAP_GID=1001
USERMAP_UID=1000
USERMAP_GID=1001
# Additional languages to install for text recognition, separated by a
# whitespace. Note that this is
@@ -12,7 +12,7 @@
# default.
# See https://packages.debian.org/search?keywords=tesseract-ocr-&searchon=names&suite=buster
# for available languages.
#PAPERLESS_OCR_LANGUAGES=tur ces
# PAPERLESS_OCR_LANGUAGES=tur ces
###############################################################################
# Paperless-specific settings #
@@ -24,7 +24,7 @@
# Adjust this key if you plan to make paperless available publicly. It should
# be a very long sequence of random characters. You don't need to remember it.
#PAPERLESS_SECRET_KEY=change-me
# PAPERLESS_SECRET_KEY=change-me
# Use this variable to set a timezone for the Paperless Docker containers. If not specified, defaults to UTC.
PAPERLESS_TIME_ZONE=Europe/Berlin
@@ -32,7 +32,17 @@ PAPERLESS_TIME_ZONE=Europe/Berlin
# The default language to use for OCR. Set this to the language most of your
# documents are written in.
PAPERLESS_OCR_LANGUAGE=deu
PAPERLESS_OCR_LANGUAGES=deu
# Eigene Einstellungen
#
# PAPERLESS_FILENAME_FORMAT_REMOVE_NONE=True
PAPERLESS_FILENAME_FORMAT={document_type}/{correspondent}/{created_year}/{title}
PAPERLESS_CONSUMER_POLLING=30
PAPERLESS_CONSUMER_POLLING=10
PAPERLESS_URL=https://dms.borgal.de
PAPERLESS_PRE_CONSUME_SCRIPT=/usr/src/paperless/scripts/pre-consume.sh
# QR Code Scanner
PAPERLESS_CONSUMER_ENABLE_BARCODES=true
PAPERLESS_CONSUMER_ENABLE_ASN_BARCODE=true
PAPERLESS_CONSUMER_BARCODE_SCANNER=ZXING

View File

@@ -48,28 +48,46 @@ services:
- "com.centurylinklabs.watchtower.monitor-only=true"
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx
image: ghcr.io/paperless-ngx/paperless-ngx:latest
container_name: paperless_app
restart: unless-stopped
depends_on:
- db
- broker
- gotenberg
- tika
ports:
- 8009:8000
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5
- 8009:8000/tcp
volumes:
- ./data:/usr/src/paperless/data
- media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- ./consume:/usr/src/paperless/consume
- ./scripts:/usr/src/paperless/scripts
- media:/usr/src/paperless/media
env_file: docker-compose.env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
PAPERLESS_BIND_ADDR: 0.0.0.0
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
gotenberg:
image: docker.io/gotenberg/gotenberg:8.7
restart: unless-stopped
# The gotenberg chromium route is used to convert .eml files. We do not
# want to allow external content like tracking pixels or even javascript.
command:
- "gotenberg"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
- "--api-timeout=60"
tika:
image: docker.io/apache/tika:latest
restart: unless-stopped
volumes:
media:
@@ -78,4 +96,4 @@ volumes:
driver_opts:
type: nfs4
o: addr=${NFS_SERVER},rw
device: ":${PFAD}"
device: ":${PFAD}"

View File

@@ -0,0 +1,5 @@
#!/bin/sh
set -x
# Remove blank pages
/usr/src/paperless/scripts/remove-blank-pages.sh

View File

@@ -0,0 +1,49 @@
#!/bin/bash
#set -x -e -o pipefail
set -e -o pipefail
export LC_ALL=C
#IN="$1"
IN="$DOCUMENT_WORKING_PATH"
# Check for PDF format
TYPE=$(file -b "$IN")
if [ "${TYPE%%,*}" != "PDF document" ]; then
>&2 echo "Skipping $IN - non PDF [$TYPE]."
exit 0
fi
# PDF file - proceed
#PAGES=$(pdfinfo "$IN" | grep ^Pages: | tr -dc '0-9')
PAGES=$(pdfinfo "$IN" | awk '/Pages:/ {print $2}')
>&2 echo Total pages $PAGES
# Threshold for HP scanners
# THRESHOLD=1
# Threshold for Lexmar MC2425
THRESHOLD=0.8
non_blank() {
for i in $(seq 1 $PAGES) ; do
PERCENT=$(gs -o - -dFirstPage=${i} -dLastPage=${i} -sDEVICE=ink_cov "${IN}" | grep CMYK | nawk 'BEGIN { sum=0; } {sum += $1 + $2 + $3 + $4;} END { printf "%.5f\n", sum } ')
>&2 echo -n "Color-sum in page $i is $PERCENT: "
if awk "BEGIN { exit !($PERCENT > $THRESHOLD) }"; then
echo $i
>&2 echo "Page added to document"
else
>&2 echo "Page removed from document"
fi
done
}
NON_BLANK=$(non_blank)
if [ -n "$NON_BLANK" ]; then
NON_BLANK=$(echo $NON_BLANK | tr ' ' ",")
qpdf "$IN" --warning-exit-0 --replace-input --pages . $NON_BLANK --
fi

View File

@@ -1,7 +1,6 @@
services:
app:
#image: 'jc21/nginx-proxy-manager:latest'
image: 'jc21/nginx-proxy-manager:2.10.4'
image: 'jc21/nginx-proxy-manager:latest'
container_name: reverse-proxy
restart: unless-stopped
environment:

View File

@@ -10,10 +10,15 @@
<a href="https://github.com/linuxserver/docker-unifi-network-application/" target="_blank">UniFi Network Application</a>
<p></p>
<h3>HowTo</h3>
<p></p>
<p><b>* * * A C H T U N G * * *</b></p>
<p>init-mongo.js muss <b>vor dem ersten Start</b> in den Hauptordner kopiert werden. Das Passwort in der Datei muss ebenfalls angepasst werden.</p>
<p></p>
<hr>
<p></p>
<p>Die Ger&auml;te m&uuml;ssen per SSH angepasst werden&nbsp;</p>
<pre>ssh
<p>Falls die AP sich nicht automatisch verbinden, m&uuml;ssen die AP manuell per SSH angepasst werden&nbsp;</p>
<pre>>ssh
<p></p>
IP des Ger&auml;tes oder Hostname (AP-OG, AP-EG,..)
Username: Borgal
Passwort: *******

View File

@@ -1,39 +1,13 @@
2:Ich bin ein Star:1:2000:0015:1:S19.2E-1-1057-61200:0:0:1:0:0:0:::1:0:0:1::50:99:2:30:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
6:Germany's next Topmodel:1:2000:2200:1:S19.2E-1-1017-61301:0:0:1:1:1:0:::1:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
7:Daniela Katzenberger:1:2000:2300:1:S19.2E-1-1057-61205:0:0:1:1:1:0:::0:0:0:0:Daniela Katzenberger:50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
15:Modern Family:1:2200:0000:1:S19.2E-1-1057-61200:0:0:1:1:1:0:::1:1:-16:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
16:Goodbye Deutschland!:1:2000:2230:1:S19.2E-1-1057-61201:0:0:1:1:1:0:::0:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
17:Der Bachelor:1:2000:2200:1:S19.2E-1-1057-61200:0:0:1:1:1:0:::0:1:-8:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
18:Die Bachelorette:1:2000:2200:1:S19.2E-1-1057-61200:0:0:1:1:1:0:::0:1:-8:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
21:The Taste:1:2000:2200:1:S19.2E-1-1017-61300:0:0:1:1:1:0:::0:1:-8:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
26:The Mick:0:::1:S19.2E-1-1017-61301:0:0:1:0:0:0:::1:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
27:Get the F*ck out of my House:1:2000:2200:1:S19.2E-1-1017-61301:0:0:1:1:1:0:::1:1:-16:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
28:Sekretärinnen:0:::1:S19.2E-1-1057-61200:0:0:1:1:1:0:::1:1:-16:1::50:99:2:10:0:0:0::1:0:0:1:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
33:Akte X:1:2000:2300:1:S19.2E-1-1017-61301:0:0:1:1:1:0:::1:0:0:1::50:99:2:10:0:0:0::1:0:0:0:1:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
33:Akte X:1:2000:2300:1:S19.2E-1-1017-61301:0:0:1:1:1:0:::0:0:0:1::50:99:2:10:0:0:0::1:0:0:0:1:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
34:The Orville:1:2000:2359:1:S19.2E-1-1017-61301:0:0:1:1:1:0:::1:0:0:1::50:99:2:10:0:0:0::1:0:0:0:1:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
35:Einstein:1:2000:2300:1:S19.2E-1-1017-61300:0:0:1:1:1:0:::1:1:-4:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
37:Jenny - echt gerecht!:1:2000:2300:1:S19.2E-1-1057-61200:0:0:1:1:1:0:::1:1:-4:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
38:jerks.:1:2000:0000:1:S19.2E-1-1017-61301:0:0:1:1:1:0:::1:1:-4:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
39:The Masked Singer:1:2000:2200:1:S19.2E-1-1017-61301:0:0:1:1:1:0:::0:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
40:Das Sommerhaus der Stars:1:2000:2300:1:S19.2E-1-1057-61200:0:0:1:1:1:0:::0:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
41:Promi Big Brother:1:2000:0200:1:S19.2E-1-1017-61300:0:0:1:1:1:0:::1:0:0:1::50:99:2:20:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
42:the voice:1:2000:2200:1:S19.2E-1-1017-61300|S19.2E-1-1017-61301:0:0:1:1:1:0:::1:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
46:bachelor in Paradise:1:2000:2200:1:S19.2E-1-1057-61200:0:0:1:1:1:0:::0:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
41:Promi Big Brother:1:2000:0200:1:S19.2E-1-1017-61300:0:0:1:1:1:0:::0:0:0:1::50:99:2:20:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
51:Promis unter Palmen:1:2000:2200:1:S19.2E-1-1017-61300:0:0:1:1:1:0:::1:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
52:ancient aliens:1:2000:2300:1:S19.2E-1-1017-61305:0:0:1:1:1:0:::1:0:0:1::50:99:2:10:0:0:0::1:0:1:1:1:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
55:Kampf der Realitystars:1:2000:2200:1:S19.2E-1-1057-61205:0:0:1:1:1:0:::0:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
56:Love Island:1:2000:2300:1:S19.2E-1-1057-61205:0:0:1:1:1:0:::0:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
52:ancient aliens:1:2000:2300:1:S19.2E-1-1017-61305:0:0:1:1:1:0:::0:0:0:1::50:99:2:10:0:0:0::1:0:1:1:1:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
57:Das perfekte Dinner:1:1800:2000:1:S19.2E-1-1057-61201:0:0:1:1:1:0:::0:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
58:Temptation Island:0:::1:S19.2E-1-1057-61200:0:0:1:1:1:0:::0:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
59:Ninja Warrior Germany Kids:0:::1:S19.2E-1-1041-11931:0:0:1:1:1:0:::1:1:-32:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
61:Die Geissens:1:2000:2330:1:S19.2E-1-1057-61205:0:0:1:1:1:0:::0:0:0:1::50:99:2:10:0:0:0::1:0:1:1:1:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
62:Are you the one:1:2000:2300:1:S19.2E-1-1057-61200:0:0:1:1:1:0:::0:0:0:1::50:99:2:10:0:0:0::1:0:1:1:1:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
65:5 Senses for Love:1:2000:2359:1:S19.2E-1-1017-61300:0:0:1:1:1:0:::1:0:0:1::50:99:2:10:0:0:0::1:0:1:1:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
66:Beauty & The Nerd:1:2000:2300:1:S19.2E-1-1017-61301:0:0:1:1:1:0:::1:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
68:Lego Masters:1:2000:2300:1:S19.2E-1-1057-61200:0:0:1:1:1:0:::1:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
70:Hochzeit auf den ersten Blick:1:2000:2300:1:S19.2E-1-1017-61300:0:0:1:1:1:0:::1:0:0:0:Hochzeit auf den ersten Blick:50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
71:8 Zeugen:1:2000:0000:1:S19.2E-1-1019-10301|S19.2E-1-1041-11931:0:0:1:1:1:0:::1:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
72:Das große Promi-Büßen:1:2000:2300:1:S19.2E-1-1017-61301:0:0:1:1:1:0:::1:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
73:Frau Jordan stellt gleich:1:2000:2359:1:S19.2E-1-1017-61301:0:0:1:1:1:0:::1:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
76:Wer stiehlt die Show:1:2000:2300:1:S19.2E-1-1017-61301:0:1:1:1:1:0:::1:0:0:1:Wer stiehlt mir die Show?:50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
78:Deutschland sucht den Superstar:1:2000:2200:1:S19.2E-1-1057-61200:0:0:1:1:1:0:::0:0:0:1::50:99:2:10:0:0:0::0:0:0:0:0:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0
77:Schlag den Star:1:2000:2200:1:S19.2E-1-1017-61301:0:0:1:0:0:0:::1:0:0:1:Schlag den Star:50:99:2:10:0:0:0::1:0:0:1:1:0:0:0:0:0:0:0::1:0:0:0:0:0:0:0:0:0:90::0

View File

@@ -8,7 +8,7 @@ services:
- TZ=Europe/Berlin
- LANG=de_DE.UTF-8
- LOG2FILE=false
- PLUGINS=epgsearch live ddci2 svdrpservice streamdev-server femon markad #vnsiserver robotv
- PLUGINS=epgsearch live ddci2 svdrpservice streamdev-server femon #markad vnsiserver robotv
volumes:
- ./system:/vdr/system
- ./config:/vdr/config

View File

@@ -4,9 +4,15 @@ services:
container_name: wg-easy
environment:
- WG_HOST=${HOST}
- PASSWORD=${PASSWORD}
- WG_DEFAULT_DNS=192.168.0.1, fritz.box
- WG_ALLOWED_IPS=10.8.0.0/24, 192.168.0.0/24
#
# Probier mal diese Zeile ohne dem #
#- WG_DEFAULT_DNS=192.168.0.1
#
#- WG_DEFAULT_DNS=192.168.0.111, 10.1.6.2, localdomain
#- WG_ALLOWED_IPS=10.8.0.0/24, 192.168.0.0/24
- PASSWORD_HASH=${HASH}
- UI_TRAFFIC_STATS=true
- UI_CHART_TYPE=3
volumes:
- ./wg-easy:/etc/wireguard
ports:
@@ -19,3 +25,6 @@ services:
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
labels:
- com.centurylinklabs.watchtower.enable=true

View File

@@ -2,14 +2,15 @@ services:
watchtower:
container_name: watchtower
image: containrrr/watchtower
environment:
- WATCHTOWER_NOTIFICATIONS=gotify
- WATCHTOWER_NOTIFICATION_GOTIFY_URL=https://gotify.borgal.de
- WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN=AlsHK7YQ17in5Ns
- WATCHTOWER_WARN_ON_HEAD_FAILURE=auto #always, auto, never, stand auf never
- WATCHTOWER_WARN_ON_HEAD_FAILURE=auto #always, auto, never, stand auf never
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_SCHEDULE=0 15 19 * * *
- WATCHTOWER_SCHEDULE=0 0 19 * * *
#- WATCHTOWER_MONITOR_ONLY=true
- WATCHTOWER_INCLUDE_RESTARTING=true
- WATCHTOWER_ROLLING_RESTART=true
- WATCHTOWER_INCLUDE_STOPPED=true

View File

@@ -1,42 +1,56 @@
services:
webserver:
build: .
container_name: webserver-app
ports:
image: php:8.3-apache
container_name: webserver-app
ports:
- "8180:80"
environment:
- TZ=Europe/Berlin
volumes:
volumes:
- www:/var/www/html
- energie:/var/www/html/knx/archiv
- /etc/localtime:/etc/localtime:ro
links:
depends_on:
- database
# Befehl, um mysqli und rewrite zu aktivieren
command: |
sh -c "
docker-php-ext-install mysqli pdo pdo_mysql &&
a2enmod rewrite &&
apache2-foreground
"
labels:
com.centurylinklabs.watchtower.enable: "false"
com.centurylinklabs.watchtower.enable: 'false'
restart: unless-stopped
database:
image: mariadb:latest
image: mariadb:10.11
container_name: webserver_db
environment:
environment:
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE:-appdb}
- TZ=Europe/Berlin
volumes:
volumes:
- ./dbdata:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
command: --default-authentication-plugin=mysql_native_password
restart: unless-stopped
phpmyadmin:
image: phpmyadmin/phpmyadmin
image: phpmyadmin/phpmyadmin:latest
container_name: web_phpmyadmin
links:
- database:db
depends_on:
- database
ports:
- 8087:80
- "8087:80"
environment:
- PMA_HOST=database
- PMA_PORT=3306
- PMA_USER=${MYSQL_USER}
- PMA_PASSWORD=${MYSQL_PASSWORD}
- PMA_ARBITRARY=0
- TZ=Europe/Berlin
restart: unless-stopped
@@ -55,4 +69,4 @@ volumes:
driver_opts:
type: nfs4
o: addr=${NFS_SERVER},rw
device: ":${PFAD_2}"
device: ":${PFAD_2}"

View File

@@ -6,9 +6,7 @@ services:
ports:
- "8014:80"
volumes:
# data
- ./data:/data
#- Photos:/data/Photos
- Backup:/data/Backup
# user and password
- ./user/htpasswd:/opt/nginx/conf/htpasswd:ro