Development setup
Run the server and Studio locally
Section titled “Run the server and Studio locally”You need Go, Node.js with npm, and a PostgreSQL database. Use the versions in mise.toml: Node.js 22 and Go 1.26 (Android work also needs Java 17, the Rust toolchain from rust-toolchain.toml, cargo-ndk, and the pinned Android NDK — see the Android player development guide). The Docker image is built with its own, possibly newer, builder versions, so it does not change what you install. Run make doctor to see what is missing. From the repository root:
-
Install workspace and Go dependencies:
Repository root · Install dependencies make bootstrap -
Set
TILECAST_DATABASE_URLto a development database Tilecast can use:Set the development database export TILECAST_DATABASE_URL='postgres://localhost:5432/tilecast?sslmode=disable' -
Start the Go server in one terminal:
Terminal 1 · Start the server make dev-server -
Start the Vite development server in a second terminal:
Terminal 2 · Start Studio make dev-dashboard
To explore Studio with sample data instead of an empty database, run a demo installation.
The Go server applies pending migrations during startup. Complete the one-time Owner setup in Studio when using a new database. Vite reloads dashboard changes; restart the Go server after changing server code. Server settings are read from TILECAST_* environment variables; deploy/docker/.env.example lists the deployment settings.
The repository’s development setup guide covers local database and migration workflows in more detail.
Check and build changes
Section titled “Check and build changes”From the repository root, make check runs the repository’s documented format, lint, test, and static checks. make build builds the dashboard bundle, server binary, and Android debug APK. Security reports follow the private process in the repository’s Security Policy.
Read the contribution guide
Work on the public docs
Section titled “Work on the public docs”The docs site is an npm workspace. Run these commands from the repository root:
npm run docs:devnpm run docs:checknpm run docs:buildFollow the documentation style guide. The docs build also checks internal links.