yggverse / next
PHP 8 server for different protocols
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Type:project
pkg:composer/yggverse/next
Requires
- cboden/ratchet: ^0.4.4
- kevachat/kevacoin: ^1.10
This package is auto-updated.
Last update: 2025-10-09 14:27:27 UTC
README
PHP 8 server for different protocols
Based on Ratchet asynchronous socket library
Features
- Async socket
- Multi-host
- Multi-protocol:
- Multi-mode:
- Static file hosting
- filesystem navigation on directory request
- optional
gemfeedfile modification date - unicode filenames support
- filter hidden context (started with dot)
- sort order settings (currently dir first, asc)
- optional
- custom index file name
- custom failure template
- custom data directory location
- filesystem navigation on directory request
- KevaCoin storage browser
- Custom application
- Reverse proxy
- Stream server
- Static file hosting
- Connection event log
- Simple and flexible server configuration by CLI arguments
Install
Environment
apt install git composer php-fpm php-mbstring
- for
kevacoinservermode, also requiredphp-curlextension
Stable
Project under development, use repository version!
Repository
git clone https://github.com/YGGverse/next.gitcd next- navigate into the project directorycomposer update- grab latest dependencies
Launch
Start
Create as many servers as wanted by providing different type, host, port, type, mode and other arguments!
- for security reasons, file server prevents any access to the hidden files (started with dot)
- also, clients can't access any data out the
rootpath, that defined on server startup
Startup example
php src/server.php host=127.0.0.1 port=1900 type=nex mode=fs root=/target/dir
hostandport- optional arguments, read Arguments documentation for details!
Arguments
Optional arguments auto-defined by server protocol type selected
Some arguments also defined in default.json - do not change it without understanding, use CLI instead!
CLI
Provide arguments in key=value format, separated by space
Children nodes dependent of parent arguments defined and would be skipped in other combinations!
Following list explains key dependencies and it value options (started with =)
type- required, server protocol, also auto-defines defaultport, supported options:- =
nex- NEX Protocolmode- optional, server implementation variant,fs(filesystem) by default- =
fs- static files hosting for therootlocationroot- absolute path to the public directory, where browser navigation starting fromfile- file name that server try to open on directory path requested, disabled by defaultlist- show listing in directory requested (on indexfilenot found), enabled by defaultdate- show file modification date (as gemfeed) in directory listing, disabled by default
- =
kevacoin- KevaCoin storage browser by RPC connection to the wallet (seekevacoin.conf)rpcscheme- required, for examplehttprpcport- required, default is9992rpchost- required, remote orlocalhostrpcuser- requiredrpcpassword- requirednamespace- required, remote or local namespace for data listing (started withN)
- =
- =
host- optional, default is127.0.0.1e.g.localhostconnections onlyport- optional, default value depends of servertypeselected e.g.1900fornexor1965forgeminifail- optional, absolute path to the failure template (e.g./path/to/error.gmi), disabled by defaultdump- optional,enableordisableserver 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 mode=fs 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