mirror of https://github.com/YGGverse/next.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yggverse
4e31fba57c
|
7 months ago | |
---|---|---|
src | 7 months ago | |
.gitignore | 7 months ago | |
LICENSE | 7 months ago | |
README.md | 7 months ago | |
composer.json | 7 months ago | |
default.json | 7 months ago |
README.md
next
PHP 8 server for different protocols
Based on Ratchet asynchronous socket library
Features
- Async socket
- Multi-host
- Multi-protocol:
- Connection event log
- Optional:
- file navigation on directory request
- custom index name
- custom failure template
- Simple and flexible server configuration by CLI arguments
Install
git clone https://github.com/YGGverse/next.git
cd next
- navigate into the project directorycomposer update
- grab latest dependencies
Launch
Start
Create as many servers as wanted by providing different type
, host
, port
and other arguments!
- for security reasons,
next
server prevents any access to the hidden files (started with dot) - also, clients can't access any data out the
root
path, that defined on server startup
Startup example:
php src/server.php type=nex host=127.0.0.1 port=1900 root=/target/dir
host
andport
- optional arguments, read Arguments documentation for details!
Arguments
Default argument values depending of server protocol selected.
Some arguments also defined in default.json file. Do not change this file without understanding, use CLI instead!
CLI
Provide wanted arguments separated by space, in key=value
format
Required
type
- server protocol, also auto-defines defaultport
, supported options:nex
- NEX Protocol
root
- absolute path to the public directory, where browser navigation starting from
Optional
host
- default is127.0.0.1
e.g.localhost
connections onlyport
- default value depends of servertype
selected, for example1900
fornex
or1965
forgemini
file
- index file name that server try to open on directory path requested, disabled by defaultlist
- show content listing in the requested directory (when indexfile
not found), enabled by defaulttime
- show file modification time as the alt text in directory listing (useful for gemfeed), disabled by defaultfail
- absolute path to the failure template (e.g./path/to/error.gmi
), disabled by defaultdump
-enable
ordisable
server debug feature, enabled by default
Autostart
systemd
Following example mean you have next
server installed into home directory of next
user (useradd -m next
)
# /etc/systemd/system/next.service
[Unit]
After=network.target
[Service]
Type=simple
User=next
Group=next
ExecStart=/usr/bin/php /home/next/next/src/server.php type=nex root=/home/next/public
StandardOutput=file:/home/next/debug.log
StandardError=file:/home/next/error.log
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
- reload systemd configurationsystemctl enable next
- enable service on system startupsystemctl start next
- start server