From fa42d858a2967d49e1ee832b145dfcace89aeed7 Mon Sep 17 00:00:00 2001 From: Artem Konev Date: Fri, 13 May 2022 17:13:23 +0100 Subject: [PATCH] Adding GitHub-styled README and CONTRIBUTING files in Markdown. --- CONTRIBUTING.md | 90 +++++++++++++++++++++++ README | 24 ------ README.md | 184 ++++++++++++++++++++++++++++++++++++++++++++++ docs/unitlogo.png | Bin 0 -> 29600 bytes 4 files changed, 274 insertions(+), 24 deletions(-) create mode 100644 CONTRIBUTING.md delete mode 100644 README create mode 100644 README.md create mode 100644 docs/unitlogo.png diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..a7bc357b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,90 @@ +# Contributing Guidelines + +The following is a set of guidelines for contributing to NGINX Unit. We do +appreciate that you are considering contributing! + +## Table Of Contents + +- [Getting Started](#getting-started) +- [Ask a Question](#ask-a-question) +- [Contributing](#contributing) +- [Git Style Guide](#git-style-guide) + + +## Getting Started + +Check out the [Quick Installation](README.md#quick-installation) and +[Howto](https://unit.nginx.org/howto/) guides to get NGINX Unit up and running. + + +## Ask a Question + +Please open an [issue](https://github.com/nginx/unit/issues/new) on GitHub with +the label `question`. You can also ask a question on +[Slack](https://nginxcommunity.slack.com) or the NGINX Unit mailing list, +unit@nginx.org (subscribe +[here](https://mailman.nginx.org/mailman3/lists/unit.nginx.org/)). + + +## Contributing + +### Report a Bug + +Ensure the bug was not already reported by searching on GitHub under +[Issues](https://github.com/nginx/unit/issues). + +If the bug is a potential security vulnerability, please report using our +[security policy](https://unit.nginx.org/troubleshooting/#getting-support). + +To report a non-security bug, open an +[issue](https://github.com/nginx/unit/issues/new) on GitHub with the label +`bug`. Be sure to include a title and clear description, as much relevant +information as possible, and a code sample or an executable test case showing +the expected behavior that doesn't occur. + + +### Suggest an Enhancement + +To suggest an enhancement, open an +[issue](https://github.com/nginx/unit/issues/new) on GitHub with the label +`enhancement`. Please do this before implementing a new feature to discuss the +feature first. + + +### Open a Pull Request + +Before submitting a PR, please read the NGINX Unit code guidelines to know more +about coding conventions and benchmarks. Fork the repo, create a branch, and +submit a PR when your changes are tested and ready for review. Again, if you'd +like to implement a new feature, please consider creating a feature request +issue first to start a discussion about the feature. + + +## Git Style Guide + +- Keep a clean, concise and meaningful `git commit` history on your branch, + rebasing locally and squashing before submitting a PR + +- For any user-visible changes, updates, and bugfixes, add a note to + `docs/changes.xml` under the section for the upcoming release, using `` for new functionality, `` for changed + behavior, and `` for bug fixes. + +- In the subject line, use the past tense ("Added feature", not "Add feature"); + also, use past tense to describe past scenarios, and present tense for + current behavior + +- Limit the subject line to 67 characters, and the rest of the commit message + to 80 characters + +- Use subject line prefixes for commits that affect a specific portion of the + code; examples include "Tests:", "Packages:", or "Docker:", and also + individual languages such as "Java:" or "Ruby:" + +- Reference issues and PRs liberally after the subject line; if the commit + remedies a GitHub issue, [name + it](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) + accordingly + +- Don't rely on command-line commit messages with `-m`; use the editor instead + diff --git a/README b/README deleted file mode 100644 index f0b84a42..00000000 --- a/README +++ /dev/null @@ -1,24 +0,0 @@ - -NGINX Unit ----------- - -The documentation and binary packages are available online: - - http://unit.nginx.org - -The source code is provided under the terms of Apache License 2.0: - - http://hg.nginx.org/unit - -Please ask questions, report issues, and send patches to the mailing list: - - unit@nginx.org (http://mailman.nginx.org/mailman/listinfo/unit) - -or via Github: - - https://github.com/nginx/unit - --- -NGINX, Inc. -http://nginx.com - diff --git a/README.md b/README.md new file mode 100644 index 00000000..05bdbb91 --- /dev/null +++ b/README.md @@ -0,0 +1,184 @@ +# NGINX Unit + +## Universal Web App Server + +![NGINX Unit Logo](docs/unitlogo.png) + +NGINX Unit is a lightweight and versatile open-source server that has +three core capabilities: + +- it is an HTTP reverse proxy, +- a web server for static media assets, +- and an application server that runs code in seven languages. + +We are building a universal tool that compresses several layers of the modern +application stack into a potent, coherent solution with a focus on performance, +low latency, and scalability. It is intended as a building block for any web +architecture regardless of its complexity, from enterprise-scale deployments to +your pet's homepage. + +Unit's native RESTful JSON API enables dynamic updates with zero interruptions +and flexible configuration, while its out-of-the-box productivity reliably +scales to production-grade workloads. We achieve that with a complex, +asynchronous, multithreading architecture comprising multiple processes to +ensure security and robustness while getting the most out of today's computing +platforms. + + +## Quick Installation + +### macOS + +``` console +$ brew install nginx/unit/unit +``` + +For details and available language packages, see the +[docs](https://unit.nginx.org/installation/#homebrew). + + +### Docker + +``` console +$ docker pull docker.io/nginx/unit +``` + +For a description of image tags, see the +[docs](https://unit.nginx.org/installation/#docker-images). + + +### Amazon Linux, Fedora, RedHat + +``` console +$ curl -sL 'https://unit.nginx.org/_downloads/setup-unit.sh' | sudo -E bash +# yum install unit +``` + +For details and available language packages, see the +[docs](https://unit.nginx.org/installation/#official-packages). + + +### Debian, Ubuntu + +``` console +$ curl -sL 'https://unit.nginx.org/_downloads/setup-unit.sh' | sudo -E bash + +# apt install unit +``` + +For details and available language packages, see the +[docs](https://unit.nginx.org/installation/#official-packages). + + +## Running a Hello World App + +Suppose you saved a PHP script as `/www/helloworld/index.php`: +``` php + +``` + +To run it on Unit with the `unit-php` module installed, first set up an +application object. Let's store our first config snippet in a file called +`config.json`: + +``` json +{ + "helloworld": { + "type": "php", + "root": "/www/helloworld/" + } +} +``` + +Saving it as a file isn't necessary, but can come in handy with larger objects. + +Now, `PUT` it into the `config/applications` section of Unit's control API, +usually available by default via a Unix domain socket: + +``` console +# curl -X PUT --data-binary @config.json --unix-socket \ + /path/to/control.unit.sock http://localhost/config/applications +``` +``` json + +{ + "success": "Reconfiguration done." +} +``` + +Next, reference the app from a listener object in the `config/listeners` +section of the API. This time, we pass the config snippet straight from the +command line: + +``` console +# curl -X PUT -d '{"127.0.0.1:8000": {"pass": "applications/helloworld"}}' \ + --unix-socket /path/to/control.unit.sock http://localhost/config/listeners +``` +``` json +{ + "success": "Reconfiguration done." +} +``` + +Now Unit accepts requests at the specified IP and port, passing them to the +application process. Your app works! + +``` console +$ curl 127.0.0.1:8080 + + Hello, PHP on Unit! +``` + +Finally, query the entire `/config` section of the control API: + +``` console +# curl --unix-socket /path/to/control.unit.sock http://localhost/config/ +``` + +Unit's output should contain both snippets, neatly organized: + +``` json +{ + "listeners": { + "127.0.0.1:8080": { + "pass": "applications/helloworld" + } + }, + + "applications": { + "helloworld": { + "type": "php", + "root": "/www/helloworld/" + } + } +} +``` + +For full details of configuration management, see the +[docs](https://unit.nginx.org/configuration/#configuration-management). + + +## Community + +- The go-to place to start asking questions and share your thoughts is + our [Slack channel](https://nginxcommunity.slack.com/). + +- Our [GitHub issues page](https://github.com/nginx/unit/issues) offers + space for a more technical discussion at your own pace. + +- The [project map](https://github.com/orgs/nginx/projects/1) on + GitHub sheds some light on our current work and plans for the future. + +- Our [official website](https://unit.nginx.org/) may provide answers + not easily found otherwise. + +- Get involved with the project by contributing! See the + [contributing guide](CONTRIBUTING.md) for details. + +- To reach the team directly, subscribe to the + [mailing list](https://mailman.nginx.org/mailman/listinfo/unit). + +- For security issues, [email us](security-alert@nginx.org), mentioning + NGINX Unit in the subject and following the [CVSS + v3.1](https://www.first.org/cvss/v3.1/specification-document) spec. + diff --git a/docs/unitlogo.png b/docs/unitlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..dbd87fd8cc711337db6cc7d6f4094265e29846ec GIT binary patch literal 29600 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%0A|>9x*WgsoW_Br{PP& zujTjNHKWDEe`OWG(i@XX{A$CYD3bl@+P$xw3KlUw0?&- zT@i1mtO1zi$dXRo-t5aQ{nNn-$<>4fB)hS#~Z7E79>Ll zbSpGuat*;|47ay3t}YGz-?Wv8**Sv7gu>?l_K*pi#{{qSZ@r2PErFoB_4f}c zM9oKR2SSg0afKSl#jZYtH4>I25ej$yiYlvW!9Eii8k3~ZkS(x=-O-X&(9=WAj$QpJ zU=EianS|H?vTI<)16Wh}0l>d_V|@sSsZ8^EaUhTW3Y4N8IsSoK|J4+2?xBmfkcAu3 zM}Ob6bc0I8ze1XHLx|(lA$HLfJve0%jV)@yX2L%y=Up}&FHqH^YeQ<4>G`-PY0BHMJItV zYG)N^XR#Od=$*1+wxI*gUMq0+`2yy*?U59UBmng)RwJyGD$U+Q=n@`h<>li;2W9ZF z2gd+Q!QTKCcCsADXD@!2Hata0RFJz#hBF&gqJIX}&%S+#$e2UvYxO%;j5oigA)39r(_UhI$#9hPtW z27DTobod*};G|1+1g>e5VLg%34KvXPHcr5Vz%Aw%7R;b`wY9DMz#(MlzWhtAH#BHS zqB2V-jT_O~#T(%?YphYp&^jt<8OaFTO4~KKDX_!@Rtponn9vEcK(ex3rIh)7e zDxq*~&A1BC!o;D~=7smmwc*{28{q!{jE+CJbYZa_R9-DAY6|xEvJlTVZ+?%< zzvbRcS9x}JMjXKKXV>hGT0`00W9~X)oW~Z#uX8`f|pTp4lI>)mDx{t zAmx*VuRS~xGz>Tsj$Rx+KYEeAx)*WqN0bm<7?*}UNk1-|PQpg?fyo>v;8sFze>0C4 z8ak+E-_SXli4-q*5+*vdxT;n#y62gSBSD6qn5hG+D&6U~aqnE2y9v?Ff$`CDlvecp z)*N+a&3ock#ajPT5E4v>j_g;$k!RfsF0)N04j`f~vaiz9vdMW87W;`o5Q0yQcF2V| z*BWxlG!O@b^QR2#i|+W9m-W;Yf>)i#m!zCcYz=WFo0^Rs&YY zDSJHmb$wC~*Io)AQqGH{ERjUuVjKig(3RaQWi$}#*9-OT%xic)O>~{UVo~@BIG-t{ z8@!EH^Dy|kCNo<)h_#rcE%hKLQw=CKcoL&OJCJL-t55pQ+pYp>;}7jxNxGCy0Jo0V7xRu2S6 zsLHaR6dzNdg)W0VY5X-jXu58??|E2LgW``OqWKPhxFB)#l#?}z@r%Sl8xBOH9^7`Z z6i$;3u6&HkHT2OlEQc}u*KXo~HEW)QTt6w}V*QPAg7KsxwKYY=PlMWD0{OAOe#<`J zR3&tCvjLt-g$5P7tM@+iB1#aQ2ALNpSBw&VWF)`ze!&fHn?zRkcVU7!3(>W|UV>GN zjMV#KkNd{x$GP}aVpjk7m88UN42FBITRPp6Zs7eXj{~Ufz@Z1M+v`Uns>ioRDh)ZA zp6AA9Pj>MQH^!yiu;O?SzUW|psP)X<*FmwtD4m>*yIP-T3^Db#cCSI=6UwC<4z7p7 zfggQjK;BLdOCPJ?FSB^7_ioX=_3awbUa0RLpIDyJtjF~DCedx^(i8a3NoMn*o=05m z+6&>(!zqq~&F$SqDO1U<`>mq)k>u2TWH z+CRQx&%0mi$$*G!{(HD=`s(;@E@>M0{{T3ZU4Q@p literal 0 HcmV?d00001