Repository navigation
Public Relays and Downloads
Published Wiki page · Versioned source · Suggest a source edit
Operator reference. Commands and topology describe reviewed procedures; verify the selected source revision and live deployment before operating a world.
Arkline's desktop and browser clients use the same JSON protocol over WebSocket text messages. Public connections must use WSS. The standalone server's raw TCP listener remains available for local tooling and private operator tunnels; it must not be exposed as a public plaintext endpoint.
The official host layout is:
| Host | Purpose |
|---|---|
arkline.network, www.arkline.network
|
Standalone Arkline project website |
play.arkline.network |
Rust/WebAssembly client |
relay.arkline.network/ws |
Production WebSocket world |
test-relay.arkline.network/ws |
Separate Test WebSocket world |
downloads.arkline.network |
Versioned client/server/source archives and checksums |
A production channel names the persistent official world; it does not imply a completed game, unlimited capacity, or an availability guarantee. This is early access. Test uses its own database and credentials. Never point both processes at one SQLite file or share production pilot credentials with another operator.
We recommend self-hosting for local development, testing, and experiments that can feed improvements back into the official repository. Our focus is one community building the shared engine and official universe together. Report findings and propose changes through issues and pull requests.
Hosting your own community or fork is welcome as well; contributing upstream is an invitation, not a condition of running a server. Independent servers have separate worlds and operators and do not automatically join the official network. See the community direction for how these paths fit together.
- Build the server from the approved clean source revision using
Dockerfile. - Retain the existing one-replica world StatefulSet and persistent volume. Add
--ws-bind 0.0.0.0:7778, explicitly allow the browser's HTTPS origins using--ws-origin, and expose only port 7778 to the dedicated tunnel connector. - Set the pod label
arkline-public-origin: "true"and add a private Service port for 7778. Keep raw TCP7777 under the default-deny network policy. - Use a separate one-replica StatefulSet and PVC for the Test world. Never clone live resume credentials into it. Back up Production before upgrades.
- Build the browser with
apps/client/web/build.sh. Prepare reviewedweb/anddownloads/VERSION/directories plusweb-nginx.confrenamed tonginx.conf; build that staging directory withweb.Dockerfile. Include matching source, license, dependency notices and checksums in public downloads. - Configure a dedicated authenticated Cloudflare Tunnel. Store its token in
the
arkline-tunnelKubernetes Secret, never in source or browser assets.public-edge.yamlsupplies the isolated connector, web deployment and narrow origin network allowances. Replace image placeholders with immutable digests and use the operator's existing image pull secret when necessary. - Route only the documented hostnames to their intended private Services. The last tunnel rule must be an HTTP404 catch-all. Publish proxied DNS records only after origin checks pass; do not overwrite unrelated DNS records.
TLS terminates at Cloudflare, and the connector uses an encrypted outbound
Cloudflare Tunnel. The initial deployment uses origin HTTP/WS, limited by Kubernetes NetworkPolicy to the
connector inside the cluster. This is not end-to-end application encryption
against the edge provider or a compromised cluster. Native origin TLS is supported
with --tls-cert and --tls-key; see verified transport and rotation.
Do not treat source support as proof of a deployed TLS migration.
Before updating the website's availability flags, verify HTTPS and WSS from outside the cluster, a real pilot's flight/mining/deposit/reconnect journey, Production/Test isolation, invalid-origin and malformed-message rejection, checksums, source availability, and browser rendering/input. A successful build or DNS response alone does not prove gameplay works.
/health on the WebSocket origin reports success only after a successful
simulation tick within three seconds. See transport limits
for admission, payload and request limits. Keep backups and previous immutable images available. Roll
back server code only when its schema can read the retained world; restore to
an isolated volume first when that is uncertain. Never overwrite live player
progress with a test fixture or force a second SQLite writer during recovery.
The official edge limits relay /ws connection attempts to 20 per 10 seconds
per source IP and Cloudflare data center, with a 10-second block after exceeding
the limit. This counts HTTP upgrade attempts, not messages inside an established
WebSocket. The server separately bounds messages and active sessions. Shared
networks may share an IP budget; these controls do not prevent identity farming.
Observe connection capacity, registration limits, simulation health, storage and reconnect behavior before increasing traffic. Add durable monitoring, scheduled off-cluster backups and measured load budgets as the audience grows. Native platform signing/notarization and device-specific graphics/audio testing are separate release checks.
Stage each complete browser build under web/VERSION/, retaining previous version
directories. Create release.conf in the reviewed image build context with
location = / { return 302 https://play.arkline.network/VERSION/$is_args$args; }, replacing VERSION with the
verified build number. Relative module and WASM imports then stay within that
release even during rolling deployments. Do not change files within a published
version. The same origin preserves existing browser pilot credentials.
For play.arkline.network, configure Cloudflare to bypass edge caching and respect
origin browser cache headers. The origin sends Cache-Control: no-cache; do not
override it with a browser TTL. Purge legacy unversioned browser assets when
introducing this layout. Download archives remain versioned independently.
Wiki home · Source and pull requests · Licensing · Security
Official documentation for Arkline by P.Industries. Independent forks and experiments are welcome; official network authority and branding have separate boundaries.
Start here
Arkline Editor
- Overview
- Projects and play
- Rooms
- GLB assets
- Engineering and service paths
- Fleet finish
- Hull surface
- Cockpit panels
- Equipment and exterior
- Event flow
- Shared sessions
- Community
- Debug and physics lab
Play and understand the client
- Flight and cockpit controls
- Browser client
- Station hangar and quarters
- Pioneer room controls (development preview)
- Pioneer equipment catalog
- Ship computer and resource jobs
- Sound and voice
Build and extend the engine
- Game API
- Architecture and economic verification
- Models and community artwork
- Living-world design
- Identity integration plan
Operate and release
- Transport security
- Web origin TLS
- Private world deployment
- Public relays and downloads
- Public transport limits
- Self-hosted CI and deployment
- Release publication
Evidence, history and policies
- Developer alpha readiness
- Validation history
- Stability audit
- Station assets audit
- Save and spatial migration
- Legacy systems review
- Licensing
- Security and reporting
Ship design archive — all seven ships, concept history and proposed interiors. Onboard systems covers proposed power, RF/data, air, water and cooling.
-
How ship subsystems work together — power, control, life support, water, cooling, fire response and the mining loop; implemented behavior distinguished from proposals.
-
Pioneer interior development preview — both decks, twelve rooms, implemented behavior and acceptance limits.
-
Ship art contribution checklist — scale, component separation, rights, previews and offline GLB inspection.
-
Vessel engineering contract — proposed system lifecycles, energy production/rejection, mass accounting and structural load requirements.
-
Pioneer model runtime — embedded GLB, source model, supported materials, performance limits and remaining gaps.