Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ohmydevops/jojo
🐤 jojo, another http web-server written in PHP 8
https://github.com/ohmydevops/jojo
http php socket webserver
Last synced: 21 days ago
JSON representation
🐤 jojo, another http web-server written in PHP 8
- Host: GitHub
- URL: https://github.com/ohmydevops/jojo
- Owner: ohmydevops
- Created: 2021-11-21T19:02:33.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-28T20:40:23.000Z (over 1 year ago)
- Last Synced: 2023-08-02T13:57:42.240Z (over 1 year ago)
- Topics: http, php, socket, webserver
- Language: PHP
- Homepage: https://github.com/ohmydevops/jojo
- Size: 2.1 MB
- Stars: 10
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![image](https://user-images.githubusercontent.com/21690865/143600061-5d5125e3-48cf-4740-9197-e061c1252b29.png)
# جوجو | jojo
**وبسروری در ابعاد :baby_chick: برای کارهای کوچک**
## داستان نوشتن جوجو
وبسروری که تنظیمات مودم TP-link TD-8811 توی اتاقم رو serve میکنه اسمش micro_httpd بود. از سر بیکاری اسم وبسرورش رو سرچ کردم و به این [مخزن](https://github.com/socram8888/micro_httpd) رسیدم. کدش برام جالب بود و به سرم زد که برای مرور کردن و یادگرفتن چیزهای جدید از مهندسی کامپیوتر یک وبسرور ساده دیگه شبیه micro_httpd خودم از صفر بنویسم و چیزهایی که یاد میگیرم رو نیز با بقیه به نحوی به اشتراک بگذارم.
## یک وبسرور ساده با PHP
در این مخزن سعی میکنم گامبهگام پیش برم و وبسروری ساده طبق قواعد [Hypertext Transfer Protocol -- HTTP/1.1](https://datatracker.ietf.org/doc/html/rfc2616) بسازم.
از اونجایی که من در حالحاضر با زبان PHP بیشتر کار میکنم ترجیح دادم ابتدا با PHP 8.0 این کار رو انجام بدم و بعد در زبان دیگری (احتمالا C) بازنویسی کنم.## چطور این وبسرور را راهاندازی کنم؟
برای استفاده در محیط داکری کافیه دستور زیر رو وارد کنید:
```
docker run --name jojo --init --rm \
-v YOUR_WEB_DIR:/jojo \
-p 80:8000 \
ohmydevops/jojo-server:v1.1.0
```به جای YOUR_WEB_DIR کافیه آدرس دایرکتوری وبسایتتون رو بزارید (ریشه وبسایت). مثلا اگر در دایرکتوری `/home/user/website` وبسایت استاتیک شما قرار دارد کافیه بدین صورت اجرا کنید:
```
docker run --name jojo --init --rm \
-v /home/user/website:/jojo \
-p 80:8000 \
ohmydevops/jojo-server:v1.1.0
```
سپس میتونید با مرورگرتون وبسایت خودتون رو مشاهده کنید.## برنامههای پیشرو
#### V1
- [x] Serve basic web files (html, css, js)
- [x] Serve basic static files (images, videos, sounds)
- [x] Support 200 status code
- [x] Support 404 status code
- [x] Support GET method
- [x] Handle requests in blocking-mode
- [x] Dockerise (upload images in docker hub)
- [x] Can config root directory with ENV
#### V2
- [ ] Handle requests in concurrent-mode (multi-process)
#### V3
- [ ] [Common log format](https://en.wikipedia.org/wiki/Common_Log_Format)
#### V4
- [ ] Directory index