|
1 |
| -<!-- A brief description of your project, what it is used for and how does life get |
2 |
| -awesome when someone starts to use it. |
3 |
| -- Note and briefly describe any key concepts (technical, philosophical, or both) important to the user’s understanding. |
4 |
| -- Link to any supplementary blog posts or project main pages. |
5 |
| -- State if it is out-of-the-box user-friendly, so it’s clear to the user. |
6 |
| -- List its most useful/innovative/noteworthy features. |
7 |
| -- State its goals/what problem(s) it solves. --> |
8 |
| - |
9 |
| -<!-- To help keep this READme organized, use two line breaks for each ## --> |
10 |
| - |
11 |
| -# |
12 |
| - |
13 |
| -# [Docketeer](https://www.docketeer.org/) ·     |
| 1 | +<!-- Improved compatibility of back to top link: See: https://github.com/othneildrew/Best-README-Template/pull/73 --> |
| 2 | + |
| 3 | +<a name="readme-top"></a> |
| 4 | + |
| 5 | +<!-- PROJECT SHIELDS --> |
| 6 | +<!-- |
| 7 | +*** I'm using markdown "reference style" links for readability. |
| 8 | +*** Reference links are enclosed in brackets [ ] instead of parentheses ( ). |
| 9 | +*** See the bottom of this document for the declaration of the reference variables |
| 10 | +*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use. |
| 11 | +*** https://www.markdownguide.org/basic-syntax/#reference-style-links |
| 12 | +--> |
| 13 | + |
| 14 | +[![Contributors][contributors-shield]][contributors-url] |
| 15 | +[![Forks][forks-shield]][forks-url] |
| 16 | +[![Stargazers][stars-shield]][stars-url] |
| 17 | +[![Issues][issues-shield]][issues-url] |
| 18 | +[![MIT License][license-shield]][license-url] |
| 19 | +[![LinkedIn][linkedin-shield]][linkedin-url] |
| 20 | + |
| 21 | +<!-- PROJECT LOGO --> |
| 22 | +<br /> |
| 23 | +<div align="center"> |
| 24 | + <a href="https://github.com/open-source-labs/Docketeer"> |
| 25 | + <img src="assets/docketeer-title.png" alt="Logo" width="325" height="auto"> |
| 26 | + </a> |
| 27 | + <br /> |
| 28 | + <br /> |
| 29 | + <img src="assets/demo.gif" alt="Logo" width="fit" height="auto"> |
| 30 | + <br /> |
| 31 | + <br /> |
| 32 | + <p align="center"> |
| 33 | + Docketeer is a developer-friendly application that provides a single interface for both container management & metric visualization. |
| 34 | + <br /> |
| 35 | + <a href="https://github.com/open-source-labs/Docketeer"><strong>Explore the docs »</strong></a> |
| 36 | + <br /> |
| 37 | + <br /> |
| 38 | + <a href="https://github.com/open-source-labs/Docketeer">View Demo</a> |
| 39 | + · |
| 40 | + <a href="https://github.com/open-source-labs/Docketeer/issues">Report Bug</a> |
| 41 | + · |
| 42 | + <a href="https://github.com/open-source-labs/Docketeer/issues">Request Feature</a> |
| 43 | + </p> |
| 44 | +</div> |
| 45 | + |
| 46 | +<br /> |
| 47 | +<!-- TABLE OF CONTENTS --> |
| 48 | + |
| 49 | +<br /> |
14 | 50 |
|
15 | 51 | ## Table of Contents
|
16 | 52 |
|
17 |
| -- [About](#about) |
18 |
| -- [Installation](#installation) |
19 |
| -- [Features](#features) |
20 |
| -- [Testing](#testing) |
21 |
| -- [Contributing](#contributing) |
22 |
| -- [Show your support](#Show-your-support) |
| 53 | + <ol> |
| 54 | + <br /> |
| 55 | + <li> |
| 56 | + <a href="#about-the-project">About Docketeer</a> |
| 57 | + <ul> |
| 58 | + <li><a href="#built-with">Built With</a></li> |
| 59 | + </ul> |
| 60 | + </li> |
| 61 | + <li> |
| 62 | + <a href="#getting-started">Getting Started</a> |
| 63 | + <ul> |
| 64 | + <li><a href="#prerequisites">Prerequisites</a></li> |
| 65 | + <li><a href="#installation">Installation</a></li> |
| 66 | + </ul> |
| 67 | + </li> |
| 68 | + <li><a href="#usage">Usage</a></li> |
| 69 | + <li><a href="#roadmap">Roadmap</a></li> |
| 70 | + <li><a href="#contributing">Contributing</a></li> |
| 71 | + <li><a href="#license">License</a></li> |
| 72 | + <li><a href="#authors">Authors</a></li> |
| 73 | + </ol> |
23 | 74 |
|
24 |
| -# |
| 75 | +<!-- ABOUT THE PROJECT --> |
| 76 | +<br /> |
25 | 77 |
|
26 |
| - |
| 78 | +## About The Project |
27 | 79 |
|
28 |
| -## About |
| 80 | +<br /> |
| 81 | + <div align="center"> |
| 82 | + <img src="assets/finalabout.jpg" alt="Logo" width="fit" height="auto"> |
| 83 | + </div> |
| 84 | +<br /> |
29 | 85 |
|
30 |
| -Managing Docker images, containers and networks from the command line while also trying to monitor crucial metrics can be tedious and counterintuitive. To make this process more developer-friendly, we created Docketeer: a container management platform for Docker. |
| 86 | +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. Docketeer is a containarized 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! |
31 | 87 |
|
32 |
| -## Installation |
| 88 | +<p align="right">(<a href="#readme-top">back to top</a>)</p> |
33 | 89 |
|
34 |
| -1. **Fork** and **clone** this [repository](https://github.com/open-source-labs/Docketeer.git) to your machine. |
| 90 | +### Built With |
35 | 91 |
|
36 |
| -``` |
37 |
| -git clone https://github.com/open-source-labs/Docketeer.git |
38 |
| -``` |
39 |
| - |
40 |
| -2. Navigate to the project directory and install dependencies. |
| 92 | +[![React][React.js]][React-url][![Typescript][TS.js]][TS-url][![Redux][Redux]][Redux-url][![Webpack][Webpack]][Webpack-url][![TailwindCSS][Tailwind]][Tailwind-url][![Node][Node.js]][Node-url][![Express][Express]][Express-url][![Grafana][Grafana]][Grafana-url][![Docker][Docker]][Docker-url] |
41 | 93 |
|
42 |
| -``` |
43 |
| -npm install |
44 |
| -``` |
| 94 | +<p align="right">(<a href="#readme-top">back to top</a>)</p> |
45 | 95 |
|
46 |
| -3. Create a `.env` file in the project's top-level directory. |
| 96 | +<!-- GETTING STARTED --> |
47 | 97 |
|
48 |
| -``` |
49 |
| -root |
50 |
| - ├─ .env |
51 |
| - ├─ server |
52 |
| - └─ src |
53 |
| -``` |
| 98 | +## Getting Started |
54 | 99 |
|
55 |
| -4. In the .env file, configure the following environment variables for Twilio API, Slack Webhook, and Postgres URI. Refer to [Twilio](#-Twilio) setup section below. The Postgres URI is the only field that is required, others are optional. Create your own database to house user information and insert your URI in this file. |
| 100 | +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. |
56 | 101 |
|
57 |
| -```js |
58 |
| -// .env |
59 |
| -TWILIO_NUMBER = ''; |
60 |
| -TWILIO_ACCOUNT_SID = ''; |
61 |
| -TWILIO_AUTH_TOKEN = ''; |
62 |
| -SERVICE_SID = ''; |
63 |
| -VERIFICATION_SERVICE_SID = ''; |
64 |
| -SLACK_WEBHOOK = ''; |
65 |
| -POSTGRES_URI = ''; |
66 |
| -``` |
| 102 | +<br /> |
67 | 103 |
|
68 |
| -5. Create a folder called `security` in the project's top-level directory. Inside of the `security` folder, create two files `email.js` and `sysadmin.js`. These files will store variables related to the email notification service and system admin setup respectively. |
| 104 | +#### STEP 1 — Clone the repository |
69 | 105 |
|
70 |
| -``` |
71 |
| -root |
72 |
| - ├─ security |
73 |
| - ├─ email.js |
74 |
| - └─ sysadmin.js |
75 |
| - ├─ server |
76 |
| - └─ src |
| 106 | +```sh |
| 107 | +git clone https://github.com/open-source-labs/Docketeer.git |
77 | 108 | ```
|
78 | 109 |
|
79 |
| -6. In the `email.js` file, input your organization's email credentials within the username and password properties. This email address will be used to send email notifications. The file is already in the `.gitignore` file. |
80 |
| - Important: Do not change the host and port values unless you are using a different email provider. |
| 110 | +<br /> |
81 | 111 |
|
82 |
| -```js |
83 |
| -// email.js |
84 |
| -module.exports = { |
85 |
| - host: 'smtp.gmail.com', |
86 |
| - port: 465, |
87 |
| - |
88 |
| - password: 'belugas', |
89 |
| -}; |
90 |
| -``` |
| 112 | +#### STEP 2 — Setup environment variables |
91 | 113 |
|
92 |
| -7. In the `sysadmin.js` file, input information for the system admin account. If no information is input, the email and phone number for the system admin will be set to default values. These values can always be changed in the system admin's Settings tab. |
| 114 | +<p>Create a .env file at the top level of the project directory with the following contents:</p> |
93 | 115 |
|
94 | 116 | ```js
|
95 |
| -// sysadmin.js |
96 |
| -module.exports = { |
97 |
| - phone: '', |
98 |
| - email: '', |
99 |
| -}; |
100 |
| -``` |
101 |
| - |
102 |
| -You are all set! Now just enter the following command to start up Docketeer! |
103 |
| - |
104 |
| -``` |
105 |
| -npm run dev |
| 117 | +# .env |
| 118 | +POSTGRES_PORT=5432 |
| 119 | +POSTGRES_NAME=docketeer-db |
| 120 | +POSTGRES_USER=postgres |
| 121 | +POSTGRES_PASS=postgres |
106 | 122 | ```
|
107 | 123 |
|
108 |
| -For now, the sign up function will create a System Admin user. |
| 124 | +<br /> |
109 | 125 |
|
110 |
| -## Twilio setup |
| 126 | +#### STEP 3 — Docker compose up |
111 | 127 |
|
112 |
| -1. Follow documents found [here](https://www.twilio.com/docs/node/install) to download the helper library. |
113 |
| -2. In order to manage Twilio SMS notifications follow the [step plan](https://www.twilio.com/docs/notify/quickstart/sms#messagingservice). |
114 |
| -3. Store your (i) Twilio number, (ii) Account Sid, (iii) Auth Token from twilio.com/console, (iv) SERVICE_SID, (v) verification service SID in a newly created .env file in the Docketeer folder in the following format: |
115 |
| - |
116 |
| -```js |
117 |
| -// .env.js |
118 |
| -MY_PHONE_NUMBER = 'your mobile number'; |
119 |
| -TWILIO_ACCOUNT_SID = 'code from your console'; |
120 |
| -TWILIO_AUTH_TOKEN = 'token from your console'; |
121 |
| -SERVICE_SID = 'code from notify service instance'; |
122 |
| -VERIFICATION_SERVICE_SID = 'code from verify service instance'; |
| 128 | +```sh |
| 129 | +docker compose up |
123 | 130 | ```
|
124 | 131 |
|
125 |
| -4. Verification service was created [here](https://www.twilio.com/console/verify/services); code length and serviceSID can be taken from your Twilio account console. |
126 |
| -5. All historical messages from the Twilio account can be found [here](https://www.twilio.com/console/sms/logs). |
| 132 | +<br /> |
127 | 133 |
|
128 |
| -<!-- > Getting started with Docketeer is easy: visit [docketeer.org](https://www.docketeer.org/) and download the Docketeer desktop app. Drag and drop the .dmg file that you downloaded into your Applications folder to install it. Before you run the application, make sure Docker itself is running. --> |
| 134 | +#### STEP 4 — Navigate to localhost:4000 to sign-up & login! |
129 | 135 |
|
130 |
| -## Features |
131 |
| - |
132 |
| -### ➮ System Wide Notifications |
133 |
| - |
134 |
| -Docketeer offers monitoring support for teams by incorporating sms, email and slack notification as well as configurable options based on a container's memory or cpu usage. |
135 |
| - |
136 |
| -### ➮ Viewing |
| 136 | +```sh |
| 137 | +http://localhost:4000/ |
| 138 | +``` |
137 | 139 |
|
138 |
| -You can view a list of running and exited containers, available images, volume history, and docker-compose files stored locally. |
| 140 | +<p align="right">(<a href="#readme-top">back to top</a>)</p> |
139 | 141 |
|
140 |
| -### ➮ Live Metrics |
| 142 | +<!-- USAGE EXAMPLES --> |
141 | 143 |
|
142 |
| -Users have real-time access to the total amount of resources (CPU, memory usage) that your containers are using and total block IO bytes by image over specific time periods. |
143 |
| - |
| 144 | +## Usage |
144 | 145 |
|
145 |
| -### ➮ Uploading |
| 146 | +Coming soon... |
146 | 147 |
|
147 |
| -Within the Image and Docker Compose tab, you pull images from DockerHub by providing `repo:version` or uploading a `.yml` file. |
| 148 | +<p align="right">(<a href="#readme-top">back to top</a>)</p> |
148 | 149 |
|
149 |
| -### ➮ Process Logs |
| 150 | +<!-- ROADMAP --> |
150 | 151 |
|
151 |
| -View process logs from any number of running or stopped containers. The table is both exportable and sortable by any parameter. You can filter logs by specifying the number of logs that you wish to receive (tail) as well as time (since). Process logs will help you analyze and debug problems faster by offering insights into what went wrong. |
| 152 | +## Roadmap |
152 | 153 |
|
153 |
| - |
| 154 | +- [ ] Server-side integration of dockerode |
| 155 | +- [ ] Continued efforts to implement static typechecking using TypeScript throughout source code |
| 156 | +- [ ] Create additional tests to validate existing client-side & server-side functionality |
| 157 | + - [ ] Unit tests |
| 158 | + - [ ] Integration tests |
| 159 | + - [ ] End-to-end tests |
154 | 160 |
|
155 |
| -<br> For a full demo of Docketeer's features, visit [docketeer.org](https://www.docketeer.org/demo). |
| 161 | +See the [open issues](https://github.com/github_username/repo_name/issues) for a full list of proposed features (and known issues). |
156 | 162 |
|
157 |
| -<!-- ## Development 🛠 |
158 |
| -All ideas and contributions to the project are welcome. To run the app in development mode, clone our repo to your local machine and execute the following commands: |
159 |
| -``` |
160 |
| -npm run dev |
161 |
| -``` --> |
| 163 | +<p align="right">(<a href="#readme-top">back to top</a>)</p> |
162 | 164 |
|
163 |
| -## Testing |
| 165 | +<!-- CONTRIBUTING --> |
164 | 166 |
|
165 |
| -To conduct tests on the codebase, clone our repo to your local machine and execute the following commands in the terminal: |
| 167 | +## Contributing |
166 | 168 |
|
167 |
| -``` |
168 |
| -npm run test |
169 |
| -``` |
| 169 | +Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. |
170 | 170 |
|
171 |
| -## Troubleshoot |
| 171 | +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. |
| 172 | +Don't forget to give the project a star! Thanks again! |
172 | 173 |
|
173 |
| -#### **Cannot connect to the Docker daemon** |
| 174 | +1. Fork the Project |
| 175 | +2. Checkout Development (`git checkout development`) |
| 176 | +3. Create your Feature Branch (`git checkout -b feature/NewFeatureName`) |
| 177 | +4. Commit your Changes (`git commit -m 'Add some NewFeatureMessage'`) |
| 178 | +5. Push to the Branch (`git push origin feature/NewFeatureName`) |
| 179 | +6. Open a Pull Request (from `feature/NewFeatureName` to `development`) |
| 180 | +7. Create an issue on GitHub (as mentioned above!) |
174 | 181 |
|
175 |
| -⤷ Make sure that you have Docker running! |
| 182 | +Read our [contributing guide](https://github.com/open-source-labs/Docketeer/blob/master/CONTRIBUTING.md) for more information on how to purpose bugfixes and improvements to Docketeer. |
176 | 183 |
|
177 |
| -#### **Working with WSL** |
| 184 | +<p align="right">(<a href="#readme-top">back to top</a>)</p> |
178 | 185 |
|
179 |
| -⤷ Users may need to install a third-party App to run electron. A helpful article can be found [here](https://techcommunity.microsoft.com/t5/windows-dev-appconsult/running-wsl-gui-apps-on-windows-10/ba-p/1493242). |
| 186 | +<!-- LICENSE --> |
180 | 187 |
|
181 |
| -## Contributing |
| 188 | +## License |
182 | 189 |
|
183 |
| -Read our [contributing guide](https://github.com/open-source-labs/Docketeer/blob/master/CONTRIBUTING.md) for more information on how to purpose bugfixes and improvements to Docketeer. |
| 190 | +Distributed under the MIT License. See `LICENSE.txt` for more information. |
184 | 191 |
|
185 |
| -### Authors |
| 192 | +<p align="right">(<a href="#readme-top">back to top</a>)</p> |
186 | 193 |
|
187 |
| -<!-- Most recent contributors please add your name to the BOTTOM of the list --> |
| 194 | +## Authors |
188 | 195 |
|
189 | 196 | - Dan Lin [@DanLin91](https://github.com/DanLin91) | [Linkedin](https://www.linkedin.com/in/danlin91/)
|
190 | 197 | - Kadir Gundogdu [@kadirgund](https://github.com/kadirgund) | [Linkedin](https://www.linkedin.com/in/kadirgund/)
|
@@ -227,11 +234,45 @@ Read our [contributing guide](https://github.com/open-source-labs/Docketeer/blob
|
227 | 234 | - Garima Bhatia [@GarimaB06](https://github.com/GarimaB06) | [LinkedIn](https://www.linkedin.com/in/garimab06/)
|
228 | 235 | - Nathan Cho [@nathanycho](https://github.com/nathanycho) | [LinkedIn](https://www.linkedin.com/in/nathanycho/)
|
229 | 236 | - Jonathan Wong [@WongJonathann](https://github.com/WongJonathann) | [LinkedIn](https://www.linkedin.com/in/jon-wong-00/)
|
| 237 | +- Dillon H. Patel [@d-hp](https://github.com/d-hp) |
| 238 | +- Alex Schmidt [@RedAfronNinja](https://github.com/RedAfronNinja) | [LinkedIn](https://www.linkedin.com/in/alex-schmidt-44b27413b/) |
| 239 | +- Edward Kenny [@EdwardKenny](https://github.com/EdwardKenny) | [LinkedIn](https://www.linkedin.com/in/edward-kenny-8949b8136/) |
| 240 | +- Kennan Budnik [@kobudnik](https://github.com/kobudnik) | [LinkedIn](https://www.linkedin.com/in/kobudnik/) |
230 | 241 |
|
231 |
| -### License |
232 |
| - |
233 |
| -Docketeer is [MIT Licensed](https://github.com/open-source-labs/Docketeer/blob/master/LICENSE) |
| 242 | +<p align="right">(<a href="#readme-top">back to top</a>)</p> |
234 | 243 |
|
235 | 244 | ## Show your support
|
236 | 245 |
|
237 | 246 | Give a ⭐️ if this project helped you!
|
| 247 | + |
| 248 | +[contributors-shield]: https://img.shields.io/github/contributors/open-source-labs/Docketeer.svg?style=for-the-badge |
| 249 | +[contributors-url]: https://github.com/open-source-labs/Docketeer/graphs/contributors |
| 250 | +[forks-shield]: https://img.shields.io/github/forks/open-source-labs/Docketeer.svg?style=for-the-badge |
| 251 | +[forks-url]: https://github.com/open-source-labs/Docketeer/network/members |
| 252 | +[stars-shield]: https://img.shields.io/github/stars/open-source-labs/Docketeer.svg?style=for-the-badge |
| 253 | +[stars-url]: https://github.com/open-source-labs/Docketeer/stargazers |
| 254 | +[issues-shield]: https://img.shields.io/github/issues/open-source-labs/Docketeer.svg?style=for-the-badge |
| 255 | +[issues-url]: https://github.com/open-source-labs/Docketeer/issues |
| 256 | +[license-shield]: https://img.shields.io/github/license/open-source-labs/Docketeer.svg?style=for-the-badge |
| 257 | +[license-url]: https://github.com/open-source-labs/Docketeer/blob/master/LICENSE.txt |
| 258 | +[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555 |
| 259 | +[linkedin-url]: https://linkedin.com/in/linkedin_username |
| 260 | +[product-screenshot]: images/screenshot.png |
| 261 | +[React.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB |
| 262 | +[React-url]: https://reactjs.org/ |
| 263 | +[TS.js]: https://img.shields.io/badge/TypeScript-000000?style=for-the-badge&logo=typescript&logoColor=white |
| 264 | +[TS-url]: https://www.typescriptlang.org/ |
| 265 | +[Grafana]: https://img.shields.io/badge/Grafana-35495E?style=for-the-badge&logo=grafana&logoColor=4FC08D |
| 266 | +[Grafana-url]: https://grafana.com/ |
| 267 | +[Tailwind]: https://img.shields.io/badge/TailwindCSS-DD0031?style=for-the-badge&logo=tailwindcss&logoColor=white |
| 268 | +[Tailwind-url]: https://tailwindcss.com/ |
| 269 | +[Node.js]: https://img.shields.io/badge/Node-4A4A55?style=for-the-badge&logo=nodedotjs&logoColor=FF3E00 |
| 270 | +[Node-url]: https://nodejs.org/en/ |
| 271 | +[Express]: https://img.shields.io/badge/Express-FF2D20?style=for-the-badge&logo=express&logoColor=FF3E00 |
| 272 | +[Express-url]: https://expressjs.com/ |
| 273 | +[Redux]: https://img.shields.io/badge/RTK-563D7C?style=for-the-badge&logo=redux&logoColor=white |
| 274 | +[Redux-url]: https://redux.js.org/ |
| 275 | +[Webpack]: https://img.shields.io/badge/Webpack-0769AD?style=for-the-badge&logo=webpack&logoColor=white |
| 276 | +[Webpack-url]: https://webpack.js.org/guides/getting-started/ |
| 277 | +[Docker]: https://img.shields.io/badge/Docker-0769AD?style=for-the-badge&logo=docker&logoColor=white |
| 278 | +[Docker-url]: https://www.docker.com/ |
0 commit comments