Quickstart (Self-Host)
Get Deckyard running on your machine. The installer takes one line; the manual path takes five.
What This Is
Section titled “What This Is”Deckyard is a self-hosted web app for creating and presenting slide decks. It runs as:
- A plain Node.js server
- A vanilla ESM client (no bundler)
- PostgreSQL for all data, with uploaded media on disk
Requirements
Section titled “Requirements”Either of these is enough; the installer uses whichever it finds.
- Docker, or
- Node.js 22 or newer with npm, plus a PostgreSQL database you run yourself
With Docker the database comes along: the compose stack ships its own PostgreSQL. On the Node path the server exits at boot when it cannot reach one (see Database Configuration).
The installer does not install Docker, Node or PostgreSQL for you. If neither Docker nor Node is present it says where to get them and stops.
One-Line Install
Section titled “One-Line Install”curl -fsSL https://deckyard.eu/install.sh | bashThis clones the repository, auto-detects Docker or Node, writes a local .env, installs dependencies, starts the app and opens your browser at http://localhost:4177. Nothing leaves your machine.
It is safe to re-run: an existing install is updated in place, and an existing .env is left alone.
Optional knobs, all set as environment variables:
| Variable | Effect |
|---|---|
DECKYARD_DIR | Target directory (default: ./deckyard) |
DECKYARD_BRANCH | Branch to check out (default: main) |
DECKYARD_MODE | Force docker or node instead of auto-detecting |
PORT | App port (default: 4177) |
Piping a script into bash deserves a look first. It is served at deckyard.eu/install.sh, and the same file is scripts/install.sh in the repository.
Manual Install
Section titled “Manual Install”git clone https://github.com/jaapstronks/deckyard.gitcd deckyardnpm installnpm run setup # optional: AI key, auth, port (Enter accepts defaults)npm run startBefore npm run start, point the DATABASE_* variables in .env at your PostgreSQL and run npm run db:migrate once (and again after each update). Database Configuration has the variables.
Access
Section titled “Access”Open your browser to: http://localhost:4177
Configuration
Section titled “Configuration”npm run setup writes a .env for you. To edit it by hand, copy .env.example to .env and change what you need.
See Environment Variables for the full configuration reference.
Letting an AI Agent Do It
Section titled “Letting an AI Agent Do It”Deckyard is MCP-native, so a shell-capable coding agent can clone it, configure it with your keys, start it and wire itself in over MCP. The setup script takes flags for exactly that:
npm run setup -- --yes --ai=claude --ai-key=… --auth=offNext Steps
Section titled “Next Steps”- Docker Deployment - the production path, with Compose
- Configuration - customize your instance
- Creating Presentations - start making presentations