netprofilealpha

Host a test server

Help build a global network of test servers. One Docker command, full attribution, zero cost to you beyond the server.

Why host?

Expand coverage

More servers in more locations means better testing for everyone. Your server helps users measure real-world performance to your region.

Get attribution

Your organization name and link appear in the test UI, server status page, and test results. Visible to every user who tests against your server.

Easy Docker setup

Single container, no dependencies. Pull the image, set a few env vars, and you're live. Updates are just a container restart.

Requirements

  • Linux VPS or dedicated server with a public IP
  • 100 Mbps or faster network connection (1 Gbps recommended)
  • Docker installed
  • Port 3000 (or your chosen port) accessible from the internet
  • Reasonable uptime — occasional maintenance is fine

Get started

  1. 1.Sign in and go to the Servers dashboard
  2. 2.Click Add Server, choose an ID and name
  3. 3.Copy the API key — it's shown only once
  4. 4.Run the Docker command below on your server
Go to Servers Dashboard

Setup

Start the server with Docker using the server ID and API key from the dashboard:

docker run -d \
  --name qoe-server \
  --restart unless-stopped \
  -p 3000:3000 \
  -e SERVER_ID=your-server-id \
  -e SERVER_PUBLIC_URL="https://your-server.example.com" \
  -e REGISTER_URL=https://orch.netprofile.net \
  -e REGISTER_API_KEY=np_your-api-key \
  ghcr.io/netprofile/qoe:latest

Location and hosting provider are auto-detected from the server's IP. The server registers itself, starts sending heartbeats, and appears on the public server list automatically. You can override attribution details in the dashboard.

FAQ

How much bandwidth will it use?

Each test transfers 10-100 MB depending on mode. Typical servers see a few GB per day. Bandwidth is only used during active tests — there's no idle overhead beyond heartbeats.

What data is collected?

Test results (bandwidth, latency, packet loss) are stored with the server ID and a hashed client IP. No personal data is collected. The server itself doesn't log anything beyond standard access logs.

What are the uptime requirements?

There's no strict SLA. If your server goes offline, it's automatically removed from the active server list and reappears when it comes back. Planned maintenance is fine.

Can I run it behind a reverse proxy?

Yes. Set SERVER_PUBLIC_URL to your public HTTPS URL. The server needs WebSocket support for WebRTC signaling.