Skip to content
This repository was archived by the owner on Aug 2, 2025. It is now read-only.

Conversation

@Its4Nik
Copy link
Owner

@Its4Nik Its4Nik commented Mar 19, 2025

Summary by Sourcery

Refactor the project to use Bun.sh and Elysia.js, and introduce a plugin system for custom logic and notifications. The API now provides real-time container metrics via WebSocket, multi-host Docker environment monitoring, Compose stack deployment/management, historical stats storage (SQLite), Swagger API documentation, and a web dashboard.

New Features:

  • Introduce a plugin system for custom logic and notifications.
  • Provide real-time container metrics via WebSocket.
  • Add multi-host Docker environment monitoring.
  • Implement Compose stack deployment/management.
  • Incorporate historical stats storage (SQLite).
  • Provide Swagger API documentation.
  • Include a web dashboard (DockStat).

Summary by Sourcery

Refactor the project to use Bun.sh and Elysia.js, introducing a comprehensive Docker monitoring and management platform with enhanced features and architectural improvements.

New Features:

  • Implement a plugin system for custom logic and notifications
  • Add real-time container metrics via WebSocket
  • Introduce multi-host Docker environment monitoring
  • Develop Compose stack deployment and management functionality
  • Incorporate historical stats storage using SQLite
  • Provide Swagger API documentation
  • Create a web dashboard integration

Enhancements:

  • Migrate from Node.js to Bun runtime
  • Switch to Elysia.js framework
  • Implement type-safe tRPC procedures
  • Improve logging and error handling
  • Add comprehensive database abstraction layer
  • Enhance Docker host connection management

Build:

  • Update Dockerfile to use Bun runtime
  • Configure multi-stage Docker build process
  • Add GitHub Actions for CI/CD pipeline

CI:

  • Implement dependency graph generation workflow
  • Add automated testing and build verification
  • Configure multi-platform Docker image builds

Its4Nik and others added 30 commits February 26, 2025 19:27
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
…rned-variable)

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
…rned-variable)

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Refactor: Migrate to Bun, implement stacks and real-time stats
Its4Nik and others added 26 commits June 30, 2025 20:43
This commit introduces the ability to manage store repositories within the application. It includes:

- Creation of a  table in the database to store repository information (slug and base URL).
- Implementation of functions to add, retrieve, and delete store repositories from the database.
- Creation of a new handler  to expose store repository management functionalities via API.
…4Nik/DockStatAPI into remove-elysia-for-direct-integration
This commit introduces a new table  to the database, allowing users to store and manage custom themes for the application. It also provides the ability to save a default theme on first start.

The following changes were made:

- Added a  table to the database schema.
- Added functions to interact with the  table.
- Add a Theme handler to expose theme actions
Updates the theme colors to a dark mode palette. This includes changes to accent colors, border colors, background colors, and gradient colors.
This commit introduces a transformation of the `vars` field in the `addTheme` function. It converts a JSON object of CSS variables into a string of CSS rules that target the root element. Additionally, it updates the themes table to set the name field as the primary key. This change is crucial for ensuring data integrity and efficient theme management.
This commit introduces new CSS variables for text colors: `--text-primary`, `--text-secondary`, and `--text-muted`. These variables are defined within the `:root, #root, #docs-root` CSS selector and provide a centralized way to manage text colors across the application. This will improve consistency and make it easier to adjust the color scheme in the future.
This commit introduces several enhancements to the configuration handling and adds functionality to retrieve the package.json data.

The changes include:

- Update config to use package.json
- Enhanced config handling in `src/handlers/config.ts`:
  - Updated the getConfig, updateConfig, getPlugins, createbackup, listBackups, downloadbackup, restoreBackup, addHost, updateHost, and removeHost functions to improve error handling and logging.
- Added a new getPackage function to retrieve package.json data.
- Updated the index file to export new handlers
The `PackageJson` type from `knip` was imported but not used in the `config.ts` file. This commit removes the unused import to improve code clarity and reduce unnecessary dependencies.
- Updated the default theme variables in the database initialization to improve the initial user experience.
- Minor formatting and consistency improvements in database initialization logic.
This commit introduces a mechanism to reload the schedules when the configuration is updated. This ensures that the scheduler is always running with the latest configuration settings. It also adds logging to the deletion of Themes

The changes include:

- Added a  function to the  file. This function clears all existing schedules and restarts them.
- Modified the  function in  to call the  function after updating the configuration in the database.
- Added logging to theme deletion
This commit introduces the collection of network statistics for Docker containers, including receive and transmit rates, and total bytes. It also refactors and improves the data fetching and processing logic for container stats, including adding timestamps and improving validation.

- Add `network_rx_rate`, `network_tx_rate`, `network_rx_bytes`, and `network_tx_bytes` columns to the `container_stats` table.
- Update the `addContainerStats` function to include network stats and a timestamp.
- Add a new function `getLastContainerStats` to retrieve the last recorded stats for a container, used for calculating rates.
- Refactor `storeContainerData` to fetch and calculate network stats, including using the previous stats to calculate RX/TX rates.
- Improve data validation for container stats.
- Update default theme colors to be more accessible.
This commit introduces the ability to store and retrieve theme options in the database.

The `themes` table in the database has been updated to include an `options` column, which stores the theme options as a JSON string. The `addTheme` function now accepts an `options` parameter and stores it in the database. A new function `getThemeOptions` has been added to retrieve the theme options for a given theme.

This change allows for more flexible and customizable themes.
This commit applies consistent formatting and removes unnecessary blank lines across several files, improving code readability and maintainability. No functional changes are included.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Breaking change enhancement New feature or request new feature A new feature will be added by this PR

Projects

No open projects
Status: In progress

Development

Successfully merging this pull request may close these issues.

Feat: Stacks auto scaling

3 participants