This commit is contained in:
myve 2024-08-10 09:07:11 +00:00
commit e650d80b1e
58 changed files with 1747 additions and 0 deletions

13
commafeed/.env Normal file
View file

@ -0,0 +1,13 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Commafeed
COMMAFEED_PORT=
COMMAFEED_DBNAME=
COMMAFEED_DBUSER=
COMMAFEED_DBPASS=
COMMAFEED_URL=

View file

@ -0,0 +1,56 @@
services:
# https://hub.docker.com/r/athou/commafeed
commafeed:
image: ${REGISTRY}/commafeed
container_name: commafeed
restart: unless-stopped
ports:
- ${COMMAFEED_PORT:-8082}:8082
environment:
# PostgreSQL
CF_DATABASE_DRIVERCLASS: org.postgresql.Driver
CF_DATABASE_URL: jdbc:postgresql://commafeed-postgresql:5432/${COMMAFEED_DBNAME:-commafeed}
CF_DATABASE_USER: ${COMMAFEED_DBUSER:-commafeed}
CF_DATABASE_PASSWORD: ${COMMAFEED_DBPASS:-commafeed}
# App settings
CF_APP_PUBLICURL: ${COMMAFEED_URL:-http://localhost:${COMMAFEED_PORT:-8082}}
CF_APP_IMAGEPROXYENABLED: true
CF_APP_STRICTPASSWORDPOLICY: false
# Redis
CF_APP_CACHE: redis
CF_REDIS_HOST: commafeed-redis
CF_REDIS_PORT: 6379
volumes:
- ./data:/commafeed/data
depends_on:
- commafeed-postgresql
- commafeed-redis
networks:
- commafeed
commafeed-postgresql:
image: ${REGISTRY}/postgres
container_name: commafeed-postgresql
restart: unless-stopped
environment:
POSTGRES_DB: ${COMMAFEED_DBNAME:-commafeed}
POSTGRES_USER: ${COMMAFEED_DBUSER:-commafeed}
POSTGRES_PASSWORD: ${COMMAFEED_DBPASS:-commafeed}
volumes:
- ./sql:/var/lib/postgresql/data:rw
networks:
- commafeed
commafeed-redis:
image: ${REGISTRY}/valkey
container_name: commafeed-redis
restart: unless-stopped
volumes:
- ./redis:/data
healthcheck:
test: redis-cli ping
networks:
- commafeed
networks:
commafeed:
external: false

9
dashy/.env Normal file
View file

@ -0,0 +1,9 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Dashy
DASHY_PORT=

25
dashy/docker-compose.yaml Normal file
View file

@ -0,0 +1,25 @@
services:
# dashy (https://github.com/Lissy93/dashy/blob/master/docker-compose.yml)
dashy:
image: ${REGISTRY}/dashy
container_name: dashy
restart: unless-stopped
ports:
- ${DASHY_PORT:-8080}:8080
environment:
NODE_ENV: production
healthcheck:
test: ['CMD', 'node', '/app/services/healthcheck']
interval: 1m30s
timeout: 10s
retries: 3
start_period: 40s
volumes:
- ./conf.yml:/app/user-data/conf.yml
networks:
- dashy
networks:
dashy:
external: false

13
fireshare/.env Normal file
View file

@ -0,0 +1,13 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Fireshare
FIRESHARE_PORT=
FIRESHARE_ADMIN=
FIRESHARE_PASSWORD=
FIRESHARE_SECRET=
FIRESHARE_URL=

View file

@ -0,0 +1,29 @@
services:
# https://github.com/ShaneIsrael/fireshare
fireshare:
image: ${REGISTRY}/fireshare
container_name: fireshare
restart: unless-stopped
ports:
- ${FIRESHARE_PORT:-8080}:80
volumes:
- ./data:/data
- ./processed:/processed
- ./videos:/videos
- ./index.html:/app/build/index.html
environment:
ADMIN_USERNAME: ${FIRESHARE_ADMIN:-admin}
ADMIN_PASSWORD: ${FIRESHARE_PASSWORD:-admin}
SECRET_KEY: ${FIRESHARE_SECRET:-secret}
MINUTES_BETWEEN_VIDEO_SCANS: 5
THUMBNAIL_VIDEO_LOCATION: 0
DOMAIN: ${FIRESHARE_URL:-localhost}
PUID: 1000
PGID: 1000
networks:
- fireshare
networks:
fireshare:
external: false

12
forgejo/.env Normal file
View file

@ -0,0 +1,12 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Forgejo
FORGEJO_PORT=
FORGEJO_SSH_PORT=
FORGEJO_DBNAME=
FORGEJO_DBUSER=
FORGEJO_DBPASS=
FORGEJO_TITLE=
FORGEJO_URL=

View file

@ -0,0 +1,75 @@
services:
# https://forgejo.org/docs/latest/admin/installation-docker/
forgejo:
image: codeberg.org/forgejo/forgejo:8-rootless
container_name: forgejo
restart: unless-stopped
ports:
- ${FORGEJO_PORT:-3000}:3000
- ${FORGEJO_SSH_PORT:-2222}:22
environment:
USER_UID: 1000
USER_GID: 1000
FORGEJO__database__DB_TYPE: postgres
FORGEJO__database__HOST: forgejo-postgresql:5432
FORGEJO__database__NAME: ${FORGEJO_DBNAME:-forgejo}
FORGEJO__database__USER: ${FORGEJO_DBUSER:-forgejo}
FORGEJO__database__PASSWD: ${FORGEJO_DBPASS:-forgejo}
FORGEJO__DEFAULT__APP_NAME: ${FORGEJO_TITLE:-Forgejo}
FORGEJO__service__DISABLE_REGISTRATION: true
FORGEJO__service__SHOW_REGISTRATION_BUTTON: false
FORGEJO__other__SHOW_FOOTER_VERSION: false
FORGEJO__ui__SHOW_USER_EMAIL: false
FORGEJO__repository__DEFAULT_BRANCH: master
FORGEJO__repository__ENABLE_PUSH_CREATE_USER: true
FORGEJO__repository__ENABLE_PUSH_CREATE_ORG: true
FORGEJO__repository.upload__FILE_MAX_SIZE: 256
FORGEJO__mirror__DEFAULT_INTERVAL: 24h
FORGEJO__server__ROOT_URL: ${FORGEJO_URL:-http://localhost:${FORGEJO_PORT:-3000}}
FORGEJO__server__LANDING_PAGE: login
FORGEJO__migrations__ALLOWED_DOMAINS: "*"
FORGEJO__cache__ENABLED: true
FORGEJO__cache__ADAPTER: redis
FORGEJO__cache__HOST: redis://forgejo-redis:6379/0?pool_size=100&idle_timeout=180s
FORGEJO__security__LOGIN_REMEMBER_DAYS: 365
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
depends_on:
- forgejo-postgresql
- forgejo-redis
networks:
- forgejo
forgejo-postgresql:
image: postgres:latest
container_name: forgejo-postgresql
restart: unless-stopped
environment:
POSTGRES_DB: ${FORGEJO_DBNAME:-forgejo}
POSTGRES_USER: ${FORGEJO_DBUSER:-forgejo}
POSTGRES_PASSWORD: ${FORGEJO_DBPASS:-forgejo}
volumes:
- ./sql:/var/lib/postgresql/data:rw
networks:
- forgejo
forgejo-redis:
image: valkey/valkey
container_name: forgejo-redis
restart: unless-stopped
volumes:
- ./redis:/data
networks:
- forgejo
networks:
forgejo:
external: false

14
immich/.env Normal file
View file

@ -0,0 +1,14 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Immich
IMMICH_PORT=
IMMICH_REDIS_HOST=
IMMICH_DB_HOST=
IMMICH_DB_NAME=
IMMICH_DB_USER=
IMMICH_DB_PASS=

View file

@ -0,0 +1,95 @@
services:
# https://immich.app/docs/install/docker-compose
immich-server:
image: ${REGISTRY}/immich-server
container_name: immich-server
restart: unless-stopped
command: ['start.sh', 'immich']
ports:
- ${IMMICH_PORT:-2283}:3001
environment:
REDIS_HOSTNAME: ${IMMICH_REDIS_HOST}
DB_HOSTNAME: ${IMMICH_DB_HOST}
DB_USERNAME: ${IMMICH_DB_USER}
DB_PASSWORD: ${IMMICH_DB_PASS}
DB_DATABASE_NAME: ${IMMICH_DB_NAME}
volumes:
- ./library:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
depends_on:
- immich-redis
- immich-postgresql
networks:
- immich
immich-microservices:
image: ${REGISTRY}/immich-server
container_name: immich-microservices
restart: unless-stopped
command: ['start.sh', 'microservices']
environment:
REDIS_HOSTNAME: ${IMMICH_REDIS_HOST}
DB_HOSTNAME: ${IMMICH_DB_HOST}
DB_USERNAME: ${IMMICH_DB_USER}
DB_PASSWORD: ${IMMICH_DB_PASS}
DB_DATABASE_NAME: ${IMMICH_DB_NAME}
volumes:
- ./library:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
- "/nextcloud/baby/Pikachu and Sable/Both Babies:/watch/family/babies/both:ro"
- "/nextcloud/me/Pictures/Forever Starts Here:/watch/family/myve:ro"
- "/nextcloud/me/Pictures/Pikachu:/watch/family/babies/pikachu:ro"
- "/nextcloud/me/Pictures/Sable:/watch/family/babies/sable:ro"
depends_on:
- immich-redis
- immich-postgresql
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities:
- gpu
- compute
- video
networks:
- immich
immich-machine-learning:
image: ${REGISTRY}/immich-machine-learning
container_name: immich-machine-learning
restart: unless-stopped
volumes:
- ./model-cache:/cache
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities:
- gpu
networks:
- immich
immich-redis:
image: ${REGISTRY}/valkey
container_name: immich-redis
restart: unless-stopped
networks:
- immich
immich-postgresql:
image: ${REGISTRY}/pgvecto-rs
container_name: immich-postgresql
restart: unless-stopped
environment:
POSTGRES_DB: ${IMMICH_DB_NAME}
POSTGRES_USER: ${IMMICH_DB_USER}
POSTGRES_PASSWORD: ${IMMICH_DB_PASS}
volumes:
- ./sql:/var/lib/postgresql/data:rw
networks:
- immich
networks:
immich:
external: false

15
invidious/.env Normal file
View file

@ -0,0 +1,15 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Invidious
INVIDIOUS_PORT=
INVIDIOUS_DBNAME=
INVIDIOUS_DBUSER=
INVIDIOUS_DBPASS=
INVIDIOUS_URL=
INVIDIOUS_ADMIN=
INVIDIOUS_HMAC=

View file

@ -0,0 +1,59 @@
services:
# https://github.com/iv-org/invidious/releases/latest
# invidious
invidious:
image: ${REGISTRY}/invidious
container_name: invidious
restart: unless-stopped
ports:
- ${INVIDIOUS_PORT:-3000}:3000
environment:
INVIDIOUS_CONFIG: |
db:
host: invidious-postgresql
port: 5432
dbname: ${INVIDIOUS_DBNAME:-invidious}
user: ${INVIDIOUS_DBUSER:-invidious}
password: ${INVIDIOUS_DBPASS:-invidious}
check_tables: true
domain: ${INVIDIOUS_URL:-https://localhost:${INVIDIOUS_PORT:-3000}}
https_only: true
registration_enabled: false
admins: ["${INVIDIOUS_ADMIN:-admin}"]
hmac_key: ${INVIDIOUS_HMAC:-invidious}
quality: dash
quality_dash: auto
healthcheck:
test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/trending || exit 1
interval: 30s
timeout: 5s
retries: 2
logging:
options:
max-size: 1G
max-file: 4
depends_on:
- invidious-postgresql
networks:
- invidious
invidious-postgresql:
image: ${REGISTRY}/postgres
container_name: invidious-postgresql
restart: unless-stopped
volumes:
- ./sql:/var/lib/postgresql/data
- ./config/sql:/config/sql
- ./docker/init-invidious-postgresql.sh:/docker-entrypoint-initdb.d/init-invidious-postgresql.sh
environment:
POSTGRES_DB: ${INVIDIOUS_DBNAME:-invidious}
POSTGRES_USER: ${INVIDIOUS_DBUSER:-invidious}
POSTGRES_PASSWORD: ${INVIDIOUS_DBPASS:-invidious}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
networks:
- invidious
networks:
invidious:
external: false

9
jellyfin/.env Normal file
View file

@ -0,0 +1,9 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Jellyfin port
JELLYFIN_PORT=4200

View file

@ -0,0 +1,26 @@
services:
jellyfin:
image: ${REGISTRY}/jellyfin
container_name: jellyfin
restart: unless-stopped
ports:
- ${JELLYFIN_PORT:-8096}:8096/tcp
user: 1000:984
volumes:
- ./config:/config
- ./cache:/cache
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities:
- gpu
networks:
- jellyfin
networks:
jellyfin:
external: false

13
linkding/.env Normal file
View file

@ -0,0 +1,13 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Linkding
LINKDING_PORT=
LINKDING_DBNAME=
LINKDING_DBUSER=
LINKDING_DBPASS=
LINKDING_URL=

View file

@ -0,0 +1,43 @@
services:
# linkding (https://github.com/sissbruecker/linkding)
linkding:
image: ${REGISTRY}/linkding
container_name: linkding
restart: unless-stopped
ports:
- ${LINKDING_PORT:-9090}:9090
environment:
LD_DB_ENGINE: postgres
LD_DB_HOST: linkding-postgresql
LD_DB_PORT: 5432
LD_DB_DATABASE: ${LINKDING_DBNAME:-linkding}
LD_DB_USER: ${LINKDING_DBUSER:-linkding}
LD_DB_PASSWORD: ${LINKDING_DBPASS:-linkding}
LD_DISABLE_BACKGROUND_TASKS: False
LD_DISABLE_URL_VALIDATION: False
LD_ENABLE_AUTH_PROXY: False
LD_CSRF_TRUSTED_ORIGINS: ${LINKDING_URL:-http://localhost:${LINKDING_PORT:-9090}}
volumes:
- ./data:/etc/linkding/data
depends_on:
- linkding-postgresql
networks:
- linkding
linkding-postgresql:
image: ${REGISTRY}/postgres
container_name: linkding-postgresql
restart: unless-stopped
environment:
POSTGRES_DB: ${LINKDING_DBNAME:-linkding}
POSTGRES_USER: ${LINKDING_DBUSER:-linkding}
POSTGRES_PASSWORD: ${LINKDING_DBPASS:-linkding}
volumes:
- ./sql:/var/lib/postgresql/data:rw
networks:
- linkding
networks:
linkding:
external: false

11
linkstack/.env Normal file
View file

@ -0,0 +1,11 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Linkstack
LINKSTACK_PORT=
LINKSTACK_ADMIN=
LINKSTACK_DOMAIN=

View file

@ -0,0 +1,25 @@
services:
# https://github.com/LinkStackOrg/linkstack-docker/blob/main/docker-compose.yml
linkstack:
image: ${REGISTRY}/linkstack
container_name: linkstack
restart: unless-stopped
ports:
- ${LINKSTACK_PORT:-443}:443
environment:
TZ: UTC
SERVER_ADMIN: ${LINKSTACK_ADMIN:-admin}
HTTP_SERVER_NAME: ${LINKSTACK_DOMAIN:-localhost}
HTTPS_SERVER_NAME: ${LINKSTACK_DOMAIN:-localhost}
LOG_LEVEL: info
PHP_MEMORY_LIMIT: 8G
UPLOAD_MAX_FILESIZE: 2G
volumes:
- ./data:/htdocs
networks:
- linkstack
networks:
linkstack:
external: false

12
matrix/.env Normal file
View file

@ -0,0 +1,12 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Matrix
MATRIX_PORT=
MATRIX_DBNAME=
MATRIX_DBUSER=
MATRIX_DBPASS=

View file

@ -0,0 +1,33 @@
services:
# Matrix (https://github.com/element-hq/synapse)
# register_new_matrix_user -c homeserver.yaml http://localhost:8008
matrix:
image: ${REGISTRY}/synapse
container_name: matrix
restart: unless-stopped
ports:
- ${MATRIX_PORT:-8008}:8008
volumes:
- ./data:/data:rw
depends_on:
- matrix-postgresql
networks:
- matrix
matrix-postgresql:
image: ${REGISTRY}/postgres
container_name: matrix-postgresql
restart: unless-stopped
environment:
POSTGRES_DB: ${MATRIX_DBNAME:-synapse}
POSTGRES_USER: ${MATRIX_DBUSER:-synapse}
POSTGRES_PASSWORD: ${MATRIX_DBPASS:-synapse}
POSTGRES_INITDB_ARGS: --encoding=UTF8 --locale=C
volumes:
- ./sql:/var/lib/postgresql/data:rw
networks:
- matrix
networks:
matrix:
external: false

18
nextcloud/.env Normal file
View file

@ -0,0 +1,18 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Nextcloud
NEXTCLOUD_PORT=
NEXTCLOUD_DBNAME=
NEXTCLOUD_DBUSER=
NEXTCLOUD_DBPASS=
# Onlyoffice Document Server
ONLYOFFICE_DS_JWTSECRET=
ONLYOFFICE_DS_JWTHEADER=
ONLYOFFICE_DS_DBNAME=
ONLYOFFICE_DS_DBUSER=

View file

@ -0,0 +1,126 @@
services:
# nextcloud (https://github.com/nextcloud/docker)
nextcloud-nginx:
image: ${REGISTRY}/nginx
container_name: nextcloud-nginx
restart: unless-stopped
ports:
- ${NEXTCLOUD_PORT:-80}:80
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./app:/var/www/html
depends_on:
- nextcloud
- onlyoffice-document-server
networks:
- nextcloud
nextcloud:
image: ${REGISTRY}/nextcloud
container_name: nextcloud
restart: unless-stopped
environment:
# Redis
REDIS_HOST: nextcloud-redis
# PostgreSQL
POSTGRES_HOST: nextcloud-postgresql
POSTGRES_DB: ${NEXTCLOUD_DBNAME:-nextcloud}
POSTGRES_USER: ${NEXTCLOUD_DBUSER:-nextcloud}
POSTGRES_PASSWORD: ${NEXTCLOUD_DBPASS:-nextcloud}
# PHP
PHP_MEMORY_LIMIT: 16G
PHP_UPLOAD_LIMIT: 0
volumes:
- ./app:/var/www/html
- ./data:/var/www/html/data
- ./php-fpm.conf:/usr/local/etc/php-fpm.d/zz-zpmchildren.conf
depends_on:
- nextcloud-postgresql
- nextcloud-redis
networks:
- nextcloud
nextcloud-postgresql:
image: ${REGISTRY}/postgres
container_name: nextcloud-postgresql
restart: unless-stopped
environment:
POSTGRES_DB: ${NEXTCLOUD_DBNAME:-nextcloud}
POSTGRES_USER: ${NEXTCLOUD_DBUSER:-nextcloud}
POSTGRES_PASSWORD: ${NEXTCLOUD_DBPASS:-nextcloud}
volumes:
- ./sql:/var/lib/postgresql/data:rw
networks:
- nextcloud
nextcloud-redis:
image: ${REGISTRY}/valkey
container_name: nextcloud-redis
restart: unless-stopped
volumes:
- ./redis:/data
networks:
- nextcloud
# Onlyoffice Document Server
onlyoffice-document-server:
image: ${REGISTRY}/onlyoffice/documentserver
container_name: onlyoffice-document-server
restart: unless-stopped
stdin_open: true
environment:
# JWT
JWT_ENABLED: true
JWT_SECRET: ${ONLYOFFICE_DS_JWTSECRET:-onlyoffice}
JWT_HEADER: ${ONLYOFFICE_DS_JWTHEADER:-onlyoffice}
# PostgreSQL
DB_TYPE: postgres
DB_HOST: onlyoffice-postgresql
DB_PORT: 5432
DB_NAME: ${ONLYOFFICE_DS_DBNAME:-onlyoffice}
DB_USER: ${ONLYOFFICE_DS_DBUSER:-onlyoffice}
# Rabbitmq
AMQP_URI: amqp://guest:guest@onlyoffice-rabbitmq
# Redis
REDIS_SERVER_HOST: onlyoffice-redis
REDIS_SERVER_PORT: 6379
volumes:
- ./onlyoffice/document/data:/var/www/onlyoffice/Data
- ./onlyoffice/document/log:/var/log/onlyoffice
- ./onlyoffice/document/fonts:/usr/share/fonts/truetype/custom
- ./onlyoffice/document/forgotten:/var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten
- ./onlyoffice/document/cache:/var/lib/onlyoffice
depends_on:
- onlyoffice-postgresql
- onlyoffice-rabbitmq
- onlyoffice-redis
networks:
- nextcloud
onlyoffice-postgresql:
image: ${REGISTRY}/postgres
container_name: onlyoffice-postgresql
restart: unless-stopped
environment:
POSTGRES_DB: ${ONLYOFFICE_DS_DBNAME:-onlyoffice}
POSTGRES_USER: ${ONLYOFFICE_DS_DBUSER:-onlyoffice}
POSTGRES_HOST_AUTH_METHOD: trust
volumes:
- ./onlyoffice/postgresql:/var/lib/postgresql:rw
networks:
- nextcloud
onlyoffice-redis:
image: ${REGISTRY}/valkey
container_name: onlyoffice-redis
restart: unless-stopped
volumes:
- ./onlyoffice/redis:/data
networks:
- nextcloud
onlyoffice-rabbitmq:
image: ${REGISTRY}/rabbitmq
container_name: onlyoffice-rabbitmq
restart: unless-stopped
networks:
- nextcloud
networks:
nextcloud:
external: false

9
nitter/.env Normal file
View file

@ -0,0 +1,9 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Nitter
NITTER_PORT=

View file

@ -0,0 +1,52 @@
services:
# https://github.com/PrivacyDevel/nitter/blob/master/docker-compose.yml
# https://github.com/zedeus/nitter/issues/1155#issuecomment-1917167072
nitter:
image: ${REGISTRY}/nitter
container_name: nitter
restart: unless-stopped
ports:
- ${NITTER_PORT:-8080}:8080
healthcheck:
test: wget -nv --tries=1 --spider http://127.0.0.1:8080/Jack/status/20 || exit 1
interval: 30s
timeout: 5s
retries: 2
volumes:
- ./nitter.conf:/src/nitter.conf:Z,ro
- ./guest_accounts.json:/src/guest_accounts.json
depends_on:
- nitter-redis
user: 1000:984
read_only: true
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
networks:
- nitter
nitter-redis:
image: ${REGISTRY}/valkey
container_name: nitter-redis
command: redis-server --save 60 1 --loglevel warning
volumes:
- ./redis:/data
restart: unless-stopped
healthcheck:
test: redis-cli ping
interval: 30s
timeout: 5s
retries: 2
user: 1000:984
read_only: true
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
networks:
- nitter
networks:
nitter:
external: false

9
olivetin/.env Normal file
View file

@ -0,0 +1,9 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Olivetin
OLIVETIN_PORT=

View file

@ -0,0 +1,17 @@
services:
# https://docs.olivetin.app/install-compose.html
olivetin:
container_name: olivetin
image: ${REGISTRY}/olivetin
restart: unless-stopped
ports:
- ${OLIVETIN_PORT:-1337}:1337
volumes:
- ./config:/config
networks:
- olivetin
networks:
olivetin:
external: false

9
ollama/.env Normal file
View file

@ -0,0 +1,9 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Ollama
OLLAMA_PORT=4100

View file

@ -0,0 +1,43 @@
services:
# https://github.com/open-webui/open-webui
ollama:
image: ${REGISTRY}/ollama
container_name: ollama
restart: unless-stopped
pull_policy: always
tty: true
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities:
- gpu
volumes:
- ./app:/root/.ollama
networks:
- ollama
ollama-webui:
image: ${REGISTRY}/open-webui
container_name: ollama-webui
restart: unless-stopped
ports:
- ${OLLAMA_PORT:-8080}:8080
environment:
OLLAMA_BASE_URL: http://ollama:11434
CUSTOM_NAME: MyveAI
WEBUI_NAME: MyveAI
ENABLE_SIGNUP: False
DEFAULT_MODELS: llama3
volumes:
- ./webui:/app/backend/data
depends_on:
- ollama
networks:
- ollama
networks:
ollama:
external: false

20
onlyoffice/.env Normal file
View file

@ -0,0 +1,20 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Onlyoffice Document Server
ONLYOFFICE_DS_JWTSECRET=
ONLYOFFICE_DS_JWTHEADER=
ONLYOFFICE_DS_DBNAME=
ONLYOFFICE_DS_DBUSER=
# Onlyoffice Community Server
ONLYOFFICE_CS_PORT=
ONLYOFFICE_CS_MACHINEKEY=
ONLYOFFICE_CS_DBNAME=
ONLYOFFICE_CS_DBROOT=
ONLYOFFICE_CS_DBUSER=
ONLYOFFICE_CS_DBPASS=

View file

@ -0,0 +1,165 @@
services:
# Onlyoffice Document Server
onlyoffice-document-server:
image: ${REGISTRY}/onlyoffice/documentserver
container_name: onlyoffice-document-server
restart: unless-stopped
stdin_open: true
environment:
# JWT
JWT_ENABLED: true
JWT_SECRET: ${ONLYOFFICE_DS_JWTSECRET:-onlyoffice}
JWT_HEADER: ${ONLYOFFICE_DS_JWTHEADER:-onlyoffice}
# PostgreSQL
DB_TYPE: postgres
DB_HOST: onlyoffice-postgresql
DB_PORT: 5432
DB_NAME: ${ONLYOFFICE_DS_DBNAME:-onlyoffice}
DB_USER: ${ONLYOFFICE_DS_DBUSER:-onlyoffice}
# Rabbitmq
AMQP_URI: amqp://guest:guest@onlyoffice-rabbitmq
# Redis
REDIS_SERVER_HOST: onlyoffice-redis
REDIS_SERVER_PORT: 6379
volumes:
- ./document/data:/var/www/onlyoffice/Data
- ./document/log:/var/log/onlyoffice
- ./document/fonts:/usr/share/fonts/truetype/custom
- ./document/forgotten:/var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten
- ./document/cache:/var/lib/onlyoffice
depends_on:
- onlyoffice-postgresql
- onlyoffice-rabbitmq
- onlyoffice-redis
networks:
- workspace
onlyoffice-postgresql:
image: ${REGISTRY}/postgres
container_name: onlyoffice-postgresql
restart: unless-stopped
environment:
POSTGRES_DB: ${ONLYOFFICE_DS_DBNAME:-onlyoffice}
POSTGRES_USER: ${ONLYOFFICE_DS_DBUSER:-onlyoffice}
POSTGRES_HOST_AUTH_METHOD: trust
volumes:
- ./postgresql:/var/lib/postgresql:rw
networks:
- workspace
onlyoffice-redis:
image: ${REGISTRY}/valkey
container_name: onlyoffice-redis
restart: unless-stopped
volumes:
- ./redis:/data
networks:
- workspace
onlyoffice-rabbitmq:
image: ${REGISTRY}/rabbitmq
container_name: onlyoffice-rabbitmq
restart: unless-stopped
networks:
- workspace
# Onlyoffice Community Server
onlyoffice-community-server:
image: ${REGISTRY}/onlyoffice/communityserver
container_name: onlyoffice-community-server
restart: unless-stopped
ports:
- ${ONLYOFFICE_CS_PORT:-80}:80
stdin_open: true
tty: true
privileged: true
cgroup: host
environment:
ONLYOFFICE_CORE_MACHINEKEY: ${ONLYOFFICE_CS_MACHINEKEY:-onlyoffice}
CONTROL_PANEL_PORT_80_TCP_ADDR: onlyoffice-control-panel
CONTROL_PANEL_PORT_80_TCP: 80
DOCUMENT_SERVER_PORT_80_TCP_ADDR: onlyoffice-document-server
DOCUMENT_SERVER_JWT_ENABLED: true
DOCUMENT_SERVER_JWT_SECRET: ${ONLYOFFICE_DS_JWTSECRET:-onlyoffice}
DOCUMENT_SERVER_JWT_HEADER: ${ONLYOFFICE_DS_JWTHEADER:-onlyoffice}
MYSQL_SERVER_HOST: onlyoffice-mysql-server
MYSQL_SERVER_DB_NAME: ${ONLYOFFICE_CS_DBNAME:-onlyoffice}
MYSQL_SERVER_ROOT_PASSWORD: ${ONLYOFFICE_CS_DBROOT:-onlyoffice}
MYSQL_SERVER_USER: ${ONLYOFFICE_CS_DBUSER:-onlyoffice}
MYSQL_SERVER_PASS: ${ONLYOFFICE_CS_DBPASS:-onlyoffice}
REDIS_SERVER_HOST: onlyoffice-redis
ELASTICSEARCH_SERVER_HOST: onlyoffice-elasticsearch
ELASTICSEARCH_SERVER_HTTPPORT: 9200
volumes:
- ./community/data:/var/www/onlyoffice/Data
- ./community/log:/var/log/onlyoffice
- ./document/data:/var/www/onlyoffice/DocumentServerData
- /sys/fs/cgroup:/sys/fs/cgroup:rw
depends_on:
- onlyoffice-mysql-server
- onlyoffice-document-server
- onlyoffice-elasticsearch
networks:
- workspace
dns:
- 127.0.0.53
onlyoffice-mysql-server:
image: ${REGISTRY}/mysql
container_name: onlyoffice-mysql-server
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${ONLYOFFICE_CS_DBROOT:-onlyoffice}
stdin_open: true
tty: true
volumes:
- ./mysql/conf.d:/etc/mysql/conf.d
- ./mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
- ./mysql/data:/var/lib/mysql
networks:
- workspace
onlyoffice-elasticsearch:
image: ${REGISTRY}/onlyoffice/elasticsearch
container_name: onlyoffice-elasticsearch
restart: unless-stopped
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1g -Xmx1g -Dlog4j2.formatMsgNoLookups=true"
- "indices.fielddata.cache.size=30%"
- "indices.memory.index_buffer_size=30%"
- "ingest.geoip.downloader.enabled=false"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65535
hard: 65535
volumes:
- ./elasticsearch:/usr/share/elasticsearch/data
networks:
- workspace
onlyoffice-control-panel:
image: ${REGISTRY}/onlyoffice/controlpanel
container_name: onlyoffice-control-panel
restart: unless-stopped
stdin_open: true
tty: true
environment:
ONLYOFFICE_CORE_MACHINEKEY: ${ONLYOFFICE_CS_MACHINEKEY:-onlyoffice}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./controlpanel/data:/var/www/onlyoffice/Data
- ./controlpanel/log:/var/log/onlyoffice
depends_on:
- onlyoffice-document-server
- onlyoffice-community-server
networks:
- workspace
networks:
workspace:
external: false

14
paperless/.env Normal file
View file

@ -0,0 +1,14 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Paperless
PAPERLESS_PORT=
PAPERLESS_DBNAME=
PAPERLESS_DBUSER=
PAPERLESS_DBPASS=
PAPERLESS_URL=
PAPERLESS_SECRETKEY=

View file

@ -0,0 +1,63 @@
services:
# paperless (https://github.com/paperless-ngx/paperless-ngx/blob/dev/docker/compose/docker-compose.postgres.yml)
paperless:
image: ${REGISTRY}/paperless-ngx
container_name: paperless
restart: unless-stopped
ports:
- ${PAPERLESS_PORT:-8000}:8000
healthcheck:
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5
environment:
PAPERLESS_OCR_LANGUAGE: eng
PAPERLESS_REDIS: redis://paperless-redis:6379
PAPERLESS_DBHOST: paperless-postgresql
PAPERLESS_DBNAME: ${PAPERLESS_DBNAME:-paperless}
PAPERLESS_DBUSER: ${PAPERLESS_DBUSER:-paperless}
PAPERLESS_DBPASS: ${PAPERLESS_DBPASS:-paperless}
# PAPERLESS_URL: ${PAPERLESS_URL:-http://localhost:${PAPERLESS_PORT:-8000}}
PAPERLESS_CSRF_TRUSTED_ORIGINS: ${PAPERLESS_URL:-http://localhost:${PAPERLESS_PORT:-8000}}
PAPERLESS_SECRET_KEY: ${PAPERLESS_SECRETKEY:-paperless}
PAPERLESS_OCR_USER_ARGS: '{"invalidate_digital_signatures": true}'
volumes:
- ./data:/usr/src/paperless/data
- ./media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- ./consume:/usr/src/paperless/consume
depends_on:
- paperless-postgresql
- paperless-redis
networks:
- paperless
paperless-postgresql:
image: ${REGISTRY}/postgres
container_name: paperless-postgresql
restart: unless-stopped
environment:
POSTGRES_DB: ${PAPERLESS_DBNAME:-paperless}
POSTGRES_USER: ${PAPERLESS_DBUSER:-paperless}
POSTGRES_PASSWORD: ${PAPERLESS_DBPASS:-paperless}
volumes:
- ./sql:/var/lib/postgresql/data:rw
networks:
- paperless
paperless-redis:
image: ${REGISTRY}/valkey
container_name: paperless-redis
restart: unless-stopped
volumes:
- ./redis:/data
networks:
- paperless
networks:
paperless:
external: false

10
passwordpusher/.env Normal file
View file

@ -0,0 +1,10 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# PasswordPusher
PWPUSHER_PORT=
PWPUSHER_TITLE=

View file

@ -0,0 +1,24 @@
services:
# passwordpusher (https://github.com/pglombardo/PasswordPusher/blob/master/containers/docker/docker-compose-ephemeral.yml)
passwordpusher:
image: ${REGISTRY}/pwpush
container_name: passwordpusher
restart: unless-stopped
ports:
- ${PWPUSHER_PORT:-5100}:5100
environment:
PWP__BRAND__TITLE: ${PWPUSHER_TITLE:-PasswordPusher}
PWP__PW__EXPIRE_AFTER_DAYS_DEFAULT: 1
PWP__PW__EXPIRE_AFTER_VIEWS_DEFAULT: 2
PWP__PW__ENABLE_RETRIEVAL_STEP: false
PWP__PW__ENABLE_DELETABLE_PUSHES: false
PWP__BRAND__SHOW_FOOTER_MENU: false
PWP__SHOW_GDPR_CONSENT_BANNER: false
PWP__GEN__SEPARATORS: '-'
networks:
- passwordpusher
networks:
passwordpusher:
external: false

11
pihole/.env Normal file
View file

@ -0,0 +1,11 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Pi-hole
PIHOLE_PORT=
PIHOLE_PASS=
PIHOLE_HOSTIP=

View file

@ -0,0 +1,39 @@
services:
# https://github.com/pi-hole/docker-pi-hole/
pihole:
container_name: pihole
image: pihole/pihole:latest
restart: unless-stopped
ports:
- 53:53/tcp
- 53:53/udp
- ${PIHOLE_PORT}:80/tcp
environment:
TZ: UTC
WEBPASSWORD: ${PIHOLE_PASS}
FTLCONF_LOCAL_IPV4: ${PIHOLE_HOSTIP}
DNSMASQ_LISTENING: all
PIHOLE_DNS_: 172.21.200.3#53
volumes:
- ./pihole:/etc/pihole
- ./dnsmasq.d:/etc/dnsmasq.d
networks:
pihole:
ipv4_address: 172.21.200.2
unbound:
container_name: unbound
image: mvance/unbound:latest
restart: unless-stopped
networks:
pihole:
ipv4_address: 172.21.200.3
networks:
pihole:
name: pihole
ipam:
driver: default
config:
- subnet: 172.21.200.0/24

11
psitransfer/.env Normal file
View file

@ -0,0 +1,11 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Psitransfer
PSITRANSFER_PORT=
PSITRANSFER_UPLOADPASS=
PSITRANSFER_SUBPATH=

View file

@ -0,0 +1,26 @@
services:
# psitransfer (https://github.com/psi-4ward/psitransfer)
psitransfer:
image: ${REGISTRY}/psitransfer
container_name: psitransfer
restart: unless-stopped
ports:
- ${PSITRANSFER_PORT:-8080}:8080
environment:
PSITRANSFER_PORT: 8080
PSITRANSFER_UPLOAD_PASS: ${PSITRANSFER_UPLOADPASS}
PSITRANSFER_BASE_URL: /${PSITRANSFER_SUBPATH}
PSITRANSFER_DEFAULT_RETENTION: 300 # or "one-time"
PSITRANSFER_RETENTIONS: '{"one-time":"One Time","300":"5 Minutes","3600":"1 Hour","86400":"1 Day","31536000":"1 Year"}'
PSITRANSFER_MAX_AGE: 31536000
PSITRANSFER_MAX_FILE_SIZE: 0
PSITRANSFER_MAX_BUCKET_SIZE: 0
volumes:
- ./data:/data
networks:
- psitransfer
networks:
psitransfer:
external: false

9
qbittorrent/.env Normal file
View file

@ -0,0 +1,9 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Qbittorrent
QBITTORRENT_PORT=

View file

@ -0,0 +1,27 @@
services:
qbittorrent-nox:
image: ${REGISTRY}/qbittorrent-nox
container_name: qbittorrent-nox
restart: unless-stopped
ports:
- ${QBITTORRENT_PORT:-8080}:8080/tcp
- 6881:6881/tcp
- 6881:6881/udp
environment:
PUID: 1000
PGID: 984
QBT_EULA: accept
QBT_VERSION: latest
QBT_WEBUI_PORT: 8080
stop_grace_period: 30m
tty: true
volumes:
- ./config:/config
- ./downloads:/downloads
networks:
- qbittorrent
networks:
qbittorrent:
external: false

9
redlib/.env Normal file
View file

@ -0,0 +1,9 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Redlib
REDLIB_PORT=

View file

@ -0,0 +1,28 @@
services:
redlib:
image: ${REGISTRY}/redlib
container_name: redlib
restart: unless-stopped
ports:
- ${REDLIB_PORT:-8080}:8080
user: nobody
read_only: true
cap_drop:
- ALL
environment:
REDLIB_DEFAULT_SHOW_NSFW: on
REDLIB_DEFAULT_SUBSCRIPTIONS:
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "--tries=1", "http://localhost:8080/settings"]
interval: 5m
timeout: 3s
security_opt:
- no-new-privileges:true
# - seccomp=./seccomp-redlib.json
networks:
- redlib
networks:
redlib:
external: false

10
searxng/.env Normal file
View file

@ -0,0 +1,10 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Searx
SEARX_PORT=
SEARX_URL=

View file

@ -0,0 +1,46 @@
services:
# searx
searxng:
image: ${REGISTRY}/searxng
container_name: searxng
restart: unless-stopped
ports:
- ${SEARX_PORT:-8080}:8080
environment:
SEARXNG_BASE_URL: ${SEARX_URL:-http://localhost:}
volumes:
- ./settings:/etc/searxng:rw
- ./searxng.png:/usr/local/searxng/searx/static/themes/simple/img/searxng.png
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
logging:
driver: json-file
options:
max-size: 1m
max-file: 1
networks:
- searxng
searxng-redis:
image: ${REGISTRY}/valkey
container_name: searxng-redis
restart: unless-stopped
command: redis-server --save 30 1 --loglevel warning
tmpfs:
- /var/lib/redis
cap_drop:
- ALL
cap_add:
- SETGID
- SETUID
- DAC_OVERRIDE
networks:
- searxng
networks:
searxng:
external: false

10
send/.env Normal file
View file

@ -0,0 +1,10 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Send
SEND_PORT=
SEND_TITLE=

43
send/docker-compose.yaml Normal file
View file

@ -0,0 +1,43 @@
services:
# send (https://github.com/timvisee/send-docker-compose)
send:
image: ${REGISTRY}/send
container_name: send
restart: unless-stopped
ports:
- ${SEND_PORT:-1443}:1443
volumes:
- ./uploads:/uploads
environment:
NODE_ENV: production
FILE_DIR: /uploads
DETECT_BASE_URL: true
CUSTOM_TITLE: ${SEND_TITLE:-Send}
EXPIRE_TIMES_SECONDS: 300,3600,86400,31536000
DEFAULT_EXPIRE_SECONDS: 300
MAX_EXPIRE_SECONDS: 31536000
DOWNLOAD_COUNTS: 1,3
DEFAULT_DOWNLOADS: 1
MAX_DOWNLOADS: 3
MAX_FILE_SIZE: 107374182400
REDIS_HOST: send-redis
depends_on:
- send-redis
networks:
- send
send-redis:
image: ${REGISTRY}/valkey
container_name: send-redis
restart: unless-stopped
volumes:
- ./redis:/data
networks:
- send
networks:
send:
external: false

14
shlink/.env Normal file
View file

@ -0,0 +1,14 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Shlink
SHLINK_WEBUI_PORT=
SHLINK_PORT=
SHLINK_URL=
SHLINK_DBNAME=
SHLINK_DBUSER=
SHLINK_DBPASS=

View file

@ -0,0 +1,62 @@
services:
# https://github.com/shlinkio/shlink/tree/develop
shlink-webui:
image: ${REGISTRY}/shlink-web-client
container_name: shlink-webui
restart: unless-stopped
ports:
- ${SHLINK_WEBUI_PORT:-8081}:8080
volumes:
- ./servers.json:/usr/share/nginx/html/servers.json
networks:
- shlink
shlink:
image: ${REGISTRY}/shlink
container_name: shlink
restart: unless-stopped
ports:
- ${SHLINK_PORT:-8080}:8080
environment:
DEFAULT_DOMAIN: ${SHLINK_URL:-http://localhost:${SHLINK_PORT:-8080}}
BASE_PATH: ${SHLINK_BASE_PATH:-/}
IS_HTTPS_ENABLED: true
DISABLE_TRACKING: true
DB_DRIVER: postgres
DB_HOST: shlink-postgresql
DB_NAME: ${SHLINK_DBNAME:-shlink}
DB_USER: ${SHLINK_DBUSER:-shlink}
DB_PASSWORD: ${SHLINK_DBPASS:-shlink}
REDIS_SERVERS: redis://shlink-redis:6379
REDIS_PUB_SUB_ENABLED: true
networks:
- shlink
shlink-postgresql:
image: ${REGISTRY}/postgres
container_name: shlink-postgresql
restart: unless-stopped
environment:
POSTGRES_DB: ${SHLINK_DBNAME:-shlink}
POSTGRES_USER: ${SHLINK_DBUSER:-shlink}
POSTGRES_PASSWORD: ${SHLINK_DBPASS:-shlink}
volumes:
- ./sql:/var/lib/postgresql/data:rw
networks:
- shlink
shlink-redis:
image: ${REGISTRY}/valkey
container_name: shlink-redis
restart: unless-stopped
volumes:
- ./redis:/data
networks:
- shlink
networks:
shlink:
external: false

9
stirling-pdf/.env Normal file
View file

@ -0,0 +1,9 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Stirling PDF
STIRLINGPDF_PORT=

View file

@ -0,0 +1,20 @@
services:
# https://github.com/Stirling-Tools/Stirling-PDF
stirling-pdf:
image: ${REGISTRY}/s-pdf
container_name: stirling-pdf
restart: unless-stopped
ports:
- ${STIRLINGPDF_PORT:-8080}:8080
environment:
DOCKER_ENABLE_SECURITY: true
volumes:
- ./tesseract-ocr:/usr/share/tesseract-ocr/5/tessdata
- ./config:/configs
networks:
- stirling-pdf
networks:
stirling-pdf:
external: false

13
tandoor/.env Normal file
View file

@ -0,0 +1,13 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Tandoor
TANDOOR_PORT=
TANDOOR_SECRETKEY=
TANDOOR_DBNAME=
TANDOOR_DBUSER=
TANDOOR_DBPASS=

View file

@ -0,0 +1,43 @@
services:
# tandoor (https://docs.tandoor.dev/install/docker)
tandoor:
image: ${REGISTRY}/recipes
container_name: tandoor
restart: unless-stopped
ports:
- ${TANDOOR_PORT:-8080}:8080
environment:
TZ: UTC
SECRET_KEY: ${TANDOOR_SECRETKEY:-tandoor}
# PostgreSQL
DB_ENGINE: django.db.backends.postgresql
POSTGRES_HOST: tandoor-postgresql
POSTGRES_PORT: 5432
POSTGRES_DB: ${TANDOOR_DBNAME:-tandoor}
POSTGRES_USER: ${TANDOOR_DBUSER:-tandoor}
POSTGRES_PASSWORD: ${TANDOOR_DBPASS:-tandoor}
volumes:
- ./staticfiles:/opt/recipes/staticfiles
- ./mediafiles:/opt/recipes/mediafiles
depends_on:
- tandoor-postgresql
networks:
- tandoor
tandoor-postgresql:
image: ${REGISTRY}/postgres
container_name: tandoor-postgresql
restart: unless-stopped
environment:
POSTGRES_DB: ${TANDOOR_DBNAME:-tandoor}
POSTGRES_USER: ${TANDOOR_DBUSER:-tandoor}
POSTGRES_PASSWORD: ${TANDOOR_DBPASS:-tandoor}
volumes:
- ./sql:/var/lib/postgresql/data:rw
networks:
- tandoor
networks:
tandoor:
external: false

9
usememos/.env Normal file
View file

@ -0,0 +1,9 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Memos
MEMOS_PORT=

View file

@ -0,0 +1,17 @@
services:
# memos (https://www.usememos.com/docs/install/self-hosting)
memos:
image: ${REGISTRY}/memos
container_name: memos
restart: unless-stopped
ports:
- ${MEMOS_PORT:-5230}:5230
volumes:
- ./data:/var/opt/memos
networks:
- memos
networks:
memos:
external: false

11
vaultwarden/.env Normal file
View file

@ -0,0 +1,11 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Vaultwarden
VAULTWARDEN_PORT=
VAULTWARDEN_URL=
VAULTWARDEN_DBPASS=

View file

@ -0,0 +1,36 @@
services:
# https://github.com/dani-garcia/vaultwarden
vaultwarden:
container_name: vaultwarden
image: ${REGISTRY}/vaultwarden
restart: unless-stopped
ports:
- ${VAULTWARDEN_PORT:-80}:80
environment:
DATABASE_URL: postgresql://${VAULTWARDEN_DBUSER:-vaultwarden}:${VAULTWARDEN_DBPASS:-vaultwarden}@vaultwarden-postgresql:5432/${VAULTWARDEN_DBNAME:-vaultwarden}
DOMAIN: ${VAULTWARDEN_URL:-http://localhost:${VAULTWARDEN_PORT:-80}}
TRASH_AUTO_DELETE_DAYS: 30
SIGNUPS_ALLOWED: false
volumes:
- ./data:/data
depends_on:
- vaultwarden-postgresql
networks:
- vaultwarden
vaultwarden-postgresql:
image: ${REGISTRY}/postgres
container_name: vaultwarden-postgresql
restart: unless-stopped
environment:
POSTGRES_DB: ${VAULTWARDEN_DBNAME:-vaultwarden}
POSTGRES_USER: ${VAULTWARDEN_DBUSER:-vaultwarden}
POSTGRES_PASSWORD: ${VAULTWARDEN_DBPASS:-vaultwarden}
volumes:
- ./sql:/var/lib/postgresql/data:rw
networks:
- vaultwarden
networks:
vaultwarden:
external: false

14
vikunja/.env Normal file
View file

@ -0,0 +1,14 @@
# Environment file for docker-compose.yaml
# Generate new passwords with:
# openssl rand -hex 32
# Fill in registry
REGISTRY=
# Vikunja
VIKUNJA_PORT=
VIKUNJA_DBNAME=
VIKUNJA_DBUSER=
VIKUNJA_DBPASS=
VIKUNJA_JWTSECRET=
VIKUNJA_URL=

View file

@ -0,0 +1,64 @@
services:
# vikunja (https://vikunja.io/docs/docker-walkthrough)
# https://vikunja.io/docs/cli/#user
# Usage:
# $ vikunja user create <flags>
# Flags:
# -a, --avatar-provider: The avatar provider of the new user. Optional.
# -e, --email: The email address of the new user.
# -p, --password: The password of the new user. You will be asked to enter it if not provided through the flag.
# -u, --username: The username of the new user.
vikunja:
image: ${REGISTRY}/vikunja
container_name: vikunja
restart: unless-stopped
ports:
- ${VIKUNJA_PORT:-3456}:3456
environment:
VIKUNJA_DATABASE_TYPE: postgres
VIKUNJA_DATABASE_HOST: vikunja-postgresql
VIKUNJA_DATABASE_DATABASE: ${VIKUNJA_DBNAME:-vikunja}
VIKUNJA_DATABASE_USER: ${VIKUNJA_DBUSER:-vikunja}
VIKUNJA_DATABASE_PASSWORD: ${VIKUNJA_DBPASS:-vikunja}
VIKUNJA_SERVICE_JWTSECRET: ${VIKUNJA_JWTSECRET:-vikunja}
VIKUNJA_CACHE_ENABLED: 1
VIKUNJA_CACHE_TYPE: redis
VIKUNJA_REDIS_ENABLED: 1
VIKUNJA_REDIS_HOST: vikunja-redis:6379
VIKUNJA_SERVICE_FRONTENDURL: ${VIKUNJA_URL:-http://localhost:${VIKUNJA_PORT:-3456}}
VIKUNJA_SERVICE_ENABLEREGISTRATION: false
volumes:
- ./data:/app/vikunja/files
depends_on:
- vikunja-postgresql
- vikunja-redis
networks:
- vikunja
vikunja-postgresql:
image: ${REGISTRY}/postgres
container_name: vikunja-postgresql
restart: unless-stopped
environment:
POSTGRES_DB: ${VIKUNJA_DBNAME:-vikunja}
POSTGRES_USER: ${VIKUNJA_DBUSER:-vikunja}
POSTGRES_PASSWORD: ${VIKUNJA_DBPASS:-vikunja}
volumes:
- ./sql:/var/lib/postgresql/data:rw
networks:
- vikunja
vikunja-redis:
image: ${REGISTRY}/valkey
container_name: vikunja-redis
restart: unless-stopped
volumes:
- ./redis:/data
networks:
- vikunja
networks:
vikunja:
external: false