Commit Graph

63 Commits

Author SHA1 Message Date
SaelixCode c91c9ed7fd refactor: pivot from ssh proxy to distributed api model
- Delete SSHFileAdapter, IFileAdapter, LocalFileAdapter (SSH/SFTP stack)
- Remove ssh2, ssh2-sftp-client dependencies; add http-proxy-middleware, http-proxy
- NodeRegistry: remote nodes no longer use Dockerode TCP; new getProxyTarget() returns {apiUrl, apiToken}
- NodeRegistry.testConnection: remote nodes use HTTP GET /api/auth/check instead of docker.info()
- DatabaseService: Node interface swaps SSH/TLS fields for api_url + api_token; legacy columns preserved for DB compat
- FileSystemService: reverted to clean local-only fs.promises; adapter pattern fully removed
- ComposeService: executeRemote() and SSH log streaming deleted; local-only execution remains
- index.ts: add /api/auth/generate-node-token endpoint (long-lived JWT, scope:node_proxy)
- index.ts: authMiddleware now accepts Bearer token in addition to cookie (Sencho-to-Sencho auth)
- index.ts: remote HTTP proxy middleware intercepts all /api/ requests for remote nodes, strips x-node-id, injects Authorization header, proxies to api_url
- index.ts: WS upgrade handler proxies WebSocket connections for remote nodes via http-proxy wsProxyServer
- NodeManager.tsx: form reduced to Name, API URL, API Token; Generate Node Token button added inline
- NodeContext.tsx: Node interface updated to api_url/api_token

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 12:20:32 -04:00
SaelixCode 2a37e114df feat: implement remote tls/ssh security, isolate system stats, and polish ux
- NodeRegistry: wire TLS ca/cert/key into Dockerode when present on node config
- index.ts: /api/system/stats now branches on node type — remote nodes use docker.info() for CPU/RAM, local keeps systeminformation; disk gracefully returns null for remote
- index.ts: POST /api/nodes now persists tls_ca, tls_cert, tls_key fields
- FileSystemService: throw clean error on missing/empty compose_dir instead of crashing path.join
- FileSystemService: guard getStacks() against falsy item.name entries
- SSHFileAdapter: filter undefined/non-string names from SFTP readdir before returning
- NodeManager: add SSH Authentication Type toggle (Password vs Private Key)
- NodeManager: add Enable TLS toggle with conditional CA/cert/key textarea fields
- NodeManager: auto-test connection immediately after node creation
- NodeManager: replace "Strategy B" copy with Docker TCP setup instructions
- NodeManager: add pr-8 to header and DialogHeader to prevent overlap with parent dialog X button

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 09:40:03 -04:00
SaelixCode 26b8f62968 fix: separate Docker API port from SSH port, add SSH credential UI, fix compose_dir routing 2026-03-18 21:04:43 -04:00
SaelixCode f1f8e34da5 fix: harden telemetry parsing and null node fallbacks 2026-03-18 20:31:57 -04:00
SaelixCode 4bd80e29bf fix: harden docker api validation, handle sftp errors, and fix node manager ui 2026-03-18 14:13:07 -04:00
SaelixCode 69e86a0a37 fix: Resolve DatabaseService SQL syntax error and add concrete IFileAdapter implementations 2026-03-18 13:13:56 -04:00
SaelixCode 8c51198468 feat: Remote Nodes Wiring & SSH Adapters 2026-03-18 12:55:30 -04:00
SaelixCode d2c5b2de67 fix: cast req.params.id as string to resolve TS2345 type errors 2026-03-18 11:53:41 -04:00
SaelixCode 02e1ebe1b6 feat: Remote Nodes Foundation (Strategy B) - Add nodes table with auto-seeded default local node in DatabaseService - Create NodeRegistry service for multi-instance Docker daemon connections - Add 6 Node management API endpoints (CRUD + test connection) - Create NodeManager component with table UI and connection testing - Add NodeContext for frontend-wide active node state management - Add node switcher dropdown to sidebar (visible when >1 node) - Add Nodes tab to Settings Hub 2026-03-18 11:45:04 -04:00
SaelixCode b7e6b5a21c fix: replace naive log level detection with robust 3-tier regex classification engine
Eliminates massive false-positive error misclassifications caused by Docker
containers writing standard INFO logs to STDERR. The new hierarchy:
1. INFO/DEBUG/TRACE indicators (overrides STDERR default)
2. WARN/WARNING indicators
3. ERROR/FATAL/CRIT/CRITICAL/PANIC + Exception: indicators

Supports common log formats: level=info, [INFO], and bare INFO tokens.
Applied to both /api/logs/global and /api/logs/global/stream endpoints.
2026-03-10 14:50:51 -04:00
SaelixCode 448a64a10d feat: implement enterprise sse global logs and developer mode 2026-03-09 14:02:10 -04:00
SaelixCode b2674080c4 fix: implement smart auto-scroll and definitive stack filtering in global logs 2026-03-09 12:21:12 -04:00
SaelixCode 9af0f85749 fix: refine log level parsing and implement bottom auto-scroll 2026-03-06 23:07:17 -05:00
SaelixCode 8203dd6a14 fix: tty parsing, timezone mapping, and floating action bar for global logs 2026-03-06 22:52:36 -05:00
SaelixCode 29b10150b4 fix: remediate observability dashboard and global logs parsing 2026-03-06 22:24:42 -05:00
SaelixCode a4a5365da1 feat: implement centralized logging and historical metrics dashboard 2026-03-06 21:05:23 -05:00
SaelixCode b765403dcf feat: implement real-time container log streaming via SSE 2026-03-06 15:41:06 -05:00
SaelixCode b97952567d feat: implement pre-deploy collision checks and universal two-stage teardown 2026-03-06 14:45:37 -05:00
SaelixCode fb3a28834e fix: implement two-stage teardown for reliable atomic rollbacks 2026-03-06 10:18:47 -05:00
SaelixCode 953049a45d feat: implement smart error parser and post-deploy health probe 2026-03-05 19:59:35 -05:00
Anso 269d4f8d5c Merge branch 'develop' into feature/app-store-fixes 2026-03-05 19:22:53 -05:00
SaelixCode 69408257d2 fix: implement atomic deployment rollbacks and custom scrollbar UI 2026-03-05 18:55:03 -05:00
SaelixCode f2fbca17b7 feat: implement dynamic volumes, custom env vars, and timezone detection 2026-03-05 14:55:04 -05:00
SaelixCode 4aa4bf1b80 fix(backend,frontend): correct docker socket connection on windows and fix api proxy in vite config 2026-03-05 14:49:24 -05:00
SaelixCode f9e8874f6c feat: integrate official lsio api and rich template metadata 2026-03-05 12:37:59 -05:00
SaelixCode 7d59400114 fix: update lsio template registry url to valid endpoint 2026-03-05 11:00:00 -05:00
SaelixCode 536a714d9b feat: add dynamic template registry and smart volume path sanitizer 2026-03-05 10:15:54 -05:00
SaelixCode 1676dc22df feat: implement app templates storefront and deployment engine 2026-03-04 14:26:07 -05:00
SaelixCode b3521a078b feat: add Docker API endpoints for managing images, volumes, and networks; implement Resources view in editor 2026-03-04 11:17:16 -05:00
SaelixCode b45553c927 feat: refactor authentication handling and migrate config to database 2026-03-04 09:05:03 -05:00
SaelixCode 6196ee7ccf feat: enhance container crash detection by extracting exit codes and filtering intentional stops 2026-03-03 19:36:08 -05:00
SaelixCode 13ef241d02 feat: enhance environment file handling by resolving multiple env files and adding selection functionality in the editor 2026-03-03 19:13:28 -05:00
SaelixCode ed1a60bee0 feat: implement dynamic env file resolution and enhance error handling in stack operations 2026-03-03 15:25:05 -05:00
SaelixCode 242602480e refactor: simplify docker compose command arguments by removing stack name flag 2026-03-03 13:38:14 -05:00
SaelixCode 63d2df2436 fix: drain stdout to prevent pipe buffer from blocking the process 2026-03-03 12:54:21 -05:00
SaelixCode 10a483a0a6 feat: await command execution in stack management endpoints and update container stats display based on state 2026-03-03 12:06:19 -05:00
SaelixCode 2b96b08c04 feat: update stack deployment endpoint and enhance deployment functionality 2026-03-03 11:41:44 -05:00
SaelixCode 1fd078616a feat: add global Docker network stats tracking and update HomeDashboard title 2026-03-03 09:10:24 -05:00
SaelixCode 587e88e93d feat: enhance volume pruning functionality with filter options 2026-03-03 08:20:30 -05:00
SaelixCode ec90911e14 feat: implement Docker disk usage retrieval and enhance system prune functionality 2026-02-27 15:43:45 -05:00
SaelixCode 6bbd9b6484 feat: add notification deletion functionality in API and EditorLayout 2026-02-27 12:47:16 -05:00
SaelixCode f4700ebfc9 feat: enhance API error handling and improve alert message formatting 2026-02-27 12:22:10 -05:00
SaelixCode 91cafb49f9 refactor: update journal mode comment for DatabaseService and optimize CPU state check in EditorLayout 2026-02-27 11:10:35 -05:00
SaelixCode b95838ae9c feat: remove unused alert management code and optimize notification fetching interval 2026-02-27 10:17:33 -05:00
SaelixCode 9cdf273b8c feat: add alert management functionality in NotificationSettingsModal and implement stacks API endpoint 2026-02-27 09:52:54 -05:00
SaelixCode c6eb9d76e7 feat: add Notification Settings Modal and Stack Alert Sheet components
- Implemented NotificationSettingsModal for configuring notification agents (Discord, Slack, Webhook) and global settings.
- Added StackAlertSheet for managing stack-specific alert rules with metrics, thresholds, and cooldowns.
- Introduced reusable UI components: DropdownMenu, Popover, Select, Sheet, Slider, and Switch.
- Enhanced Tabs component by removing unnecessary client directive.
2026-02-26 23:09:47 -05:00
SaelixCode fcf0c9f983 feat: add HostConsole component for interactive terminal access and integrate into EditorLayout 2026-02-26 19:52:43 -05:00
SaelixCode 5fe416f941 feat: add frontend index.html and Vite logo; enhance system stats API with network metrics
- Created a new index.html file for the frontend with theme handling and linked assets.
- Added a Vite logo SVG to the public directory.
- Updated the system stats API to include network statistics (rxBytes, txBytes, rxSec, txSec).
- Enhanced the EditorLayout component to display network I/O rates for containers.
- Modified HomeDashboard to show host network statistics with appropriate formatting.
2026-02-26 14:43:45 -05:00
SaelixCode 36335ee5ab feat: improved EditorLayout component for managing Docker Compose stacks, editing files, and monitoring containers. 2026-02-25 23:30:24 -05:00
SaelixCode 53b36c71ce feat: Implement an interactive terminal component with real-time log streaming, and formatting 2026-02-25 22:51:07 -05:00