{"id":13605459,"url":"https://github.com/open-source-labs/Docketeer","last_synced_at":"2025-04-12T05:33:13.267Z","repository":{"id":38532920,"uuid":"291110070","full_name":"open-source-labs/Docketeer","owner":"open-source-labs","description":"A Docker \u0026 Kubernetes developer tool to manage containers \u0026 visualize both cluster and container metrics","archived":false,"fork":false,"pushed_at":"2024-01-08T17:12:41.000Z","size":132931,"stargazers_count":869,"open_issues_count":9,"forks_count":244,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-08T13:13:21.611Z","etag":null,"topics":["cadvisor","docker","docketeer","express","grafana","helm","javascript","jest","kubernetes","nodejs","open-source","prometheus","reactjs","redux-toolkit","sass","typescript","vite"],"latest_commit_sha":null,"homepage":"https://docketeer.io/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-source-labs.png","metadata":{"files":{"readme":"README.dev.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security/email.js","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"open-source-labs","custom":["https://donorbox.org/donations-to-oslabs-inc"]}},"created_at":"2020-08-28T17:44:58.000Z","updated_at":"2025-04-01T17:12:50.000Z","dependencies_parsed_at":"2024-01-14T08:28:17.716Z","dependency_job_id":null,"html_url":"https://github.com/open-source-labs/Docketeer","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-source-labs%2FDocketeer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-source-labs%2FDocketeer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-source-labs%2FDocketeer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-source-labs%2FDocketeer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-source-labs","download_url":"https://codeload.github.com/open-source-labs/Docketeer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248524312,"owners_count":21118610,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cadvisor","docker","docketeer","express","grafana","helm","javascript","jest","kubernetes","nodejs","open-source","prometheus","reactjs","redux-toolkit","sass","typescript","vite"],"created_at":"2024-08-01T19:00:58.958Z","updated_at":"2025-04-12T05:33:12.764Z","avatar_url":"https://github.com/open-source-labs.png","language":"TypeScript","readme":"\n\u003ch2\u003eTechs\u003c/h2\u003e\n\u003ch3\u003ePrometheus\u003c/h3\u003e\nCollects and aggregates the data scraped from Node-exporter and cAdvisor then exposes it's port on 9090 for Grafana to display.\u003cbr /\u003e\nCheck imageConfigs/prometheus/prometheus.yml to see all ports used for aggregation.\n\n\u003ch3\u003eNode exporter\u003c/h3\u003e\nScrapes the computer metrics and then has them aggregated by prometheus. Look at docker-compose service for node-exporter to see commands used to set up the container.\n\n\u003ch3\u003ecAdvisor\u003c/h3\u003e\ncAdvisor will be deprecated on May 15, 2024 so this should be replaced with something else.\u003cbr /\u003e\nIt scrapes all the container metrics and then has them aggregated to prometheus through host.docker.internal:8080 to be displayed on grafana dashboard.\n\n\u003ch3\u003eGrafana\u003c/h3\u003e\nDisplays the metric data aggregated by Prometheus, Node-exporter, cAdvisor\n\n\u003ch3\u003ePostgreSQL\u003c/h3\u003e\nStores user account information. Has functions in commands.tsx that go to the backend and tell it to store metric data but that data is never used anywhere and is just taking up space. \n\n\u003ch2\u003eUnused/Unimplemented Files\u003c/h2\u003e\n\u003cpre\u003e\nsecurity/email.js (unused, probably planned for prometheus email alert integration)\nserver/controllers/testingroute.ts\nsrc/components/AccountDisplay\nsrc/components/Notfound \nsrc/components/ProcessLogsCard \nsrc/components/Settings \nsrc/components/Yml \nsrc/helpers/settingsHelper.ts \n.yarnclean\nconfig.js (these env variables are not called anywhere that we could find)\npostcss.config.cjs (same as below)\ntailwind.config.cjs (currently is called in vite.config.js but never used. Tailwind is used in some of the unused components above but none that are currently in use)\n\u003c/pre\u003e\n\n\u003ch2\u003eTests\u003c/h2\u003e\nCurrently only passes about half the tests. There are files you have to alter the routes for when testing to see if they work such as grafanaApiController.ts. We did not focus on the testing so we're not sure what all needs to be changed with it.\n\n\u003ch2\u003eNotes\u003c/h2\u003e\n\u003ch3\u003eDeployment\u003c/h3\u003e\nThere is a makefile for easy deployment, just make sure to update the versions in it and the docker-compose then do 'make push-extension' and it will push everything to dockerhub for you.\u003cstrong\u003eIf you build from ARM64 architecture for multiplatform the windows version will not be able work properly. The core gets dumped on launch and can't run exec commands.\u003c/strong\u003e\n\n\u003ch2\u003eOther Known Issues/ToDo\u003c/h2\u003e\n\u003cstrong\u003eFile size:\u003c/strong\u003e Extremely bloated file size due to the dockerfile just grabbing everything and adding it to the image. There's also still a ton of dependencies that are unused and forgotten. This all causes it take and extremely long time to compose and build to test any changes you make significantly slowing down development speed. The extension version has had major restructuring to its file structure but we ran out of time to restructure the browser version as well.\u003cbr /\u003e\n\u003cstrong\u003eGrafana:\u003c/strong\u003e Dashboard container metric tiles get super crammed when you have a lot of containers and are unreadable. The current stat style doesn't seem to have any options to set your own column sizing making it difficult to keep them readable.\u003cbr /\u003e\n\u003cstrong\u003eGrafana:\u003c/strong\u003e Dashboard does not remove containers that have been completely deleted and they still appear on the dashboard\u003cbr /\u003e\n\u003cstrong\u003eKubernetes:\u003c/strong\u003e Current implementation is completely detached from the app itself. You have to have an entirely seperate session running to do the setup for it. Should find some way to have it all in the container but interacting with the kubernetes clusters from inside a container was pretty difficult and we couldn't find a good way to do it.\u003cbr /\u003e\n\u003cstrong\u003eTypescript:\u003c/strong\u003e Current coverage is quite messy. There are a lot of 'any' tags and things that use implicit any that we did not have time to fix.\u003cbr /\u003e\n\u003cstrong\u003eCode cleanup:\u003c/strong\u003e There's a lot of commented out code everywhere that was never fully implemented.\u003cbr /\u003e\n\u003cstrong\u003eOperating systems:\u003c/strong\u003e Only really seems to work on macs and no other operating systems consistently. Even macs are inconsistent with it working. One of the issues is how the current images being used are built without using commands for multi platform builds we updated that but another is that bind mounts are used in the docker-compose which regularly throws errors for windows users trying to compose and I couldn't figure out why.\n\n\u003ch2\u003eWho worked on what\u003c/h2\u003e\n\u003ch4\u003eDocketeer XIV\u003c/h2\u003e\n\u003ch5\u003eBrowser\u003c/h5\u003e\n\u003col\u003e\n  \u003cli\u003eUpdated deprecated dependencies and removed some unused dependencies\u003c/li\u003e\n  \u003cli\u003eAdded documentation to .yml files and added dev readme\u003c/li\u003e\n  \u003cli\u003eCreated a makefile for easier deployment and development\u003c/li\u003e\n  \u003cli\u003e\n\u003c/ol\u003e\n\u003ch5\u003eExtension\u003c/h5\u003e\n\u003col\u003e\n  \u003cli\u003ePorted the browser version of docketeer into an extension for docker desktop.\u003c/li\u003e\n  \u003cli\u003eWe managed to get all functionality excluding kubernetes monitoring to the extension.\u003c/li\u003e\n  \u003cli\u003eOpted to not include user functionality in the extension version.\u003c/li\u003e\n  \u003cli\u003eRestructured the file system and completely redid the dockerfile and docker-compose files to significantly reduce file size.\u003c/li\u003e\n  \u003cli\u003eHome and about pages information has been moved to the docker extension detailed description.\u003c/li\u003e\n  \u003cli\u003eAdded documentation to .yml files and added dev readme\u003c/li\u003e\n  \u003cli\u003eCreated a makefile for easier deployment and development\u003c/li\u003e\n\u003c/ol\u003e","funding_links":["https://github.com/sponsors/open-source-labs","https://donorbox.org/donations-to-oslabs-inc"],"categories":["TypeScript","JavaScript","vite","typescript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-source-labs%2FDocketeer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-source-labs%2FDocketeer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-source-labs%2FDocketeer/lists"}