Fully reordered file structure. All files splitted by servises. Manuals will be added where needed.
This commit is contained in:
1
README.md
Normal file
1
README.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
All yaml configs using stack.env variables, as they was designed to be used with Portainer
|
||||||
5
ddns-cloudflare/cloudflare_example.env
Normal file
5
ddns-cloudflare/cloudflare_example.env
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Cloudflare API key. User -> My Profile -> API tokens
|
||||||
|
CLOUDFLARE_API=your_api_key
|
||||||
|
|
||||||
|
# Cloudflare zone, which will be used. Dashboard -> Web Sites
|
||||||
|
ZONE=your_zone
|
||||||
14
ddns-cloudflare/ddns-cloudflare.yaml
Normal file
14
ddns-cloudflare/ddns-cloudflare.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
version: '2'
|
||||||
|
services:
|
||||||
|
cloudflare-ddns:
|
||||||
|
container_name: ddns-cloudflare
|
||||||
|
image: oznu/cloudflare-ddns:latest
|
||||||
|
restart: always
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
environment:
|
||||||
|
- API_KEY=${CLOUDFLARE_API}
|
||||||
|
- ZONE=${ZONE}
|
||||||
|
- PROXIED=true
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
15
heimdall/heimdall.yaml
Normal file
15
heimdall/heimdall.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
version: "2.1"
|
||||||
|
services:
|
||||||
|
heimdall:
|
||||||
|
image: lscr.io/linuxserver/heimdall:latest
|
||||||
|
container_name: heimdall
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Europe/Warsaw
|
||||||
|
volumes:
|
||||||
|
- /home/mbuz/docker/heimdall/config:/config
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
- 443:443
|
||||||
|
restart: unless-stopped
|
||||||
4
immich/README.md
Normal file
4
immich/README.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
Sometimes Immich may return error 500 after startup. It helps to stop all containers and then start them in that order:
|
||||||
|
1. immich_postgres, immich_redis, immich_typesense
|
||||||
|
2. Here you need to wait 3-5 minutes to be sure, that typesense is running correctly
|
||||||
|
3. Rest of the containers, including immich_server
|
||||||
98
immich/immich.yaml
Normal file
98
immich/immich.yaml
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
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
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
- database
|
||||||
|
- typesense
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
immich-microservices:
|
||||||
|
container_name: immich_microservices
|
||||||
|
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
||||||
|
# extends:
|
||||||
|
# file: hwaccel.yml
|
||||||
|
# service: hwaccel
|
||||||
|
command: [ "start.sh", "microservices" ]
|
||||||
|
volumes:
|
||||||
|
- ${UPLOAD_LOCATION}:/usr/src/app/upload
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
- database
|
||||||
|
- typesense
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
immich-machine-learning:
|
||||||
|
container_name: immich_machine_learning
|
||||||
|
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||||
|
volumes:
|
||||||
|
- model-cache:/cache
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
immich-web:
|
||||||
|
container_name: immich_web
|
||||||
|
image: ghcr.io/immich-app/immich-web:${IMMICH_VERSION:-release}
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
typesense:
|
||||||
|
container_name: immich_typesense
|
||||||
|
image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
|
||||||
|
environment:
|
||||||
|
- TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
|
||||||
|
- TYPESENSE_DATA_DIR=/data
|
||||||
|
# remove this to get debug messages
|
||||||
|
- GLOG_minloglevel=1
|
||||||
|
volumes:
|
||||||
|
- tsdata:/data
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
redis:
|
||||||
|
container_name: immich_redis
|
||||||
|
image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
database:
|
||||||
|
container_name: immich_postgres
|
||||||
|
image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
environment:
|
||||||
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||||
|
POSTGRES_USER: ${DB_USERNAME}
|
||||||
|
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||||
|
volumes:
|
||||||
|
- pgdata:/var/lib/postgresql/data
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
immich-proxy:
|
||||||
|
container_name: immich_proxy
|
||||||
|
image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release}
|
||||||
|
environment:
|
||||||
|
# Make sure these values get passed through from the env file
|
||||||
|
- IMMICH_SERVER_URL
|
||||||
|
- IMMICH_WEB_URL
|
||||||
|
ports:
|
||||||
|
- 2283:8080
|
||||||
|
depends_on:
|
||||||
|
- immich-server
|
||||||
|
- immich-web
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pgdata:
|
||||||
|
model-cache:
|
||||||
|
tsdata:
|
||||||
23
immich/immich_example.env
Normal file
23
immich/immich_example.env
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# 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=/path/to/media/folder
|
||||||
|
|
||||||
|
# The Immich version to use. You can pin this to a specific version like "v1.71.0"
|
||||||
|
IMMICH_VERSION=release
|
||||||
|
|
||||||
|
# Connection secrets for postgres and typesense. You should change these to random passwords
|
||||||
|
TYPESENSE_API_KEY=some_random_text
|
||||||
|
DB_PASSWORD=strong_password
|
||||||
|
|
||||||
|
# The values below this line do not need to be changed
|
||||||
|
###################################################################################
|
||||||
|
DB_HOSTNAME=immich_postgres
|
||||||
|
DB_USERNAME=postgres
|
||||||
|
DB_DATABASE_NAME=immich
|
||||||
|
|
||||||
|
REDIS_HOSTNAME=immich_redis
|
||||||
|
|
||||||
|
# Uncomment and change, if you need to use Immich with proxy
|
||||||
|
# IMMICH_WEB_URLL=
|
||||||
|
# IMMICH_SERVER_URL=
|
||||||
48
nextcloud/nextcloud.yaml
Normal file
48
nextcloud/nextcloud.yaml
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
version: '3.3'
|
||||||
|
services:
|
||||||
|
nextcloud:
|
||||||
|
image: lscr.io/linuxserver/nextcloud:latest
|
||||||
|
container_name: nextcloud
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT}
|
||||||
|
- PHP_UPLOAD_LIMIT=${PHP_UPLOAD_LIMIT}
|
||||||
|
- TZ=${TZ}
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG}:/config
|
||||||
|
- ${DATA}:/data
|
||||||
|
ports:
|
||||||
|
- 5443:443
|
||||||
|
restart: unless-stopped
|
||||||
|
links:
|
||||||
|
- nextcloud-mariadb
|
||||||
|
depends_on:
|
||||||
|
- nextcloud-mariadb
|
||||||
|
|
||||||
|
nextcloud-mariadb:
|
||||||
|
image: lscr.io/linuxserver/mariadb:latest
|
||||||
|
container_name: nextloud-mariadb
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=${TZ}
|
||||||
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||||
|
- MYSQL_DATABASE=nextcloud
|
||||||
|
- MYSQL_USER=nextcloud
|
||||||
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- ${MARIADB}:/config
|
||||||
|
ports:
|
||||||
|
- 5306:3306
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nextcloud
|
||||||
|
driver: bridge
|
||||||
21
nextcloud/nextcoud_example.env
Normal file
21
nextcloud/nextcoud_example.env
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Overall and upload PHP limits
|
||||||
|
PHP_MEMORY_LIMIT=2048M
|
||||||
|
PHP_UPLOAD_LIMIT=5120M
|
||||||
|
|
||||||
|
# Timezone
|
||||||
|
TZ=Europe/Warsaw
|
||||||
|
|
||||||
|
# Where config will be stored
|
||||||
|
CONFIG=/path/to/config_folder
|
||||||
|
|
||||||
|
# Where the data (files) will be stored
|
||||||
|
DATA=/path/to/data_folder
|
||||||
|
|
||||||
|
# MySQL password for the root account
|
||||||
|
MYSQL_ROOT_PASSWORD=super_duper_strong_password
|
||||||
|
|
||||||
|
# MySQL password for the nextcloud account
|
||||||
|
MYSQL_PASSWORD=another_one_strong_password
|
||||||
|
|
||||||
|
# Folder, where database will be stored
|
||||||
|
MARIADB=/path/to/mariadb/folder
|
||||||
14
nginx-proxy-manager/nginx-proxy.yaml
Normal file
14
nginx-proxy-manager/nginx-proxy.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
version: '3.8'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: jc21/nginx-proxy-manager:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
ports:
|
||||||
|
- 1080:80
|
||||||
|
- 1081:81
|
||||||
|
- 10443:443
|
||||||
|
volumes:
|
||||||
|
- ${NGINX_DATA}:/data
|
||||||
|
- ${NGINX_LETSENCRYPT}:/etc/letsencrypt
|
||||||
5
nginx-proxy-manager/nginx_example.env
Normal file
5
nginx-proxy-manager/nginx_example.env
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Where the proxy data will be stored
|
||||||
|
NGINX_DATA=/path/to/nginx/data_folder
|
||||||
|
|
||||||
|
# Where the Letsencrypt data will be stored
|
||||||
|
NGINX_LETSENCRYPT=/path/to/letsencrypt/data_folder
|
||||||
14
portainer/portainer.yaml
Normal file
14
portainer/portainer.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
portainer:
|
||||||
|
image: portainer/portainer-ce:latest
|
||||||
|
ports:
|
||||||
|
- 9443:9443
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
volumes:
|
||||||
|
- ${PORTAINER_DATA}:/data
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
data:
|
||||||
2
portainer/portainer_example.env
Normal file
2
portainer/portainer_example.env
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Path where thr Portainer data will be stored on the host
|
||||||
|
PORTAINER_DATA=/path/to/portainer/data
|
||||||
21
webtop/webtop.yaml
Normal file
21
webtop/webtop.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
version: "2.1"
|
||||||
|
services:
|
||||||
|
webtop:
|
||||||
|
image: lscr.io/linuxserver/webtop:debian-mate
|
||||||
|
container_name: webtop
|
||||||
|
env_file:
|
||||||
|
- stack.env
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Europe/Warsaw
|
||||||
|
# - CUSTOM_USER=user
|
||||||
|
# - PASSWORD=password
|
||||||
|
volumes:
|
||||||
|
- /home/mbuz/docker/webtop:/config
|
||||||
|
ports:
|
||||||
|
- 3000:3000
|
||||||
|
devices:
|
||||||
|
- /dev/dri:/dev/dri #optional
|
||||||
|
shm_size: "2gb" #optional
|
||||||
|
restart: unless-stopped
|
||||||
2
webtop/webtop_example.env
Normal file
2
webtop/webtop_example.env
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Where webtop config will be stored
|
||||||
|
CONFIG=/path/to/webtop/data
|
||||||
Reference in New Issue
Block a user