https://docketeer.io/
Docketeer is a developer-friendly application that provides a single interface for container and network management as well as metric visualization.
Explore the code & contribute here!ยป
See the extension version's code here!ยป
View Demo
ยท
Report Bug
ยท
Request Feature
Table of Contents
About The Project
Docketeer is an open source initiative comprising contributions from dozens of talented and passionate software engineers. Our application provides a simple interface to manage Docker resources & visualize both host and container metric data, along with Kubernetes cluster data. Docketeer is a containerized application that can be deployed alongside your application cluster with hardly any effort. To learn more about our application and how to get started, keep reading!
Features:
- Docketeer is a Docker developer tool that's available as an open-source project on GitHub or as an extension on Docker Desktop.
- It aims to simplify the development process for projects that use Docker containers.
- Allows you to filter through both your running and stopped container logs.
- Docketeer provides an easy-to-use GUI for managing Docker containers, images, and networks.
- With Docketeer, developers can quickly create, start, stop, and delete containers, as well as manage Docker networks and images.
- Docketeer includes a variety of features, including automatic container naming, customizable configurations, and support for multiple Docker Compose - files.
- Docketeer offers full networking capabilities: create and manage networks without touching the terminal.
- Docketeer offers Node and kubelet metric visualizations for your Kubernetes clusters, along with an easy set up process to get your cluster connected to the application.
- Docketeer also offers built-in support for popular development frameworks like Rails and Node.js, making it easy to get started with these technologies.
- Docketeer is highly customizable, and developers can configure it to suit their specific needs.
- It's a community-maintained project, with frequent updates and bug fixes.
- Docketeer is licensed under the MIT license, meaning it can be used and modified freely, even for commercial projects.
Installation
The local configuration for Docketeer was setup to be as simple as possible for the end-user.
Follow the steps below to get started with Docketeer.
Prerequisites:
You must have Docker Desktop installed and running!
STEP 1 โ Clone the repository
git clone https://github.com/open-source-labs/Docketeer.git
STEP 2 โ Docker compose up
Making sure you're in your Docketeer directory, run:
docker compose up
STEP 3 โ Navigate to localhost:4000 to sign-up & login!
http://localhost:4000
Setting up Docketeer to work with a Kubernetes cluster
Prerequisites: you must be running a Kubernetes cluster/kube, have kubectl and helm installed.
Open up a new tab in your terminal. Run
npm install
Docketeer is using d3-sankey for data visualization, which is currently not being actively maintained. Running npm install
would install patch-package
and make sure to input y
when you see the following prompt:
Need to install the following packages:
[email protected]
Ok to proceed? (y)
and
npm run dev
Then, navigate to localhost:4001/api/k8:
If you haven't set up Prometheus-Operator with us before, click the first button to install.
Otherwise, you can skip the first button and go on with the next two!
P.S. Make sure to keep this terminal open!
In Development
- Support for more development frameworks and languages, such as Next.JS.
- Expand Docker networking capabilities within Docketeer to provide more sophisticated networking configurations and better interoperability with other network tools.
- Develop more advanced container configuration options within Docketeer, such as load balancing or high availability setups.
- Integrate Docketeer with popular development tools like IDEs or continuous integration/delivery systems for better automation and workflow efficiency.
- Add support for more advanced Docker features, like multi-stage builds or Docker secrets, to expand the capabilities of Docketeer.
- Develop integration with cloud services like AWS or Azure to simplify the deployment of Docker-based applications.
- Implement the Kubernetes metric monitoring from the browser version to the extension version.
- Display additional metrics for Kubernetes clusters.
See Troubleshooting and open issues for a list of known issues.
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repository and create a pull request. You can also simply open an issue describing your contribution. Don't forget to give the project a star! Thanks again!
- Fork the project and clone onto your local machine
- Create your Feature Branch (
git checkout -b feature/NewFeatureName
) - Commit your Changes (
git commit -m '(feature/bugfix/style/etc.): [commit message here]'
) - Push to the Branch (
git push origin feature/NewFeatureName
) - Open a Pull Request
- Create an issue on GitHub (as mentioned above!)
Read our contributing guide for more information on how to purpose bugfixes and improvements to Docketeer.
Read More
- Docketeer XIV: Coming Home
- Docketeer XIII: A Tool for Docker!
- Docketeer XII: Now Ready for Launch!
- Introducing Docketeer XI | The Latest Version Ready for Takeoff with a Splash!
- Enjoy the sleek new look of Docketeer X
- Docketeer is here to make a splash!
- Docketeer is here! Youโre WHALEcome!
- Docketeer! What's new?
- Docketeer: An Innovative Tool to Manage Docker Containers
- Whale Hello There, Docketeer 4.0 is Here!
- Our Journey Building Docketeer
License
Distributed under the MIT License. See LICENSE.txt
for more information.
Authors
- Dan Lin @DanLin91 | Linkedin
- Kadir Gundogdu @kadirgund | Linkedin
- Minchan Jun @MinchanJun | Linkedin
- Wilmer Sinchi @sinchiw | Linkedin
- Richie Edwards @richie-edwards | Linkedin
- Mitesh Patel @mit1812 | Linkedin
- Matt Jones @mc-jones | Linkedin
- Chai Lee @seachai | Linkedin
- Anton Abdukhamidov @abdukhamidov-anton | Linkedin
- Alex Smith @ajsmith925 | Linkedin
- Catherine Larcheveque @clarcheveque | Linkedin
- Charles Ryu @charcharryu | Linkedin
- Griffin Silver @griffinrogersilver | Linkedin
- Lorenzo Guevara @lo-guevara | Linkedin
- May Li @msscloudy | Linkedin
- Ricardo Cortez @rcortez88 | Linkedin
- Emma Czech @emczech | Linkedin
- Brent Speight @brentspeight | Linkedin
- Eric Lee @errc-lee | Linkedin
- Kristine Aguda @kaguda | Linkedin
- Dylan Feldman @dfeldman24 | Linkedin
- Tre Hultzen @THultz | Linkedin
- Kenneth Hui @kennethhui121 | Linkedin
- Eric Lay @ericlay14 | Linkedin
- Austin Andrews @austinandrews | Linkedin
- Fernando Luna @lunaf-github | Linkedin
- Christina Son @cson17 | Linkedin
- Christian Looff @cmlooff | LinkedIn
- Reuel Warner-Rosen @Ruliwr | Linkedin
- Trine Medina @TrineMedina | Linkedin
- Matt Dias @Schmang13 | Linkedin
- Abigail Gerig @4estgirl | Linkedin
- Jack Yuan @jackyuan1 | LinkedIn
- Sarah Moosa @Sbethm | LinkedIn
- Cedar Cooper @CedarCooper | LinkedIn
- Tiffany Chau @tiffanynchau | LinkedIn
- Drew Manley @DrewManley | LinkedIn
- Eshaan Joshi @eshaan32 | LinkedIn
- Garima Bhatia @GarimaB06 | LinkedIn
- Nathan Cho @nathanycho | LinkedIn
- Jonathan Wong @WongJonathann | LinkedIn
- Dillon H. Patel @d-hp
- Alex Schmidt @RedAfronNinja | LinkedIn
- Edward Kenny @EdwardKenny | LinkedIn
- Kennan Budnik @kobudnik | LinkedIn
- Mason Royal @masonroyal | LinkedIn
- Benjamin Huang @byhuang4100 | LinkedIn
- Saad Hamdani @Saadh123 | LinkedIn
- Michael Angelo Garcia @MichaelAngelo13 | LinkedIn
- Anna Tran @annamullike | LinkedIn
- Emily John @emilyjohl | LinkedIn
- Jaeni Lee @jaenixlee | LinkedIn
- Joseph Salgado @Jaysalgado | LinkedIn
- Michael (Kwon) Liu @KwonJiyongGD | LinkedIn
- Garrett Allen @garrettallen0 | LinkedIn
- Adrian Kormier @adriankormier | LinkedIn
- Shuai Shao @shao-shuai | LinkedIn
- John Kim @jayoo0621 | LinkedIn
- Tristan Keester @ronangens | LinkedIn
- Tristan Krause @tristanyuukio | LinkedIn
- Grant Schussler @gschussler | LinkedIn
- Jacob Melendez @JacobAMelendez | LinkedIn
Show Your Support
Please โญ๏ธ this project if you found it helpful, thank you!
Troubleshooting:
WSL
There are some known issues running Docketeer through WSL. Using WindowsOS, MacOS, or Linux is recommended.
Linux
If you are runing Docketeer in Linux and encounter the followeing errors, you might need to change some of your permissions.
grafana |Error: โ failed to connect to database: failed to create SQLite database file "/var/lib/grafana/grafana.db": open /var/lib/grafana/grafana.db: permission denied
prometheus | ts=2023-07-05T23:48:01.612Z caller=query_logger.go:113 level=error component=activeQueryTracker msg="Failed to create directory for logging active queries"
prometheus | ts=2023-07-05T23:48:01.613Z caller=query_logger.go:91 level=error component=activeQueryTracker msg="Error opening query log file" file=/prometheus/data/queries.active err="open data/queries.active: no such file or directory"
prometheus | panic: Unable to create mmap-ed active query log
In order to do this, you need to change the permissions of data in ./imageConfigs/grafana and promDate under ./imageConfigs/prometheus.
go to grafana under ./imageConfigs and change permission of data
cd ./imageConfigs/grafana
chmod 771 data/
go to prometheus under ./imageConfigs and change permission of promDate
cd ./imageConfigs/prometheus
chmod 777 promData/
Ad-blocker
If you are encountering the following error and are running an ad-blocker, disable your ad-blocker
ERR_BLOCKED_BY_CLIENT
Network Capacity
By default, Docker can only create 31 networks. If you try to create more, you would encounter the following error:
Error response from daemon: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network
To expand network capacity, add the following to /etc/docker/daemon.json
{
"default-address-pools" : [
{
"base" : "172.17.0.0/12",
"size" : 20
},
{
"base" : "192.168.0.0/16",
"size" : 24
}
]
}
For details, please read The definitive guide to docker's default-address-pools option