100 Commits
Author SHA1 Message Date
alexz 08660426d7 mergedrop: pin CORS_ORIGINS to app origin (was wildcard) 2026-08-21 10:11:24 -07:00
alexz f37b2cb9e3 mergedrop: add form field + default for MERGEDROP_OUTPUT_MAX_AGE_HOURS (empty env crashed server) 2026-08-20 23:21:36 -07:00
alexz a40228a495 mergedrop: 1.0.2 — add MongoDB sidecar + env, required by new vid-merger source 2026-08-20 23:15:58 -07:00
alexz 66a7bb82e2 mergedrop: bump to 1.0.1, rebuild from vid-merger source; fix stale source repo URL in build.sh
- config.json: tipi_version 1->2, version 1.0.0->1.0.1, updated_at bumped;
  added missing required fields supported_architectures (["amd64"]) and
  dynamic_config (true) so the app passes schema validation
- docker-compose.json: main service image mergedrop:1.0.0 -> mergedrop:1.0.1
- build/build.sh: default IMAGE_TAG 1.0.0 -> 1.0.1; default SOURCE_REPO
  corrected from stale video-merger.git to vid-merger.git
- build/README.md: corrected source repo pointer from video-merger to
  vid-merger

Image git.alexzaw.dev/alexz/mergedrop:1.0.1 is being built from
git.alexzaw.dev/alexz/vid-merger @ 9b27376 in a separate process.
Deploy chain (appstore update / app update) to be run separately once the
image build completes.
2026-08-20 23:11:36 -07:00
alexz 68e2ba4527 upload current sources 2026-08-20 23:04:21 -07:00
alexz 0d1da8583e costco-watch: client-side browser headers, drop Transform Rule requirement 2026-08-12 07:47:13 -07:00
alexz bdace45cd6 costco-watch: ntfy alert when a Costco tire is back in stock 2026-08-12 07:33:32 -07:00
alexz c5a5e9c353 add logo 2026-08-12 03:45:28 -07:00
alexz 7f9dca6762 fix envs 2026-08-12 03:39:53 -07:00
alexz 768b010afe find-my-iphone: Alexa/REST bridge to ring iPhone via iCloud 2026-08-12 03:19:17 -07:00
alexz b08a68d591 sap-drawio: expose REFERENCE_LAYOUT so the reference-layout kill switch actually reaches the container 2026-08-11 17:04:29 -07:00
alexz 9e177a762c sap-drawio: dynamic APP_PORT + flagship LLM env passthrough + local healthcheck 2026-07-24 10:22:38 -07:00
alexz 5f6499125a sap-drawio: add 'Sketch to SAP BTP' custom-store app (FastAPI+React, single-port, seed-on-first-run SQLite, exposed via auto-SSO) 2026-07-22 09:01:10 -07:00
alexz e35d5589b6 ragflow: add RAGFlow v0.26.4 RAG platform (ES engine, models via ollama) 2026-07-20 06:17:06 -07:00
alexz d6bc484fcd be9700-api 1.1.0: add /api/device_config (rebuild image) 2026-06-29 12:47:16 -07:00
alexz 96c5f34a91 be9700-api: correct exposure/security note in description 2026-06-29 12:26:26 -07:00
alexz bf09e224c9 Add be9700-api: TP-Link BE9700 router API proxy + Scalar docs 2026-06-29 12:23:15 -07:00
alexz 19fa1c7821 mcp-manager 1.5.2: add unzip + persist puppeteer cache via symlink to /data 2026-06-17 19:09:49 -07:00
alexz 62adaf14b3 mcp-manager 1.5.1: bump agent chat timeout from 180s to 600s 2026-06-17 18:51:34 -07:00
alexz c3578e2452 mcp-manager v1.4.0: runtime Node 24 LTS image bump 2026-06-04 08:20:55 -07:00
alexz 6bfcd2b340 mcp-manager: keep store compose generic; anthropic override (incl. key) lives in user-config compose overlay 2026-05-29 11:00:42 -07:00
alexz b833d3604f mcp-manager: reference ${ANTHROPIC_API_KEY} in compose so user-config key reaches the container 2026-05-29 10:49:24 -07:00
alexz 528e0d1bdf mcp-manager: v1.3.0 — Sonnet 4.6 provider + pip installs 2026-05-29 10:46:38 -07:00
alexz 65350024ec mcp-manager: v1.2.1 (markdown chat rendering) 2026-05-29 10:23:19 -07:00
alexz 77b7bedf28 mcp-manager: v1.2.0 — built-in chat agent (local LLM) + LLM env 2026-05-29 09:10:57 -07:00
alexz c31d42e3a2 mcp-manager: quiet mongo (--quiet) + healthcheck 15s->300s with 5s startInterval 2026-05-29 08:27:54 -07:00
alexz 03b16eab6b mcp-manager: bump to 1.1.0 (emergent/PostHog removed, built-in mcp-manage server) 2026-05-29 08:08:09 -07:00
alexz 201e4895e4 Add app logos (512x512) for apps that were missing one
- apricot-blossom: cherry-blossom mark (OpenMoji), matches the name
- docspace: ONLYOFFICE logo (dashboard-icons)
- mcp-manager: Model Context Protocol logo (dashboard-icons)
- md2html: official Markdown mark on white
- mergedrop: clapperboard mark (OpenMoji) for the video merger
- scalar: replace broken 2.9MB BMP (mislabeled .jpg) with Scalar's logo

sap-mcp-bridge intentionally skipped (being uninstalled).
2026-05-29 07:15:00 -07:00
alexz 4cb8e3cd2c Add mcp-manager app: MCP server control panel w/ HTTPS SSE bridge
Single-container FastAPI + React UI plus mongo:7. Image bundles Node 20 + uv/uvx
so npx/uvx MCP servers run; package caches persisted under app-data. 127.0.0.1
/api healthcheck; admin email/password form fields + auto-generated JWT secret.
2026-05-29 07:04:51 -07:00
alexz 92ed300f97 sap-mcp-bridge: new app — five SAP MCP servers behind one nginx-proxied port 2026-05-19 09:48:55 -07:00
alexz bcc9060aab cfddns: make WEB_USER/WEB_PASSWORD form fields optional
Runtipi 'app update' validates required form_fields against its own
DB-tracked form state, not against app.env. Adding new required fields
to a pre-installed app blocks every update with 'Variable X is required'.
The manager binary already gracefully no-ops basic auth if either env
var is empty (logs a WARN). Drop required:true so updates pass; values
that exist in app.env keep working at runtime.
2026-05-18 02:00:45 -07:00
alexz 456de8e11a cfddns: add build/ subdir matching pattern of other custom-image apps
- README.md explains the image is built from the separate fork repo at
  git.alexzaw.dev/alexz/cloudflare-ddns, lists what's in the image, and
  documents how to rebuild + redeploy.
- build.sh clones (or refreshes) /tmp/cfddns-build from the fork via SSH,
  runs docker build, and pushes to git.alexzaw.dev/alexz/cloudflare-ddns:latest.
  Supports IMAGE_NAME/IMAGE_TAG/SOURCE_REPO overrides and passes positional
  args through to docker build (e.g. --no-cache).
- .gitignore for build artifacts.
2026-05-18 01:53:05 -07:00
alexz 8fb5c904d9 cfddns: auto-generate WEB_PASSWORD via random form-field type
The previous 'password' type required a manual value during app
update, which blocked Runtipi from regenerating the compose file
(error: 'Variable Web UI Password is required'). Switch to the
'random' field type with min=24 hex chars so a strong password is
auto-generated on install and persisted in app.env, viewable in
the dashboard.
2026-05-18 01:21:25 -07:00
alexz 57b71da781 cfddns: rebuild on private fork with management web UI
- Swap image from favonia/cloudflare-ddns:latest to
  git.alexzaw.dev/alexz/cloudflare-ddns:latest (private fork with
  cmd/manager binary that wraps the original ddns updater)
- Expose web UI on internal port 8080, traefik-routable
- Add CFDDNS_WEB_USER/CFDDNS_WEB_PASSWORD basic-auth form fields
- Repurpose existing DOMAINS/PROXIED/UPDATE_CRON/TZ as first-run seed
  for the YAML config that the UI manages thereafter
- Mount ${APP_DATA_DIR}/data:/config for persistent cfddns.yaml
- Healthcheck on /healthz via 127.0.0.1 (alpine wget)
- Bump tipi_version 7 -> 8 to trigger app update
2026-05-18 01:18:39 -07:00
alexz 03a9b49bf0 nas-samba: chmod /nas /nas/home to 0755 for Samba traversal 2026-04-26 06:05:51 +00:00
alexz bdd2e4e2a5 nas-samba: fix home dir ownership and permissions for Samba access 2026-04-26 06:03:10 +00:00
alexz 580eec66cd nas-samba: ensure /var/lib/samba/private/ exists in entrypoint 2026-04-26 05:57:33 +00:00
alexz 6599fc5a21 nas-samba v2.0.0: persist Samba TDB, fix startup user migration 2026-04-26 05:54:55 +00:00
alexz b1697d6e1e nas-samba v2.0.0: per-user home directories, Samba accounts, remove quotas
- Each user gets a Linux + Samba account and home dir at /nas/home/<username>/
- Web UI file browsing scoped to per-user directories
- Creating/deleting users from web UI also manages system + Samba accounts
- Replaced hardcoded [data] SMB share with [homes] (per-user automatic shares)
- Removed hardcoded alexz user from entrypoint — server.js handles all user management
- Removed storage quotas from backend and frontend
- Existing users get home directories auto-created on startup (migration)
2026-04-26 05:51:23 +00:00
alexz 888acdbd7e nas-samba v1.0.2: add tmpfile ephemeral upload/download endpoints 2026-04-26 05:22:17 +00:00
alexz 3c67eb75c3 nas-samba v1.0.1: health check, hostname, remove demo credentials
- Add health check (curl /api/health) so Traefik can verify container health
- Set container hostname to nas.alexzaw.dev
- Remove hardcoded demo credentials from login page
- Remove admin123 fallback password — require SMB_PASSWORD env var
- Fail fast if no admin password is configured
2026-04-26 05:13:01 +00:00
alexz 5b213d8e51 Fix apricot-blossom health check: use 127.0.0.1 instead of localhost (IPv6 issue) 2026-04-20 17:42:13 +00:00
alexz f755a054a8 Update apricot-blossom image to use Gitea registry 2026-04-20 15:05:15 +00:00
alexz 96eb8bd83e Fix docspace: replace invalid categories with valid ones 2026-04-20 15:04:03 +00:00
alexz 7d07b38f0c Add apricot-blossom: AI avatar platform for preserving memories 2026-04-20 15:00:43 +00:00
alexz d6b619fcfe upload current sources 2026-04-13 08:42:53 +00:00
alexz d7269f94fb Add ONLYOFFICE DocSpace app (15 services, Community Edition) 2026-04-11 12:17:35 +00:00
alexz 20043aacab Upgrade OnlyOffice Docs from 8.2 to 9.3 2026-04-11 11:19:18 +00:00
alexz 4edbb9004d Fix OnlyOffice internal port to 80 and healthcheck 2026-04-11 09:04:06 +00:00
alexz 8bbfeafabb Fix OnlyOffice AMQP URI: add RabbitMQ password 2026-04-11 08:53:29 +00:00
alexz 2d16912d18 Revert command field - use user-config override instead 2026-04-11 08:52:35 +00:00
alexz 98078e843c Fix OnlyOffice RabbitMQ erlang cookie permissions 2026-04-11 08:51:05 +00:00
alexz f29404405a Update apps/onlyoffice-docs/docker-compose.json 2026-04-11 08:38:07 +00:00
alexz 6c444a474c Update apps/onlyoffice-docs/docker-compose.json 2026-04-11 08:34:05 +00:00
alexz f862c2049a Update apps/onlyoffice-docs/docker-compose.json 2026-04-11 07:54:07 +00:00
alexz 6cb0702b0d Update apps/onlyoffice-docs/config.json 2026-04-11 07:53:45 +00:00
alexz f94a3937be Update apps/onlyoffice-docs/docker-compose.json 2026-04-11 07:35:56 +00:00
alexz ae29c75e28 Update apps/onlyoffice-docs/docker-compose.json 2026-04-11 07:28:32 +00:00
alexz 3461f47bd2 Bump md2html to 1.0.1 - add curl API 2026-04-10 19:21:06 +00:00
alexz d3ab1fb060 Use Gitea registry image git.alexzaw.dev/alexz/md2html:1.0.0 2026-04-10 19:15:26 +00:00
alexz 9cd6f56f8c Fix md2html docker-compose.json schema format 2026-04-10 19:08:02 +00:00
alexz 1c4bfb8cc5 Add md2html app - Markdown to HTML/PDF converter 2026-04-10 18:51:05 +00:00
alexz 145d871b42 Update apps/onlyoffice-docs/config.json 2026-04-09 12:04:13 +00:00
alexz 7ea70458b3 fix: revert environment to object format, remove schemaVersion - matches @runtipi/common schema 2026-04-09 11:56:44 +00:00
alexz 37525c7e54 fix: remove schemaVersion, convert environment objects to arrays per Runtipi schema 2026-04-09 11:37:06 +00:00
alexz b92c179f9b fix: rename healthCheck.command to healthCheck.test per Runtipi schema 2026-04-09 11:34:16 +00:00
alexz f3a2d2f006 fix: change invalid category "documents" to valid "utilities" only 2026-04-09 11:29:42 +00:00
alexzandClaude Opus 4.6 46b0e1120a Add ONLYOFFICE Docs app
Online office suite with document, spreadsheet, and presentation editing.
Includes external PostgreSQL, Redis, and RabbitMQ services with auto-generated
secrets for JWT, database, and message queue credentials.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 19:06:02 +00:00
alexz e6387c3861 Update apps/erp-integration/docker-compose.json 2026-03-31 00:56:20 +00:00
alexz 2b10b30d44 Update apps/erp-integration/config.json 2026-03-31 00:54:01 +00:00
alexz d5e58923bc Add PROXY_SECRET for IBM i proxy auth 2026-03-26 23:30:48 +00:00
alexz 4da14d5a23 Fix default Ollama model to gpt-oss:20b 2026-03-26 16:32:50 +00:00
alexz d3dd39ceeb Add Ollama and CONTEXT_ROOT config to erp-integration app 2026-03-26 15:21:06 +00:00
alexz 68da19bafe Expose port 8001 on host for external reverse proxy 2026-03-19 16:27:20 +00:00
alexz 8ffb7e01ae Add SAP logo for erp-integration app 2026-03-19 16:18:46 +00:00
alexz 1f8a4d5ae3 Use symlinked APP_DATA_DIR, add MCP_API_BASE_URL and SHAREPOINT_BASE_URL env vars 2026-03-19 16:14:00 +00:00
alexz 9f0e1c7f8b Mount data/uploads from original ERP-Integration project 2026-03-19 15:44:54 +00:00
alexz cd07a5b8c8 Fix: add min/max validation to API key field 2026-03-19 09:14:32 +00:00
alexz 7fd226d229 Added erp-integration: SAP S/4HANA Migration Dashboard app 2026-03-19 09:09:41 +00:00
alexz 5bffff1d9b nas-samba: configurable admin user (uses SMB_PASSWORD) 2026-03-16 23:34:28 +00:00
alexz 61b1dea366 nas-samba: clean up duplicate files, single server.js in app/ 2026-03-16 23:31:40 +00:00
alexz c94cbd7f36 nas-samba: use SMB_PASSWORD for admin login, configurable username 2026-03-16 23:29:10 +00:00
alexz 618e023996 nas-samba: rebuilt as single Ubuntu image with Samba + CloudNAS (no MongoDB) 2026-03-16 23:22:42 +00:00
alexz 0104827234 feat: add cloudNAS web UI service 2026-03-09 18:53:18 +00:00
alexz 92a97e140f revert: remove cockpit, keep nas-samba only 2026-03-09 18:40:46 +00:00
alexz b9d573aeac fix: use internalPort 9090 for cockpit, let Traefik handle routing, use interface field for SMB IP binding 2026-03-09 18:38:20 +00:00
alexz 3c438ca093 fix: remove internalPort and port binding for host network cockpit 2026-03-09 18:36:52 +00:00
alexz d6bc7128df fix: add networkMode host to cockpit service 2026-03-09 18:34:29 +00:00
alexz 4b0659bd47 fix: use quay.io/cockpit/ws correct image registry 2026-03-09 18:23:31 +00:00
alexz 2351ad84bc feat: add Cockpit web UI service to nas-samba app 2026-03-09 18:21:09 +00:00
alexz a16b5a232e fix: use variable BIND_IP in hostPort for SMB ports 2026-03-09 18:19:14 +00:00
alexz 0ffb0f7256 fix: use hostPort string format for IP binding, remove hostIp field 2026-03-09 18:18:15 +00:00
alexz 37ae3a06de Add nas-samba app 2026-03-09 18:09:37 +00:00
alexzandClaude Opus 4.6 d0ff3536d2 fix: set executable bit on shared scripts for rego-tunnel and cistech-tunnel
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 19:07:09 +00:00
alexzandClaude Opus 4.5 0104b45331 rego-tunnel: fix pipefail crash in host-routing.sh remove_all()
The nft|grep|grep|head pipeline fails when no masquerade rule exists,
causing the script to exit under set -euo pipefail. Add || true to
match the cistech-tunnel version.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 21:11:25 +00:00
alexzandClaude Opus 4.5 efc3ad00af rego-tunnel: move all scripts to dynamic mounts
- Move entrypoint.sh from build/scripts/ to shared/
- Create startup-vnc.sh in shared/ (was base64-encoded in Dockerfile)
- Remove baked-in scripts and CMD from Dockerfile (keep vnc.service unit only)
- Entrypoint now: chmod +x all shared scripts, symlinks startup-vnc.sh
  to /opt/scripts/ so systemd vnc.service still finds it
- Fix host watcher: use /bin/bash in ExecStart for permission resilience
- Bump tipi_version to 7

All scripts are now dynamically controlled via volume mounts.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 21:05:14 +00:00
alexzandClaude Opus 4.5 7ac32e9199 cistech-tunnel: use /bin/bash in ExecStart for permission resilience
Invoke host-routing.sh via /bin/bash so the watcher service works
even if the execute bit gets cleared by permission resets.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 20:51:02 +00:00
alexzandClaude Opus 4.5 cb54689e7c cistech-tunnel: auto-fix script permissions at container startup
Add chmod +x in entrypoint.sh to ensure all shared scripts are
executable even if permissions get reverted by git pull or appstore
update operations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 20:44:33 +00:00
alexzandClaude Opus 4.5 992db16848 cistech-tunnel: remove entrypoint from docker-compose.json
Runtipi's compose generator doesn't translate the entrypoint field.
The entrypoint is instead set via user-config override.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 20:42:34 +00:00
alexzandClaude Opus 4.5 16b7a66c01 cistech-tunnel: move all scripts to dynamic mounts
- Move entrypoint.sh from build/scripts/ to shared/ (no longer baked into image)
- Add entrypoint directive to docker-compose.json pointing to /shared/entrypoint.sh
- Update entrypoint.sh to reference /shared/startup-vnc.sh instead of /opt/scripts/
- Bump tipi_version to 7

All scripts are now dynamically controlled via volume mounts from the shared/
directory. The Docker image is a clean base with only packages installed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 20:39:20 +00:00