---
title: "Deploy Jig"
description: "Reliable AI workflows with versioned TypeScript and scoped MCP tools."
category: "AI/ML"
url: https://railway.com/deploy/jig
---

# Deploy Jig

Reliable AI workflows with versioned TypeScript and scoped MCP tools.

**[Deploy Jig on Railway](https://railway.com/template/jig)**

- **Creator:** Jig
- **Category:** AI/ML

## Template content

### jig

- **Image:** ghcr.io/agamm/jig:latest
- **Health check:** /api/health
- **Public domain:** Yes

## Documentation

# Deploy and Host Jig

Deploy a clean, always-on Jig instance.

## About Hosting

The template provisions:

- one Jig service from the public `ghcr.io/agamm/jig:latest` image;
- a health check at `/api/health` and an always-restart policy;
- a blank persistent volume mounted at `/data`;
- public networking for the dashboard and API.

The image is built from the public repository by GitHub Actions. Its Dockerfile
uses an explicit runtime-file allowlist, and its build context excludes local
state and secrets.

No maintainer data is copied. The template has no variables and contains no
database, credentials, OAuth state, environment secrets, connected accounts,
generated schemas, logs, or personal configuration.

## Why Deploy Jig on Railway

- Keep scheduled workflows running when a local machine is offline.
- Persist encrypted credentials, versioned jigs, schedules, and run history.
- Get a managed public HTTPS endpoint with an automated health check.
- Update from the same privacy-safe public image used by the template.

## Common Use Cases

- Draft thoughtful follow-ups after meetings.
- Surface people worth congratulating or reconnecting with.
- Run recurring briefings, monitoring, triage, and reporting workflows.
- Build approval-gated automations with scoped MCP tools.

## Dependencies for Jig Hosting

Jig needs an OpenRouter API key for model calls. Add it inside Jig after first
unlock; it is not a Railway template variable. External connections such as
Gmail, Calendar, GitHub, Apify, or Composio are optional and are connected by
each deployer from the dashboard.

### Deployment Dependencies

- Public container image: `ghcr.io/agamm/jig:latest`
- One blank Railway volume mounted at `/data`
- One Railway-provided public domain
- No preconfigured variables, registry credentials, or maintainer data

## First Run

After deployment:

1. open the generated Railway domain;
2. create the instance password;
3. add your OpenRouter API key in Settings;
4. connect the services your workflows need;
5. describe a jig, review its TypeScript, and approve it.

The `/data` volume stores your encrypted credentials, versioned jigs, schedules,
and run history across redeploys.

## Operate Jig

- Health: `GET /api/health`
- Update a template install: redeploy from the latest image in Railway
- Update from a linked checkout: `bun run jig deploy --update`
- Diagnose: `bun run jig doctor`
- Remote logs and test runs: `bun run jig debug`

See `docs/operations.md` in the repository for the full deployment and recovery runbook.


## Similar templates

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [stella](https://railway.com/deploy/stella) — Self-host stella with web, API, Postgres, Redis, and object storage.
- [Hermes Agent | OpenClaw Alternative with Dashboard](https://railway.com/deploy/hermes-agent-or-openclaw-alternative-wit) — Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

Open this page in a browser: https://railway.com/deploy/jig
