secubox-deb/packages/secubox-streamlit
CyberMind-FR 6b7d7f8607 fix(#623): shared /run|/var/lib|/var/cache|/etc/secubox parents stay 1777/0755 in all postinsts
Systemic clobber: the scaffold boilerplate (install -d -m 750 /var/lib/secubox,
/run/secubox) put restrictive modes on SHARED parents in ~56 module postinsts,
reverting them to 0750 on every install/upgrade and breaking traversal for
non-secubox daemons (kbin/toolbox 500). Empirically confirmed install -d -m only
modes the final component, so /parent/leaf forms are harmless — only bare-parent
targets were rewritten. Multi-arg lines (incl. ones making /var/lib world-writable
1777) split per-parent: /run/secubox=1777 root:root, /var/lib|cache|etc=0755
secubox:secubox; module-private leaves keep 0750. Scaffold + PATTERNS.md fixed so
new packages don't reintroduce it.
2026-06-18 10:32:58 +02:00
..
api feat(secubox-streamlit): v1.2.2 — per-app idle timeout + wake-on-demand (closes #331) (#334) 2026-05-22 07:58:33 +02:00
config feat(secubox-streamlit): v1.2.2 — per-app idle timeout + wake-on-demand (closes #331) (#334) 2026-05-22 07:58:33 +02:00
debian fix(#623): shared /run|/var/lib|/var/cache|/etc/secubox parents stay 1777/0755 in all postinsts 2026-06-18 10:32:58 +02:00
menu.d feat(navbar): consolidate to 6 charter categories + fix dropped menu entries (closes #306) (#307) 2026-05-21 10:03:05 +02:00
nginx feat: modular nginx config + hub roadmap + new modules 2026-03-21 20:34:01 +01:00
sbin fix(secubox-streamlit): v1.2.4 — strip quotes from port value in _app_running/_app_active_conns (#338) 2026-05-22 08:20:09 +02:00
sudoers.d feat(packages): Sync source packages with MOCHAbin deployed configs 2026-05-06 09:22:29 +02:00
www/streamlit feat: Add metoblizer, streamlit power management, replace espressobin with mochabin 2026-05-10 18:37:58 +02:00
README.md docs(streamlit): Session 163 tracking + README + .gitignore (ref #95) 2026-05-12 16:31:27 +02:00

🎨 Streamlit

Streamlit app platform

Category: Apps

Screenshot

Streamlit

Features

  • App hosting
  • Deployment
  • Management
  • Logs

Installation

# Add SecuBox repository
curl -fsSL https://apt.secubox.in/install.sh | sudo bash

# Install package
sudo apt install secubox-streamlit

Configuration

Configuration file: /etc/secubox/streamlit.toml

API Endpoints

  • GET /api/v1/streamlit/status - Module status
  • GET /api/v1/streamlit/health - Health check
  • GET /api/v1/streamlit/apps - Per-app list, enriched with current_tag and deployed_at (read from <app>/.deploy.json or fallback git describe --tags --exact-match)

Version pinning via Gitea

The 28 directory-form Streamlit apps under /srv/streamlit/apps/ are mirrored in Gitea as gandalf/streamlit-<appname>, each with a v1.0.0 tag on the initial state.

Deploy a specific version:

sudo streamlitctl deploy <app> --from-gitea --tag v1.0.0

Rollback to the most recent backup:

sudo streamlitctl rollback <app>

After a deploy, /srv/streamlit/apps/<app>/.deploy.json records the current tag and deployment timestamp. The FastAPI surfaces them via current_tag and deployed_at on /api/v1/streamlit/apps.

To re-run the ingest (or pick up newly added apps):

bash scripts/streamlit-ingest.sh                  # all apps
bash scripts/streamlit-ingest.sh --dry-run        # preview
bash scripts/streamlit-ingest.sh --app <name>     # single app
bash scripts/streamlit-ingest.sh --halt-on-fail   # stop on first failure

The deploy/rollback path does not auto-restart the LXC — streamlitctl start/stop operate on the whole container, which would kill all other running apps. Streamlit auto-reloads on file changes in the watched app directory.

License

MIT License - CyberMind © 2024-2026