Skip to content

Install

ShowPony is a standalone Kumiko app — same shape as production apps: Bun, Postgres, Redis, published @cosmicdrift/kumiko-* packages from npm. This chapter gets a fresh clone running locally.

  • Bun
  • Docker (for Postgres + Redis)
Terminal window
git clone https://github.com/CosmicDriftGameStudio/show-pony
cd show-pony
cp .env.example .env
docker compose up -d # Postgres + Redis
bun install
bun dev

The defaults in .env.example already match docker-compose.yml — a fresh clone runs with no edits. *.localhost resolves to 127.0.0.1 in the browser, so you never touch /etc/hosts.

FileWhat it does
package.jsonnpm deps + the bun dev script
tsconfig.json / biome.jsonstrict TS + lint rules
.env.example / docker-compose.ymlPostgres + Redis for local dev
bin/server.tsdev server: runDevApp + demo host + admin login
src/run-config.tssingle source of truth for feature composition
src/features/show-pony/feature.tsthe showpony feature (built up in later chapters)
src/styles.csslavender/violet brand (see chapter 2)
src/public/guest invite page (React, chapter 9)

At the end of this chapter the process boots. After chapter 3 you’ll reach the login screen below; seeded events and guests appear once the app is fully wired in chapter 6.

Host login on the apex
Terminal window
bun run typecheck # green
bun dev

Open http://show-pony.localhost:4180 — login as [email protected] / changeme once foundation auth is mounted. For the platform operator workspace, use [email protected] / changeme (chapter 8).

Postgres and Redis for local dev:

# Local Postgres + Redis for `bun dev`. Start with `docker compose up -d`.
# The defaults match .env.example, so a fresh clone runs with no edits.
services:
postgres:
image: postgres:18.4-alpine
environment:
POSTGRES_USER: showpony
POSTGRES_PASSWORD: showpony
POSTGRES_DB: show_pony_dev
ports:
- "5432:5432"
volumes:
- showpony-pg:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U showpony -d show_pony_dev"]
interval: 3s
timeout: 3s
retries: 10
redis:
image: redis:8-alpine
ports:
- "6379:6379"
meilisearch:
image: getmeili/meilisearch:v1.12
environment:
MEILI_MASTER_KEY: kumiko-dev-key
MEILI_ENV: development
ports:
- "17700:7700"
volumes:
- showpony-meili:/meili_data
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:7700/health"]
interval: 5s
timeout: 3s
retries: 10
volumes:
showpony-pg:
showpony-meili:

📄 On GitHub: docker-compose.yml