个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Self-hosted, creator-first streaming and distribution.
Paperweight turns your own machine into a creator-owned station: it scans a local media vault, broadcasts a continuous HLS stream, serves a listener player, and provides a local creator dashboard for scheduling, uploads, access tokens, vault pricing, analytics, tips, and payment-backed unlocks.查看完整 README ↗Self-hosted, creator-first streaming and distribution.
Paperweight turns your own machine into a creator-owned station: it scans a local media vault, broadcasts a continuous HLS stream, serves a listener player, and provides a local creator dashboard for scheduling, uploads, access tokens, vault pricing, analytics, tips, and payment-backed unlocks.
It is built for one creator or a small trusted team running one station on Windows, macOS, Linux, or a 64-bit Raspberry Pi. It is not a multi-tenant SaaS platform. Windows, macOS, and desktop Linux (Ubuntu-class) install as a desktop app; headless Linux and Raspberry Pi install from source.
vault/./feed.xml./embed for external websites.| Platform | Public install path |
|---|---|
| Windows 10/11 x64 | Electron desktop app installer (cd electron && npm run dist) |
| macOS | Electron desktop app installer (cd electron && npm run dist) |
| Linux x64 desktop (Ubuntu-class) | Electron desktop app — AppImage/deb (cd electron && npm run dist:linux) |
| Linux x64 server/headless | scripts/install.sh, then scripts/setup.sh |
| Raspberry Pi 64-bit | scripts/install.sh, then scripts/setup.sh |
FFmpeg and ffprobe are bundled with every distribution (the Linux/Pi executable and
the Windows/macOS/Linux desktop app) — no separate install step is needed. If you're
instead running from source with npm start, install them yourself and make sure
they're on PATH; see TROUBLESHOOTING.md.
The Electron app isn't code-signed yet, so Windows SmartScreen / macOS Gatekeeper
will warn on first run — see TROUBLESHOOTING.md. If you'd
rather run from source instead of using the desktop app, the same
scripts/install.ps1 / scripts/install-macos.sh / scripts/install.sh +
scripts/setup.sh flow documented for Linux still works.
Windows / macOS / Linux desktop (desktop app):
cd electron
npm ci
npm run dist # Windows / macOS
npm run dist:linux # Linux
Then run the installer produced in electron/dist/ (NSIS .exe on Windows, .dmg
on macOS, .AppImage or .deb on Linux). The app walks you through setup on
first launch — no terminal needed after this.
Linux server / Raspberry Pi (from source):
bash scripts/install.sh
bash scripts/setup.sh
npm run preflight
npm start
Open:
http://localhost:3000
Dashboard:
http://localhost:3000/#dashboard
Use the dashboard token printed by scripts/setup.sh.
For live local testing from this checkout:
npm run dev
That starts the source server with backend restarts and browser live reload for
client/ and landing/ changes. To test the desktop wrapper without rebuilding
or reinstalling an app package:
npm run dev:desktop
See docs/DEVELOPMENT.md for details.
| Tier | Access |
|---|---|
free | Public tracks only |
subscriber | Public + supporters-only tracks |
pro | Everything in subscriber |
all_access | All content including vault when the creator enables all-access vault inclusion |
Listeners get a tier by redeeming a creator token, subscribing through a configured payment provider, or having a token assigned directly to their listener account.
| Setting | Who can play |
|---|---|
public | Everyone |
supporters_only | Subscriber tier and above, or scoped token holders |
vault | Paid unlock, scoped token, project unlock, track unlock, or enabled all-access |
The live broadcast playlist only uses public media. Gated media is served through library and download access checks.
Before public distribution, run:
npm run release:check
That runs the clean/release checks, tests, preflight, migration checks, analytics checks, package asset checks, and production audit.
Convenience executable packaging for Linux/Raspberry Pi remains available:
npm run build:exe
By default this builds the native Linux executable for the current CPU. Linux
x64 and ARM64 hosts can build the other architecture explicitly with
--target <linux-x64|linux-arm64> --allow-cross, or both with
--all --allow-cross. Cross-builds require a published target-compatible
better-sqlite3 prebuild. The
Build Executables GitHub Actions workflow builds and smoke-tests Linux x64
and Raspberry Pi/Linux ARM64 artifacts on matching hosted runners, and
separately builds the Windows/macOS/Linux Electron installers as a packaging check.
Desktop app packaging automatically selects the current OS:
cd electron && npm ci && npm run dist
The guarded dist:win, dist:mac-universal, and dist:linux commands remain
available when an explicit target command is useful.
client/
creator.html shipped player and creator dashboard
index.html optional landing/about page at /landing
src/
api/ Express API routes
auth/ listener tokens, tiers, access checks
broadcast/ FFmpeg HLS engine, playlist, scheduler
db/ SQLite migrations and helpers
events/ first-party audience and lifecycle events
jobs/ durable local background-job runner
insights/ deterministic Today recommendations
releases/ coordinated release campaigns
automations/ consent-aware lifecycle recipes and delivery outbox
ops/ station checks and verified backups
participation/ requests, polls, votes, and premiere reminders
middleware/ CSRF and rate limit middleware
scanner/ vault watcher, adapters, ffprobe metadata
setup/ shared .env/folder provisioning (Electron wizard + setup.sh)
electron/ Windows/macOS/Linux desktop app (Electron + electron-builder)
scripts/
install.ps1 Windows source-install (alternative to the desktop app)
install-macos.sh macOS source-install (alternative to the desktop app)
install.sh Linux / Pi installer
setup.sh interactive .env and folder setup
build-exe.js Linux/Pi convenience executable packaging
preflight.js release/runtime readiness check
smoke.js HTTP smoke test against a running server
Runtime data:
.env
vault/
data/
logs/
hls_output/
Copyright Paperweight Systems LLC. All rights reserved unless a separate license file says otherwise.