Add panel-api and panelctl scripts for container management

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Jakub Dorfman 2026-04-26 19:42:30 +02:00
commit 8986399a92
4 changed files with 930 additions and 0 deletions

37
README.md Normal file
View file

@ -0,0 +1,37 @@
# panelctl quickstart
This repository now includes a small helper command named panelctl for Phase 2.
Base directory:
- /home/reudy/containers
Generated structure:
- /home/reudy/containers/stacks/<app>/compose.yaml
- /home/reudy/containers/volumes/<app>/data
- /home/reudy/containers/routes/<app>.caddy
- /home/reudy/containers/state/apps/<app>.env
Quick workflow:
1. Create a new app definition:
panelctl init whoami whoami.srazka.com 18080 true
2. Deploy it with Podman compose:
panelctl deploy whoami
3. If deploy says caddy reload needs root:
sudo systemctl reload caddy
4. List apps:
panelctl list
5. Inspect one app:
panelctl show whoami
6. Remove app but keep data:
panelctl remove whoami --keep-volumes
Notes:
- The default compose file uses traefik/whoami for smoke testing.
- Edit each generated compose.yaml before production use.
- App names must be lowercase slugs.
API service:
- Nix now runs panel-api as a systemd service on 127.0.0.1:9911.
- Caddy proxies https://panel.srazka.com to panel-api with your existing forward_auth pattern.
- Open https://panel.srazka.com for the web UI.
- API docs are in panel/API.md.