From 84af6c7778f5247adab9fc6dd300233a780641b6 Mon Sep 17 00:00:00 2001 From: Nikholas Pcenicni <82239765+nikpcenicni@users.noreply.github.com> Date: Mon, 22 Dec 2025 02:52:58 -0500 Subject: [PATCH] Added general-purpose stacks --- .../actual-budget/compose.yaml | 13 +++ komodo/general-purpose/bookstack/compose.yaml | 104 ++++++++++++++++++ komodo/general-purpose/flink/compose.yaml | 6 + komodo/general-purpose/grocy/compose.yaml | 16 +++ komodo/general-purpose/it-tools/compose.yaml | 7 ++ komodo/general-purpose/mealie/compose.yaml | 65 +++++++++++ komodo/general-purpose/newt/compose.yaml | 0 .../general-purpose/openweb-ui/compose.yaml | 24 ++++ komodo/monitor/tracearr/compose.yaml | 9 -- 9 files changed, 235 insertions(+), 9 deletions(-) create mode 100644 komodo/general-purpose/actual-budget/compose.yaml create mode 100644 komodo/general-purpose/bookstack/compose.yaml create mode 100644 komodo/general-purpose/flink/compose.yaml create mode 100644 komodo/general-purpose/grocy/compose.yaml create mode 100644 komodo/general-purpose/it-tools/compose.yaml create mode 100644 komodo/general-purpose/mealie/compose.yaml create mode 100644 komodo/general-purpose/newt/compose.yaml create mode 100644 komodo/general-purpose/openweb-ui/compose.yaml diff --git a/komodo/general-purpose/actual-budget/compose.yaml b/komodo/general-purpose/actual-budget/compose.yaml new file mode 100644 index 0000000..e9d351e --- /dev/null +++ b/komodo/general-purpose/actual-budget/compose.yaml @@ -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 \ No newline at end of file diff --git a/komodo/general-purpose/bookstack/compose.yaml b/komodo/general-purpose/bookstack/compose.yaml new file mode 100644 index 0000000..6720f63 --- /dev/null +++ b/komodo/general-purpose/bookstack/compose.yaml @@ -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: \ No newline at end of file diff --git a/komodo/general-purpose/flink/compose.yaml b/komodo/general-purpose/flink/compose.yaml new file mode 100644 index 0000000..b342012 --- /dev/null +++ b/komodo/general-purpose/flink/compose.yaml @@ -0,0 +1,6 @@ +version: '3.9' +services: + rtraceio: + image: quay.io/rtraceio/flink + ports: + - '8080:8080' diff --git a/komodo/general-purpose/grocy/compose.yaml b/komodo/general-purpose/grocy/compose.yaml new file mode 100644 index 0000000..68db9c8 --- /dev/null +++ b/komodo/general-purpose/grocy/compose.yaml @@ -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: \ No newline at end of file diff --git a/komodo/general-purpose/it-tools/compose.yaml b/komodo/general-purpose/it-tools/compose.yaml new file mode 100644 index 0000000..8cdc734 --- /dev/null +++ b/komodo/general-purpose/it-tools/compose.yaml @@ -0,0 +1,7 @@ +--- +services: + it-tools: + image: corentinth/it-tools:latest + restart: unless-stopped + ports: + - 1234:80 \ No newline at end of file diff --git a/komodo/general-purpose/mealie/compose.yaml b/komodo/general-purpose/mealie/compose.yaml new file mode 100644 index 0000000..518399c --- /dev/null +++ b/komodo/general-purpose/mealie/compose.yaml @@ -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: diff --git a/komodo/general-purpose/newt/compose.yaml b/komodo/general-purpose/newt/compose.yaml new file mode 100644 index 0000000..e69de29 diff --git a/komodo/general-purpose/openweb-ui/compose.yaml b/komodo/general-purpose/openweb-ui/compose.yaml new file mode 100644 index 0000000..de34d11 --- /dev/null +++ b/komodo/general-purpose/openweb-ui/compose.yaml @@ -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: \ No newline at end of file diff --git a/komodo/monitor/tracearr/compose.yaml b/komodo/monitor/tracearr/compose.yaml index c5a04e3..1a3a936 100644 --- a/komodo/monitor/tracearr/compose.yaml +++ b/komodo/monitor/tracearr/compose.yaml @@ -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: