From ed2bced88f8e8dd10a316b6c752cdad2d2ea0f06 Mon Sep 17 00:00:00 2001 From: oliver Date: Fri, 28 Mar 2025 11:17:36 +0100 Subject: [PATCH] =?UTF-8?q?Dateien=20nach=20=E2=80=9E/=E2=80=9C=20hochlade?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- stack_baikal.yaml | 44 ++++++++++++++++++++ stack_classicpress.yaml | 38 +++++++++++++++++ stack_ghost.yaml | 50 ++++++++++++++++++++++ stack_immich.env | 92 +++++++++++++++++++++++++++++++++++++++++ stack_immich.yaml | 76 ++++++++++++++++++++++++++++++++++ 5 files changed, 300 insertions(+) create mode 100644 stack_baikal.yaml create mode 100644 stack_classicpress.yaml create mode 100644 stack_ghost.yaml create mode 100644 stack_immich.env create mode 100644 stack_immich.yaml diff --git a/stack_baikal.yaml b/stack_baikal.yaml new file mode 100644 index 0000000..61bc23f --- /dev/null +++ b/stack_baikal.yaml @@ -0,0 +1,44 @@ +# Docker Compose file for a Baikal server with latest MariaDB +# Originally based on issue https://github.com/ckulka/baikal-docker/issues/10 +# Adopted for the use on Synology paired with Portainer + +version: "2" +services: + baikal: + image: ckulka/baikal:nginx + container_name: baikal-app + restart: always + environment: + MSMTPRC: | + defaults + auth on + tls on + tls_trust_file /etc/ssl/certs/ca-certificates.crt + account default + host mailhost + port 587 + from mailaddress + user mailuser + password mailpw + ports: + - "8081:80" + volumes: + - /volume1/docker/baikal/config:/var/www/baikal/config + - /volume1/docker/baikal/data:/var/www/baikal/specific + + db: + image: mariadb:latest + container_name: baikal-db + restart: always + environment: + MYSQL_ROOT_PASSWORD: mysqlrootpassword + MYSQL_DATABASE: baikaldb + MYSQL_USER: baikaluser + MYSQL_PASSWORD: mysqluserpassword + volumes: + - /volume1/docker/baikal/db:/var/lib/mysql + +volumes: + config: + data: + db: \ No newline at end of file diff --git a/stack_classicpress.yaml b/stack_classicpress.yaml new file mode 100644 index 0000000..2a754e1 --- /dev/null +++ b/stack_classicpress.yaml @@ -0,0 +1,38 @@ +# Docker Compose file for ClassicPress and the MySQL-DB needed for a "lighter" Wordpress +# Adopted for the use on Synology paired with Portainer + +version: '3.1' +services: + classicpress: + image: marverix/classicpress:latest + container_name: ClassicPress + restart: always + + ports: + - 8181:80 + environment: + CP_DB_HOST: db + CP_DB_USER: exampleuser + CP_DB_PASSWORD: examplepass + CP_DB_NAME: exampledb + APACHE_RUN_USER_ID: PUID + APACHE_RUN_GROUP_ID: PGID + + volumes: + - /volume1/docker/classicpress/data:/data + + db: + image: mysql:5.7 + container_name: ClassicPress-DB + restart: always + environment: + MYSQL_DATABASE: exampledb + MYSQL_USER: exampleuser + MYSQL_PASSWORD: examplepass + MYSQL_RANDOM_ROOT_PASSWORD: '1' + volumes: + - /volume1/docker/classicpress/db:/var/lib/mysql + +volumes: + classicpress: + db: diff --git a/stack_ghost.yaml b/stack_ghost.yaml new file mode 100644 index 0000000..257c76b --- /dev/null +++ b/stack_ghost.yaml @@ -0,0 +1,50 @@ +version: '3.9' +services: + ghost-db: + image: mysql + container_name: ghost-db + hostname: ghost-db + security_opt: + - no-new-privileges:true + environment: + - PUID=1035 + - PGID=100 + - TZ=Europe/Berlin + - MYSQL_ROOT_PASSWORD=superpassword + - MYSQL_DATABASE=ghost + - MYSQL_USER=ghostuser + - MYSQL_PASSWORD=ghostpass + volumes: + - /volume1/docker/ghost/db:/var/lib/mysql:rw + restart: always + + ghost: + image: ghost:latest + container_name: ghost + hostname: ghost + security_opt: + - no-new-privileges:true + user: 1035:100 + environment: + database__client: mysql + database__connection__host: ghost-db + database__connection__user: ghostuser + database__connection__password: ghostpass + database__connection__database: ghost + url: https://blog.pifferi.info + mail__transport: SMTP + mail__options__service: SMTP + mail__from: oliver@pifferi.info + mail__options__host: smtp.eu.mailgun.org + mail__options__port: 587 + mail__options__auth__user: postmaster@mail.pifferi.info + mail__options__auth__pass: Your-own-app-password + NODE_ENV: production + volumes: + - /volume1/docker/ghost:/var/lib/ghost/content:rw + ports: + - 2368:2368 + restart: always + depends_on: + ghost-db: + condition: service_started \ No newline at end of file diff --git a/stack_immich.env b/stack_immich.env new file mode 100644 index 0000000..bda560b --- /dev/null +++ b/stack_immich.env @@ -0,0 +1,92 @@ +NODE_ENV=production +TZ=Europe/Berlin +################################################################################### +# Database +################################################################################### + +DB_HOSTNAME=immich-db +DB_USERNAME=immichuser +DB_PASSWORD=immichpw +DB_DATABASE_NAME=immich + +# Optional Database settings: +# DB_PORT=5432 + +################################################################################### +# Redis +################################################################################### + +REDIS_HOSTNAME=immich-redis + +# Optional Redis settings: +# REDIS_PORT=6379 +# REDIS_DBINDEX=0 +# REDIS_PASSWORD= +# REDIS_SOCKET= + +################################################################################### +# Log message level - [simple|verbose] +################################################################################### + +LOG_LEVEL=log + +################################################################################### +# JWT SECRET +################################################################################### + +# This JWT_SECRET is used to sign the authentication keys for user login +# You should set it to a long randomly generated value +# You can use this command to generate one: openssl rand -base64 128 +JWT_SECRET= +################################################################################### +# Reverse Geocoding +#################################################################################### + +# DISABLE_REVERSE_GEOCODING=false + +# Reverse geocoding is done locally which has a small impact on memory usage +# This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable +# This ranges from 0-3 with 3 being the most precise +# 3 - Cities > 500 population: ~200MB RAM +# 2 - Cities > 1000 population: ~150MB RAM +# 1 - Cities > 5000 population: ~80MB RAM +# 0 - Cities > 15000 population: ~40MB RAM + +DISABLE_REVERSE_GEOCODING=false +REVERSE_GEOCODING_PRECISION=3 + +#################################################################################### +# WEB - Optional +#################################################################################### + +# Custom message on the login page, should be written in HTML form. +# For example PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.

Email: demo@demo.de
Password: demo" + +PUBLIC_LOGIN_PAGE_MESSAGE= + +#################################################################################### +# Alternative Service Addresses - Optional +# +# This is an advanced feature for users who may be running their immich services on different hosts. +# It will not change which address or port that services bind to within their containers, but it will change where other services look for their peers. +# Note: immich-microservices is bound to 3002, but no references are made +#################################################################################### + +IMMICH_WEB_URL=http://immich-web:3000 +IMMICH_SERVER_URL=http://immich-server:3001 +IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003 + +#################################################################################### +# OAuth Setting - Optional +# +# These setting will enable OAuth login for your instance of Immich +# Folow the instructions in the page https://immich.app/docs/usage/oauth to set up your OAuth provider +#################################################################################### + +# OAUTH_ENABLED=false +# OAUTH_ISSUER_URL= +# OAUTH_CLIENT_ID= +# OAUTH_CLIENT_SECRET= +# OAUTH_BUTTON_TEXT=Single Sign-On +# OAUTH_AUTO_REGISTER=true +# OAUTH_SCOPE="openid profile email" \ No newline at end of file diff --git a/stack_immich.yaml b/stack_immich.yaml new file mode 100644 index 0000000..c1c3bc4 --- /dev/null +++ b/stack_immich.yaml @@ -0,0 +1,76 @@ +version: "3.9" +services: + immich-redis: + image: redis + container_name: immich-redis + hostname: immich-redis + security_opt: + - no-new-privileges:true + healthcheck: + test: ["CMD-SHELL", "redis-cli ping || exit 1"] + user: 1035:100 + environment: + - TZ=Europe/Berlin + volumes: + - /volume1/docker/immich/redis:/data:rw + restart: on-failure:5 + + immich-db: + image: tensorchord/pgvecto-rs:pg16-v0.2.0 + container_name: immich-db + hostname: immich-db + security_opt: + - no-new-privileges:true + healthcheck: + test: ["CMD", "pg_isready", "-q", "-d", "immich", "-U", "immichuser"] + interval: 10s + timeout: 5s + retries: 5 + volumes: + - /volume1/docker/immich/db:/var/lib/postgresql/data:rw + environment: + - TZ=Europe/Berlin + - POSTGRES_DB=immich + - POSTGRES_USER=immichuser + - POSTGRES_PASSWORD=immichpw + restart: on-failure:5 + + immich-server: + image: ghcr.io/immich-app/immich-server:release + container_name: immich-server + hostname: immich-server + user: 1035:100 + security_opt: + - no-new-privileges:true + env_file: + - stack.env + ports: + - 2283:2283 + volumes: + - /volume1/docker/immich/upload:/usr/src/app/upload:rw + restart: on-failure:5 + depends_on: + immich-redis: + condition: service_healthy + immich-db: + condition: service_started + + immich-machine-learning: + image: ghcr.io/immich-app/immich-machine-learning:release + container_name: immich-machine-learning + hostname: immich-machine-learning + user: 1035:100 + security_opt: + - no-new-privileges:true + env_file: + - stack.env + volumes: + - /volume1/docker/immich/upload:/usr/src/app/upload:rw + - /volume1/docker/immich/cache:/cache:rw + - /volume1/docker/immich/matplotlib:/matplotlib:rw + environment: + - MPLCONFIGDIR=/matplotlib + restart: on-failure:5 + depends_on: + immich-db: + condition: service_started \ No newline at end of file