• v0.1.0 636f650c4c

    v0.1.0
    All checks were successful
    CI / frontend (push) Successful in 21s
    CI / backend (push) Successful in 1m0s
    Release / goreleaser (push) Successful in 1m25s
    Release / docker (push) Successful in 1m33s
    Stable

    nhpro released this 2026-07-20 18:28:51 +02:00 | 26 commits to master since this release

    Changelog

    • 4c1b0e80a5 build: Dockerfiles for agent and web dev
    • 2254eeaa40 ci: Forgejo CI + release pipelines
    • 95e53f57e8 ci: blank GITHUB_TOKEN so goreleaser uses only GITEA_TOKEN
    • 79a25deefb ci: fix pnpm activation (packageManager) and goreleaser config
    • f439c4c743 ci: goreleaser step with GITEA_TOKEN only (match reference)
    • 8dfebcc426 ci: replace existing release on re-run (goreleaser mode)
    • 636f650c4c ci: run goreleaser with GITHUB_TOKEN stripped (runner auto-injects it)
    • 50c812f2cc feat(agent): CLI entrypoint
    • a0351afb52 feat(api): HTTP router, middleware and handlers
    • 9df8341a81 feat(api): expose stack deployment history
    • 0ea6ffacd0 feat(api): full container inspect
    • eeedd13a01 feat(api): interactive exec terminal over WebSocket
    • f0edcd1b1c feat(api): manual prune endpoints for containers, networks and build cache
    • 56d27bd232 feat(api): name-only stack creation, build env, editable env files
    • ee4fe324a7 feat(api): private registry endpoints and pull auth wiring
    • 95d469f685 feat(api): proxy endpoints (config, resolvers, apply, status, dns providers)
    • 2b7137ba1e feat(api): stack endpoints and wiring
    • cf442983bd feat(api): volume, network and image endpoints
    • ca7087f701 feat(audit): expose activity log endpoint and page
    • c59a1c5a27 feat(audit): pluggable audit sinks
    • b240234768 feat(audit): record a derived action and surface it in the activity page
    • 92f6cb59f2 feat(auth): built-in local admin (setup + login) alongside OIDC
    • cf8f696138 feat(auth): config, JWT verification and RBAC
    • 6576ee8afd feat(compose): authenticate private pulls from stored registries
    • a2e589e675 feat(compose): compose CLI runner and command detection
    • dcb84819fe feat(compose): pull/build/dry-run/config-hash runner methods
    • 04b4f51f51 feat(compose): support explicit -f overlay compose files
    • 4253b3da67 feat(compose): target specific services in up/pull/build
    • 87eb26077d feat(db): Postgres persistence with goose and sqlc
    • 0dee45703b feat(db): registries table and queries
    • 40412ead4d feat(db): stacks tables and queries
    • d9da5f3756 feat(db): store stack deployment log as bytea
    • c29c350a37 feat(deploy): production docker compose (postgres + agent + web)
    • 08b0f78235 feat(docker): bundle Compose v2 in the agent image
    • b69c2cf575 feat(imagecheck): trivy vulnerability scan on image checks
    • 3550ac7ea5 feat(images): on-demand CVE detail scan in the images view
    • 8bad954fd6 feat(networks): expose subnet (CIDR) in the network list
    • 254c36819a feat(proxy): Let's Encrypt staging toggle and Traefik log level
    • 118cbf11d8 feat(proxy): TCP/UDP routing with dedicated Traefik entrypoints
    • e9efa59bd4 feat(proxy): managed traefik service, shared network and DNS provider data
    • 3f6a8df851 feat(proxy): materialize manual TLS certs into the shared dynamic dir
    • b4e28a4180 feat(prune): scheduled prune worker across nodes and unified endpoint
    • d7f10913e2 feat(rbac): containers:exec permission and query-param token auth
    • 520cb69531 feat(rbac): permissions for stacks
    • 1d83b37108 feat(rbac): permissions for volumes, networks and images
    • f1388281a4 feat(registries): test a login against a node's engine
    • f4083932e6 feat(runtime): add container/network/build-cache prune and all-images option
    • 2ee3cb1596 feat(runtime): engine-agnostic adapter for Docker and Podman
    • 9fd8fd93f1 feat(runtime): expose health-check history
    • 3a31eb8953 feat(runtime): expose host system metrics (info, disk, /proc)
    • bc512db450 feat(runtime): image listing, removal and prune
    • cc4a6835de feat(runtime): interactive container exec session
    • 44be4cb360 feat(runtime): network resource
    • e674f5b753 feat(runtime): remote and local image digest lookups
    • 375e94babf feat(runtime): thread registry auth into image pull
    • 6275a8c8a2 feat(runtime): volume resource
    • c1fee332ee feat(secret): AES-256-GCM encryption for secrets at rest
    • 31ef2d6716 feat(secrets): encrypted per-stack secrets delivered via compose secrets
    • d8a80b512a feat(security): rate-limit the deploy webhook
    • 5dbfe192a6 feat(security): rotate-key command to re-encrypt stored secrets
    • 71b985f2c4 feat(service): managed applications and deploy orchestration
    • 69f459e9e1 feat(service): registry credential service
    • 55be5aa950 feat(service): stack service
    • 6b62b66c15 feat(settings): persist a global app-settings store and make the image poller dynamic
    • 7546eb7bb7 feat(settings): persist prune schedule and targets
    • b864b85ecf feat(settings): schedule the image poller with a cron expression
    • 145315e52c feat(stacks): apply image updates via a targeted pull+redeploy
    • c5f32e08e0 feat(stacks): background image-update polling
    • 5f2b9587a3 feat(stacks): cancel an in-flight deploy
    • dd25dafbd2 feat(stacks): clean up orphaned workdirs on startup
    • 985386100a feat(stacks): compose diff between two deployments
    • 4d6cddc4e7 feat(stacks): compose lint warnings on validate
    • cd740ad04d feat(stacks): detect configuration drift
    • 9e6306e88a feat(stacks): dry-run preview before deploy
    • db8d3ec101 feat(stacks): gzip-compress persisted deploy log
    • 567d5a78e6 feat(stacks): per-domain routes with invisible Traefik overlay
    • 8fedf2631c feat(stacks): per-stack deploy webhook
    • 5955550a07 feat(stacks): persist compose output in deployment history
    • db70b9e071 feat(stacks): record deployed image digests per deployment
    • df55cac235 feat(stacks): roll back to a previous deployment
    • 38d4393c6d feat(stacks): serialize deploy/stop/destroy per stack
    • 8109fce776 feat(stacks): snapshot compose per deployment
    • 3cae84f41d feat(stacks): stream compose deploy output over SSE
    • 871333b92e feat(stacks): stream pull and build during deploy
    • 5f83707c5f feat(stacks): surface per-stack update count on the stack view
    • 9e9b3d092a feat(stacks): wait for healthy containers before marking running
    • e5c194b729 feat(web): CodeMirror editor for the stack editor
    • 61955a425a feat(web): Nebula Console app shell
    • ec736e0878 feat(web): Nebula Console design system
    • c52457de4c feat(web): OrionAuth Nebula theme and UI prefs store
    • d9fc96b2a8 feat(web): TCP/UDP routes in the domains tab
    • 8480997d55 feat(web): align host metrics with the Nebula reference (overlaid chart + legend)
    • 7fa9f54765 feat(web): app shell with sidebar, topbar and node picker
    • a596aa2bbf feat(web): auto-detect JSON logs in the container log viewer
    • 7b19befcfc feat(web): command palette (Cmd/Ctrl+K)
    • a72afe27e0 feat(web): container detail with live logs, stats and config
    • 90de8a2aa0 feat(web): container network/IO charts and health history
    • f33a8707c2 feat(web): containers and dashboard views wired to the API
    • a86cc8174b feat(web): dedicated reverse-proxy menu and DNS provider dropdown
    • f269bdd524 feat(web): deploy log in a popup with history replay
    • 9f64d0cb1b feat(web): domains tab for per-stack routing
    • 04123f9212 feat(web): drop Deep Space direction, keep Nebula only
    • cbb392c679 feat(web): enriched container config tab
    • fc010fa145 feat(web): host metrics card on the dashboard
    • 9eb40c13f9 feat(web): images, volumes and networks views
    • 7dba194be0 feat(web): interactive terminal (xterm.js) in container detail
    • b95a18580a feat(web): lead the container page with an operational overview tab
    • 0a4caf2bf6 feat(web): lead the stack page with an operational overview tab
    • 869f3e64c1 feat(web): live deploy console in the stack editor
    • d25f5abb45 feat(web): live log search and level filter
    • 98b3d4aa00 feat(web): live stats charts in container detail
    • c27b139b09 feat(web): local admin setup and login screen
    • 5ceb939b35 feat(web): manual prune buttons for containers, networks and build cache
    • 538d3056c1 feat(web): one-click image update buttons (per service + all)
    • 3bbb235b55 feat(web): open stacks in the editor instead of inline expansion
    • 550637a809 feat(web): per-stack stats and per-service logs in the services tab
    • a96e47fb99 feat(web): proxy settings panel with dynamic DNS credential fields
    • 94dc51881f feat(web): re-skin views to Nebula Console
    • 5586359d4d feat(web): readable metric charts with gridlines and axis scales
    • 8c53614cbb feat(web): reconcile drift from the banner
    • c8f92aa2ba feat(web): registries page to manage private image credentials
    • e158e1a772 feat(web): remove the settings (tweaks) panel
    • 73c3ef07f2 feat(web): responsive layout with mobile sidebar drawer
    • b8fd86e8bb feat(web): scaffold Vue 3 + Vite + TS + Tailwind v4 + shadcn-vue
    • 7a505027ba feat(web): scheduled prune and manual cleanup panel on settings
    • 8c03487aa9 feat(web): settings page for the image-check interval
    • ff8ca498a8 feat(web): show available-update badges in sidebar, dashboard and stacks list
    • ae9ee4ad74 feat(web): stack api for name-only create and build env
    • 7394ba1597 feat(web): stack editor page and name-only creation
    • 6a41e02306 feat(web): stacks view (compose)
    • b14cd1dfb8 feat(web): styled confirmation dialogs with destructive guards
    • ad88bf0c04 feat(web): tag stack containers with their stack name
    • 2e870b0c24 feat(web): tag stack volumes/networks and show network CIDR
    • 84c977d67b feat(web): test a registry login from the registries page
    • 0b7da3b673 feat(web): tweaks panel with Deep Space direction and density
    • c5342f93c3 feat(web): typed API client, auth and login
    • f3446aea70 fix(audit): handle null roles for unauthenticated entries
    • d828d451c9 fix(dev): coexist with standalone Postgres and reach the socket under SELinux
    • 752e6b8c4d fix(stacks): base drift on a deploy-time config-hash snapshot
    • d597f30247 fix(stacks): record deploy cancellation correctly
    • 5e4947cb3b fix(stacks): tolerate env_file references in validation and deploy
    • 84eea1f3ae fix(updates): resolve image digests via a direct registry client
    • 753d54d815 fix(web): confirm dialog resolved to false on confirm
    • 42dea9c887 fix(web): keep stack row actions right-aligned before expanding
    • b72c344252 fix(web): lay out host facts as a tile grid for readability
    • 46403ef904 fix(web): prefetch stack service counts on list load
    • c1b2fde8e1 fix(web): reserve metric chart plot height so values don't overlap the graph
    • f7dade05b7 fix(web): stack host metric label above value for readability
    • 6f024b99e6 fix(web): use theme color vars for host card text contrast
    • 969fb714df perf(updates): cache remote image digests with a short TTL
    • 96b8904561 test(registryclient): cover ref parsing, auth challenge and token flow
    • bded4c0524 test(service): integration test for create and deploy
    Downloads