- Operating
- Self-hosting
Native binary
Every v3 alpha release publishes a self-contained happyview binary for macOS (Apple silicon and Intel) and Linux (x86_64 and arm64, glibc and static musl). It carries its dashboard and its database migrations, so it needs nothing beside it but a database. There is no Windows build.
-
Open the releases page and pick the newest
v3.0.0-alpha.*prerelease. Stable releases are v2 and don’t carry these archives. -
Download
happyview-<target>.tar.xzand the.sha256file beside it. On Linux, themuslbuild runs on any distribution; thegnubuild needs glibc 2.35 or later. -
Check the archive and extract it:
Terminal window shasum -a 256 -c happyview-<target>.tar.xz.sha256tar -xJf happyview-<target>.tar.xzcd happyview-<target> -
Start the server:
Terminal window DATABASE_URL="sqlite://$PWD/data/happyview.db?mode=rwc" \PUBLIC_URL=http://127.0.0.1:3000 \SESSION_SECRET="$(openssl rand -base64 48)" \./happyview -
Confirm it’s serving.
curl http://127.0.0.1:3000/healthanswersok.
The startup log warns that no interpreter is installed. Install one before saving any script (Languages), and set TOKEN_ENCRYPTION_KEY before you sign an app in (Production). The session secret in the command above changes on every run, so keep yours in a file for a real instance.
The archive also holds happyview-codemod, migrate-lua-sql and migrate-space-cids; Other binaries describes them.
The dashboard is served from inside the binary, and BASE_PATH is applied to it as it is served. Set STATIC_DIR to serve a different build from disk instead. The server does not rewrite files read from a directory, so that build has to be exported for the subpath you serve it under; the Docker image does this itself at startup, which is why BASE_PATH works there. A STATIC_DIR that is set but empty counts as unset.
Set PLUGIN_REGISTRY_URL=off on an instance with no outbound network to stop it reading the official registry.
© HappyProto

