M Mermaduckle Deployment guide
Deployment guide

Deploy Mermaduckle in your environment.

This guide covers the self-hosted deployment path for Mermaduckle. A live product environment is available at /app for evaluation, while customer deployments can run in Fly or other infrastructure with either self-managed or supported rollout.

01

Deployment options

Mermaduckle supports live evaluation, self-hosted deployment, and managed rollout.

Live product environment

Evaluate the product

Use /app to review the UI and operating model before deployment planning.

Self-hosted

Deploy in your own environment

Use this guide to run the same service in Fly or your preferred infrastructure stack.

Managed service

Operate with support

Use a supported rollout when implementation speed and operating help are the priority.

02

Local start

Run a local instance from the repository root and open the product in the browser.

cargo run -p mermaduckle-server
  • Marketing site: /
  • Product UI: /app
  • Deployment guide: /docs
  • Health endpoint: /api/health
03

Deploy to Fly.io

The repository already includes the deployment artifacts required for a Fly rollout.

flyctl deploy -a <app-name> --remote-only --config fly.toml

The current repository configuration uses app = "mermaduckle" and serves the application on internal port 3001.

04

GitHub Actions deploys

Use an app-scoped deploy token to ship to Fly automatically on pushes to main.

fly tokens create deploy --app <app-name>
  • Add the returned token as the repository secret FLY_API_TOKEN.
  • The deployment workflow lives in .github/workflows/fly-deploy.yml.
  • The workflow executes flyctl deploy --remote-only --config fly.toml.
05

Local deployment script

Use the included PowerShell helper when you want to release from your own machine.

pwsh -File tools/deploy_fly.ps1 -AppName mermaduckle -RemoteOnly

Add -BuildOnly if you want to build and push the image without releasing it immediately.

06

Domain and certificate workflow

Use these Fly commands when configuring a production domain and managed TLS.

flyctl domains add mermaduckle.com -a <app-name>
flyctl ips allocate-v4 -a <app-name>
flyctl certs create mermaduckle.com -a <app-name>
07

Environment variables

These values are read by the server at runtime.

DATABASE_PATHdata/app.db
OLLAMA_URLhttp://localhost:11434
HOST0.0.0.0
PORT3001
08

Repository deployment artifacts

These are the key files involved in a Fly deployment and production rollout.

  • deploy/Dockerfile.fly
  • fly.toml
  • docs/deploy/fly.md
  • .github/workflows/fly-deploy.yml
  • tools/deploy_fly.ps1
  • README.md