Commit Graph
100 Commits
Author SHA1 Message Date
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
alexz 1def782149 Update apps/cistech-tunnel/build/Dockerfile 2026-02-04 20:29:37 +00:00
alexz 55c11cce90 Update apps/cistech-tunnel/build/Dockerfile 2026-02-04 20:29:03 +00:00
alexz ed21a14f68 Update apps/cistech-tunnel/shared/entrypoint.sh 2026-02-04 20:16:54 +00:00
alexz 004c58b445 Update apps/cistech-tunnel/shared/entrypoint.sh 2026-02-04 20:14:41 +00:00
alexzandClaude Opus 4.5 8c9ebea489 fix: Install noVNC from GitHub instead of apt package
The apt novnc package (v1.0.0) has module export issues causing
JavaScript errors. Switch to noVNC v1.4.0 from GitHub which has
proper ES6 module exports.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 01:04:45 +00:00
alexz 19cb09f05e . 2026-01-18 00:57:34 +00:00
alexz ae86df8732 . 2026-01-17 18:01:02 +00:00
alexz a2f0b40fa8 . 2026-01-17 17:58:31 +00:00
alexz bf60412640 Use test_connection function for keepalive check
Replaces inline ping with existing test_connection function
2026-01-17 17:57:46 +00:00
alexz 5f057c50ed Add TARGET_SUBNET to openconnect-vpn script
Derive TARGET_SUBNET from TARGET_IP (first 3 octets + .0/24)
for iptables FORWARD rules to allow full subnet routing.
2026-01-17 17:56:45 +00:00
alexz b2e38b3cb4 Derive TARGET_SUBNET dynamically from TARGET_IP
Extract first 3 octets from TARGET_IP and append .0/24
2026-01-17 17:53:34 +00:00
alexz 47e1790a8b Add TARGET_SUBNET for iptables rules with /24 CIDR
Keep TARGET_IP as single host, add hardcoded TARGET_SUBNET=10.3.1.0/24
for iptables rules and routes to allow full subnet routing.
2026-01-17 17:52:44 +00:00
alexz b67b8f18a4 Fix TARGET_IP to include /24 CIDR for iptables rules
The iptables rules were using 10.3.1.0 (single IP) instead of
10.3.1.0/24 (subnet), causing routing from other machines to fail.
2026-01-17 17:51:49 +00:00
alexz c6749fe856 refactor(cistech-tunnel): add IBMI_HOST and test_connection function
- Add hardcoded IBMI_HOST=10.3.1.201 for testing
- Create test_connection() function for reuse
- Use IBMI_HOST for connection tests and keepalive pings
- TARGET_IP still used for routing rules
2026-01-17 16:53:40 +00:00
alexz 4c7ff9d6a0 fix(cistech-tunnel): reset DNS and clean tun interface before connecting 2026-01-17 16:49:32 +00:00
alexz e93edb73af fix(cistech-tunnel): remove sudo from openconnect command - already running as root 2026-01-17 16:45:01 +00:00
alexz 9a6e2f67e6 feat(cistech-tunnel): add auto-connect, menu flag, watchdog, fix host routing
- Auto-connect on startup (skip with -m/--menu flag)
- Add VPN watchdog for auto-reconnect
- Add live TOTP display
- Fix host-routing.sh pipefail issue with grep
- Better forwarding rules similar to rego-tunnel
2026-01-17 16:40:55 +00:00
alexz 84b1eb3f5d . 2026-01-17 16:33:22 +00:00
alexz 1bd5a21a94 fix(cistech-tunnel): add sudo and system dbus for openconnect-sso 2026-01-17 16:21:26 +00:00
alexz 5c3147536c refactor(cistech-tunnel): move runtime scripts to shared folder
- Add entrypoint.sh and startup-vnc.sh to shared folder
- Override command in docker-compose.json to use /shared/entrypoint.sh
- Scripts can now be modified without rebuilding image
2026-01-17 16:10:22 +00:00
alexz 8656441976 fix(cistech-tunnel): add software rendering support for Qt WebEngine
- Add QT_QUICK_BACKEND=software, LIBGL_ALWAYS_SOFTWARE=1
- Add mesa-utils, libgl1-mesa-dri for llvmpipe software renderer
- Add missing xcb libraries (libxcb-render0, libxcb-shm0, etc.)
- Use --use-gl=swiftshader in chromium flags
2026-01-17 16:08:51 +00:00
alexz 0d52d54eed fix(cistech-tunnel): add Qt no-sandbox flags to xstartup 2026-01-17 15:59:31 +00:00
alexz 1b59e304b0 fix(cistech-tunnel): add --no-sandbox for chromium running as root 2026-01-17 15:57:53 +00:00
alexz fb915487dc fix(cistech-tunnel): add all xcb libraries for Qt6 2026-01-17 15:53:24 +00:00
alexz a3b02b694e fix(cistech-tunnel): add libxcb-cursor0 for Qt xcb plugin 2026-01-17 15:42:58 +00:00
alexz 9b2a42bdc9 fix(cistech-tunnel): add libegl1 libgl1 libopengl0 for PyQt6 WebEngine 2026-01-17 15:36:00 +00:00
alexz 98f3cc95eb . 2026-01-17 15:27:29 +00:00
alexz 12f626b088 chore: remove .github workflows 2026-01-17 15:14:03 +00:00
alexz b9b3f89910 .
Test / test (push) Has been cancelled
2026-01-17 14:35:13 +00:00
alexz 24594915a9 .
Test / test (push) Has been cancelled
2026-01-17 14:29:47 +00:00