PHPackages                             yggverse/next - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. yggverse/next

ActiveProject[HTTP &amp; Networking](/categories/http)

yggverse/next
=============

PHP 8 server for different protocols

10PHP

Since Apr 28Pushed 2y ago2 watchersCompare

[ Source](https://github.com/YGGverse/next)[ Packagist](https://packagist.org/packages/yggverse/next)[ RSS](/packages/yggverse-next/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

next
====

[](#next)

PHP 8 server for different protocols

Based on [Ratchet](https://github.com/ratchetphp/Ratchet) asynchronous socket library

Features
--------

[](#features)

- Async socket
- Multi-host
- Multi-protocol:
    - [NEX](https://nightfall.city/nex/info/specification.txt)
    - [Gemini](https://geminiprotocol.net)
- Multi-mode:
    - Static file hosting
        - filesystem navigation on directory request
            - optional `gemfeed` file modification date
            - unicode filenames support
            - filter hidden context (started with dot)
            - sort order settings (currently dir first, asc)
        - custom index file name
        - custom failure template
        - custom data directory location
    - KevaCoin storage browser
    - Custom application
    - Reverse proxy
    - Stream server
- Connection event log
- Simple and flexible server configuration by CLI arguments

Install
-------

[](#install)

### Environment

[](#environment)

```
apt install git composer php-fpm php-mbstring
```

- for `kevacoin` server `mode`, also required `php-curl` extension

### Stable

[](#stable)

Project under development, use [repository](#repository) version!

### Repository

[](#repository)

- `git clone https://github.com/YGGverse/next.git`
- `cd next` - navigate into the project directory
- `composer update` - grab latest dependencies

Launch
------

[](#launch)

### Start

[](#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 `root` path, that defined on server startup

#### Startup example

[](#startup-example)

```
php src/server.php host=127.0.0.1 port=1900 type=nex mode=fs root=/target/dir
```

- `host` and `port` - optional arguments, read [Arguments documentation](#arguments) for details!

#### Arguments

[](#arguments)

Optional arguments auto-defined by server protocol `type` selected

Some arguments also defined in [default.json](https://github.com/YGGverse/next/blob/main/default.json) - do not change it without understanding, use [CLI](#cli) instead!

##### CLI

[](#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 default `port`, supported options:
    - = `nex` - [NEX Protocol](https://nightfall.city/nex/info/specification.txt)
        - `mode` - optional, server implementation variant, `fs` (filesystem) by default
            - = `fs` - static files hosting for the `root` location
                - `root` - **absolute path** to the public directory, where browser navigation starting from
                - `file` - **file name** that server try to open on directory path requested, disabled by default
                - `list` - show listing in directory requested (on index `file` not found), enabled by default
                - `date` - show file modification date (as gemfeed) in directory listing, disabled by default
            - = `kevacoin` - [KevaCoin](https://github.com/kevacoin-project) storage browser by RPC connection to the wallet (see `kevacoin.conf`)
                - `rpcscheme` - required, for example `http`
                - `rpcport` - required, default is `9992`
                - `rpchost` - required, remote or `localhost`
                - `rpcuser` - required
                - `rpcpassword` - required
                - `namespace` - required, remote or local namespace for data listing (started with `N`)
- `host` - optional, default is `127.0.0.1` e.g. `localhost` connections only
- `port` - optional, default value depends of server `type` selected e.g. `1900` for `nex` or `1965` for `gemini`
- `fail` - optional, **absolute path** to the failure template (e.g. `/path/to/error.gmi`), disabled by default
- `dump` - optional, `enable` or `disable` server debug feature, enabled by default

### Autostart

[](#autostart)

#### systemd

[](#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 configuration
- `systemctl enable next` - enable service on system startup
- `systemctl start next` - start server

###  Health Score

13

—

LowBetter than 1% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity2

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity21

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/67b0f652ebac064d26ca06ba5fd4271fab0ac5482d6c2d4865b8f3697721bc31?d=identicon)[d47081](/maintainers/d47081)

![](https://www.gravatar.com/avatar/d4eafa818f51a43c026ee538ac36192684eef5e128e1eac8d622b74d1bfd4de4?d=identicon)[YGGverse](/maintainers/YGGverse)

---

Top Contributors

[![d47081](https://avatars.githubusercontent.com/u/108541346?v=4)](https://github.com/d47081 "d47081 (1 commits)")

---

Tags

19001965altwebasync-servercomposerip6ipv6kevacoinnexnex-phpnex-protocolnex-servernextphp-serverratchetsmallwebsocketsocket-servertinywebwebsocket

### Embed Badge

![Health badge](/badges/yggverse-next/health.svg)

```
[![Health](https://phpackages.com/badges/yggverse-next/health.svg)](https://phpackages.com/packages/yggverse-next)
```

###  Alternatives

[friendsofsymfony/rest-bundle

This Bundle provides various tools to rapidly develop RESTful API's with Symfony

2.8k73.3M319](/packages/friendsofsymfony-rest-bundle)[php-http/discovery

Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations

1.3k309.5M1.2k](/packages/php-http-discovery)[nyholm/psr7

A fast PHP7 implementation of PSR-7

1.3k235.4M2.4k](/packages/nyholm-psr7)[pusher/pusher-php-server

Library for interacting with the Pusher REST API

1.5k94.8M293](/packages/pusher-pusher-php-server)[spatie/crawler

Crawl all internal links found on a website

2.8k16.3M52](/packages/spatie-crawler)[react/http

Event-driven, streaming HTTP client and server implementation for ReactPHP

78126.4M414](/packages/react-http)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
