detain/phlex-hub

Central cloud directory + reverse-tunnel relay for Phlix media servers. Sign in once, reach any of your servers from anywhere. Self-hostable.

Maintainers

Package info

github.com/detain/phlix-hub

Type:project

pkg:composer/detain/phlex-hub

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-05-20 01:37 UTC

README

Central cloud directory + reverse-tunnel relay for Phlix media servers. Sign in once, reach any of your servers from anywhere. Self-hostable.

Status: server claim + my-servers dashboard (C.4). Pairing Protocol landed in C.3; the populated /my-servers dashboard and the /claim-server flow land in C.4.

Quick start (dev)

composer install
# Point the runner at a real MySQL via HUB_DB_* env vars first.
php scripts/run-migrations.php       # creates users / servers / shared_libraries / relay_sessions / webhooks
php public/index.php start
curl http://localhost:8800/health    # => {"status":"ok",...}

Visit http://localhost:8800/signup to create your first account. The first user is auto-promoted to admin. After signing in, /my-servers lists your registered servers and /claim-server walks through pairing a new one.

See docs/dev/schema.md for the schema reference, docs/reference/env-vars.md for the full env-var list, and docs/hub/my-servers.md / docs/hub/claim-server.md for the dashboard and claim flow.

Related repos

What is shipped in v0.1.0

  • Workerman 5 HTTP application bootstrap.
  • PSR-11 container (PHP-DI 7), structured logger (Monolog 3), MySQL connection pool (Workerman MySQL).
  • GET /health endpoint returning service + version metadata.
  • 5-check CI workflow (composer-validate, phpcs PSR-12, phpstan 2.x level 9, psalm v5, security audit) + phpunit.

DB schema landed in B.6; signup, login, the dashboard, and the JWT auth stack (consuming Phlix\Shared\Auth\JwtClaims) landed in B.7. The server-claim + registry endpoints (claim codes, enrollment JWT, heartbeat) landed in C.3; the /my-servers dashboard and /claim-server UI land in C.4.

Configuration

All runtime options are environment variables — see docs/reference/env-vars.md for the full list.

License

MIT — see LICENSE.