Prvi pravi mini-app kao samostalan folder: - idriz/apps/base.py: AppSpec, AppTool, AppContext (uski most ka runtime-u). - idriz/apps/__init__.py: load_apps() (lijeni uvoz manifesta). - idriz/apps/superheroji/: logic.py (bivši game.py), store.py (bivši gamestore.py), manifest.py (prompt fragment + sheme + handleri preko ctx). Assistant više NEMA game_* metode ni self.match: prompt/tools/pozdrav/dispatch se grade iz registra app-ova + jezgra. Admin uvozi apps.superheroji.store (bez openai). Ponašanje isto (testirano: mehanika, handleri kroz AppContext, admin bez openai). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
Idriz Admin
Jednostavan LAN web panel za mašinu idriz. Namjerno minimalan:
Flask + waitress + python-pam, jedan fajl (app.py), bez baze podataka.
Šta radi
- Prijava preko PAM-a (Linux korisnik
idriz, ista lozinka kao sistemska). - Stranica Status servisa — pregled sistemskih i korisničkih servisa (idriz, CUPS, VNC, PipeWire...) sa stanjem, autostartom, uptime-om, PID-om i memorijom.
- Vertikalni meni sa lijeve strane (spremno za dodavanje novih stranica).
Pristup
- URL:
http://192.168.1.10:8080/(samo sa LAN-a). - Korisnik:
idriz, lozinka: sistemska lozinka tog korisnika.
Pokretanje
Radi kao korisnički systemd servis (mora biti user servis zbog pristupa
systemctl --user servisima kao što je idriz.service):
systemctl --user status idriz-admin
systemctl --user restart idriz-admin
journalctl --user -u idriz-admin -f
Enabled je za boot; Restart=always + StartLimitIntervalSec=0 (nikad ne odustaje).
Struktura
app.py— cijela aplikacija (konfiguracija servisa je listaSERVICESna vrhu).templates/base.html— layout + vertikalni meni + stil.templates/login.html,templates/status.html.- PAM servis:
/etc/pam.d/idriz-admin.
Dodavanje novog servisa u praćenje
Dopiši red u listu SERVICES u app.py (unit, scope, label, desc) i
restartuj: systemctl --user restart idriz-admin.
Dodavanje nove stranice u meni
- Nova ruta u
app.pysa@login_required. - Novi
<a>utemplates/base.html(u.nav), saactiveklasom prekoactive_page.