Replace the community relay-setup guides with a first-party step-by-step guide on the website
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 52/100
- issue の種類
- ドキュメント
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- docker, nginx, typescript, ubuntu
調査の方向性
Start with README.md, deploy/README.md, CLI.md, CONFIGURATION.md, and the website/site docs and get-started pages to find the current setup steps and how repository files become website pages. Build the guide from those sources, then verify its commands against the named release on a clean Ubuntu 24.04 VPS and run the website build. Done means the guide and links meet the acceptance criteria, including a working WSS relay, valid NIP-11 response, and successful event publish/read.
索引モデルが issue の本文から書いたものです。
説明
Replace the two third-party guides that currently serve as nostream's onboarding path with one guide we own and keep working.
Why
README.md § Full Guide points only at community write-ups:
- "Set up a Paid Nostr relay with Nostream and ZEBEDEE" —
https://docs.zbdpay.com/payments/nostr/nostr-relay. Dead link: 301s tohttps://docs.zbdpay.com/bitcoin/payments/coverage, a generic "Global Support" page with no nostream or relay content. - "Set up a Nostr relay in under 5 minutes" —
https://andreneves.xyz/p/set-up-a-nostr-relay-server-in-under. Still loads (200), but it is a December 2022 Substack post that clones the repo, runspnpm installon the host, writessettings.yamlby hand and fronts it with nginx + certbot. Nothing in it matches today's Compose CLI, the GHCR production image, or thedeploy/bootstrap path.
The website (website/site, deployed to nostream.dev) has no operator guide at all: /get-started is the agent-schematic card and /docs is a set of reference pages (quick start, CLI, configuration, deploy, runbook, Tor/I2P, Redis). Its docs index reads "Every page here is rendered from the repository, so it matches the code" — true for the reference pages, but the only narrative, end-to-end setup path it offers is the README. So both surfaces inherit the same legacy guides.
A reader who wants to stand up a relay without an AI agent currently has no first-party, current, step-by-step path.
What to build
One canonical guide on the website, published under /docs (e.g. /docs/setup), written and reviewed in this repo and rendered from a file in the repo so the "rendered from the repository" claim stays true.
Suggested spine, drawn from deploy/README.md, CLI.md and CONFIGURATION.md — adjust where they disagree:
- What you need — Linux host, Docker Engine + Compose plugin installed from Docker's apt/yum repo (not snap), a domain you control, DNS A/AAAA pointed at the host.
- Get the code —
git cloneandcd nostream; note the release-managed files vs. your.env. - Bootstrap the deploy root —
./deploy/bootstrap.sh /opt/nostream, what it creates,.envpermissions, the generatedSECRET. - Choose the relay image —
ghcr.io/cameri/nostream:<tag>versus a local build, and how pinned tags relate to releases. - Configure
.env—RELAY_URL/ domain, secrets, optional payment processor keys; link toCONFIGURATION.mdrather than duplicating every key. - First start —
docker compose up -d, confirming Postgres and Redis are healthy, migrations ran, and the relay is listening on loopback only. - Put it behind TLS — Caddy or nginx in front (pick one as the primary path), WebSocket upgrade headers, then accept
wss://in a client. - Verify — NIP-11 document over HTTPS,
/healthzand/readyz, publish one event and read it back,nostream info. - Keep it running — updating via
deploy/recreate-relay.sh, backups, log location; link to the deploy runbook and HAProxy page instead of repeating them. - Optional next steps — payments (link to the existing payments section), Tor/I2P page, manual/admin console.
Requirements for the guide:
- Every command must be copy-pasteable and run against the current release. Strip dead or stale commands from the community guides rather than inheriting them.
- State the version it was verified against and how it will be kept current (e.g. reviewed when a release changes
deploy/). - No referral links, no third-party product upsells, no screenshots that go stale.
- Call out what a reader should not do (copy
migrations/to the host, write a fullsettings.yaml, expose the relay port directly) — the traps the old guides taught.
README change: replace the § Full Guide list with a single link to the website guide, plus a one-line "prefer to do it by hand?" pointer to /docs. Keep the in-repo quick starts in place; they are referenced by website/site docs pages and by CLI.md. The line in § Accepting Payments that says "Complete one of the Quick Start guides in this document" should point at whichever path is canonical.
Website change: /docs index gets the guide as the "Start here" card ahead of the reference pages; /get-started gains a visible "or set it up yourself → /docs/setup" link so the schematic is not the only route on that page.
Out of scope
- Rewriting the third-party guides' authors or crediting them differently (a short "further reading" line may remain).
- Provider-specific guides (AWS is issue #645; Railway has its own template).
- Changes to the Rust rewrite's docs.
Acceptance criteria
-
https://nostream.dev/docs/setupexists, is linked from/docsand from/get-started, and is built from a tracked file in the repo. - Following the guide on a clean Ubuntu 24.04 VPS reaches a relay answering
wss://with a valid NIP-11 document and a successful event publish/read, with no step that is not in the guide. -
README.md§ Full Guide no longer links a dead URL and points to the verified guide; the ZEBEDEE/ZBD link is gone. - No command in the guide fails against the release named at its top.
-
pnpm --dir website/site build(or the site's build command) passes.
- 主要言語
- TypeScript
- スター
- 829
- フォーク
- 234
- 平均マージ
- 18時間 43分
- マージ済み PR(30日)
- 67
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
cameri/nostream のほかの issue
-
Website
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
メンテナーはふだん 1 日以内に返信
-
fix(website): update operator console film with fresh notifications screenshot対応中かも @Ferryx349 が今日担当しました。 オープンbug Website
cameri/nostream#893 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
メンテナーはふだん 1 日以内に返信
cameri/nostream の issue をすべて見る
似ている issue
-
"Contains" page watch never matches when its text has a trailing space対応中かも @RaphaelFakhri が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
CopilotKit/openmuse#184 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
bootstrap-vue-next/bootstrap-vue-next#3357 ·
メンテナーはふだん 1 日以内に返信
-
[quality] tide.ts: six mutation survivors in the merge-queue gate, draft refusal, fork-403 workflow-file diagnosis and getPull's fork flag are unpinned by any test対応中かも @hivecommons-hive が今日担当しました。 オープンagent/quality needs-kind stage/040-covered-by-pr testing
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
cncf/prow-github-actions#517 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
Unsampled pageload span is profiled when profileLifecycle is 'trace' (browser UI profiling)対応中かも @Jxxunnn が今日担当しました。 オープンBrowser Waiting for: Product Owner
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
getsentry/sentry-javascript#25497 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信