Quick Start
Prerequisites
Section titled “Prerequisites”- Rust 1.91+ — Chukfi CLI is a Rust binary. Install via rustup.
- PostgreSQL — via Docker, a local PostgreSQL service (Homebrew, Postgres.app), or AWS Secrets Manager
- Node.js 18+ — only if you’re using the Astro frontend integration (the CLI itself doesn’t need Node)
- An AWS account (for production deployment)
Install from Source
Section titled “Install from Source”The @chukfi/cli npm package is pending publication (targeting v0.3.0). For v0.2.x, install directly from GitHub:
cargo install --git https://github.com/smattera/chukfi-cms chukfi-binLocal Development
Section titled “Local Development”Start the API server:
chukfi serveChukfi handles PostgreSQL setup automatically:
- With Docker: If Docker is running, the CLI spawns an ephemeral
postgres:17-alpinecontainer on port 5433, runs migrations, and starts the API. - Without Docker (interactive prompt): If Docker is absent, the CLI walks you through connecting to a local PostgreSQL instance, or pulling development credentials from AWS Secrets Manager. It validates the connection and saves it to
.envso subsequent runs skip the prompt. - Starts the Rust API on port 8080.
Your CMS is now running at http://localhost:8080.
Create Your First Content
Section titled “Create Your First Content”chukfi content create \ --type blog-posts \ --title "Hello World" \ --fields '{"body":"<p>Welcome to Chukfi CMS</p>"}' \ --status draftTip:
chukfi content list --type blog-postslists all entries for a content type. Usechukfi content update --id <uuid> --status publishedto publish.
Seed Demo Data
Section titled “Seed Demo Data”Spin up demo content for testing:
chukfi seedGenerate a Dev JWT
Section titled “Generate a Dev JWT”Deploy to Production
Section titled “Deploy to Production”chukfi site deploy --dir ./frontend --project <cloudflare-project>A single command to deploy your frontend to Cloudflare Pages. Requires: Cloudflare Wrangler configured.
Coming in v0.3.0:
npx @chukfi/cli dev,npx @chukfi/cli init, andnpx @chukfi/cli deploy— ergonomic aliases wrapping the lower-level commands above.
Troubleshooting
Section titled “Troubleshooting”“Docker daemon not running”
Section titled ““Docker daemon not running””If Docker is absent, Chukfi will prompt you interactively for local PostgreSQL credentials or AWS Secrets Manager. To skip Docker entirely, ensure no Docker socket is available and run chukfi serve — the prompt will guide you.
“Address already in use (port 8080)”
Section titled ““Address already in use (port 8080)””Another process is occupying port 8080. Kill it with lsof -ti:8080 | xargs kill, or set CHUKFI_PORT=3000 in your .env file.
“AWS credentials not configured” (deploy)
Section titled ““AWS credentials not configured” (deploy)”Run aws configure to set up your AWS access key, secret key, and region. Deploy uses the default profile unless AWS_PROFILE is set.