Added general-purpose stacks

This commit is contained in:
Nikholas Pcenicni
2025-12-22 02:52:58 -05:00
parent e8df58cfda
commit 84af6c7778
9 changed files with 235 additions and 9 deletions

View File

@@ -0,0 +1,13 @@
services:
actual-server:
image: 'actualbudget/actual-server:latest'
container_name: actual-budget
volumes:
- actual-budget:/data
ports:
- '5006:5006'
restart: unless-stopped
pull_policy: always
volumes:
actual-budget:
driver: local

View File

@@ -0,0 +1,104 @@
---
services:
# The container for BookStack itself
bookstack:
# You should update the version here to match the latest
# release of BookStack: https://github.com/BookStackApp/BookStack/releases
# You'll change this when wanting to update the version of BookStack used.
image: lscr.io/linuxserver/bookstack:latest
container_name: bookstack
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=Etc/UTC
# APP_URL must be set as the base URL you'd expect to access BookStack
# on via the browser. The default shown here is what you might use if accessing
# direct from the browser on the docker host, hence the use of the port as configured below.
- APP_URL=${APP_URL}
# APP_KEY must be a unique key. Generate your own by running
# docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey
# You should keep the "base64:" part for the option value.
- APP_KEY=${API_KEY}
# The below database details are purposefully aligned with those
# configuted for the "mariadb" service below:
- DB_HOST=mariadb
- DB_PORT=3306
- DB_DATABASE=${DB_DATABASE}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
# SAML
# configured for authentik
- AUTH_METHOD=${AUTH_METHOD}
- AUTH_AUTO_INITIATE=${AUTH_AUTO_INITIATE}
- SAML2_NAME=${SAML2_NAME}
- SAML2_EMAIL_ATTRIBUTE=${SAML2_EMAIL_ATTRIBUTE}
- SAML2_EXTERNAL_ID_ATTRIBUTE=${SAML2_EXTERNAL_ID_ATTRIBUTE}
- SAML2_USER_TO_GROUPS=${SAML2_USER_TO_GROUPS}
- SAML2_GROUP_ATTRIBUTE=${SAML2_GROUP_ATTRIBUTE}
- SAML2_DISPLAY_NAME_ATTRIBUTES=${SAML2_DISPLAY_NAME_ATTRIBUTES}
- SAML2_IDP_ENTITYID=${SAML2_IDP_ENTITYID}
- SAML2_AUTOLOAD_METADATA=${SAML2_AUTOLOAD_METADATA}
- SAML2_USER_TO_GROUPS=true
- SAML2_GROUP_ATTRIBUTE=groups
- SAML2_REMOVE_FROM_GROUPS=false
# SMTP
- MAIL_DRIVER=${MAIL_DRIVER}
- MAIL_HOST=${MAIL_HOST}
- MAIL_PORT=${MAIL_PORT}
- MAIL_ENCRYPTION=${MAIL_ENCRYPTION}
- MAIL_USERNAME=${MAIL_USERNAME}
- MAIL_PASSWORD=${MAIL_PASSWORD}
- MAIL_FROM=${MAIL_FROM}
- MAIL_FROM_NAME=${MAIL_FROM_NAME}
volumes:
# You generally only ever need to map this one volume.
# This maps it to a "bookstack_app_data" folder in the same
# directory as this compose config file.
- bookstack_app:/config
ports:
# This exposes port 6875 for general web access.
# Commonly you'd have a reverse proxy in front of this,
# redirecting incoming requests to this port.
- 6875:80
restart: unless-stopped
# The container for the database which BookStack will use to store
# most of its core data/content.
mariadb:
# You should update the version here to match the latest
# main version of the linuxserver mariadb container version:
# https://github.com/linuxserver/docker-mariadb/pkgs/container/mariadb/versions?filters%5Bversion_type%5D=tagged
image: lscr.io/linuxserver/mariadb:latest
container_name: bookstack-mariadb
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=Etc/UTC
# You may want to change the credentials used below,
# but be aware the latter three options need to align
# with the DB_* options for the BookStack container.
- MYSQL_ROOT_PASSWORD=${DB_ROOTPASS}
- MYSQL_DATABASE=${DB_DATABASE}
- MYSQL_USER=${DB_USERNAME}
- MYSQL_PASSWORD=${DB_PASSWORD}
volumes:
# You generally only ever need to map this one volume.
# This maps it to a "bookstack_db_data" folder in the same
# directory as this compose config file.
- bookstack_db:/config
# These ports are commented out as you don't really need this port
# exposed for normal use, mainly only if connecting direct the the
# database externally. Otherwise, this risks exposing access to the
# database when not needed.
# ports:
# - 3306:3306
restart: unless-stopped
volumes:
bookstack_app:
bookstack_db:

View File

@@ -0,0 +1,6 @@
version: '3.9'
services:
rtraceio:
image: quay.io/rtraceio/flink
ports:
- '8080:8080'

View File

@@ -0,0 +1,16 @@
---
services:
grocy:
image: lscr.io/linuxserver/grocy:latest
container_name: grocy
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=Etc/UTC
volumes:
- grocy:/config
ports:
- 9283:80
restart: unless-stopped
volumes:
grocy:

View File

@@ -0,0 +1,7 @@
---
services:
it-tools:
image: corentinth/it-tools:latest
restart: unless-stopped
ports:
- 1234:80

View File

@@ -0,0 +1,65 @@
---
services:
mealie:
image: ghcr.io/mealie-recipes/mealie
container_name: mealie
restart: always
ports:
- "9925:9000" #
deploy:
resources:
limits:
memory: 1000M #
volumes:
- mealie-data:/app/data/
environment:
# Set Backend ENV Variables Here
ALLOW_SIGNUP: "false"
PUID: ${PUID}
PGID: ${PGID}
TZ: America/Toronto
BASE_URL: ${BASE_URL}
# Database Settings
DB_ENGINE: postgres
POSTGRES_USER: mealie
POSTGRES_PASSWORD: mealie
POSTGRES_SERVER: postgres
POSTGRES_PORT: 5432
POSTGRES_DB: mealie
# OIDC Settings
OIDC_AUTH_ENABLED: True
OIDC_SIGNUP_ENABLED: True
OIDC_CONFIGURATION_URL: ${OIDC_CONFIGURATION_URL}
OIDC_CLIENT_ID: ${OIDC_CLIENT_ID}
OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}
OIDC_USER_GROUP: authentik-users
OIDC_ADMIN_GROUP: Admin
OIDC_AUTO_REDIRECT: True
OIDC_PROVIDER_NAME: Authentik
OIDC_REMEMBER_ME: True
OIDC_SIGNING_ALGORITHM: RS256
OIDC_USER_CLAIM: preferred_username
OIDC_GROUPS_CLAIM: groups
# OPEN AI
OPENAI_API_KEY: ${OPENAI_API_KEY}
depends_on:
postgres:
condition: service_healthy
postgres:
container_name: postgres-mealie
image: postgres:15
restart: always
volumes:
- mealie-pgdata:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: mealie
POSTGRES_USER: mealie
PGUSER: mealie
healthcheck:
test: ["CMD", "pg_isready"]
interval: 30s
timeout: 20s
retries: 3
volumes:
mealie-pgdata:
mealie-data:

View File

View File

@@ -0,0 +1,24 @@
version: '3'
services:
openwebui:
container_name: Openweb-UI
image: ghcr.io/open-webui/open-webui:main
ports:
- "11674:8080"
environment:
- OPENAI_API_KEY=${OPEN_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- ENABLE_OAUTH_SIGNUP=true
- OAUTH_MERGE_ACCOUNTS_BY_EMAIL=true
- OAUTH_PROVIDER_NAME=Authentik
- OPENID_PROVIDER_URL=${OPENID_PROVIDER_URL}
- OAUTH_CLIENT_ID=${OAUTH_CLIENT_ID}
- OAUTH_CLIENT_SECRET=${OAUTH_CLIENT_SECRET}
- OAUTH_SCOPES=openid email profile
- OPENID_REDIRECT_URI=${OPENID_REDIRECT_URI}
- ENABLE_OAUTH_GROUP_MANAGEMENT=true
volumes:
- open-webui:/app/backend/data
restart: unless-stopped
volumes:
open-webui:

View File

@@ -4,15 +4,6 @@
# - TimescaleDB (PostgreSQL 15)
# - Redis
# - Tracearr application
#
# No external database or Redis required!
# Secrets are auto-generated on first run and persisted.
#
# Usage:
# docker compose -f docker/docker-compose.supervised.yml up -d
#
# Data is stored in Docker volumes by default.
# For bind mounts, uncomment the volumes section below.
services:
tracearr: