Skip to content

Refactor: Migrate to Bun, implement stacks and real-time stats #43

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 342 commits into
base: main
Choose a base branch
from

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 January 1, 2025 01:17
… herd

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Fix: Changing to atomic write = no more file system race coditions
* Chore: new testing workflows (dropping playwright)

* Chore: updating github workflow

* Fix: Fixing some minor things

* Chore: Updated to ES2020 syntax and AMD module

* Feat: startServer function to start the server with a different port

* Fix: Adjusting testing files based on workflow restrictions

* Fix: Adjusting testing files based on workflow restrictions

* Chore: Updating swagger (wrong branch bruh)

* Docs: Update swagger documentation (#26)

* Chore: Updated swagger

* Fix: Typo

* Fix: Fixing dockerfiles for prod/dev environment

* Feat: Add `/graph` and `/graph/image` endpoints (#27)

* Feat: Server side HTML generation => Client side rendering

* Fix: This _might_ fix the workflow

* Fix: Remove unused function

* Fix: Please make it stop

* Fix: Setting up python before hand

* Fix: Remove unused dep

* Fix: Using node20 instead of latest

* Fix: Works on my end...

* Feat: Master Nodes

* Feat: Icon for master node (needs testing)

* Fix: Adjusting function (needs testing)

* Fix: Adjusting function (needs testing)

* Fix: Removed some graph rendering features (will be back but better)

* Feat: render html file as png using puppeteer

ToFix: svgs dont render

* Fix: Hell yeah we got image creation!

* Fix: Adjusted routes since they need an absolute path

* Fix: Remove unused dependencies

* Fix: Exclude CWE-200 from CodeQl

* Feat: Respomse examples in swagger

Fix: Fixing some catch blocks

* Fix: Adjusting catches

* Fix: Adjusted catch to typing

* Feat: Stack creation

* Feat: Stack creation + starting and stopping

* Fix: Project root instead of path

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

* Fix: Logging adustment

* Fix: Allow undescores and dashes in stack name

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

* Fix: Propagate error

* Fix: Inline variable that is immediately returned

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

* Fix: move some things around

* Fix: Minor adjustments

* Feat: Get a stack's docker-compose

* Feat: automatic Stack environmental file management

* Fix: sample-varaible.json adjustment

* Fix: Potential fix for code scanning alert no. 102: Log injection

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Fix: fix for code scanning alert no. 94: Uncontrolled data used in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Fix: fix for code scanning alert no. 92: Uncontrolled data used in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* FiX: fix for code scanning alert no. 106: Log injection

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Fix: Logger vulnerability and CI graph generation

* Feat: change logger verbosity and spelling fix

* Feat: ToDo comments to GH issue

* Fix: Add checkout

* Fix: May fix the ToDo workflow

* Fix: Remove todo

* Fix: Re-Add commit

* Fix: Remove TODO

* Fix: Re-add TODO

* Fix: Where tf did my package lock go 😭

* CI/CD: Remove ToDo

* CI/CD: Add ToDo

* CI/CD: Fix command

* CI/CD: Add checkout

* Fix: CPU value was a percentage the whole time?

* Feat: Websocket endpoints for logs and container metrics

* Fix: Make linter happy

* Fix: Fix import

* Fix: Fix tsc build

* Jest: Fix tests

* Jest: Fix Tests

* Fix: Typo in src/config/swagger.yaml

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

* Fix: Typo in src/config/swagger.yaml

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

* Fix: Tyypo in src/config/swagger.yaml

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

* (code-quality): Inline variable that is immediately returned

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

* (code-quality): Prefer object destructuring when accessing and using properties.

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

* (code-quality): Prefer object destructuring when accessing and using properties.

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

* (code-quality): Prefer object destructuring when accessing and using properties.

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

* Fix: Update extractHostData.ts

* Update TODO.md

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: ItsNik <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Breaking change enhancement New feature or request new feature A new feature will be added by this PR
Projects
Status: In progress
Development

Successfully merging this pull request may close these issues.

2 participants