Changelog
All notable changes to dployr are documented in this file.
This changelog intelligently merges updates from all dployr components:
- dployr - Main CLI and daemon
- dployr-base - Control plane
- dployr-web - Web dashboard
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
TIP
For detailed commit history, visit the respective repositories: dployr • dployr-base • dployr-web
Last Updated
March 11, 2026 at 02:09 PM UTC
🎉 Version 0.5.x
Stable Release • 2026-01-18
Component Versions
🚀 Features
- [dployrd] (terminal) Add interactive terminal support via bi-directional websocket relay from base to client
🚜 Refactor
- [dployrd] (goreleaser) Fix GitHub raw content URLs
- [dployrd] (install) Create Caddy logs directory during installation
- [dployrd] (docs) Remove old store docs
- [dployrd] (syncer) Move auth and WebSocket utilities to shared packages
- [dployrd] (syncer) Trigger send sync update before executing deploy/proxy tasks instead of after completion
- [dployrd] (proxy) Remove HTTPS listener from reverse proxy template to use HTTP only
- [dployrd] (install) Start Caddy service after systemd configuration reload
- [dployrd] (proxy) Disable automatic HTTPS in Caddy and explicitly configure HTTP/HTTPS listeners
- [dployrd] (install) Configure Caddy to run as dployrd user with privileged port binding
- [dployrd] (proxy) Migrate Caddy management from process to systemd service
- [dployrd] (proxy) Change Caddy default ports from 8080/8443 to 80/443
- [dployrd] (system) Send sync message after deploy task completion
- [dployrd] (system) Expand sync trigger to include deployment and proxy tasks
- [dployrd] (system) Add Caddy restart to system restart and reboot operations
- [dployrd] (system) Fix workload conversions in update builder
- [dployrd] (release) Update installation script URLs to use correct path
- [dployrd] (system) Add error handling to syncer
- [dployrd] (api) Make services a mandatory field in services struct
- [dployrd] (system) Stable schema contract for update v1.1
- [dployrd] (release) Update CDN for installation script
- [dployrd] (system) Cleanups and improvement
- [dployrd] (install) Fix path to Caddyfile in sudoers permissions
- [dployrd] (proxy) Updated unstructured remove-route request
- [dployrd] (api) Implement v1.1 update schema
🚧 Version 0.4.x
Beta Series • Latest: 0.4.13-beta.26 (2026-01-02)
Component Versions
dployr@0.4.13-beta.26⚠️ DEPRECATEDdployr@0.4.13-beta.25⚠️ DEPRECATEDdployr@0.4.13-beta.24⚠️ DEPRECATEDdployr@0.4.13-beta.23⚠️ DEPRECATEDdployr@0.4.13-beta.22⚠️ DEPRECATEDdployr@0.4.13-beta.21⚠️ DEPRECATEDdployr@0.4.13-beta.20⚠️ DEPRECATEDdployr@0.4.13-beta.19⚠️ DEPRECATEDdployr@0.4.13-beta.18⚠️ DEPRECATEDdployr@0.4.13-beta.17⚠️ DEPRECATEDdployr@0.4.13-beta.16⚠️ DEPRECATEDdployr@0.4.13-beta.15⚠️ DEPRECATEDdployr@0.4.13-beta.14⚠️ DEPRECATEDdployr@0.4.13-beta.13⚠️ DEPRECATEDdployr@0.4.13-beta.12⚠️ DEPRECATEDdployr@0.4.13-beta.11⚠️ DEPRECATEDdployr@0.4.13-beta.10⚠️ DEPRECATEDdployr@0.4.13-beta.9⚠️ DEPRECATEDdployr@0.4.13-beta.8⚠️ DEPRECATEDdployr@0.4.13-beta.7⚠️ DEPRECATEDdployr@0.4.13-beta.6⚠️ DEPRECATEDdployr@0.4.13-beta.5⚠️ DEPRECATEDdployr@0.4.13-beta.3⚠️ DEPRECATEDdployr@0.4.13-beta.2⚠️ DEPRECATEDdployr@0.4.13-beta.1⚠️ DEPRECATEDdployr@0.4.12⚠️ DEPRECATEDdployr@0.4.11-beta.1⚠️ DEPRECATEDdployr@0.4.10⚠️ DEPRECATEDdployr@0.4.9⚠️ DEPRECATEDdployr@0.4.8⚠️ DEPRECATEDdployr@0.4.7⚠️ DEPRECATEDdployr@0.4.7-beta.6⚠️ DEPRECATEDdployr@0.4.7-beta.5⚠️ DEPRECATEDdployr@0.4.7-beta.4⚠️ DEPRECATEDdployr@0.4.7-beta.2⚠️ DEPRECATEDdployr@0.4.7-beta.1⚠️ DEPRECATEDdployr@0.4.6⚠️ DEPRECATEDdployr@0.4.6-beta.8⚠️ DEPRECATEDdployr@0.4.6-beta.7⚠️ DEPRECATEDdployr@0.4.6-beta.6⚠️ DEPRECATEDdployr@0.4.6-beta.5⚠️ DEPRECATEDdployr@0.4.6-beta.4⚠️ DEPRECATEDdployr@0.4.6-beta.3⚠️ DEPRECATEDdployr@0.4.6-beta.2⚠️ DEPRECATEDdployr@0.4.4⚠️ DEPRECATEDdployr@0.4.3⚠️ DEPRECATEDdployr@0.4.3-beta.2⚠️ DEPRECATEDdployr@0.4.3-beta.1⚠️ DEPRECATEDdployr@0.4.2⚠️ DEPRECATEDdployr@0.4.1⚠️ DEPRECATEDdployr@0.4.1-beta.14⚠️ DEPRECATEDdployr@0.4.1-beta.13⚠️ DEPRECATEDdployr@0.4.1-beta.12⚠️ DEPRECATEDdployr@0.4.1-beta.11⚠️ DEPRECATEDdployr@0.4.1-beta.10⚠️ DEPRECATEDdployr@0.4.1-beta.9⚠️ DEPRECATEDdployr@0.4.1-beta.8⚠️ DEPRECATEDdployr@0.4.1-beta.7⚠️ DEPRECATEDdployr@0.4.1-beta.6⚠️ DEPRECATEDdployr@0.4.1-beta.5⚠️ DEPRECATEDdployr@0.4.1-beta.4⚠️ DEPRECATEDdployr@0.4.1-beta.3⚠️ DEPRECATEDdployr@0.4.1-beta.2⚠️ DEPRECATEDdployr@0.4.1-beta.1⚠️ DEPRECATEDdployr@0.4.0⚠️ DEPRECATED
🚀 Features
- [dployrd] (install) Add automatic git installation to installer
- [dployrd] (ci) Add automated changelog generation with git-cliff
- [dployrd] (filesystem) Add real-time directory watching with fsnotify and WebSocket events
- [dployrd] (service) Add systemd service and proxy cleanup on service deletion
- [dployrd] (config) Add custom instance ID support to installation scripts and agent configuration
- [dployrd] (filesystem) Add filesystem browsing and file operations API
- [dployrd] (system) Add endpoint for gopsutil-based resource monitoring
- [dployrd] (system) Extend service counts with full deployment, service, and proxy app lists in system status
- [dployrd] (logger) Add log rotation with 300MB size and 24-hour age limits, keeping 5 backups
- [dployrd] (deploy) Add custom JSON unmarshaler for DeployRequest runtime field
- [dployrd] (db) Enable WAL mode and set 5s busy timeout to prevent SQLITE_BUSY errors
- [dployrd] (system) Split restart into daemon restart and OS reboot endpoints, enhance install script with auth and task exclusion
- [dployrd] (system) Add token validation for log streaming, include worker count in system updates
- [dployrd] (system) Add system restart with systemctl
- [dployrd] (install) Add automated installation script with graceful daemon upgrade handling
- [dployrd] (executor) Pass context to log stream handler and suppress context cancellation errors
- [dployrd] (ci) Enhance Discord release notification with richer embed formatting
- [dployrd] (install) Add configurable base URL option with --base flag
- [dployrd] (install) Update registration API endpoint to use versioned daemon URL and enhance error handling
- [dployrd] (logs) Implement adaptive batching for log streaming with 250ms window and 50-line threshold
- [dployrd] (logs) Add size-based chunking to prevent WebSocket message size limits
- [dployrd] (logs) Replace SSE log streaming with WebSocket-based implementation
- [dployrd] (logs) Add log streaming functionality with WebSocket support
- [dployrd] (system) Add comprehensive system resource metrics and enhanced status reporting
- [dployrd] (metrics) Add Prometheus metrics endpoint with task execution and system health tracking
- [dployrd] (agent) Add WebSocket-based task syncing with mTLS client authentication
- [dployrd] (system) Add bootstrap token rotation and registration status endpoints
- [dployrd] (system) Add task syncing and daemon mode management
🐛 Bug Fixes
- [dployrd] (install) Fix registration response structure
- [dployrd] (store) Parse timestamp columns as strings to handle SQLite TEXT storage
- [dployrd] (install) Add fallback to static jq binary download when apt install fails
- [dployrd] (syncer) Change default client cert directory from /etc/dployr to /var/lib/dployrd on Linux
- [dployrd] (tests) Fixed race detection and add thread-safety to mock deployment store
- [dployrd] (store) Handle db NULL values for bootstrap_token and access_token
- [dployrd] (version) Add bounds checking for commit hash truncation
🚜 Refactor
- [dployrd] (proxy) Enhance proxy status response with detailed Caddy configuration
- [dployrd] (api) Update docs
- [dployrd] (proxy) Updated remaining unstructured logs to structured logs in Caddy handler
- [dployrd] (proxy) Update proxy creation to detailed payload
- [dployrd] (proxy) Updated to structured logs in Caddy handler
- [dployrd] (system) Add more system metrics
- [dployrd] (service) Remove status field and populate blueprint data from deployment
- [dployrd] (deploy) Change env vars & secrets to accept any type
- [dployrd] (api) Simplify list endpoints to return flat array data
- [dployrd] (deploy) Remove timestamp prefix from deployment log messages to prevent duplicates
- [dployrd] (deploy) Capture and display service runtime logs on startup failure
- [dployrd] (logs) Skip partial line in log stream
- [dployrd] (logger) Update deployment log format to write raw messages
- [dployrd] (syncer) Disable task deduplication for log streaming tasks
- [dployrd] (deploy) Stream deployment script output to log file instead of stdout/stderr
- [dployrd] (logs) Improve stream positioning logic with explicit mode handling and fallback behavior
- [dployrd] (executor) Stream entire deployment log instead of defaulting to live mode
- [dployrd] (syncer) Change ws endpoint parameter from instanceId to instanceName
- [dployrd] (syncer) Change agent cert endpoint parameter from instanceId to instanceName
- [dployrd] (syncer) Change WebSocket and certificate endpoints to use query parameters instead of path parameters
- [dployrd] (api) Remove unused agent certificate endpoints from OpenAPI specification
- [dployrd] (service) Change service lookup from ID to name across API, CLI, and handlers
- [dployrd] (logger) Change default output from stdout to stderr when rotating writer is unavailable
- [dployrd] (logs) Normalize log file paths to lowercase before processing
- [dployrd] (worker) Improve semaphore test with proper goroutine synchronization and timeouts
- [dployrd] (executor) Remove unused request and trace context setup from task execution
- [dployrd] (syncer) Sanitize secrets in agent updates by replacing values with empty strings
- [dployrd] (deploy) Add duplicate key detection to service env
- [dployrd] (service) Add secrets support and config.toml-based environment management
- [dployrd] (auth) Add fallback to RegisteredClaims.Subject when claims.Subject is empty
- [dployrd] (store) Add description field to services table and use sql.NullString for nullable columns
- [dployrd] (logs) Add time-based filtering, file rotation detection, and rate limiting to log streaming
- [dployrd] (filesystem) Impove file system implementation and real-time ws response for real-time requests
- [dployrd] (logs) Separate deployment and service log paths, write deployment logs directly to file
- [dployrd] (deploy) Simplify CloneRepo by removing workDir parameter and cleaning destDir before clone
- [dployrd] (shell) Capture stderr to buffer and include error messages for better debugging
- [dployrd] (service) Update domain request to base from /v1/domains to /v1/domains/register to register quick domain
- [dployrd] (deploy) Simplify limit capping logic using min function
- [dployrd] (deploy) Remove unused DNSProvider field from DeployRequest
- [dployrd] (deploy) Remove dns-provider flag from CLI deploy command
- [dployrd] (db) Set single connection limit and move WAL/busy_timeout to DSN to prevent SQLITE_BUSY errors
- [dployrd] (deploy) Add version field to DeployRequest unmarshaler and validate RuntimeObj type before assignment
- [dployrd] (deploy) Simplify DeployRequest by flattening Runtime field to string from object
- [dployrd] (logs) Replace logType with path for flexible log file routing
- [dployrd] (logs) Consolidate WebSocket log streaming functionality with existing open connections
- [dployrd] (license) Change license from MIT to Apache-2.0 and add copyright headers to all files
- [dployrd] (system) Remove WebSocket message ID from logger context
- [dployrd] (system) Add bootstrap token to auth debug info and simplify WebSocket schema names
- [dployrd] (system) Remove Go version from platform info and fix component name in build flags
- [dployrd] (system) Update version entry to buildinfo on agent update
- [dployrd] (utils) Fix free memory to show correct values
- [dployrd] (ci) Configure Go proxy settings for module publishing
- [dployrd] (system) Move WebSocket message schemas to pkg/core/system
- [dployrd] (ci) Simplify release workflow conditions
- [dployrd] (release) Improve tag handling and beta-to-stable promotion
- [dployrd] (syncer) Add periodic agent status updates and improve WebSocket message handling
- [dployrd] (system) Bug fixes on version lookup, and improve WebSocket error handling
- [dployrd] (executor) Add AccessTokenProvider interface and inject token authentication into task execution
- [dployrd] (db) Reorder instance table columns to group token fields together
- [dployrd] (module) Migrate from local to GitHub module path github.com/dployr-io/dployr
- [dployrd] (logging) Replace slog.Logger with shared.Logger and add structured logging to syncer and executor
- [dployrd] (store) Split token into bootstrap_token and access_token fields
📚 Documentation
- [dployrd] (readme) Update documentation URLs from docs.dployr.dev to dployr.io/docs
- [dployrd] (readme) Update overview section and deployment examples
- [dployrd] (contributing) Clarify documentation requirement
- [dployrd] (readme) Add comprehensive documentation with badges, quickstart guide, and troubleshooting
🎨 Styling
- [dployrd] Fix whitespace and add missing newlines at end of files
⚙️ Miscellaneous Tasks
- [dployrd] Intoduced local ci parity of ci handlers for quick local development
💼 Other
- [dployrd] (system) Update WebSocket message field names to use snake_case and make timestamp required
- [dployrd] (system) Fix missing requestId field in WebSocket messages
- [dployrd] (system) Add per-message and per-task context tracing with unique IDs
🚧 Version 0.3.x
Beta Series • Latest: 0.3.1-beta.24 (2025-11-23)
Component Versions
dployr@0.3.1-beta.24⚠️ DEPRECATEDdployr@0.3.1-beta.23⚠️ DEPRECATEDdployr@0.3.1-beta.22⚠️ DEPRECATEDdployr@0.3.1-beta.21⚠️ DEPRECATEDdployr@0.3.1-beta.20⚠️ DEPRECATEDdployr@0.3.1-beta.19⚠️ DEPRECATEDdployr@0.3.1-beta.18⚠️ DEPRECATEDdployr@0.3.1-beta.17⚠️ DEPRECATEDdployr@0.3.1-beta.16⚠️ DEPRECATEDdployr@0.3.1-beta.15⚠️ DEPRECATEDdployr@0.3.1-beta.14⚠️ DEPRECATEDdployr@0.3.1-beta.13⚠️ DEPRECATEDdployr@0.3.1-beta.12⚠️ DEPRECATEDdployr@0.3.1-beta.11⚠️ DEPRECATEDdployr@0.3.1-beta.10⚠️ DEPRECATEDdployr@0.3.1-beta.8⚠️ DEPRECATEDdployr@0.3.1-beta.7⚠️ DEPRECATEDdployr@0.3.1-beta.6⚠️ DEPRECATEDdployr@0.3.1-beta.5⚠️ DEPRECATEDdployr@0.3.1-beta.3⚠️ DEPRECATEDdployr@0.3.1-beta.2⚠️ DEPRECATEDdployr@0.3.1-beta.1⚠️ DEPRECATED
🚀 Features
- [dployrd] (store) Add fallback for SetToken store method for fresh installs
- [dployrd] (logging) Add structured logging to handlers
- [dployrd] (install) Display registered domain in installation summary
- [dployrd] (install) Separate structured logs from user output using dedicated file descriptors
- [dployrd] (install) Improve domain registration error handling
- [dployrd] (install) Add specific error handling for used tokens during registration
- [dployrd] (install) Enhance error messages with detailed error information during registration
- [dployrd] (api) Add response schema for domain registration endpoint
- [dployrd] (install) Refactor installer with structured logging and improved error handling. Implemented quiet install for system updates
- [dployrd] (install) Improve error handling and output for installer
- [dployrd] (install) Update domain registration payload key from 'claim' to 'token'
- [dployrd] (system) Update store instance assignment from install
- [dployrd] (system) Add public IP support and domain registration endpoint
- [dployrd] (install) Add error log output to stderr for better debugging
- [dployrd] (install) Add real-time log output to installer
- [dployrd] (http) Handle errors conversion properly
- [dployrd] (system) Update domain registration endpoint path to match base API
- [dployrd] (install) Add required install token parameter for instance registration at installation
- [dployrd] (system) Improved token comparison to use constant-time for base64-encoded tokens in instance registration
- [dployrd] (system) Add instance registration and domain management with base integration
- [dployrd] (system) Add system doctor and install endpoints with enhanced system info for dependency checks (vfox, caddy, data directory)
- [dployrd] (install) Add installation logging and update config for base authentication
- [dployrd] (api) Standardize error handling and improve response formats across handlers
- [dployrd] (docs) Simplify authentication flow documentation in OpenAPI spec
- [dployrd] (auth) Remove authentication endpoints
🐛 Bug Fixes
- [dployrd] (install) Add apt lock handling and allow initial instance registration updates
- [dployrd] (system) Remove unused address field from domain registration request
- [dployrd] (install) Update domain extraction path from registration response
- [dployrd] (system) Add nil check for instance before accessing InstanceID
- [dployrd] (store) Rename database table from 'instances' to 'instance'
🚜 Refactor
- [dployrd] (db) Bug fix on instance table immutability constraints and simplify trigger logic
- [dployrd] (auth) Update JWKS endpoint path and remove redundant config field
- [dployrd] (logging) Simplify context value extraction in LogWithContext
- [dployrd] (auth) Initialize Auth service with InstanceStore dependency
- [dployrd] (api) Standardize error codes
- [dployrd] (system) Extract InstallRequest into reusable schema
📚 Documentation
- [dployrd] (install) Update installation documentation
- [dployrd] (install) Update help examples and remove duplicate help flag handling
- [dployrd] (api) Simplify authentication documentation in OpenAPI spec
- [dployrd] (api) Add authentication documentation link to OpenAPI spec
🧪 Testing
- [dployrd] (deploy) Remove unused buildAuthUrl test cases
🚧 Version 0.2.x
Beta Series • Latest: 0.2.2-beta.5 (2025-11-18)
Component Versions
dployr@0.2.2-beta.5⚠️ DEPRECATEDdployr@0.2.2-beta.2⚠️ DEPRECATEDdployr@0.2.1⚠️ DEPRECATEDdployr@0.2.1-beta.11⚠️ DEPRECATEDdployr@0.2.1-beta.10⚠️ DEPRECATEDdployr@0.2.1-beta.9⚠️ DEPRECATEDdployr@0.2.1-beta.5⚠️ DEPRECATEDdployr@0.2.1-beta.4⚠️ DEPRECATEDdployr@0.2.1-beta.3⚠️ DEPRECATEDdployr@0.2.1-beta.2⚠️ DEPRECATEDdployr@0.2.1-beta.1⚠️ DEPRECATEDdployr@0.2.0⚠️ DEPRECATED
🚀 Features
- [dployrd] (auth) Migrate from HMAC to RSA-256 JWT signing with bootstrap tokens
- [dployrd] (api) Update log streaming endpoint to use Server-Sent Events (SSE)
- [dployrd] (install) Enhance system configuration and environment setup
- [dployrd] (runtime) Enhance cross-platform runtime setup with vfox scripts
- [dployrd] (deploy) Implement unified deployment script and runtime setup
- [dployrd] (install) Add vfox plugin setup for multiple runtimes
- [dployrd] (install) Add role-based system groups for dployrd
- [dployrd] (auth) Implement role-based user management and access control
- [dployrd] (auth) Enhance authentication and authorization system
🐛 Bug Fixes
- [dployrd] (install) Improve Caddy installation process and apt lock handling
- [dployrd] (deploy) Improve systemd service deployment and runtime environment handling
- [dployrd] (install) Improve binary installation error handling
- [dployrd] (release) Improve version retrieval in release script
- [dployrd] (auth) Improve unauthorized token error handling
- [dployrd] (install) Reload shell after installing vfox plugins
- [dployrd] (deploy) Improve runtime and dependency installation process
- [dployrd] (deploy) Simplify runtime installation process
- [dployrd] (auth) Improve token management and error handling
🚜 Refactor
- [dployrd] (deploy) Simplify runtime and dependency setup process
📚 Documentation
- [dployrd] (api) Update OpenAPI log streaming documentation
🧪 Testing
- [dployrd] (unit) Add test suite
⚙️ Miscellaneous Tasks
- [dployrd] (openapi) Repostitory dispatch to autogenerate SDK from openapi spec using Kiota
- [dployrd] (docs) Update description
- [dployrd] (docs) Update description
- [dployrd] (release) Add Discord notification on release publication
- [dployrd] Update installer to handle steps one at a time
- [dployrd] Gofmt
- [dployrd] Cleanup
- [dployrd] (goreleaser) Update version component naming for CLI and daemon
🎉 Version 0.1.x
Stable Release • 2026-01-17
Component Versions
dployr@0.1.1-beta.33⚠️ DEPRECATEDdployr@0.1.1-beta.32⚠️ DEPRECATEDdployr@0.1.1-beta.30⚠️ DEPRECATEDdployr@0.1.1-beta.29⚠️ DEPRECATEDdployr@0.1.1-beta.28⚠️ DEPRECATEDdployr@0.1.1-beta.27⚠️ DEPRECATEDdployr@0.1.1-beta.26⚠️ DEPRECATEDdployr@0.1.1-beta.25⚠️ DEPRECATEDdployr@0.1.1-beta.24⚠️ DEPRECATEDdployr@0.1.1-beta.23⚠️ DEPRECATEDdployr@0.1.1-beta.22⚠️ DEPRECATEDdployr@0.1.1-beta.21⚠️ DEPRECATEDdployr@0.1.1-beta.20⚠️ DEPRECATEDdployr@0.1.1-beta.19⚠️ DEPRECATEDdployr@0.1.1-beta.18⚠️ DEPRECATEDdployr@0.1.1-beta.17⚠️ DEPRECATEDdployr@0.1.1-beta.16⚠️ DEPRECATEDdployr@0.1.1-beta.15⚠️ DEPRECATEDdployr@0.1.1-beta.14⚠️ DEPRECATEDdployr@0.1.1-beta.13⚠️ DEPRECATEDdployr@0.1.1-beta.12⚠️ DEPRECATEDdployr@0.1.1-beta.11⚠️ DEPRECATEDdployr@0.1.1-beta.10⚠️ DEPRECATEDdployr@0.1.1-beta.9⚠️ DEPRECATEDdployr@0.1.1-beta.7⚠️ DEPRECATEDdployr@0.1.1-beta.6⚠️ DEPRECATEDdployr@0.1.1-beta.5⚠️ DEPRECATEDdployr@0.1.1-beta.4⚠️ DEPRECATEDdployr@0.1.1-beta.3⚠️ DEPRECATEDdployr@0.1.1-beta.2⚠️ DEPRECATEDdployr@0.1.1-beta.1⚠️ DEPRECATEDdployr@0.1.0⚠️ DEPRECATEDdployr-base@0.1.50dployr-base@0.1.49dployr-base@0.1.48dployr-base@0.1.47dployr-base@0.1.46dployr-base@0.1.45dployr-base@0.1.44dployr-base@0.1.43dployr-base@0.1.42dployr-base@0.1.40dployr-base@0.1.39dployr-base@0.1.38dployr-base@0.1.36dployr-base@0.1.34dployr-base@0.1.33dployr-base@0.1.32dployr-base@0.1.31dployr-base@0.1.30dployr-base@0.1.29dployr-base@0.1.28dployr-base@0.1.27dployr-base@0.1.26dployr-base@0.1.25dployr-base@0.1.24dployr-base@0.1.23dployr-base@0.1.22dployr-base@0.1.21dployr-base@0.1.19dployr-base@0.1.18dployr-base@0.1.17dployr-base@0.1.16dployr-base@0.1.15dployr-base@0.1.14dployr-base@0.1.13dployr-base@0.1.12dployr-base@0.1.11dployr-base@0.1.10dployr-base@0.1.9dployr-base@0.1.7dployr-base@0.1.6dployr-base@0.1.2dployr-base@0.1.0dployr-web@0.1.42dployr-web@0.1.41dployr-web@0.1.40dployr-web@0.1.39dployr-web@0.1.38dployr-web@0.1.37dployr-web@0.1.36dployr-web@0.1.35dployr-web@0.1.34dployr-web@0.1.31dployr-web@0.1.30dployr-web@0.1.29dployr-web@0.1.28dployr-web@0.1.27dployr-web@0.1.26dployr-web@0.1.24dployr-web@0.1.23dployr-web@0.1.22dployr-web@0.1.21dployr-web@0.1.20dployr-web@0.1.18dployr-web@0.1.17dployr-web@0.1.16dployr-web@0.1.14dployr-web@0.1.13dployr-web@0.1.12dployr-web@0.1.11dployr-web@0.1.10dployr-web@0.1.9dployr-web@0.1.8dployr-web@0.1.7dployr-web@0.1.6dployr-web@0.1.5dployr-web@0.1.4dployr-web@0.1.1dployr-web@0.1.0
🚀 Features
- [base] (terminal) Add interactive terminal session support via WebSocket relay to dployrd
- [web] (proxy) Update service selector to use dropdown
- [web] (deps) Add js-yaml and smol-toml for configuration parsing
- [web] (hooks) Add standardized WebSocket operation hook with request/response handling
- [web] (proxy) Implement graph page with visualizer components
- [web] (settings) Update footer links
- [web] (ci) Move Cloudflare Pages deployment before Discord notification and add job dependency
- [web] (config) Move public directory configuration from wrangler.toml to vite.config.ts
- [web] (assets) Add public directory with static assets and configuration files
- [web] (config) Add assets directory configuration for Cloudflare Pages
- [web] (navigation) Update footer and sidebar links to point to actual documentation and legal pages
- [web] (ci) Add automated changelog generation using git-cliff
- [web] (ci) Move build-time environment variables from deployment to build step
- [base] (install) Add conditional installation of KV store dependencies
- [web] (ci) Add wrangler dependency for Cloudflare deployment tooling
- [base] (types) Add module declarations for optional runtime dependencies
- [web] (ci) Change deployment from Cloudflare Workers to Cloudflare Pages
- [web] (deployments) Add URL state management for deployment creation flow
- [web] (services) Add blueprint tab to service page
- [web] (ci) Add Cloudflare Workers deployment to release workflow
- [web] (websocket) Add request IDs to all WebSocket messages and centralize error handling
- [web] (editor) Replace custom text editor with CodeMirror-based editor with syntax highlighting and validation
- [web] (deployments) Add deployment list query with WebSocket protocol and display created timestamp
- [web] (instance-operations) Migrate system operations to WebSocket-based hook with request-response protocol
- [web] (logs) Add deployment logs hook and refactor shared log utilities
- [web] (deps) Add Radix UI components and recharts for enhanced UI capabilities
- [web] (file-system) Migrate file operations to WebSocket-based hook with task management
- [base] (docker) Add better-sqlite3 rebuild step to ensure native bindings compatibility
- [web] (ci) Add automated changelog generation to release workflow
- [web] (vite) Add app.dployr.dev to allowed hosts for development environment
- [web] (ui) Enhance logs window with expandable metadata and improve version selector with compatibility warnings
- [web] (ui) Service creation form and blueprint text editor
- [web] (ui) Add connection status indicator, log time range selector, and remote integration improvements
- [web] (docker) Add runtime API base URL injection via DPLOYR_BASE_URL environment variable
- [web] (ci) Add Discord webhook notification to release workflow
- [base] (build) Add better-sqlite3 to external dependencies in build script
- [web] (docker) Inline Caddyfile configuration in Dockerfile
- [dployrd] (install) Add vfox version manager to installation process
- [dployrd] (cli) Add logs command for viewing deployment logs
- [dployrd] (db) Improve database path handling for cross-platform compatibility
- [dployrd] (install) Improve daemon management during installation
- [dployrd] (install) Improve service management and user isolation for dployrd
- [dployrd] (cli) Enhance dployr CLI description and documentation
- [dployrd] (runtime) Standardize runtime type from "node-js" to "nodejs"
- [dployrd] (install) Improve installation and service management for dployr
- [dployrd] (install) Add version selection and help options for installers
- [dployrd] (config) Update system-wide configuration location and handling
- [dployrd] (install) Add default configuration generation for dployr
- [dployrd] Add initial website structure with HTML, CSS, and JavaScript for dployr.io
- [dployrd] Update on client application with new features and UI improvements
- [base] (routes) Add GitHub route and update CORS configuration for PATCH requests
- [base] (dependencies) Add GitHub and deployment SDK dependencies
- [base] (dependencies) Add GitHub and deployment SDK dependencies
- [base] (auth,users) Enhance user authentication and profile management
- [base] (routes,database) Enhance application routing and database migration
- [base] (auth,database) Enhance role-based access control and cluster metadata
- [base] (error_codes) Restructure error codes and add event logging system
- [base] (events) Add cluster-based event filtering and pagination support
- [base] (api) Add OpenAPI specification and migrate to Durable Objects for instance provisioning
- [base] (api) Add OpenAPI tags and role annotations to all endpoints
- [base] (auth,docs) Update session cookie SameSite policy and enable API credentials in docs
- [base] (instances) Change instances listing to list instances by clusterId
- [base] (instances) Add conflict detection for instance creation with unique constraint handling
- [base] (instances) Add event logging for instance and domain operations, and implement instance deletion endpoint
- [base] (durable) Refactor InstanceObject to use WebSocket-based task distribution with handshake protocol and status streaming
- [base] (notifications) Add typed event subscriptions and management API
- [base] (runtime) Add filtering and sorting capabilities to events endpoint
- [base] (logs) Add real-time log streaming over WebSocket with live and historical modes
- [base] (ci) Add automated release workflow with GitHub Actions
- [web] (auth) Refactor authentication flow and user management to orginate from dployr base
- [web] (ui) Refactor app header, sidebar, and theme management
- [web] (integrations) Add integrations management with two-factor authentication
- [web] (ui) Add activity modal with user activity tracking and management
- [web] (ui) Add invite user dialog and refactor URL state management
- [web] (ui) Implement comprehensive user invitation system with received/sent invites split
- [web] (ui) Implement comprehensive user invitation system with received/sent invites split
- [web] (ui) Add integration connection dialogs system for domain, email, and remote providers
- [web] (ui) Add instances management page and rename resources to graph
- [web] (ui) Add instance details page with real-time status streaming and metrics visualization
- [web] (ui) Enhance logs-window with dynamic filters, scroll tracking, and DEBUG level support
- [web] (ui) Implement virtual scrolling and log batching for improved performance in logs-window
- [web] (ci) Add GitHub Actions release workflow with Docker image publishing and static bundle artifacts
🐛 Bug Fixes
- [web] (resource-viewer) Add null safety for CPU and memory percentages in process display
- [web] (ui) Add type safety to nav-footer href and migrate TextLink to TanStack Router Link component
- [web] (ui) Add null safety checks and improve error handling across multiple components
- [web] (instances) Add timestamp validation and conversion for instance creation date display
- [dployrd] (deploy) Improve runtime setup with correct working directory
- [dployrd] (auth) Remove default token expiry fallback in CLI
- [dployrd] (auth) Improve token generation with better error handling and default lifespan
- [dployrd] (version) Improve version string formatting for git commit hash
- [base] (api) Update instance creation status code and add clusterId query parameter to instance logs endpoint
🚜 Refactor
- [base] (websocket) Fix instance lookup and requestId validation in client handler
- [base] (constants) Add UNPROCESSABLE_ENTITY error constant with 422 status code
- [base] (domains) Update manual DNS guides to use official docs
- [base] (websocket) Replay only last unacked message instead of all messages
- [base] (websocket) Simplify agent handler and update broadcast signature
- [base] (websocket) Remove debug logging and obsolete comment
- [base] (agent) Add support for v1.1 agent update schema
- [base] (websocket) Add process history retrieval handler with time-range filtering
- [base] (kv) Reduce process snapshot TTL from 24 hours to 2 hours
- [base] (websocket) Add template parameter to proxy add request
- [base] (websocket) Add proxy management operations with status, restart, add, and remove handlers
- [base] (auth) Replace dynamic redirect URL with APP_URL constant in OAuth callback handler
- [web] (links) Update Discord invite URL
- [web] (services) Improve code formatting and consistency
- [web] (dashboard) Add comprehensive overview with service cards, stats, and empty state
- [web] (deployments) Auto-select new instances
- [base] (auth) Fix redirect URL handling and metadata merge in user upsert
- [web] (graph) Consolidate instance actions into dropdown menu and improve dialog styling
- [web] (instances) Add sudo to Linux installation command for elevated privileges
- [web] (instances) Reduce dialog sizing and improve visual consistency
- [base] (install) Replace xargs with sed for whitespace trimming in TOML parser to improve POSIX compatibility
- [base] (install) Improve TOML parser to handle sections, comments, and multi-value lines with proper line-by-line processing
- [base] (config) Add Microsoft OAuth configuration support with client ID and secret in auth config schema and bootstrap middleware
- [web] (metrics) Add interactive chart with process snapshot tooltips and timestamp locking
- [web] (console) Update connection status labels and rephrase description
- [base] (proxy) Add traffic routing API with hostname resolution, cache management, and service discovery endpoints
- [base] (install) Add proxy configuration options with CLI flags and config file support for enabling proxy, port, host, base domain, timeout, and cache TTL settings
- [base] (ci) Add automated changelog generation workflow with git-cliff configuration
- [web] (settings) Remove configuration page and clean up integrations sections
- [web] (services) Add branch selector in create domain form
- [web] (console) Add terminal session management with instance selection and fullscreen mode
- [web] (deployments) Extract specific deployment blueprint from config
- [base] (agent) Add UpdateProcessor for agent state synchronization with process snapshots and service sync
- [web] (dns) Consolidate domain queries and remove provider display for unknown providers
- [web] (create-service) Add domain configuration info dialog
- [web] (dns) Replace polling with manual verification and add cooldown mechanism
- [base] (runtime) Add semantic version sorting for dployrd version list
- [base] (websocket) Add deployment list handler and improve task error handling with structured error codes
- [web] (hooks) Add comprehensive debug logging for WebSocket instance update flow
- [base] (websocket) Pass service name to createServiceRemoveTask for service removal operations
- [base] (websocket) Replace instanceId with instanceName in system operation handlers for token rotation, install, reboot, and restart
- [base] (instances) Add KV cache layer to InstanceStore for improved lookup performance
- [base] (agent) Replace instanceId with instanceName in agent authentication
- [base] (websocket) Move unacked message storage before client send loop to ensure message is stored even if send fails
- [base] (websocket) Add instance system operation handlers for token rotation, install, reboot, and restart
- [base] (websocket) Add file watch handlers for real-time filesystem change notifications
- [base] (types) Replace generic IDBAdapter interface with concrete PostgresAdapter type
- [base] (services) Add service store with migration, and ws handlers for service deployment, removal
- [base] (websocket) Add log stream message handler for deployment and service logs
- [base] (domains,config) Reorganize domain endpoints, add GitHub token support, and improve DNS verification flow
- [base] (config) Add cross-env for development mode and use separate dev config file
- [base] (websocket) Add file operation handlers, replace log stream mode with duration parameter for time-based log stream filtering
- [base] (websocket) Add connection manager with request tracking, timeout handling, and statistics endpoint
- [web] (proxy-graph) Update service node to use consolidated proxy routes
- [base] (db) Change timestamp defaults to milliseconds and rename custom_domains table to domains
- [base] (websocket) Rename instance connections to cluster connections and standardize TTL parameter
- [base] (config,websocket) Add integrations config section, implement deployment WebSocket handler, and improve auth middleware
- [base] (websocket) Add user role to session clusters and pass session context through WebSocket connections for deployment authorization
- [web] (types) Migrate to modular schema system and consolidate type definitions
- [web] (types) Standardized components to use normalized schema types
- [web] (hooks) Bug fixes and improvements
- [web] (ui) Remove CirclePlus icons from buttons and update button labels
- [web] (proxy) Redesign add dialog UI
- [web] (proxy-graph) Redesign detail panels and improve UI consistency
- [web] (ui) Normalize data formats and improve visual consistency across components
- [base] (websocket) Extract client notification logic into dedicated ClientNotifier class
- [web] (create-service) Style fixes
- [web] (blueprint) Improve blueprint parsing, validation, and sync logic
- [web] (code-editor) Add instance selector prop
- [base] (server) Extract bootstrap, CORS, WebSocket, and routing logic into dedicated modules
- [web] (hooks) Remove unused use-projects hook
- [base] (kv) Add JSON validation and error handling for event retrieval methods
- [base] (config) Add redis dependency and improve configuration handling for server, email, and CORS settings
- [base] (db) Remove JSON string serialization for metadata fields, in favor of native JSONB handling
- [base] (install) Add dployr-base service startup to installation script
- [base] (email) Add from_address configuration and validation for email service
- [base] (build) Add TypeScript type checking to build script
- [base] (deps) Remove fixed @upstash/redis dependency
- [base] (version) Add version tracking to health endpoint and build process
- [base] (install) Add TLS certificate permission configuration for Caddy
- [base] (config) Update setup and improve Node.js server initialization
- [base] (config) Add debug logging for CORS configuration and remove config file existence check
- [base] (cors) Add *.dployr.io as default allowed CORS origin
- [base] (install) Simplify Caddy service restart
- [base] (cors) Add wildcard domain pattern support for CORS origins
- [base] (install) Skip Caddyfile update when file already exists
- [base] (domain) Update domain references from dployr.dev to dployr.io
- [base] (config) Add CORS configuration support and improve type safety
- [base] (migrations) Execute PostgreSQL migrations as single statements instead of splitting by delimiters
- [base] (install) Switch to tsx execution and add Caddy reverse proxy configuration
- [base] (config) Replace Redis URL with explicit connection parameters
- [base] (imports) Add .js extensions and type annotations for ESM compatibility
- [base] (websocket) Replace Durable Objects with native WebSocket handler
- [web] (instances) Use instance name instead of ID for WebSocket operations
- [web] (logs) Move LogTimeRange type to shared types and improve version sorting with pre-release support
- [web] (navigation) Replace window.history.back() with router.history.back() and improve deployment creation flow
- [base] (docker) Pin pnpm version, add .dockerignore, and update configuration
- [base] (docker) Switch from esbuild to tsx for TypeScript execution and update development configuration
- [base] (logs) Replace logType enum with flexible path-based log streaming
- [base] (deployment) Remove Cloudflare Workers support and switch to PostgreSQL-only deployment
- [base] (release) Switch from bundled dist to source files in release tarball
- [web] (file-system) Migrate to map-based tree with live watching, search, and lazy loading
- [web] (hooks) Improve deployment and service management with instance resolution and error handling
- [web] (hooks) Migrate instance status and deployments to React Query cache with localStorage persistence
- [web] (ui) Show count of running services
- [web] (ui) Consolidate StatusChip into StatusBadge with icon support and type-specific styling
- [web] (services) Migrate to unified Service type to improve domain label
- [web] (logs) Consolidate log streaming hooks and add shared deployment utility
- [web] (file-system) Migrate to request-response protocol with retry logic and rate limiting
- [web] (api) Update instance-scoped endpoints and WebSocket connections
- [base] (ci) Update Discord notification title
- [base] (config) Update default port from 3000 to 7878
- [dployrd] (utils) Centralize data directory path handling across application
- [base] (project) Restructure database initialization and route imports
- [base] (database,auth) Remove bootstrap table and migrate to metadata-based GitHub integration
- [base] (instances,users,constants) Optimize database operations and add instance update endpoint
- [base] Remove unused bootstrap workflow template file
- [base] Remove unused dployr-sdk dependency
- [base] (instances) Remove deprecated HTTP logs endpoint in favor of WebSocket streaming
- [base] (license) Change license from MIT to Apache-2.0 and add copyright headers to all files
- [base] (docker) Remove Dockerfile as project no longer requires containerized deployment
- [base] (logs) Generate streamId server-side instead of requiring it in client request
- [base] (logs) Implement offset-based log streaming and active stream tracking
- [base] (logs) Replace KV-based WebSocket rate limiting with in-memory implementation
- [web] (ui) Consolidate URL state management into unified useUrlState hook
- [web] (ui) Centralize confirmation dialog handling across settings pages
- [web] (auth,ui) Streamline GitHub integration flow and URL state management
- [web] (routing) Restructure application with cluster-based routing architecture
- [web] (routing) Streamline cluster-based navigation and routing logic
- [web] (ui) Rename notifications to events and implement event filtering
- [web] (ui) Rename email-connect-dialog to notifications-connect-dialog and improve event filtering
📚 Documentation
- [base] (openapi) Change instance and domain deletion endpoints to return 204 No Content instead of 200 with JSON response
- [base] (openapi) Add custom domain management endpoints and implement domain verification system
- [base] (openapi) Add WebSocket task protocol schemas and improve agent communication documentation
- [base] (openapi) Add system install/restart endpoints and daemon compatibility check
- [base] (openapi) Remove log streaming and instance WebSocket endpoints, refactor instance store query and task types
- [base] (openapi) Add daemon restart endpoint, refactor reboot endpoint, and improve version management
- [base] (openapi) Move domain registration endpoint to new Domains tag
- [web] (branding) Update domain references from dployr.dev to dployr.io across all files
- [web] (readme) Update Docker quick start port from 8080 to 7877
- [web] (readme) Update Docker quick start to use latest tag instead of version-specific tag
- [dployrd] (readme) Update README with minor text and branch reference adjustments
- [dployrd] (readme) Update deployment example with real example
- [dployrd] (install) Update installation instructions and scripts
- [dployrd] (project) Add comprehensive contributing and readme documentation
- [base] (api) Update instance creation and update response status codes to 202
- [base] (api) Remove instance update endpoint, simplify instance creation, and add domains and GitHub remotes endpoints. Update dployr from @^1.3.0 to @^1.5.0
- [base] (api) Add operationId to all endpoints, set JWKS endpoint security to empty array, and add type object to SuccessResponse data field
- [base] (api) Add address field to instance registration endpoint request body
- [base] (api) Provide install token on instance creation
- [base] (api) Remove status field and add description to token field in instance creation response
- [base] (api) Add address field to instance registration endpoint request body as required parameter
- [base] (api) Remove address field from instance registration endpoint and make it required during instance creation
- [base] (api) Add 409 conflict response to instance creation endpoint and add instance deletion endpoint
- [base] (api) Add agent endpoints for instance status reporting and task polling
- [base] (api) Add agent token rotation and refresh endpoints
- [base] (api) Add ClientCertUpdate schema for certificate updates with PEM, SPKI hash, subject, and expiration fields
- [base] (api) Fix agent token rotation endpoint path and add required instanceId parameter
- [base] (api) Add bearer auth security scheme and fix YAML formatting issues
- [base] (api) Add WebSocket status streaming endpoint and schemas for real-time instance monitoring
- [base] (api) Replace SystemStatus schema with AgentUpdateMessage schema for agent status reporting
- [base] (api) Update WebSocket status streaming to use AgentUpdateMessage schema
- [base] (api) Update PaginatedResponse schema with additional fields
- [base] (api) Implement global rate limiting documentation and per-user limits
- [base] (deployment) Add Docker support and self-hosting installation options
🎨 Styling
- [web] (fix) Typo "Changelogs" to "Changelog"
- [base] (api) Add trailing newline
⚙️ Miscellaneous Tasks
- [dployrd] (workflows) Simplify release workflow by removing Chocolatey upload step for now
- [dployrd] (workflows) Update Chocolatey package push URL for release workflow
- [dployrd] (workflows) Update Chocolatey package push path for release workflow
- [dployrd] (workflows) Fix Chocolatey publish step shell configuration
- [dployrd] (workflows) Refactor Chocolatey package generation and publishing step
- [dployrd] (workflows) Update Chocolatey package push to use bash as shell
- [dployrd] (workflows) Simplify Chocolatey publish step in release workflow
- [dployrd] (goreleaser) Remove Chocolatey publish flag
- [dployrd] (workflows) Refactor release workflow for improved artifact handling and Chocolatey deployment
- [dployrd] (workflows) Update GoReleaser v2 release arguments for release workflow
- [dployrd] (workflows) Update GoReleaser release arguments for Chocolatey-only deployment
- [dployrd] (goreleaser) Update archive configuration
- [dployrd] (workflows) Typo
- [dployrd] (workflows) Update GoReleaser v2 release arguments
- [dployrd] (workflows) Typo fix
- [dployrd] (goreleaser) Add Chocolatey owners and API key configuration
- [dployrd] (workflows) Remove beta workflow file
- [dployrd] (workflows) Update GoReleaser v2 arguments for beta and release workflows
- [dployrd] (workflows) Update GoReleaser v2 skip parameters for beta and release workflows
- [dployrd] (workflows) Update to GoReleaser v2 argument conventions
- [dployrd] (workflows) Add Chocolatey version flag to GitHub Actions
- [dployrd] Init version 0.1.0 + devbump
- [dployrd] Cleanup
- [dployrd] Go.work.sum
- [dployrd] (workflows) Refactor release and beta workflows for Go project
- [dployrd] (workflows) Split release and beta workflows into two-stage jobs
- [dployrd] (workflows) Fix GoReleaser Chocolatey skip parameter
- [dployrd] (workflows) Title fix
- [dployrd] (workflows) Update GitHub token for release and beta workflows
- [dployrd] (workflows) Update title
- [dployrd] (goreleaser) Override GitHub tokens for Homebrew and Scoop tap repositories
- [dployrd] (goreleaser) Remove hardcoded GitHub tokens from tap repositories
- [dployrd] (workflows) Typo
- [base] (config) Update email service from address to dployr.dev
- [base] (docs) Replaced with classic deploy - no build needed
- [web] (config) Update Vite server configuration for allowed hosts
- [web] (license) Migrate from MIT to Apache-2.0 and add copyright headers to all source files
💼 Other
- [dployrd] Implementation for projects deployment
- [dployrd] Refresh tokens implementation
- [dployrd] Bug fixes and improvements in the service creation flow
- [dployrd] Updated deployments page with table
- [base] Update dployr-sdk to v1.3.0, add jose, remove zeptomail, and refactor auth middleware
- [base] Update dployr-sdk to v1.4.0 and implement JWT-based instance bootstrap authentication
- [web] (ui) Cleanup