Commit graph

89 commits

Author SHA1 Message Date
agent
76a1e09913 panel: redesign web UI and make syncing responsive
Web UI (panel/frontend/index.html) rewritten:
- Cards update in place from a single /status poll instead of being rebuilt
  on every action, so open tabs, unsaved compose/route edits, logs and the
  file browser position survive refreshes. Polling speeds up while an
  operation runs and pauses in background tabs; a header indicator shows
  when the panel last synced and detects an expired Authelia session.
- New-app dialog (starter / compose / git), suggested port and domain,
  proper confirm dialogs (the old "OK = keep volumes" remove prompt is gone),
  toasts, an activity drawer with operation output, overflow menu, search,
  status filters, keyboard shortcuts, deep links, dark mode and mobile layout.
- Tabs: overview (containers + routes), compose editor (dirty tracking,
  Ctrl+S), logs with follow, validated routes editor, file browser with
  drag-and-drop upload, backups, and a git source tab (deployed commit,
  check for updates, sync & deploy).

API (panel/panel-api.py):
- ThreadingHTTPServer so a long deploy no longer blocks every other request.
- Per-app operation lock; concurrent writes to a busy app return 409.
- GET /status: all apps, routes and container status in one request
  (statuses gathered in parallel); status reports running/partial/stopped.
- Git sync is fetch + hard reset instead of pull-or-reclone, keeps the stored
  token, reports before/after commits; GET /apps/<name>/repo[?fetch=1].
- Any http(s) git host (e.g. Forgejo), default branch detection, git
  timeouts, no credential prompts, tokens redacted from errors, and manifest
  values validated before being written into the bash-sourced manifest.

panelctl:
- flock around routes.caddy rewrites (util-linux added to the service path).
- deploy returns compose output so failures are visible in the UI.
- inspect-volumes no longer fails for apps without named podman volumes,
  which broke the file browser.

Docs: README/API.md updated; fixed outdated panelctl init examples.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UbWSNkXxZhYf7eqHTyx3Bf
2026-09-26 22:17:07 +00:00
4143768c45 Added forgejo(git server) 2026-09-26 19:00:28 +02:00
Jakub Dorfman
2028769f92 rekeyed secrets with fedora surface ssh key 2026-07-17 14:52:20 +02:00
b4ec534f68 added fedora surface user to secrets users 2026-07-17 14:48:56 +02:00
Jakub Dorfman
a6c0157f46 update nextcloud admin user to 'admin-reudy' 2026-07-15 19:05:20 +02:00
Jakub Dorfman
f5d4becb50 ensure nextcloud cron service waits for setup to complete 2026-07-15 17:10:41 +02:00
Jakub Dorfman
cce19b503f update nextcloud package version to 33 2026-07-15 17:05:09 +02:00
Jakub Dorfman
0e1a7c0830 rearranged nginx listen configuration for nextcloud service 2026-07-15 17:01:57 +02:00
Jakub Dorfman
4af6798b5d fixed missing listen 2026-07-15 17:00:21 +02:00
Jakub Dorfman
eed70a6969 added nextcloud 2026-07-15 16:57:26 +02:00
Jakub Dorfman
091a23625d removed old surface ssh key 2026-07-05 14:38:06 +02:00
Jakub Dorfman
ed22ab2de6 added reudy-book to ssh 2026-07-05 14:31:37 +02:00
Jakub Dorfman
7fae1ed57e added path to routing 2026-05-20 01:07:37 +02:00
Jakub Dorfman
02b2909601 added support for multiple routes multiple ports 2026-05-20 00:21:25 +02:00
Jakub Dorfman
c93982936b installed htop 2026-05-14 21:43:15 +02:00
Jakub Dorfman
b6f18de9e2 revert to ada9be7 2026-05-14 21:40:56 +02:00
Jakub Dorfman
d7bc158864 allow unfree package lxmf in nixpkgs configuration 2026-05-14 21:08:58 +02:00
Jakub Dorfman
31db0a67d4 changed version of pkgs.python314Packages.rns and lxmf 2026-05-14 21:06:49 +02:00
Jakub Dorfman
19281afb90 added lxmd -p to reticulum making it a propagation node 2026-05-14 21:03:00 +02:00
Jakub Dorfman
ada9be73f5 changed reticulum home to work with permissions of reticulum user 2026-05-13 23:46:42 +02:00
Jakub Dorfman
e74af2b8e4 fix: define lib variable in outputs let block 2026-05-13 23:41:34 +02:00
Jakub Dorfman
d24fe40f61 allowed unfree packages, reticulum has custom license 2026-05-13 23:39:06 +02:00
Jakub Dorfman
79cf938395 added reticulum 2026-05-13 23:34:02 +02:00
Jakub Dorfman
0e4e3308c1 fix: add --build flag to run_compose for deployment and restart commands
Co-authored-by: Copilot <copilot@github.com>
2026-04-29 19:36:02 +02:00
Jakub Dorfman
559bae34a9 fix: reset leftover variables in cmd_list function
Co-authored-by: Copilot <copilot@github.com>
2026-04-29 18:56:26 +02:00
Jakub Dorfman
ea0f99b442 feat: add repo_url to app data and update frontend to conditionally display Git Pull button
Co-authored-by: Copilot <copilot@github.com>
2026-04-29 18:53:02 +02:00
Jakub Dorfman
fabcfceb6d feat: add repo-pull action to re-clone/pull repository and redeploy app
Co-authored-by: Copilot <copilot@github.com>
2026-04-29 18:47:11 +02:00
Jakub Dorfman
0a82fe3160 fix: add git package to panel API service dependencies 2026-04-29 18:40:02 +02:00
Jakub Dorfman
1f0368f1dd fix: check for git installation before cloning repository in HTTP handler
Co-authored-by: Copilot <copilot@github.com>
2026-04-29 18:38:29 +02:00
Jakub Dorfman
197926a8a8 fix: improve error handling and refactor app initialization process in HTTP handler
Co-authored-by: Copilot <copilot@github.com>
2026-04-29 18:36:11 +02:00
Jakub Dorfman
435be527d7 fix: improve error handling when reading app state in HTTP handler
Co-authored-by: Copilot <copilot@github.com>
2026-04-29 18:34:49 +02:00
Jakub Dorfman
2c1d267652 feat: add support for app source selection with GitHub and raw compose options
Co-authored-by: Copilot <copilot@github.com>
2026-04-29 15:39:34 +02:00
Jakub Dorfman
57ace80ecd feat: enhance volume management with support for multiple volumes and improved API endpoints
Co-authored-by: Copilot <copilot@github.com>
2026-04-28 23:43:17 +02:00
Jakub Dorfman
479d84bc27 feat: add volume management features including file upload, download, and clear actions
Co-authored-by: Copilot <copilot@github.com>
2026-04-28 23:30:22 +02:00
Jakub Dorfman
612fde6038 fix: streamline backup and route rendering actions in handleAction function
Co-authored-by: Copilot <copilot@github.com>
2026-04-28 23:24:55 +02:00
Jakub Dorfman
8b42ea7e04 feat: add routing tab and fetch routing details for apps in frontend
fix: update compose commands to remove orphan containers in panelctl

Co-authored-by: Copilot <copilot@github.com>
2026-04-28 23:20:49 +02:00
Jakub Dorfman
eeab4c1818 fix: remove unnecessary sudo rules and adjust permissions for container directories
Co-authored-by: Copilot <copilot@github.com>
2026-04-28 23:09:25 +02:00
Jakub Dorfman
fe4d3f4432 feat: add panel configuration with API service and Caddy integration
Co-authored-by: Copilot <copilot@github.com>
2026-04-28 22:54:36 +02:00
Jakub Dorfman
441b049e2b fix: remove unused maybe_reload_caddy function from panelctl.sh 2026-04-28 20:49:14 +02:00
Jakub Dorfman
ec1780d36a fix: add missing parameters to caddy configuration 2026-04-28 20:45:52 +02:00
Jakub Dorfman
fc9c6f1b81 fix: correct systemd path and service configuration for Caddy route reload 2026-04-28 20:44:14 +02:00
Jakub Dorfman
d71e12b3dd fix: add systemd path and service for automatic Caddy reload on route changes 2026-04-28 20:42:12 +02:00
Jakub Dorfman
e9045690d5 fix: remove curl from systemPackages and add it to serviceConfig path 2026-04-27 12:51:37 +02:00
Jakub Dorfman
24a25fe22f fix: remove admin configuration from extraConfig in caddy.nix 2026-04-27 12:46:57 +02:00
Jakub Dorfman
1dd5a3d469 fix: add admin configuration to extraConfig in caddy.nix 2026-04-27 12:43:05 +02:00
Jakub Dorfman
346f370e3f installed curl 2026-04-27 12:40:42 +02:00
Jakub Dorfman
89da2f4d36 fix: implement logging function and replace echo statements with log calls
Co-authored-by: Copilot <copilot@github.com>
2026-04-27 12:35:04 +02:00
Jakub Dorfman
da44b44468 fix: enhance caddy reload logic to use admin API and improve validation checks 2026-04-27 12:14:12 +02:00
Jakub Dorfman
9953519894 fix: adjust padding in .wrap class for improved layout 2026-04-27 12:00:40 +02:00
Jakub Dorfman
542141f8da installed jq 2026-04-27 00:33:07 +02:00