mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-25 15:08:47 -07:00
4edf25b2d5
Targets Rec Room 2020.12.18 client.
Re-import after adding:
- DorkNet.ClientMod/dorknet-clientmod.json.template — config schema
the launcher's manifest-driven patcher renders into UserData/.
- tools/build-patcher-zip.ps1 — produces the dorknet-clientpatch-{key}.zip
Release asset the launcher fetches.
- .github/workflows/release.yml — auto-publishes both Release assets
on v1-december-* tag push.
Scrubbed via maintainer-side scrub-for-public.ps1: same drop rules as
the prior import, plus build-patcher-zip.ps1 added to the tools/
allow-list so it survives the scrub.
73 lines
3.3 KiB
Plaintext
73 lines
3.3 KiB
Plaintext
# DorkNet Cloudflare Tunnel config — Coolify production target.
|
|
# ────────────────────────────────────────────────────────────────────
|
|
# Routes every localhost subdomain through the tunnel into the server
|
|
# container running on Coolify. The tunnel runs as its own Coolify
|
|
# service (or as a sidecar in the same project) and reaches the
|
|
# server over the internal Docker network.
|
|
#
|
|
# Two upstream options, pick one for {{UPSTREAM}}:
|
|
#
|
|
# a) Internal Docker DNS (preferred when cloudflared runs in the
|
|
# same Coolify project as the server):
|
|
# http://dorknet-server:8080
|
|
# The server image binds Kestrel to 0.0.0.0:8080 (HTTP only —
|
|
# this leg of traffic is already inside the project network).
|
|
#
|
|
# b) Coolify-published HTTPS endpoint (when cloudflared runs in a
|
|
# separate project or on a different host):
|
|
# https://dorknet.<your-coolify-domain>
|
|
# Requires Coolify to be issuing a real TLS cert for that
|
|
# hostname. originRequest.noTLSVerify can stay off.
|
|
#
|
|
# Origin TLS is now off the critical path because the server speaks
|
|
# plain HTTP inside the project network. Traffic between cloudflared
|
|
# and Cloudflare's edge is still TLS-encrypted; the only unencrypted
|
|
# leg is server → cloudflared inside the same Docker network.
|
|
|
|
tunnel: {{TUNNEL_ID}}
|
|
credentials-file: {{CREDENTIALS_FILE}}
|
|
|
|
# Defaults that apply to every ingress rule unless overridden. The
|
|
# notify.* SignalR hub needs long-lived WebSockets — cloudflared's
|
|
# defaults are conservative and can tear idle connections down, which
|
|
# the 2020 watch surfaces as "check your internet" mid-session. Two
|
|
# levers matter:
|
|
# * keepAliveTimeout — how long cloudflared keeps the origin
|
|
# connection pooled and alive between requests; long-lived
|
|
# WebSockets stay open well past the default 1m30s, raise it.
|
|
# * connectTimeout — initial origin handshake; bumping it past the
|
|
# default avoids spurious 502s when the server is warm-booting
|
|
# after a Coolify deploy.
|
|
# These pair with the matching Program.cs SignalR + WebSocket
|
|
# KeepAliveInterval values (15s / 30s) so traffic flows continuously
|
|
# in both directions and the tunnel never marks the stream idle.
|
|
originRequest:
|
|
connectTimeout: 30s
|
|
tlsTimeout: 10s
|
|
tcpKeepAlive: 30s
|
|
keepAliveConnections: 100
|
|
keepAliveTimeout: 10m
|
|
noHappyEyeballs: false
|
|
|
|
# Ingress rules are evaluated top-down. The wildcard catches every
|
|
# subdomain we don't list explicitly, so when the 2020 Rec Room client
|
|
# (post-domain-patch) hits a niche subdomain like roomieintegrations.
|
|
# localhost, the request still reaches the server.
|
|
ingress:
|
|
- hostname: localhost
|
|
service: {{UPSTREAM}}
|
|
originRequest:
|
|
httpHostHeader: localhost
|
|
|
|
- hostname: "*.localhost"
|
|
service: {{UPSTREAM}}
|
|
# cloudflared forwards the original Host header by default, which
|
|
# is what the server's [Host("api.localhost")] etc. attributes match
|
|
# against. No explicit httpHostHeader here so wildcards stay
|
|
# transparent.
|
|
|
|
# Catch-all rejects anything that didn't match (defensive — the
|
|
# tunnel only routes traffic for hostnames we've added DNS records
|
|
# for, so this is rarely reached).
|
|
- service: http_status:404
|