Skip to content

installed app page a nd functionality with fixes to the app catalog page#47

Merged
smalex-z merged 3 commits into
mainfrom
app-status
Mar 12, 2026
Merged

installed app page a nd functionality with fixes to the app catalog page#47
smalex-z merged 3 commits into
mainfrom
app-status

Conversation

@usecymk

@usecymk usecymk commented Mar 12, 2026

Copy link
Copy Markdown
Collaborator

Description

Adds full management for installed apps: catalog/installed state, service control (systemd + Docker), logs, config, uninstall, and unit tests for the new behavior.

What was implemented

  • Catalog: Installed apps are greyed out and show "Already Installed"; install button disabled.
  • Installed Apps page: List of installed apps with Start/Stop, Restart, Logs, Config, Uninstall. Shows status, stats (uptime, memory, CPU), and links to config (domain/port) and app URL.
  • Service control: Backend supports both systemd and Docker Compose; service name allowlist; NOPASSWD scripts for uninstall and reading Caddy config (rm-service-dir.sh, read-caddy-config.sh).
  • APIs: Service status, logs (GET .../logs?tail=200), stats, config (parsed domain/port), and uninstall (POST .../uninstall with service_name, remove_volumes).
  • Deploy: ALTSUITE_DEPLOY_DIR for script path; install copies helper scripts; sudoers updated for the new scripts.
  • Jitsi Meet: Added to allowed services (backend, deploy scripts, frontend SERVICE_NAME_BY_APP).
  • Unit tests: Go tests for parseCaddyConfig, getDeployDir, and config handler (400 for invalid service name); frontend tests for Installed page (loading, empty state, controls, logs panel, config panel, uninstall flow).

Changes Made

  • Backend (api/): privileged.go – service control, logs, stats, config, uninstall, getDeployDir, parseCaddyConfig; main.go – handlers for logs, stats, config, uninstall; privileged_test.go, main_test.go – new tests.
  • Deploy: rm-service-dir.sh, read-caddy-config.sh; allowlists in both; install.sh copies scripts; build.sh chmod +x; altsuite.sudoers entries for scripts.
  • Frontend: Installed page with status/stats, Logs/Config panels, Start/Stop/Restart/Uninstall; catalog installed state styling; api.tsgetServiceLogs, getServiceStats, getServiceConfig, uninstallService; __tests__/InstalledPage.test.tsx.

Testing

  • Tested locally
  • Added/updated unit tests (Go + frontend)
  • All tests passing

Screenshots (if applicable)

iScreen Shoter - Vivaldi - 260312131438
iScreen Shoter - Vivaldi - 260312131522
iScreen Shoter - Vivaldi - 260312131710

@github-actions

Copy link
Copy Markdown

Unit tests run: 84
Unit tests passed: 84
Test coverage: 22.6%

@usecymk usecymk requested a review from smalex-z March 12, 2026 20:36

@smalex-z smalex-z left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tested and looks good to me! everything works as expected

@smalex-z smalex-z merged commit ff5fd53 into main Mar 12, 2026
6 checks passed
@smalex-z smalex-z deleted the app-status branch March 12, 2026 23:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants