-
Notifications
You must be signed in to change notification settings - Fork 615
[DOCS]: Add Fly.io deployment guide #21
Copy link
Copy link
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is neededmarkdownDocumentation (mkdocs / markdown)Documentation (mkdocs / markdown)
Milestone
Description
📚 Documentation Issue Summary
The documentation currently lacks a guide for deploying MCP Gateway to Fly.io, a developer-friendly platform for running apps globally with built-in TLS, persistent volumes, and Postgres services.
📍 Location of the Problem
Suggested location:
docs/docs/deployment/fly-io.md
✏️ Type of Issue
- Missing explanation or example
- Unclear deployment coverage
💡 Suggested Fix or Clarification
Create a new deployment guide following the format used in docs/docs/deployment/ibm-code-engine.md. Include both a Fly Launch (guided) path and a manual CLI workflow.
✅ Overview
- Explain Fly.io as a global app platform for containers.
- Emphasize free-tier availability and built-in TLS with
fly.devsubdomain. - Mention support for Postgres (via
fly postgres create).
🛠 Prerequisites
- Fly.io account (https://fly.io)
- Fly CLI (
brew install flyctlor see docs) - Docker or Podman (for local image builds, optional)
.envfile with secure values (JWT_SECRET_KEY,DATABASE_URL)fly.tomlconfig file
⚙️ Setup Steps
1. Initialize Fly project
fly launch --name mcpgateway --image mcpgateway:latest --no-deploy2. Create volume (optional, for SQLite)
fly volumes create mcpgw_data --region ord --size 13. Create Fly Postgres (for production)
fly postgres create --name mcpgw-db --region ord
fly postgres attach --app mcpgateway --postgres-app mcpgw-db4. Set secrets
fly secrets set JWT_SECRET_KEY=$(openssl rand -hex 32)
fly secrets set BASIC_AUTH_USER=admin BASIC_AUTH_PASSWORD=changeme
fly secrets set DATABASE_URL=postgresql://...5. Deploy
fly deploy🔒 Auth & Access
Generate a token locally:
python -m mcpgateway.utils.create_jwt_token -u adminThen access:
curl -H "Authorization: Bearer $MCPGATEWAY_BEARER_TOKEN" \
https://mcpgateway.fly.dev/tools📝 Features to Document
- Persistent volume for SQLite (ephemeral vs. persistent)
- Using
fly secretsto inject.envvalues - TLS support by default
- Optional: custom domain setup with certs
- Restart/scale config (
fly scale)
🧩 Additional Notes
See https://fly.io/docs for volume limitations and app restart behavior. Mirror structure from IBM Code Engine doc where possible for consistency.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is neededmarkdownDocumentation (mkdocs / markdown)Documentation (mkdocs / markdown)