Compare commits
24 Commits
8a318638ed
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| ace326c0ba | |||
| 493d5dde42 | |||
| 72d4b93fdf | |||
| 39f4231c09 | |||
| f5270aa908 | |||
| 8531665064 | |||
| d44bd646b8 | |||
| ca619489ec | |||
| 0aa1c1f999 | |||
| 53ea440d49 | |||
| c273decbc1 | |||
| 2a7fbe790d | |||
| 25db3542eb | |||
| 1b4cfc5291 | |||
| 3fdd3e43f8 | |||
| dd279b13ea | |||
| 8da06841cf | |||
| ff7902f1c7 | |||
| 0e7ed68cec | |||
| 99aa576b15 | |||
| 641928adbf | |||
| 345d9a340c | |||
| d4fe5cf645 | |||
| 74497faa6a |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/pihole/etc-pihole
|
||||
@@ -5,7 +5,7 @@ services:
|
||||
# To build from source, replace 'image: lissy93/dashy' with 'build: .'
|
||||
# build: .
|
||||
image: lissy93/dashy
|
||||
container_name: Dashy
|
||||
container_name: dashy
|
||||
# Pass in your config file below, by specifying the path on your host machine
|
||||
# volumes:
|
||||
# - /root/my-config.yml:/app/public/conf.yml
|
||||
@@ -25,4 +25,10 @@ services:
|
||||
interval: 1m30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
start_period: 40s
|
||||
networks:
|
||||
- nginx_network
|
||||
|
||||
networks:
|
||||
nginx_network:
|
||||
driver: bridge
|
||||
@@ -2,8 +2,8 @@ version: "2.1"
|
||||
|
||||
services:
|
||||
swag:
|
||||
image: linuxserver/swag
|
||||
container_name: swag_update
|
||||
image: linuxserver/swag:1.31.0
|
||||
container_name: swag
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
environment:
|
||||
@@ -17,8 +17,8 @@ services:
|
||||
volumes:
|
||||
- swag_conf_update:/config
|
||||
ports:
|
||||
- 443:443
|
||||
- 80:80
|
||||
- 444:443
|
||||
- 81:80
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- nginx_network
|
||||
|
||||
@@ -1,25 +1,24 @@
|
||||
version: '2.2'
|
||||
|
||||
volumes:
|
||||
fhem_opt:
|
||||
|
||||
fhem_opt:
|
||||
|
||||
services:
|
||||
fhem:
|
||||
image: fhem/fhem:latest
|
||||
container_name: fhem
|
||||
restart: always
|
||||
ports:
|
||||
- "8083:8083"
|
||||
- "7072:7072"
|
||||
- "8090:8090"
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- fhem_opt:/opt/fhem/
|
||||
environment:
|
||||
TELNETPORT: 7072
|
||||
TZ: Europe/Berlin
|
||||
networks:
|
||||
- nginx_network
|
||||
|
||||
networks:
|
||||
nginx_network:
|
||||
driver: bridge
|
||||
network_mode: host
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.fhem.rule=Host(`fhem.montana2000.freeddns.org`)"
|
||||
- "traefik.http.routers.fhem.middlewares=fhem-auth"
|
||||
- "traefik.http.middlewares.fhem-auth.basicauth.users=nils:$$apr1$$JDBG7p8k$$LB8y6/aKcNQ/ybLz7LXjY."
|
||||
- "traefik.http.services.fhem-service.loadbalancer.server.port=8083"
|
||||
|
||||
|
||||
|
||||
@@ -1,35 +1,49 @@
|
||||
version: '2'
|
||||
version: "3"
|
||||
|
||||
networks:
|
||||
traefik_web:
|
||||
external: true
|
||||
|
||||
services:
|
||||
web:
|
||||
image: gitea/gitea:latest
|
||||
server:
|
||||
image: gitea/gitea:1.22.3
|
||||
container_name: gitea
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
- GITEA__database__DB_TYPE=mysql
|
||||
- GITEA__database__HOST=db:3306
|
||||
- GITEA__database__NAME=gitea
|
||||
- GITEA__database__USER=gitea
|
||||
- GITEA__database__PASSWD=gitea
|
||||
restart: always
|
||||
networks:
|
||||
- traefik_web
|
||||
volumes:
|
||||
- gitea_data:/data
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "22:22"
|
||||
- "222:22"
|
||||
depends_on:
|
||||
- db
|
||||
restart: always
|
||||
networks:
|
||||
- nginx_network
|
||||
- db
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.gitea.rule=Host(`gitea.montana2000.freeddns.org`)"
|
||||
- "traefik.http.services.gitea-service.loadbalancer.server.port=3000"
|
||||
|
||||
db:
|
||||
image: mariadb:10
|
||||
volumes:
|
||||
- gitea_mariadb:/var/lib/mysql
|
||||
image: mysql:8
|
||||
restart: always
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=inginf95
|
||||
- MYSQL_DATABASE=gitea
|
||||
- MYSQL_ROOT_PASSWORD=gitea
|
||||
- MYSQL_USER=gitea
|
||||
- MYSQL_PASSWORD=inginf95
|
||||
- MYSQL_PASSWORD=gitea
|
||||
- MYSQL_DATABASE=gitea
|
||||
networks:
|
||||
- nginx_network
|
||||
- traefik_web
|
||||
volumes:
|
||||
- gitea_mysql:/var/lib/mysql
|
||||
|
||||
volumes:
|
||||
gitea_data:
|
||||
gitea_mariadb:
|
||||
|
||||
networks:
|
||||
nginx_network:
|
||||
driver: bridge
|
||||
gitea_mysql:
|
||||
11
homeassistant/docker-compose.yaml
Normal file
11
homeassistant/docker-compose.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
version: '3'
|
||||
services:
|
||||
homeassistant:
|
||||
container_name: homeassistant
|
||||
image: "ghcr.io/home-assistant/home-assistant:stable"
|
||||
volumes:
|
||||
- /PATH_TO_YOUR_CONFIG:/config
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
restart: unless-stopped
|
||||
privileged: true
|
||||
network_mode: host
|
||||
21
immich/.env
Normal file
21
immich/.env
Normal file
@@ -0,0 +1,21 @@
|
||||
# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
|
||||
|
||||
# The location where your uploaded files are stored
|
||||
UPLOAD_LOCATION=/media/immich/library
|
||||
# The location where your database files are stored
|
||||
DB_DATA_LOCATION=/media/immich/postgres
|
||||
|
||||
# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
|
||||
# TZ=Etc/UTC
|
||||
|
||||
# The Immich version to use. You can pin this to a specific version like "v1.71.0"
|
||||
IMMICH_VERSION=release
|
||||
|
||||
# Connection secret for postgres. You should change it to a random password
|
||||
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
|
||||
DB_PASSWORD=nueiwnednecncuwdhewiudhewiduhewiduh
|
||||
|
||||
# The values below this line do not need to be changed
|
||||
###################################################################################
|
||||
DB_USERNAME=postgres
|
||||
DB_DATABASE_NAME=immich
|
||||
109
immich/docker-compose.yml
Normal file
109
immich/docker-compose.yml
Normal file
@@ -0,0 +1,109 @@
|
||||
#
|
||||
# WARNING: 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
|
||||
|
||||
networks:
|
||||
traefik_web:
|
||||
external: true
|
||||
immich:
|
||||
|
||||
services:
|
||||
immich-server:
|
||||
container_name: immich_server
|
||||
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
||||
# extends:
|
||||
# file: hwaccel.transcoding.yml
|
||||
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
|
||||
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}:/usr/src/app/upload
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- '2283:2283'
|
||||
networks:
|
||||
- traefik_web
|
||||
- immich
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.immich.rule=Host(`immich.montana2000.freeddns.org`)"
|
||||
- "traefik.http.services.immich-service.loadbalancer.server.port=2283"
|
||||
depends_on:
|
||||
- redis
|
||||
- database
|
||||
restart: always
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
immich-machine-learning:
|
||||
container_name: immich_machine_learning
|
||||
# For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
|
||||
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||
# extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
|
||||
# file: hwaccel.ml.yml
|
||||
# service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||
volumes:
|
||||
- model-cache:/cache
|
||||
networks:
|
||||
- immich
|
||||
env_file:
|
||||
- .env
|
||||
restart: always
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/redis:6.2-alpine@sha256:2ba50e1ac3a0ea17b736ce9db2b0a9f6f8b85d4c27d5f5accc6a416d8f42c6d5
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: always
|
||||
networks:
|
||||
- immich
|
||||
|
||||
database:
|
||||
container_name: immich_postgres
|
||||
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
|
||||
environment:
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||
POSTGRES_USER: ${DB_USERNAME}
|
||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||
POSTGRES_INITDB_ARGS: '--data-checksums'
|
||||
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
|
||||
healthcheck:
|
||||
test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
|
||||
interval: 5m
|
||||
#start_interval: 30s
|
||||
start_period: 5m
|
||||
networks:
|
||||
- immich
|
||||
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:
|
||||
model-cache:
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
|
||||
version: '2'
|
||||
services:
|
||||
mosquitto:
|
||||
image: eclipse-mosquitto
|
||||
image: eclipse-mosquitto:2.0
|
||||
expose:
|
||||
- "1884"
|
||||
- "9001"
|
||||
@@ -10,13 +10,16 @@ services:
|
||||
- "1884:1884"
|
||||
- "9001:9001"
|
||||
volumes:
|
||||
- D:\dev\docker\docker-compose\mosquitto\mosquitto.conf:/mosquitto/config/mosquitto.conf
|
||||
- mosquitto_data:/mosquitto/data
|
||||
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf
|
||||
- mosquitto_data:/mosquitto/data
|
||||
- mosquitto_log:/mosquitto/log
|
||||
restart: always
|
||||
|
||||
restart: unless-stopped
|
||||
|
||||
|
||||
volumes:
|
||||
mosquitto_data:
|
||||
mosquitto_log:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ volumes:
|
||||
|
||||
services:
|
||||
nextcloud_db:
|
||||
image: mariadb:10.5
|
||||
image: mariadb:10.6
|
||||
restart: always
|
||||
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
||||
volumes:
|
||||
@@ -17,14 +17,15 @@ services:
|
||||
- MYSQL_DATABASE=nextcloud
|
||||
- MYSQL_USER=nextcloud
|
||||
networks:
|
||||
- nginx_network
|
||||
- traefik_web
|
||||
|
||||
|
||||
app:
|
||||
image: nextcloud:22
|
||||
image: nextcloud:30.0.1
|
||||
container_name: nextcloud
|
||||
restart: always
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8082:80
|
||||
links:
|
||||
- nextcloud_db
|
||||
volumes:
|
||||
@@ -35,8 +36,11 @@ services:
|
||||
- MYSQL_USER=nextcloud
|
||||
- MYSQL_HOST=nextcloud_db
|
||||
networks:
|
||||
- nginx_network
|
||||
|
||||
- traefik_web
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.nextcloud.rule=Host(`nextcloud.montana2000.freeddns.org`)"
|
||||
|
||||
networks:
|
||||
nginx_network:
|
||||
driver: bridge
|
||||
traefik_web:
|
||||
external: true
|
||||
|
||||
22
nginx/docker-compose.yml
Normal file
22
nginx/docker-compose.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
services:
|
||||
nginx:
|
||||
image: nginx:1.27
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.nginx.rule=Host(`montana2000.freeddns.org`)"
|
||||
- "traefik.http.routers.nginx.middlewares=nginx-auth"
|
||||
- "traefik.http.middlewares.nginx-auth.basicauth.users=nils:$$apr1$$JDBG7p8k$$LB8y6/aKcNQ/ybLz7LXjY."
|
||||
networks:
|
||||
- traefik_web
|
||||
volumes:
|
||||
- www-data:/usr/share/nginx/html/
|
||||
restart: always
|
||||
|
||||
|
||||
volumes:
|
||||
www-data:
|
||||
|
||||
networks:
|
||||
traefik_web:
|
||||
external: true
|
||||
|
||||
30
node-red/docker-compose.yaml
Normal file
30
node-red/docker-compose.yaml
Normal file
@@ -0,0 +1,30 @@
|
||||
################################################################################
|
||||
# Node-RED Stack or Compose
|
||||
################################################################################
|
||||
# docker stack deploy node-red --compose-file docker-compose-node-red.yml
|
||||
# docker-compose -f docker-compose-node-red.yml -p myNoderedProject up
|
||||
################################################################################
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
node-red:
|
||||
image: nodered/node-red:latest
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- node-red-data:/data
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8080:8080"
|
||||
- "1880:1880"
|
||||
network_mode: host
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.nodered.rule=Host(`nodered.montana2000.freeddns.org`)"
|
||||
- "traefik.http.routers.nodered.middlewares=nodered-auth"
|
||||
- "traefik.http.middlewares.nodered-auth.basicauth.users=nils:$$apr1$$JDBG7p8k$$LB8y6/aKcNQ/ybLz7LXjY."
|
||||
- "traefik.http.services.nodered-service.loadbalancer.server.port=1880"
|
||||
|
||||
|
||||
volumes:
|
||||
node-red-data:
|
||||
40
octoprint/docker-compose.yaml
Normal file
40
octoprint/docker-compose.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
version: '2.4'
|
||||
|
||||
services:
|
||||
octoprint:
|
||||
image: octoprint/octoprint:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8088:80
|
||||
# devices:
|
||||
# use `python -m serial.tools.miniterm` to see what the name is of the printer, this requires pyserial
|
||||
# - /dev/ttyACM0:/dev/ttyACM0
|
||||
# - /dev/video0:/dev/video0
|
||||
volumes:
|
||||
- octoprint:/octoprint
|
||||
# uncomment the lines below to ensure camera streaming is enabled when
|
||||
# you add a video device
|
||||
#environment:
|
||||
# - ENABLE_MJPG_STREAMER=true
|
||||
|
||||
####
|
||||
# uncomment if you wish to edit the configuration files of octoprint
|
||||
# refer to docs on configuration editing for more information
|
||||
####
|
||||
|
||||
#config-editor:
|
||||
# image: linuxserver/code-server
|
||||
# ports:
|
||||
# - 8443:8443
|
||||
# depends_on:
|
||||
# - octoprint
|
||||
# restart: unless-stopped
|
||||
# environment:
|
||||
# - PUID=0
|
||||
# - GUID=0
|
||||
# - TZ=America/Chicago
|
||||
# volumes:
|
||||
# - octoprint:/octoprint
|
||||
|
||||
volumes:
|
||||
octoprint:
|
||||
1
paperless/.env
Normal file
1
paperless/.env
Normal file
@@ -0,0 +1 @@
|
||||
COMPOSE_PROJECT_NAME=paperless
|
||||
47
paperless/docker-compose.env
Normal file
47
paperless/docker-compose.env
Normal file
@@ -0,0 +1,47 @@
|
||||
# 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=1003
|
||||
USERMAP_GID=1003
|
||||
|
||||
# Additional languages to install for text recognition, separated by a
|
||||
# whitespace. Note that this is
|
||||
# different from PAPERLESS_OCR_LANGUAGE (default=eng), which defines the
|
||||
# language used for OCR.
|
||||
# The container installs English, German, Italian, Spanish and French by
|
||||
# default.
|
||||
# See https://packages.debian.org/search?keywords=tesseract-ocr-&searchon=names&suite=buster
|
||||
# for available languages.
|
||||
PAPERLESS_OCR_LANGUAGES=deu
|
||||
|
||||
###############################################################################
|
||||
# Paperless-specific settings #
|
||||
###############################################################################
|
||||
|
||||
# All settings defined in the paperless.conf.example can be used here. The
|
||||
# Docker setup does not use the configuration file.
|
||||
# A few commonly adjusted settings are provided below.
|
||||
|
||||
# This is required if you will be exposing Paperless-ngx on a public domain
|
||||
# (if doing so please consider security measures such as reverse proxy)
|
||||
PAPERLESS_URL=https://paperless.montana2000.freeddns.org
|
||||
|
||||
# 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=JustSomeNonesenseSecretKeyIPutInHereForBeingSafe
|
||||
|
||||
# Use this variable to set a timezone for the Paperless Docker containers. If not specified, defaults to UTC.
|
||||
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
|
||||
|
||||
# Set if accessing paperless via a domain subpath e.g. https://domain.com/PATHPREFIX and using a reverse-proxy like traefik or nginx
|
||||
#PAPERLESS_FORCE_SCRIPT_NAME=/PATHPREFIX
|
||||
#PAPERLESS_STATIC_URL=/PATHPREFIX/static/ # trailing slash required
|
||||
|
||||
PAPERLESS_CONSUMER_ASN_BARCODE_PREFIX=ASN
|
||||
PAPERLESS_CONSUMER_ENABLE_ASN_BARCODE=true
|
||||
PAPERLESS_CONSUMER_ENABLE_BARCODES=true
|
||||
PAPERLESS_CONSUMER_BARCODE_SCANNER=ZXING
|
||||
111
paperless/docker-compose.yml
Normal file
111
paperless/docker-compose.yml
Normal file
@@ -0,0 +1,111 @@
|
||||
# Docker Compose file for running paperless from the docker container registry.
|
||||
# This file contains everything paperless needs to run.
|
||||
# Paperless supports amd64, arm and arm64 hardware.
|
||||
#
|
||||
# All compose files of paperless configure paperless in the following way:
|
||||
#
|
||||
# - Paperless is (re)started on system boot, if it was running before shutdown.
|
||||
# - Docker volumes for storing data are managed by Docker.
|
||||
# - Folders for importing and exporting files are created in the same directory
|
||||
# as this file and mounted to the correct folders inside the container.
|
||||
# - Paperless listens on port 8000.
|
||||
#
|
||||
# In addition to that, this Docker Compose file adds the following optional
|
||||
# configurations:
|
||||
#
|
||||
# - Instead of SQLite (default), PostgreSQL is used as the database server.
|
||||
# - Apache Tika and Gotenberg servers are started with paperless and paperless
|
||||
# is configured to use these services. These provide support for consuming
|
||||
# Office documents (Word, Excel, Power Point and their LibreOffice counter-
|
||||
# parts.
|
||||
#
|
||||
# To install and update paperless with this file, do the following:
|
||||
#
|
||||
# - Copy this file as 'docker-compose.yml' and the files 'docker-compose.env'
|
||||
# and '.env' into a folder.
|
||||
# - Run 'docker compose pull'.
|
||||
# - Run 'docker compose run --rm webserver createsuperuser' to create a user.
|
||||
# - Run 'docker compose up -d'.
|
||||
#
|
||||
# For more extensive installation and update instructions, refer to the
|
||||
# documentation.
|
||||
|
||||
version: "3.4"
|
||||
services:
|
||||
broker:
|
||||
image: docker.io/library/redis:7
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- redisdata:/data
|
||||
networks:
|
||||
- traefik_web
|
||||
|
||||
db:
|
||||
image: docker.io/library/postgres:16
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- pgdata:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_DB: paperless
|
||||
POSTGRES_USER: paperless
|
||||
POSTGRES_PASSWORD: paperless
|
||||
networks:
|
||||
- traefik_web
|
||||
|
||||
webserver:
|
||||
image: ghcr.io/paperless-ngx/paperless-ngx:latest
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- db
|
||||
- broker
|
||||
- gotenberg
|
||||
- tika
|
||||
ports:
|
||||
- "8010:8000"
|
||||
volumes:
|
||||
- data:/usr/src/paperless/data
|
||||
- media:/usr/src/paperless/media
|
||||
- /home/nils/paperless/export:/usr/src/paperless/export
|
||||
- /home/nils/paperless/consume:/usr/src/paperless/consume
|
||||
env_file: docker-compose.env
|
||||
environment:
|
||||
PAPERLESS_REDIS: redis://broker:6379
|
||||
PAPERLESS_DBHOST: db
|
||||
PAPERLESS_TIKA_ENABLED: 1
|
||||
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
|
||||
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.paperless.rule=Host(`paperless.montana2000.freeddns.org`)"
|
||||
- "traefik.docker.network=proxy"
|
||||
networks:
|
||||
- traefik_web
|
||||
|
||||
gotenberg:
|
||||
image: docker.io/gotenberg/gotenberg:7.10
|
||||
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/.*"
|
||||
networks:
|
||||
- traefik_web
|
||||
|
||||
tika:
|
||||
image: ghcr.io/paperless-ngx/tika:latest
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- traefik_web
|
||||
|
||||
volumes:
|
||||
data:
|
||||
media:
|
||||
pgdata:
|
||||
redisdata:
|
||||
|
||||
networks:
|
||||
traefik_web:
|
||||
external: true
|
||||
24
pihole/docker-compose.yml
Normal file
24
pihole/docker-compose.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
|
||||
services:
|
||||
pihole:
|
||||
container_name: pihole
|
||||
hostname: Pihole
|
||||
image: pihole/pihole:latest
|
||||
network_mode: vlanPihole
|
||||
environment:
|
||||
# Set the appropriate timezone for your location (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), e.g:
|
||||
TZ: 'Europe/Berlin'
|
||||
# Set a password to access the web interface. Not setting one will result in a random password being assigned
|
||||
FTLCONF_webserver_api_password: 'inginf95'
|
||||
WEB_PORT: '9090'
|
||||
# Volumes store your data between container upgrades
|
||||
volumes:
|
||||
# For persisting Pi-hole's databases and common configuration file
|
||||
- './etc-pihole:/etc/pihole'
|
||||
# Uncomment the below if you have custom dnsmasq config files that you want to persist. Not needed for most starting fresh with Pi-hole v6. If you're upgrading from v5 you and have used this directory before, you should keep it enabled for the first v6 container start to allow for a complete migration. It can be removed afterwards
|
||||
#- './etc-dnsmasq.d:/etc/dnsmasq.d'
|
||||
#cap_add:
|
||||
# See https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
|
||||
# Required if you are using Pi-hole as your DHCP server, else not needed
|
||||
#- NET_ADMIN
|
||||
restart: unless-stopped
|
||||
37
pihole/docker-compose.yml_bak
Normal file
37
pihole/docker-compose.yml_bak
Normal file
@@ -0,0 +1,37 @@
|
||||
# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
|
||||
services:
|
||||
pihole:
|
||||
container_name: pihole
|
||||
image: pihole/pihole:latest
|
||||
ports:
|
||||
# DNS Ports
|
||||
- "53:53/tcp"
|
||||
- "53:53/udp"
|
||||
# Default HTTP Port
|
||||
- "9090:80/tcp"
|
||||
# Default HTTPs Port. FTL will generate a self-signed certificate
|
||||
#- "9043:443/tcp"
|
||||
# Uncomment the below if using Pi-hole as your DHCP Server
|
||||
#- "67:67/udp"
|
||||
networks:
|
||||
- pihole_network
|
||||
environment:
|
||||
# Set the appropriate timezone for your location (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), e.g:
|
||||
TZ: 'Europe/Berlin'
|
||||
# Set a password to access the web interface. Not setting one will result in a random password being assigned
|
||||
FTLCONF_webserver_api_password: 'inginf95'
|
||||
# Volumes store your data between container upgrades
|
||||
volumes:
|
||||
# For persisting Pi-hole's databases and common configuration file
|
||||
- './etc-pihole:/etc/pihole'
|
||||
# Uncomment the below if you have custom dnsmasq config files that you want to persist. Not needed for most starting fresh with Pi-hole v6. If you're upgrading from v5 you and have used this directory before, you should keep it enabled for the first v6 container start to allow for a complete migration. It can be removed afterwards
|
||||
#- './etc-dnsmasq.d:/etc/dnsmasq.d'
|
||||
#cap_add:
|
||||
# See https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
|
||||
# Required if you are using Pi-hole as your DHCP server, else not needed
|
||||
#- NET_ADMIN
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
pihole_network:
|
||||
driver: bridge
|
||||
38
plex/docker-compose.yaml
Normal file
38
plex/docker-compose.yaml
Normal file
@@ -0,0 +1,38 @@
|
||||
version: "2.1"
|
||||
services:
|
||||
plex:
|
||||
image: lscr.io/linuxserver/plex:latest
|
||||
container_name: plex
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=EUROPE/BERLIN
|
||||
- VERSION=docker
|
||||
- PLEX_CLAIM=claim-J9FARYcKeGSzVPU7y5Fh
|
||||
volumes:
|
||||
- plex_config:/config
|
||||
- /media/plex/tv-shows:/tv-shows
|
||||
- /media/plex/movies:/movies
|
||||
- /media/plex/music:/music
|
||||
- /media/plex/cartoons:/cartoons
|
||||
- /media/plex/comedy:/comedy
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
# Plex DLNA Server
|
||||
- 1901:1900/udp
|
||||
# GDM network discovery
|
||||
- 32410:32410/udp
|
||||
- 32412:32412/udp
|
||||
- 32413:32413/udp
|
||||
- 32414:32414/udp
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.plex.rule=Host(`plex.montana2000.freeddns.org`)"
|
||||
- "traefik.http.routers.plex.service=plex"
|
||||
- "traefik.http.services.plex.loadbalancer.server.port=32400"
|
||||
- "traefik.docker.network=proxy"
|
||||
network_mode: host
|
||||
|
||||
|
||||
volumes:
|
||||
plex_config:
|
||||
89
server-monitoring/docker-compose.yml
Normal file
89
server-monitoring/docker-compose.yml
Normal file
@@ -0,0 +1,89 @@
|
||||
version: '3'
|
||||
|
||||
volumes:
|
||||
prometheus-data:
|
||||
driver: local
|
||||
prometheus-config:
|
||||
driver: local
|
||||
monitoring-grafana-data:
|
||||
driver: local
|
||||
loki_config:
|
||||
driver: local
|
||||
loki_data:
|
||||
driver: local
|
||||
promtail_config:
|
||||
driver: local
|
||||
|
||||
|
||||
services:
|
||||
promtail:
|
||||
image: grafana/promtail:latest
|
||||
container_name: monitoring-promtail
|
||||
volumes:
|
||||
- /var/log:/var/log
|
||||
- /var/lib/docker/containers:/var/lib/docker/containers
|
||||
- promtail_config:/etc/promtail-config
|
||||
command: -config.file=/etc/promtail-config/promtail.yml
|
||||
restart: unless-stopped
|
||||
|
||||
loki:
|
||||
image: grafana/loki:latest
|
||||
container_name: monitoring-loki
|
||||
ports:
|
||||
- "3100:3100"
|
||||
command: -config.file=/etc/loki/local-config.yaml
|
||||
volumes:
|
||||
- loki_config:/etc/loki
|
||||
- loki_data:/data/loki
|
||||
restart: unless-stopped
|
||||
|
||||
node-exporter:
|
||||
image: prom/node-exporter
|
||||
container_name: monitoring-node-exporter
|
||||
volumes:
|
||||
- /proc:/host/proc:ro
|
||||
- /sys:/host/sys:ro
|
||||
command:
|
||||
- '--path.procfs=/host/proc'
|
||||
- '--path.sysfs=/host/sys'
|
||||
- --collector.filesystem.ignored-mount-points
|
||||
- "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"
|
||||
ports:
|
||||
- 9100:9100
|
||||
restart: unless-stopped
|
||||
|
||||
cadvisor:
|
||||
image: google/cadvisor:latest
|
||||
container_name: monitoring-cadvisor
|
||||
ports:
|
||||
- "8099:8080"
|
||||
volumes:
|
||||
- /:/rootfs:ro
|
||||
- /var/run:/var/run:ro
|
||||
- /sys:/sys:ro
|
||||
- /var/lib/docker/:/var/lib/docker:ro
|
||||
- /dev/disk/:/dev/disk:ro
|
||||
restart: unless-stopped
|
||||
devices:
|
||||
- /dev/kmsg
|
||||
|
||||
prometheus:
|
||||
image: prom/prometheus:latest
|
||||
container_name: monitoring-prometheus
|
||||
ports:
|
||||
- "9090:9090"
|
||||
volumes:
|
||||
- prometheus-config:/etc/prometheus
|
||||
- prometheus-data:/prometheus
|
||||
restart: unless-stopped
|
||||
command:
|
||||
- "--config.file=/etc/prometheus/prometheus.yml"
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana-oss:latest
|
||||
container_name: monitoring-grafana
|
||||
ports:
|
||||
- "3090:3000"
|
||||
volumes:
|
||||
- monitoring-grafana-data:/var/lib/grafana
|
||||
restart: unless-stopped
|
||||
29
server-monitoring/loki/local-config.yaml
Normal file
29
server-monitoring/loki/local-config.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
auth_enabled: false
|
||||
|
||||
server:
|
||||
http_listen_port: 3100
|
||||
|
||||
common:
|
||||
path_prefix: /loki
|
||||
storage:
|
||||
filesystem:
|
||||
chunks_directory: /loki/chunks
|
||||
rules_directory: /loki/rules
|
||||
replication_factor: 1
|
||||
ring:
|
||||
instance_addr: 127.0.0.1
|
||||
kvstore:
|
||||
store: inmemory
|
||||
|
||||
schema_config:
|
||||
configs:
|
||||
- from: 2020-10-24
|
||||
store: boltdb-shipper
|
||||
object_store: filesystem
|
||||
schema: v11
|
||||
index:
|
||||
prefix: index_
|
||||
period: 24h
|
||||
|
||||
ruler:
|
||||
alertmanager_url: http://localhost:9093
|
||||
27
server-monitoring/prometheus.yml
Normal file
27
server-monitoring/prometheus.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
global:
|
||||
scrape_interval: 15s # By default, scrape targets every 15 seconds.
|
||||
|
||||
# Attach these labels to any time series or alerts when communicating with
|
||||
# external systems (federation, remote storage, Alertmanager).
|
||||
# external_labels:
|
||||
# monitor: 'codelab-monitor'
|
||||
|
||||
# A scrape configuration containing exactly one endpoint to scrape:
|
||||
# Here it's Prometheus itself.
|
||||
scrape_configs:
|
||||
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
|
||||
- job_name: 'prometheus'
|
||||
# Override the global default and scrape targets from this job every 5 seconds.
|
||||
scrape_interval: 5s
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
|
||||
# Example job for node_exporter
|
||||
- job_name: 'node_exporter'
|
||||
static_configs:
|
||||
- targets: ['monitoring-node-exporter:9100']
|
||||
|
||||
# Example job for cadvisor
|
||||
- job_name: 'cadvisor'
|
||||
static_configs:
|
||||
- targets: ['monitoring-cadvisor:8080']
|
||||
17
server-monitoring/promtail.yml
Normal file
17
server-monitoring/promtail.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
server:
|
||||
disable: true
|
||||
|
||||
positions:
|
||||
filename: /tmp/positions.yaml
|
||||
|
||||
clients:
|
||||
- url: http://loki:3100/loki/api/v1/push
|
||||
|
||||
scrape_configs:
|
||||
- job_name: system
|
||||
pipeline_stages:
|
||||
- docker: {}
|
||||
static_configs:
|
||||
- labels:
|
||||
job: docker
|
||||
__path__: /var/lib/docker/containers/*/*-json.log
|
||||
75
smarthome-monitoring/docker-compose.yml
Normal file
75
smarthome-monitoring/docker-compose.yml
Normal file
@@ -0,0 +1,75 @@
|
||||
version: '3.7'
|
||||
|
||||
volumes:
|
||||
smarthome-monitoring-influxdb-data:
|
||||
driver: local
|
||||
smarthome-monitoring-influxdb-config:
|
||||
driver: local
|
||||
#smarthome-monitoring-chronograf-data:
|
||||
# driver: local
|
||||
smarthome-monitoring-telegraf-data:
|
||||
driver: local
|
||||
smarthome-monitoring-grafana-data:
|
||||
driver: local
|
||||
|
||||
services:
|
||||
|
||||
influxdb:
|
||||
image: influxdb:latest
|
||||
container_name: smarthome-monitoring-influxdb
|
||||
volumes:
|
||||
- smarthome-monitoring-influxdb-data:/var/lib/influxdb2
|
||||
- smarthome-monitoring-influxdb-config:/etc/influxdb2
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
INFLUXDB_REPORTING_DISABLED: "true"
|
||||
INFLUXDB_ADMIN_ENABLED: "true"
|
||||
INFLUXDB_DB: "mydb"
|
||||
ports:
|
||||
- "8086:8086"
|
||||
- "8082:8082"
|
||||
- "8089:8089"
|
||||
|
||||
#kapacitor:
|
||||
# image: kapacitor:latest
|
||||
# container_name: smarthome-monitoring-kapacitor
|
||||
# environment:
|
||||
# KAPACITOR_HOSTNAME: smarthome-monitoring-kapacitor
|
||||
# KAPACITOR_INFLUXDB_0_URLS_0: http://smarthome-monitoring-influxdb:8086
|
||||
# ports:
|
||||
# - "9092:9092"
|
||||
|
||||
#chronograf:
|
||||
# image: chronograf:latest
|
||||
# container_name: smarthome-monitoring-chronograf
|
||||
# volumes:
|
||||
# - smarthome-monitoring-chronograf-data:/var/lib/chronograf
|
||||
# ports:
|
||||
# - "8888:8888"
|
||||
# environment:
|
||||
# INFLUXDB_URL: http://smarthome-monitoring-influxdb:8086
|
||||
# KAPACITOR_URL: http://smarthome-monitoring-kapacitor:9092
|
||||
# REPORTING_DISABLED: "true"
|
||||
# depends_on:
|
||||
# - influxdb
|
||||
# - kapacitor
|
||||
|
||||
telegraf:
|
||||
image: telegraf:latest
|
||||
container_name: smarthome-monitoring-telegraf
|
||||
volumes:
|
||||
- smarthome-monitoring-telegraf-data:/etc/telegraf
|
||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
HOSTNAME: smarthome-monitoring-telegraf
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana-oss:latest
|
||||
container_name: smarthome-monitoring-grafana
|
||||
ports:
|
||||
- "3091:3000"
|
||||
volumes:
|
||||
- smarthome-monitoring-grafana-data:/var/lib/grafana
|
||||
restart: unless-stopped
|
||||
|
||||
9273
smarthome-monitoring/telegraf.conf
Normal file
9273
smarthome-monitoring/telegraf.conf
Normal file
File diff suppressed because it is too large
Load Diff
@@ -22,6 +22,7 @@ services:
|
||||
|
||||
nginx_recipes:
|
||||
image: nginx:mainline-alpine
|
||||
container_name: tandoor-recipes
|
||||
restart: always
|
||||
ports:
|
||||
- 8095:80
|
||||
|
||||
19
things-board/docker-compose.yml
Normal file
19
things-board/docker-compose.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
version: '3.0'
|
||||
services:
|
||||
mytb:
|
||||
restart: unless-stopped
|
||||
image: "thingsboard/tb-postgres:latest"
|
||||
ports:
|
||||
- "9090:9090"
|
||||
- "1883:1883"
|
||||
- "7070:7070"
|
||||
- "5683-5688:5683-5688/udp"
|
||||
environment:
|
||||
TB_QUEUE_TYPE: in-memory
|
||||
volumes:
|
||||
- things_board_data:/data
|
||||
- things_board_log:/var/log/thingsboard
|
||||
|
||||
volumes:
|
||||
things_board_data:
|
||||
things_board_log:
|
||||
@@ -3,6 +3,7 @@ version: '3'
|
||||
services:
|
||||
traccar:
|
||||
image: traccar/traccar:latest
|
||||
container_name: traccar
|
||||
restart: always
|
||||
ports:
|
||||
- "8096:8082"
|
||||
|
||||
36
traefik/docker-compose.yaml
Normal file
36
traefik/docker-compose.yaml
Normal file
@@ -0,0 +1,36 @@
|
||||
version: "3.3"
|
||||
|
||||
services:
|
||||
|
||||
traefik:
|
||||
image: "traefik:v3.2"
|
||||
container_name: "traefik"
|
||||
command:
|
||||
#- "--log.level=DEBUG"
|
||||
- "--api.insecure=true"
|
||||
- "--providers.docker=true"
|
||||
- "--providers.docker.exposedbydefault=false"
|
||||
- "--providers.docker.network=traefik_web"
|
||||
- "--entrypoints.https.address=:443"
|
||||
- "--entrypoints.https.http.tls.certResolver=le"
|
||||
- "--certificatesresolvers.le.acme.tlschallenge=true"
|
||||
- "--certificatesresolvers.le.acme.email=nils.grunwald@msn.com"
|
||||
- "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
|
||||
ports:
|
||||
- "444:443"
|
||||
- "9080:8080"
|
||||
volumes:
|
||||
- letsencrypt:/letsencrypt
|
||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||
networks:
|
||||
- web
|
||||
extra_hosts:
|
||||
- host.docker.internal:172.17.0.1
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
letsencrypt:
|
||||
|
||||
networks:
|
||||
web:
|
||||
name: traefik_web
|
||||
18
uptime-kuma/docker-compose.yml
Normal file
18
uptime-kuma/docker-compose.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
# Simple docker-compose.yml
|
||||
# You can change your port or volume location
|
||||
|
||||
version: '3.3'
|
||||
|
||||
services:
|
||||
uptime-kuma:
|
||||
image: louislam/uptime-kuma:1
|
||||
container_name: uptime-kuma
|
||||
volumes:
|
||||
- uptime-kuma-data:/app/data
|
||||
ports:
|
||||
- 3001:3001 # <Host Port>:<Container Port>
|
||||
restart: always
|
||||
|
||||
|
||||
volumes:
|
||||
uptime-kuma-data:
|
||||
Reference in New Issue
Block a user