docs(readme): add one-click Railway self-host option - #1155
docs(readme): add one-click Railway self-host option#1155dillonstreator wants to merge 2 commits into
Conversation
Link the published Maxun Railway marketplace template so users can deploy the multi-service stack (gateway, frontend, backend, browser, Postgres, MinIO) in one click. Co-authored-by: Cursor <cursoragent@cursor.com>
WalkthroughREADME.md adds one-click Railway self-hosting instructions, gateway URL guidance, optional AI key configuration, and a revised self-hosting upgrade sequence. ChangesRailway self-hosting documentation
Estimated code review effort: 1 (Trivial) | ~3 minutes Poem
๐ฅ Pre-merge checks | โ 5โ Passed checks (5 passed)
โจ Finishing Touches๐งช Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Template kickbacks are attributed via the published marketplace template, not the affiliate referralCode, so use the cleaner URL. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Actionable comments posted: 1
๐ค Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@README.md`:
- Line 124: Update the Railway deployment badge in README.md to either reference
a Railway template owned and maintained by the Maxun project or clearly label
the existing external template as community-authored before presenting it as a
self-hosted recommendation.
๐ช Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
โน๏ธ Review info
โ๏ธ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 6a094b91-13c6-44ec-8dc7-54eee4755911
๐ Files selected for processing (1)
README.md
|
|
||
| Deploy Maxun on Railway with a prewired multi-service stack (nginx gateway, frontend, backend, remote Chromium, PostgreSQL, and MinIO): | ||
|
|
||
| [](https://railway.com/deploy/maxun?referralCode=ToZEjF&utm_medium=integration&utm_source=button&utm_campaign=maxun) |
There was a problem hiding this comment.
๐ Security & Privacy | ๐ Major | ๐๏ธ Heavy lift
๐งฉ Analysis chain
๐ Script executed:
#!/bin/bash
set -euo pipefail
echo "== README excerpt =="
if [ -f README.md ]; then
sed -n '115,145p' README.md
else
echo "README.md not found"
fi
echo
echo "== Search Railway references =="
rg -n "railway|Railway" README.md .github . 2>/dev/null | head -n 100 || true
echo
echo "== Git status/stat =="
git status --short
git diff --stat HEAD 2>/dev/null || trueRepository: getmaxun/maxun
Length of output: 2953
๐ Script executed:
#!/bin/bash
set -euo pipefail
echo "Resolving Railway page metadata via HTTP headers/body snippets =="
python3 - <<'PY'
import urllib.request
url = "https://railway.com/deploy/maxun"
req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
with urllib.request.urlopen(req, timeout=20) as r:
print("status", r.status)
print("final-url", r.geturl())
text = r.read(81920).decode("utf-8", "replace")
for needle in ["osbytes/template-maxun", "dillonstreator", "maxun", "Deploy on Railway", "template"]:
count = text.lower().count(needle.lower())
print(f"{needle}: {count}")
for i,line in enumerate(text.splitlines(),1):
if needle.lower() in line.lower():
print(f"line {i}: {line.strip()[:240]}")
if i > 5:
print("(truncated)")
break
PYRepository: getmaxun/maxun
Length of output: 2812
๐ Script executed:
#!/bin/bash
set -euo pipefail
echo "Fetch Railway deploy page with trusted certs =="
python3 - <<'PY'
import urllib.request, ssl, sys
url = "https://railway.com/deploy/maxun"
try_certs = [True, False]
for verify in try_certs:
ctx = ssl.create_default_context() if verify else ssl._create_unverified_context()
try:
with urllib.request.urlopen(urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"}), context=ctx, timeout=20) as r:
print("status", r.status, "url", r.geturl())
text = r.read(120000).decode("utf-8", "replace", errors="replace")
for needle in ["osbytes/template-maxun", "dillonstreator", "maxun", "Deploy on Railway"]:
found = [i+1 for i,line in enumerate(text.splitlines(),1) if needle.lower() in line.lower()][:12]
print(f"{needle}: hit lines {found}")
print("snippet relevant:")
for i,line in enumerate(text.splitlines(),1):
if any(s in line.lower() for s in ["github", "template", "deploy", "railway", "osbytes", "dillonstreator"]):
print(f"{i}: {line[:300]}")
except Exception as e:
print("verify=" if verify else "no-verify=", type(e).__name__, str(e))
PY
echo
echo "Alternative cURL probe =="
URL="https://railway.com/deploy/maxun"
set +e
status=$(curl -Is --max-time 20 "$URL" | head -n 1 | awk '{print $2}')
printf "curl_status=%s\n" "$status"
[ -n "$status" ] || exit 0
curl -L -s --max-time 20 "$URL" | python3 - <<'PY'
import sys
text=sys.stdin.read()
for needle in ["osbytes/template-maxun", "dillonstreator", "maxun", "Deploy on Railway"]:
hits=[i+1 for i,line in enumerate(text.splitlines(),1) if needle.lower() in line.lower()][:16]
print(f"{needle}: {hits}")
PYRepository: getmaxun/maxun
Length of output: 588
๐ Script executed:
#!/bin/bash
set -euo pipefail
echo "Fetch Railway deploy page body via curl with headers =="
curl -L -s --max-time 30 -D - https://railway.com/deploy/maxun \
-H "User-Agent: Mozilla/5.0" -H "Accept: text/html,*/*" > /tmp/railway_deploy_maxun.html
echo "== response excerpt =="
sed -n '1,120p' /tmp/railway_deploy_maxun.html
echo "== relevant line searches =="
python3 - <<'PY'
from pathlib import Path
path = Path("/tmp/railway_deploy_maxun.html")
text = path.read_bytes().decode("utf-8", errors="replace")
needles = ["osbytes", "dillonstreator", "template", "maxun", "git", "railway.com/deploy/maxun", "github"]
for needle in needles:
hits=[]
for i,line in enumerate(text.splitlines(), 1):
if needle in line:
hits.append(i)
print(f"{needle}: {hits[:10]}")
PYRepository: getmaxun/maxun
Length of output: 11556
Verify the Railway templateโs source and authorization before presenting it as the recommended self-hosted path.
The Railway deploy page references osbytes/template-maxun and dillonstreator in its metadata, while this README presents it under getmaxun/maxun. Because this path provisions services and stores application secrets, either link to a template owned/maintained under the Maxun project or explicitly label it as a community-authored deployment template.
๐ค Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` at line 124, Update the Railway deployment badge in README.md to
either reference a Railway template owned and maintained by the Maxun project or
clearly label the existing external template as community-authored before
presenting it as a self-hosted recommendation.
Summary
Adds a one-click Deploy on Railway path to the README so users can self-host Maxun without wiring Docker Compose by hand.
Template stack: nginx gateway, frontend, backend, remote Chromium, PostgreSQL, and MinIO.
Test plan