mirror of
				https://github.com/louislam/uptime-kuma.git
				synced 2025-11-01 03:49:24 +08:00 
			
		
		
		
	Merge remote-tracking branch 'origin/master'
This commit is contained in:
		
							
								
								
									
										128
									
								
								CODE_OF_CONDUCT.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								CODE_OF_CONDUCT.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,128 @@ | ||||
| # Contributor Covenant Code of Conduct | ||||
|  | ||||
| ## Our Pledge | ||||
|  | ||||
| We as members, contributors, and leaders pledge to make participation in our | ||||
| community a harassment-free experience for everyone, regardless of age, body | ||||
| size, visible or invisible disability, ethnicity, sex characteristics, gender | ||||
| identity and expression, level of experience, education, socio-economic status, | ||||
| nationality, personal appearance, race, religion, or sexual identity | ||||
| and orientation. | ||||
|  | ||||
| We pledge to act and interact in ways that contribute to an open, welcoming, | ||||
| diverse, inclusive, and healthy community. | ||||
|  | ||||
| ## Our Standards | ||||
|  | ||||
| Examples of behavior that contributes to a positive environment for our | ||||
| community include: | ||||
|  | ||||
| * Demonstrating empathy and kindness toward other people | ||||
| * Being respectful of differing opinions, viewpoints, and experiences | ||||
| * Giving and gracefully accepting constructive feedback | ||||
| * Accepting responsibility and apologizing to those affected by our mistakes, | ||||
|   and learning from the experience | ||||
| * Focusing on what is best not just for us as individuals, but for the | ||||
|   overall community | ||||
|  | ||||
| Examples of unacceptable behavior include: | ||||
|  | ||||
| * The use of sexualized language or imagery, and sexual attention or | ||||
|   advances of any kind | ||||
| * Trolling, insulting or derogatory comments, and personal or political attacks | ||||
| * Public or private harassment | ||||
| * Publishing others' private information, such as a physical or email | ||||
|   address, without their explicit permission | ||||
| * Other conduct which could reasonably be considered inappropriate in a | ||||
|   professional setting | ||||
|  | ||||
| ## Enforcement Responsibilities | ||||
|  | ||||
| Community leaders are responsible for clarifying and enforcing our standards of | ||||
| acceptable behavior and will take appropriate and fair corrective action in | ||||
| response to any behavior that they deem inappropriate, threatening, offensive, | ||||
| or harmful. | ||||
|  | ||||
| Community leaders have the right and responsibility to remove, edit, or reject | ||||
| comments, commits, code, wiki edits, issues, and other contributions that are | ||||
| not aligned to this Code of Conduct, and will communicate reasons for moderation | ||||
| decisions when appropriate. | ||||
|  | ||||
| ## Scope | ||||
|  | ||||
| This Code of Conduct applies within all community spaces, and also applies when | ||||
| an individual is officially representing the community in public spaces. | ||||
| Examples of representing our community include using an official e-mail address, | ||||
| posting via an official social media account, or acting as an appointed | ||||
| representative at an online or offline event. | ||||
|  | ||||
| ## Enforcement | ||||
|  | ||||
| Instances of abusive, harassing, or otherwise unacceptable behavior may be | ||||
| reported to the community leaders responsible for enforcement at | ||||
| louis@uptimekuma.louislam.net. | ||||
| All complaints will be reviewed and investigated promptly and fairly. | ||||
|  | ||||
| All community leaders are obligated to respect the privacy and security of the | ||||
| reporter of any incident. | ||||
|  | ||||
| ## Enforcement Guidelines | ||||
|  | ||||
| Community leaders will follow these Community Impact Guidelines in determining | ||||
| the consequences for any action they deem in violation of this Code of Conduct: | ||||
|  | ||||
| ### 1. Correction | ||||
|  | ||||
| **Community Impact**: Use of inappropriate language or other behavior deemed | ||||
| unprofessional or unwelcome in the community. | ||||
|  | ||||
| **Consequence**: A private, written warning from community leaders, providing | ||||
| clarity around the nature of the violation and an explanation of why the | ||||
| behavior was inappropriate. A public apology may be requested. | ||||
|  | ||||
| ### 2. Warning | ||||
|  | ||||
| **Community Impact**: A violation through a single incident or series | ||||
| of actions. | ||||
|  | ||||
| **Consequence**: A warning with consequences for continued behavior. No | ||||
| interaction with the people involved, including unsolicited interaction with | ||||
| those enforcing the Code of Conduct, for a specified period of time. This | ||||
| includes avoiding interactions in community spaces as well as external channels | ||||
| like social media. Violating these terms may lead to a temporary or | ||||
| permanent ban. | ||||
|  | ||||
| ### 3. Temporary Ban | ||||
|  | ||||
| **Community Impact**: A serious violation of community standards, including | ||||
| sustained inappropriate behavior. | ||||
|  | ||||
| **Consequence**: A temporary ban from any sort of interaction or public | ||||
| communication with the community for a specified period of time. No public or | ||||
| private interaction with the people involved, including unsolicited interaction | ||||
| with those enforcing the Code of Conduct, is allowed during this period. | ||||
| Violating these terms may lead to a permanent ban. | ||||
|  | ||||
| ### 4. Permanent Ban | ||||
|  | ||||
| **Community Impact**: Demonstrating a pattern of violation of community | ||||
| standards, including sustained inappropriate behavior,  harassment of an | ||||
| individual, or aggression toward or disparagement of classes of individuals. | ||||
|  | ||||
| **Consequence**: A permanent ban from any sort of public interaction within | ||||
| the community. | ||||
|  | ||||
| ## Attribution | ||||
|  | ||||
| This Code of Conduct is adapted from the [Contributor Covenant][homepage], | ||||
| version 2.0, available at | ||||
| https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. | ||||
|  | ||||
| Community Impact Guidelines were inspired by [Mozilla's code of conduct | ||||
| enforcement ladder](https://github.com/mozilla/diversity). | ||||
|  | ||||
| [homepage]: https://www.contributor-covenant.org | ||||
|  | ||||
| For answers to common questions about this code of conduct, see the FAQ at | ||||
| https://www.contributor-covenant.org/faq. Translations are available at | ||||
| https://www.contributor-covenant.org/translations. | ||||
							
								
								
									
										104
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,104 @@ | ||||
| # Project Info | ||||
|  | ||||
| First of all, thank you everyone who made pull requests for Uptime Kuma, I never thought GitHub Community can be that nice! And also because of this, I also never thought other people actually read my code and edit my code. It is not structed and commented so well, lol. Sorry about that. | ||||
|  | ||||
| The project was created with vite.js (vue3). Then I created a sub-directory called "server" for server part. Both frontend and backend share the same package.json.  | ||||
|  | ||||
| The frontend code build into "dist" directory. The server uses "dist" as root. This is how production is working. | ||||
|  | ||||
| Your IDE should follow the config in ".editorconfig". The most special thing is I set it to 4 spaces indentation. I know 2 spaces indentation became a kind of standard nowadays for js, but my eyes is not so comfortable for this. In my opinion, there is no callback-hell nowadays, it is good to go back 4 spaces world again. | ||||
|  | ||||
| # Project Styles | ||||
|  | ||||
| I personally do not like something need to learn so much and need to config so much before you can finally start the app.  | ||||
|  | ||||
| For example, recently, because I am not a python expert, I spent a 2 hours to resolve all problems in order to install and use the Apprise cli. Apprise requires so many hidden requirements, I have to figure out myself how to solve the problems by Google search for my OS. That is painful. I do not want Uptime Kuma to be like this way, so:   | ||||
|  | ||||
| - Easy to install for non-Docker users, no native build dependency is needed (at least for x86_64), no extra config, no extra effort to get it run | ||||
| - Single container for Docker users, no very complex docker-composer file. Just map the volume and expose the port, then good to go | ||||
| - All settings in frontend. | ||||
| - Easy to use | ||||
|  | ||||
| # Tools | ||||
| - Node.js >= 14 | ||||
| - Git | ||||
| - IDE that supports .editorconfig  (I am using Intellji Idea) | ||||
| - A SQLite tool (I am using SQLite Expert Personal) | ||||
|  | ||||
| # Prepare the dev | ||||
|  | ||||
| ```bash | ||||
| npm install | ||||
| ``` | ||||
|  | ||||
| # Backend Dev | ||||
|  | ||||
| ```bash | ||||
| npm run start-server | ||||
|  | ||||
| # Or  | ||||
|  | ||||
| node server/server.js | ||||
|  | ||||
| ``` | ||||
|  | ||||
| It binds to 0.0.0.0:3001 by default. | ||||
|  | ||||
|  | ||||
| ## Backend Details | ||||
|  | ||||
| It is mainly a socket.io app + express.js. | ||||
|  | ||||
| express.js is just used for serving the frontend built files (index.html, .js and .css etc.)  | ||||
|  | ||||
| # Frontend Dev | ||||
|  | ||||
| Start frontend dev server. Hot-reload enabled in this way. It binds to 0.0.0.0:3000. | ||||
|  | ||||
| ```bash | ||||
| npm run dev | ||||
| ``` | ||||
|  | ||||
| PS: You can ignore those scss warnings, those warnings are from Bootstrap that I cannot fix. | ||||
|  | ||||
| You can use Vue Devtool Chrome extension for debugging. | ||||
|  | ||||
| After the frontend server started. It cannot connect to the websocket server even you have started the server. You need to tell the frontend that is a dev env by running this in DevTool console and refresh: | ||||
|  | ||||
| ```javascript | ||||
| localStorage.dev = "dev"; | ||||
| ``` | ||||
|  | ||||
| So that the frontend will try to connect websocket server in 3001. | ||||
|  | ||||
| Alternately, you can specific NODE_ENV to "development". | ||||
|  | ||||
|  | ||||
| ## Build the frontend | ||||
|  | ||||
| ```bash | ||||
| npm run build | ||||
| ``` | ||||
|  | ||||
| ## Frontend Details | ||||
|  | ||||
| Uptime Kuma Frontend is a single page application (SPA). Most paths are handled by Vue Router. | ||||
|  | ||||
| The router in "src/main.js" | ||||
|  | ||||
| As you can see, most data in frontend is stored in root level, even though you changed the current router to any other pages. | ||||
|  | ||||
| The data and socket logic in "src/mixins/socket.js" | ||||
|  | ||||
| # Database Migration | ||||
|  | ||||
| TODO | ||||
|  | ||||
| # Unit Test | ||||
|  | ||||
| Yes, no unit test for now. I know it is very important, but at the same time my spare time is very limited. I want to implement my ideas first. I will go back to this in some points. | ||||
|  | ||||
|  | ||||
|  | ||||
|    | ||||
|  | ||||
							
								
								
									
										18
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								README.md
									
									
									
									
									
								
							| @@ -20,7 +20,7 @@ It is a self-hosted monitoring tool like "Uptime Robot". | ||||
|  | ||||
| # How to Use | ||||
|  | ||||
| ### Docker | ||||
| ## Docker | ||||
|  | ||||
| ```bash | ||||
| # Create a volume | ||||
| @@ -38,7 +38,7 @@ Change Port and Volume | ||||
| docker run -d --restart=always -p <YOUR_PORT>:3001 -v <YOUR_DIR OR VOLUME>:/app/data --name uptime-kuma louislam/uptime-kuma:1 | ||||
| ``` | ||||
|  | ||||
| ### Without Docker | ||||
| ## Without Docker | ||||
|  | ||||
| Required Tools: Node.js >= 14, git and pm2. | ||||
|  | ||||
| @@ -62,7 +62,17 @@ pm2 start npm --name uptime-kuma -- run start-server -- --port=80 --hostname=0.0 | ||||
|  | ||||
| Browse to http://localhost:3001 after started. | ||||
|  | ||||
| ### One-click Deploy | ||||
|  | ||||
| ## (Optional) One more step for Reverse Proxy | ||||
|  | ||||
| This is optional for someone who want to do reverse proxy. | ||||
|  | ||||
| Unlikely other web apps, Uptime Kuma is based on WebSocket. You need two more headers **"Upgrade"** and **"Connection"** in order to reverse proxy WebSocket. | ||||
|  | ||||
| Please read wiki for more info: | ||||
| https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy | ||||
|  | ||||
| ## One-click Deploy | ||||
|  | ||||
| <!--- | ||||
| Abort. Heroku instance killed the server.js if idle, stupid. | ||||
| @@ -122,6 +132,6 @@ If you love this project, please consider giving me a ⭐. | ||||
|  | ||||
| If you want to report a bug or request a new feature. Free feel to open a new issue. | ||||
|  | ||||
| If you want to modify Uptime Kuma, this guideline maybe useful for you: https://github.com/louislam/uptime-kuma/wiki/%5BDev%5D-Setup-Development-Environment | ||||
| If you want to modify Uptime Kuma, this guideline maybe useful for you: https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md | ||||
|  | ||||
| English proofreading is needed too, because my grammar is not that great sadly. Feel free to correct my grammar in this Readme, source code or wiki. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user