# Changelog ## 2026-03-17 - 1.20.0 - feat(ops-dashboard) stream user service logs to the ops dashboard and resolve service containers for Docker log streaming - add typed socket support for pushing live user service log entries to the web app - extend platform log streaming to include running user services with separate dashboard handlers - fall back from direct container lookup to service-to-container resolution when streaming Docker logs - update log parsing to preserve timestamps and infer log levels for service log entries - bump @serve.zone/catalog to ^2.7.0 ## 2026-03-17 - 1.19.12 - fix(repo) no changes to commit ## 2026-03-17 - 1.19.11 - fix(repo) no changes to commit ## 2026-03-17 - 1.19.10 - fix(repo) no changes to commit ## 2026-03-17 - 1.19.9 - fix(repo) no changes to commit ## 2026-03-17 - 1.19.8 - fix(repo) no changes to commit ## 2026-03-17 - 1.19.7 - fix(repo) no changes to commit ## 2026-03-17 - 1.19.6 - fix(repository) no changes to commit ## 2026-03-17 - 1.19.5 - fix(repo) no changes to commit ## 2026-03-17 - 1.19.4 - fix(repository) no changes to commit ## 2026-03-16 - 1.19.3 - fix(repo) no changes to commit ## 2026-03-16 - 1.19.2 - fix(docs) remove outdated UI screenshot assets from project documentation - Deletes multiple PNG screenshots that documented previous dashboard, service form, and hello-world states. - Reduces repository clutter by removing obsolete image assets no longer needed in docs. ## 2026-03-16 - 1.19.1 - fix(dashboard) add updated dashboard screenshots for refresh and resource usage states - Adds new dashboard screenshots covering post-refresh, resource usage, and populated data views. - Updates visual assets to document current dashboard behavior and UI states. ## 2026-03-16 - 1.19.1 - fix(dashboard) add aggregated resource usage stats to the dashboard - Aggregate CPU, memory, and network stats across all running user and platform service containers in getSystemStatus - Extend ISystemStatus.docker interface with cpuUsage, memoryUsage, memoryTotal, networkIn, networkOut fields - Fix getContainerStats to properly handle Swarm service IDs by catching exceptions and falling back to label-based container lookup - Wire dashboard resource usage card to display real aggregated data from the backend ## 2026-03-16 - 1.19.0 - feat(opsserver,web) add real-time platform service log streaming to the dashboard - stream running platform service container logs from the ops server to connected dashboard clients via TypedSocket - parse Docker log timestamps and levels for both pushed and fetched platform service log entries - enhance the platform service detail view with mapped statuses and predefined host, port, version, and config metadata - add the typedsocket dependency and update the catalog package for dashboard support ## 2026-03-16 - 1.18.5 - fix(platform-services) fix platform service detail view navigation and log display - Add back button to platform service detail view for returning to services list - Fix DOM lifecycle when switching between platform services (destroy and recreate dees-chart-log) - Fix timestamp format for log entries to use ISO 8601 for dees-chart-log compatibility - Clear previous stats/logs state before fetching new platform service data ## 2026-03-16 - 1.18.4 - fix(repo) no changes to commit ## 2026-03-16 - 1.18.3 - fix(deps) bump @serve.zone/catalog to ^2.6.1 - Updates the @serve.zone/catalog runtime dependency from ^2.6.0 to ^2.6.1. ## 2026-03-16 - 1.18.2 - fix(repo) no changes to commit ## 2026-03-16 - 1.18.1 - fix(repo) no changes to commit ## 2026-03-16 - 1.18.0 - feat(platform-services) add platform service log retrieval and display in the services UI - add typed request support in the ops server to fetch Docker logs for platform service containers - store fetched platform service logs in web app state and load them when opening platform service details - render platform service logs in the services detail view and add sidebar icons for main navigation tabs ## 2026-03-16 - 1.17.4 - fix(docs) add hello world running screenshot for documentation - Adds a new PNG asset showing the application in a running hello world state. - Supports project documentation or README usage without changing runtime behavior. ## 2026-03-16 - 1.17.3 - fix(mongodb) downgrade the MongoDB service image to 4.4 and use the legacy mongo shell for container operations - changes the default MongoDB container image from mongo:7 to mongo:4.4 - replaces mongosh with mongo for health checks, provisioning, and deprovisioning inside the container ## 2026-03-16 - 1.17.2 - fix(platform-services) provision ClickHouse, MinIO, and MongoDB resources via docker exec instead of host port access - switch ClickHouse provisioning and teardown to in-container client commands to avoid host port mapping issues - replace MinIO host-side S3 API calls with in-container mc commands for bucket creation and removal - run MongoDB provisioning and deprovisioning through mongosh inside the container and improve docker exec failure reporting ## 2026-03-16 - 1.17.1 - fix(repo) no changes to commit ## 2026-03-16 - 1.17.0 - feat(web/services) add deploy service action to the services view - Adds a prominent "Deploy Service" button to the services page header. - Routes users into the create service view directly from the services listing. - Includes a new service creation form screenshot asset for the updated interface. ## 2026-03-16 - 1.16.0 - feat(services) add platform service navigation and stats in the services UI - add platform service stats state and fetch action - show platform services in the services list and open a platform detail view - enable dashboard clicks to jump directly to the selected platform service - refresh platform service stats after start and restart actions - bump @serve.zone/catalog to ^2.6.0 for the new platform service UI components ## 2026-03-16 - 1.15.3 - fix(install) refresh systemd service configuration before restarting previously running installations - Re-enable the systemd service during updates so unit file changes are applied before restart - Add a log message indicating the service configuration is being refreshed ## 2026-03-16 - 1.15.2 - fix(systemd) set HOME and DENO_DIR for the systemd service environment - Adds HOME=/root to the generated onebox systemd unit - Adds DENO_DIR=/root/.cache/deno so Deno cache paths are available when running as a service ## 2026-03-16 - 1.15.1 - fix(systemd) move Docker installation and swarm initialization to systemd enable flow - Ensures Docker is installed before writing and enabling the systemd unit that depends on docker.service. - Removes Docker auto-installation from Onebox initialization so setup happens in the service management path. ## 2026-03-16 - 1.15.0 - feat(systemd) replace smartdaemon-based service management with native systemd commands - adds a dedicated OneboxSystemd manager for enabling, disabling, starting, stopping, checking status, and following logs - introduces a new `onebox systemd` CLI command set and updates install and help output to use it - removes the smartdaemon dependency and related service management code ## 2026-03-16 - 1.14.10 - fix(services) stop auto-update monitoring during shutdown - Track the auto-update polling interval in the services manager - Clear the auto-update interval when Onebox shuts down to prevent background checks after shutdown ## 2026-03-16 - 1.14.9 - fix(repo) no changes to commit ## 2026-03-16 - 1.14.8 - fix(repo) no changes to commit ## 2026-03-16 - 1.14.7 - fix(repo) no changes to commit ## 2026-03-16 - 1.14.6 - fix(project) no changes to commit ## 2026-03-16 - 1.14.5 - fix(onebox) move Docker auto-install and swarm initialization into Onebox startup flow - removes Docker setup from daemon service installation - ensures Docker is installed before Docker initialization during Onebox startup - preserves automatic Docker Swarm initialization on fresh servers ## 2026-03-16 - 1.14.4 - fix(repo) no changes to commit ## 2026-03-16 - 1.14.3 - fix(repo) no changes to commit ## 2026-03-16 - 1.14.2 - fix(repo) no changes to commit ## 2026-03-16 - 1.14.1 - fix(repo) no changes to commit ## 2026-03-16 - 1.14.0 - feat(daemon) auto-install Docker and initialize Swarm during daemon service setup - Adds a Docker availability check before installing the Onebox daemon service - Installs Docker automatically when it is missing using the standard installation script - Attempts to initialize Docker Swarm after installation and handles already-initialized environments gracefully ## 2026-03-16 - 1.13.17 - fix(ci) remove forced container image pulling from Gitea workflow jobs - Drops the `--pull always` container option from CI, npm publish, and release workflows. - Keeps workflow container images unchanged while avoiding forced pulls on every job run. ## 2026-03-16 - 1.13.16 - fix(ci) refresh workflow container images on every run and bump @apiclient.xyz/docker to ^5.1.1 - add --pull always to CI, release, and npm publish workflow containers to avoid stale images - update @apiclient.xyz/docker from ^5.1.0 to ^5.1.1 in deno.json ## 2026-03-15 - 1.13.15 - fix(repo) no changes to commit ## 2026-03-15 - 1.13.14 - fix(repo) no changes to commit ## 2026-03-15 - 1.13.13 - fix(repo) no changes to commit ## 2026-03-15 - 1.13.12 - fix(ci) run pnpm install with --ignore-scripts in CI and release workflows - Update CI workflow dependency installation steps to skip lifecycle scripts during builds. - Apply the same install change to the release workflow for consistent automation behavior. ## 2026-03-15 - 1.13.11 - fix(project) no changes to commit ## 2026-03-15 - 1.13.10 - fix(deps) bump @git.zone/tsdeno to ^1.2.0 - Updates the tsdeno development dependency from ^1.1.1 to ^1.2.0. ## 2026-03-15 - 1.13.9 - fix(repo) no changes to commit ## 2026-03-15 - 1.13.8 - fix(repo) no changes to commit ## 2026-03-15 - 1.13.7 - fix(repo) no changes to commit ## 2026-03-15 - 1.13.6 - fix(ci) correct workflow container image registry path - Update Gitea CI, release, and npm publish workflows to use the corrected ht-docker-node image path - Align all workflow container references from hosttoday to host.today to prevent pipeline image resolution issues ## 2026-03-15 - 1.13.5 - fix(workflows) switch Gitea workflow containers from ht-docker-dbase to ht-docker-node - Updates the CI, release, and npm publish workflows to use the Node-focused container image consistently. - Aligns workflow runtime images with the project's Node and Deno build and publish steps. ## 2026-03-15 - 1.13.4 - fix(ci) run workflows in the shared build container and enable corepack for pnpm installs - adds the ht-docker-dbase container image to CI, release, and npm publish workflows - enables corepack before pnpm install in build and release jobs to ensure package manager availability ## 2026-03-15 - 1.13.3 - fix(build) replace custom Deno compile scripts with tsdeno-based binary builds in CI and release workflows - adds @git.zone/tsdeno as a dev dependency and configures compile targets in npmextra.json - updates CI and release workflows to install Node.js dependencies before running tsdeno compile - removes the legacy scripts/compile-all.sh script and points the compile task to tsdeno compile ## 2026-03-15 - 1.13.2 - fix(scripts) install production dependencies before compiling binaries and exclude local node_modules from builds - Adds a dependency installation step using the application entrypoint before cross-platform compilation - Updates all deno compile targets to use --node-modules-dir=none to avoid bundling local node_modules ## 2026-03-15 - 1.13.1 - fix(deno) remove nodeModulesDir from Deno configuration - Drops the explicit nodeModulesDir setting from deno.json. - Keeps the package version unchanged at 1.13.0 while simplifying runtime configuration. ## 2026-03-15 - 1.13.0 - feat(install) improve installer with version selection, service restart handling, and upgrade documentation - Adds installer command-line options for help, specific version selection, and custom install directory. - Fetches the latest release from the Gitea API when no version is provided and installs the matching platform binary. - Preserves Onebox data directories, stops and restarts the systemd service during updates, and refreshes installation instructions in the README including upgrade usage. ## 2026-03-15 - 1.12.1 - fix(package.json) update package metadata - Single metadata-only file changed (+1, -1) - No source code or runtime behavior modified; safe patch release ## 2026-03-15 - 1.12.0 - feat(cli,release) add self-upgrade command and automate CI, release, and npm publishing workflows - adds a new `onebox upgrade` CLI command that checks the latest release and reinstalls the current binary via the installer script - introduces Gitea CI workflows for type checks, build verification, multi-platform binary compilation, release creation, and npm publishing - adds a reusable release template describing installation options, supported platforms, and checksum availability ## 2026-03-03 - 1.11.0 - feat(services) map backend service data to UI components, add stats & logs parsing, fetch service stats, and fix logs request param - Fix: rename service logs request property from 'lines' to 'tail' when calling typedRequest - Add data transformation helpers: formatBytes, parseImageString, mapStatus, toServiceDetail, toServiceStats, parseLogs - Transform service list and detail props to match @serve.zone/catalog component interfaces (map status, image, repo/tag, timestamps, registry) - Dispatch fetchServiceStatsAction on service click and surface transformed stats with default values to avoid nulls - Parse and normalize logs into timestamp/message pairs for the detail view ## 2026-03-02 - 1.10.3 - fix(bin) make bin/onebox-wrapper.js executable - Metadata-only change: file mode updated for bin/onebox-wrapper.js to include the executable bit - No source or behavior changes to the code ## 2026-03-02 - 1.10.2 - fix(build) update build/watch configuration, switch to esbuild bundler and tswatch, and bump catalog and tooling dependencies - Switch watch script to 'tswatch' (replaced previous concurrently command invoking deno + tswatch). - npmextra.json: set bundler to 'esbuild', enable production mode, include html/index.html in the bundle, and extend watchPatterns to include ./html/**/*. - Backend watcher: expanded watch globs and changed command to include --unstable-ffi and runtime flags (--ephemeral --monitor); restart and debounce kept. - Bump runtime deps: @design.estate/dees-catalog -> ^3.43.3, @serve.zone/catalog -> ^2.5.0. - Bump devDependencies: @git.zone/tsbundle -> ^2.9.0, @git.zone/tswatch -> ^3.2.0. ## 2026-02-24 - 1.10.1 - fix(package.json) update package metadata - Single metadata-only file changed (+1 -1) - No source code or runtime behavior modified; safe patch release - Current package version is 1.10.0; recommend patch bump to 1.10.1 ## 2026-02-24 - 1.10.0 - feat(opsserver) introduce OpsServer (TypedRequest API) and new lightweight web UI; replace legacy Angular UI and add typed interfaces - Add OpsServer (ts/opsserver) with TypedRequest handlers for admin, services, platform, dns, domains, registry, network, backups, schedules, settings and logs. - Integrate typedrequest/typedserver and smartjwt/smartguard plugins (ts/plugins.ts) and add comprehensive ts_interfaces for requests and data shapes. - Replace legacy HTTP server usage with OpsServer throughout daemon, Onebox class and CLI (ts/classes/daemon.ts, ts/classes/onebox.ts, ts/cli.ts). - Implement log streaming via VirtualStream and support for downloading/restoring backups and registry token management within handlers. - Introduce new web UI built with dees-element web components under ts_web (ob-app-shell and views) and bundle/watch tooling (npmextra.json, tsbundle/tswatch integration). - Update package.json: add build/watch scripts, tsbundle/tswatch dev deps and new runtime dependencies for typedrequest and catalog components. - Remove large Angular-based ui application and related services/components in ui/ (major cleanup of Angular code and assets). - Note: This adds many new endpoints and internal API changes (TypedRequest-based); consumers of the old UI/HTTP endpoints should migrate to the new OpsServer TypedRequest API and web components. ## 2025-12-03 - 1.9.2 - fix(ui) Add VS Code configs for the UI workspace and normalize dark theme CSS variables - Add VS Code workspace files under ui/.vscode: - - extensions.json: recommend the Angular language support extension - - launch.json: Chrome launch configurations for 'ng serve' and 'ng test' (preLaunchTask hooks) - - tasks.json: npm 'start' and 'test' tasks with a background TypeScript problem matcher to improve dev workflow - Update ui/src/styles.css dark theme variables to use neutral black/gray HSL values for background, foreground, cards, popovers, accents, borders, inputs and ring to improve contrast and consistency ## 2025-11-27 - 1.9.1 - fix(ui) Correct import success toast and add VS Code launch/tasks recommendations for the UI - Fix backup import success toast in backups-tab.component to reference response.data.service.name (previously response.data.serviceName), preventing incorrect service name display. - Add VS Code workspace settings for the UI: extensions recommendation, launch configurations for 'ng serve' and 'ng test', and npm tasks for start/test to simplify local development and debugging. ## 2025-11-27 - 1.9.0 - feat(backups) Add backup import API and improve backup download/import flow in UI - Backend: add /api/backups/import endpoint to accept multipart file uploads or JSON with a URL and import backups (saves temp file, validates .tar.enc, calls backupManager.restoreBackup in import mode). - Backend: server-side import handler downloads remote backup URLs, stores temporary file, invokes restore/import logic and cleans up temp files. - Frontend: add downloadBackup, importBackupFromFile and importBackupFromUrl methods to ApiService; trigger browser download using Blob and object URL with Authorization header. - Frontend: replace raw download link in service detail UI with a Download button that calls downloadBackup and shows success/error toasts. - Dev: add VS Code launch, tasks and recommended extensions for the ui workspace to simplify local development. ## 2025-11-27 - 1.8.0 - feat(backup) Add backup scheduling system with GFS retention, API and UI integration - Introduce backup scheduling subsystem (BackupScheduler) and integrate it into Onebox lifecycle (init & shutdown) - Extend BackupManager.createBackup to accept schedule metadata (scheduleId) so scheduled runs are tracked - Add GFS-style retention policy support (IRetentionPolicy + RETENTION_PRESETS) and expose per-tier retention in types - Database migrations and repository changes: create backups and backup_schedules tables, add schedule_id, per-tier retention columns, and scope (all/pattern/service) support (migrations up to version 12) - HTTP API: add backup schedule endpoints (GET/POST/PUT/DELETE /api/backup-schedules), trigger endpoint (/api/backup-schedules/:id/trigger), and service-scoped schedule endpoints - UI: add API client methods for backup schedules and register a Backups tab in Services UI to surface schedules/backups - Add task scheduling dependency (@push.rocks/taskbuffer) and export it via plugins.ts; update deno.json accordingly - Type and repository updates across codebase to support schedule-aware backups, schedule CRUD, and retention enforcement ## 2025-11-27 - 1.7.0 - feat(backup) Add backup system: BackupManager, DB schema, API endpoints and UI support Introduce a complete service backup/restore subsystem with encrypted archives, database records and REST endpoints. Implements BackupManager with export/import for service config, platform resources (MongoDB, MinIO, ClickHouse), and Docker images; adds BackupRepository and migrations for backups table and include_image_in_backup; integrates backup flows into the HTTP API and the UI client; exposes backup password management and restore modes (restore/import/clone). Wire BackupManager into Onebox initialization. - Add BackupManager implementing create/restore/export/import/encrypt/decrypt workflows (service config, platform resource dumps, Docker image export/import) and support for restore modes: restore, import, clone. - Add BackupRepository and database migrations: create backups table and add include_image_in_backup column to services; database API methods for create/get/list/delete backups. - Add HTTP API endpoints for backup management: list/create/get/download/delete backups, restore backups (/api/backups/restore) and backup password endpoints (/api/settings/backup-password). - Update UI ApiService and types: add IBackup, IRestoreOptions, IRestoreResult, IBackupPasswordStatus and corresponding ApiService methods (getBackups, createBackup, getBackup, deleteBackup, getBackupDownloadUrl, restoreBackup, setBackupPassword, checkBackupPassword). - Expose includeImageInBackup flag on service model and persist it in ServiceRepository (defaults to true for existing rows); service update flow supports toggling this option. - Integrate BackupManager into Onebox core (initialized in Onebox constructor) and wire HTTP handlers to use the new manager; add DB repository export/import glue so backups are stored and referenced by ID. ## 2025-11-27 - 1.6.0 - feat(ui.dashboard) Add Resource Usage card to dashboard and make dashboard cards full-height; add VSCode launch/tasks/config - Introduce ResourceUsageCardComponent and include it as a full-width row in the dashboard layout. - Make several dashboard card components (Certificates, Traffic, Platform Services) full-height by adding host classes and applying h-full to ui-card elements for consistent card sizing. - Reflow dashboard rows (insert Resource Usage as a dedicated row and update row numbering) to improve visual layout. - Add VSCode workspace configuration: recommended Angular extension, launch configurations for ng serve/ng test, and npm tasks to run/start the UI in development. ## 2025-11-27 - 1.5.0 - feat(network) Add traffic stats endpoint and dashboard UI; enhance platform services and certificate health reporting - Add /api/network/traffic-stats GET endpoint to the HTTP API with an optional minutes query parameter (validated, 1-60). - Implement traffic statistics aggregation in CaddyLogReceiver using rolling per-minute buckets (requestCount, errorCount, avgResponseTime, totalBytes, statusCounts, requestsPerMinute, errorRate). - Expose getTrafficStats(minutes?) in the Angular ApiService and add ITrafficStats type to the client API types. - Add dashboard UI components: TrafficCard, PlatformServicesCard, CertificatesCard and integrate them into the main Dashboard (including links to Platform Services). - Enhance system status data: platformServices entries now include displayName and resourceCount; add certificateHealth summary (valid, expiringSoon, expired, expiringDomains) returned by Onebox status. - Platform services manager and Onebox code updated to surface provider information and resource counts for the UI. - Add VSCode workspace launch/tasks recommendations for the UI development environment. ## 2025-11-26 - 1.4.0 - feat(platform-services) Add ClickHouse platform service support and improve related healthchecks and tooling - Add ClickHouse as a first-class platform service: register provider, provision/cleanup support and env var injection - Expose ClickHouse endpoints in the HTTP API routing (list/get/start/stop/stats) and map default port (8123) - Enable services to request ClickHouse as a platform requirement (enableClickHouse / platformRequirements) during deploy/provision flows - Fix ClickHouse container health check to use absolute wget path (/usr/bin/wget) for more reliable in-container checks - Add VS Code workspace launch/tasks/extensions configs for the UI (ui/.vscode/*) to improve local dev experience ## 2025-11-26 - 1.3.0 - feat(platform-services) Add ClickHouse platform service support (provider, types, provisioning, UI and port mappings) - Introduce ClickHouse as a first-class platform service: added ClickHouseProvider and registered it in PlatformServicesManager - Support provisioning ClickHouse resources for user services and storing encrypted credentials in platform_resources - Add ClickHouse to core types (TPlatformServiceType, IPlatformRequirements, IServiceDeployOptions) and service DB handling so services can request ClickHouse - Inject ClickHouse-related environment variables into deployed services (CLICKHOUSE_* mappings) when provisioning resources - Expose ClickHouse default port (8123) in platform port mappings / network targets - UI: add checkbox and description for enabling ClickHouse during service creation; form now submits enableClickHouse - Add VS Code recommendations and launch/tasks for the UI development workflow ## 2025-11-26 - 1.2.1 - fix(platform-services/minio) Improve MinIO provider: reuse existing data and credentials, use host-bound port for provisioning, and safer provisioning/deprovisioning - MinIO provider now detects existing data directory and will reuse stored admin credentials when available instead of regenerating them. - If data exists but no credentials are stored, MinIO deployment will wipe the data directory to avoid credential mismatch and fail early with a clear error if wiping fails. - Provisioning and deprovisioning now connect to MinIO via the container's host-mapped port (127.0.0.1:) instead of relying on overlay network addresses; an error is thrown when the host port mapping cannot be determined. - Bucket provisioning creates policies and returns environment variables using container network hostnames for in-network access; a warning notes that per-service MinIO accounts are TODO and root credentials are used for now. - Added logging improvements around MinIO deploy/provision/deprovision steps for easier debugging. - Added VSCode workspace files (extensions, launch, tasks) for the ui project to improve developer experience. ## 2025-11-26 - 1.2.0 - feat(ui) Sync UI tab state with URL and update routes/links - Add VSCode workspace recommendations, launch and tasks configs for the UI (ui/.vscode/*) - Update Angular routes to support tab URL segments and default redirects for services, network and registries - Change service detail route to use explicit 'detail/:name' path and update links accordingly - Make ServicesList, Registries and Network components read tab from route params and navigate on tab changes; add ngOnDestroy to unsubscribe - Update Domain detail template link to point to the new services detail route ## 2025-11-26 - 1.1.0 - feat(platform-services) Add platform service log streaming, improve health checks and provisioning robustness - Add WebSocket log streaming support for platform services (backend + UI) to stream MinIO/MongoDB/Caddy logs in real time - Improve platform service lifecycle: detect unhealthy 'running' containers, mark for redeploy and wait/retry health checks with detailed logging - MinIO health check now uses container IP (via Docker) instead of hostname to reliably probe the service - MongoDB and MinIO providers updated to use host-mapped ports for host-side provisioning and connect via 127.0.0.1: - Docker manager: pullImage now actively pulls images and createContainer binds service ports to localhost so host-based provisioning works - UI: platform service detail page can start/stop/clear platform log streams; log stream service state cleared on disconnect to avoid stale logs - Caddy / reverse-proxy improvements to manage certificates and routes via the Caddy manager (Caddy runs as Docker service) - Add VSCode workspace helpers (extensions, launch, tasks) to improve developer experience All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added - Initial project structure - Core architecture classes - Docker container management - Nginx reverse proxy integration - Cloudflare DNS management - Let's Encrypt SSL automation - SQLite database layer - Angular web UI - Multi-user authentication - Systemd daemon integration - CLI commands for all operations - Metrics collection and historical data - Log aggregation - Registry authentication support ## [1.0.0] - TBD ### Added - First stable release