Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions .github/workflows/fly-deploy-console.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Deploy Fly Console

# Manually deploy the mesh-llm Fly console app (mesh-llm-console).
# The image is built on Fly's remote builders from fly/Dockerfile, so this
# runner only orchestrates the deploy.
#
# Auth: flyctl reads FLY_API_TOKEN. Set it as a repo secret with an
# app-scoped deploy token:
# fly tokens create deploy -a mesh-llm-console
# gh secret set FLY_API_TOKEN

on:
workflow_dispatch:
inputs:
ref:
description: Git ref (branch/tag/SHA) to deploy. Defaults to the branch this is run from.
required: false
type: string

permissions:
contents: read

concurrency:
group: fly-deploy-console
cancel-in-progress: false

jobs:
deploy:
name: Deploy console to Fly
runs-on: ubuntu-24.04
environment: fly-console
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref || github.ref }}

- name: Set up flyctl
uses: superfly/flyctl-actions/setup-flyctl@master

- name: Deploy console
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
run: |
flyctl deploy \
--config fly/console/fly.toml \
--dockerfile fly/Dockerfile \
--remote-only
6 changes: 6 additions & 0 deletions ci/ci.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ subgraph PRCI["pr_builds.yml · PR Builds"]
WebsiteDeploy["website-pages.yml\nActions Pages deploy\nPublic Website environment"]
DockerPublish["docker.yml\ntag / dispatch publish"]
Release["release.yml\nrelease artifacts + publish gates"]
FlyConsole["fly-deploy-console.yml\nmanual Fly console deploy"]
end

style Quality fill:#1a3a5c,stroke:#4a90d9,color:#e8f4fd
Expand Down Expand Up @@ -192,6 +193,11 @@ subgraph PRCI["pr_builds.yml · PR Builds"]
request CI; non-PR workflows (`ci.yml`, `website-pages.yml`, `docker.yml`,
`release.yml`) own main, dispatch, tag, website deployment, and release-grade
publishing behavior.
- `fly-deploy-console.yml` is a manual (`workflow_dispatch`) deploy of the
`mesh-llm-console` Fly app. It builds the image on Fly's remote builders from
`fly/Dockerfile` and authenticates with the app-scoped `FLY_API_TOKEN` repo
secret. It carries no pull request trigger and does not run release or smoke
jobs.

## Public website deployment

Expand Down
184 changes: 0 additions & 184 deletions fly/DOMAIN_CUTOVER.md

This file was deleted.

3 changes: 3 additions & 0 deletions fly/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ COPY crates/skippy-cache/ crates/skippy-cache/
COPY crates/skippy-metrics/ crates/skippy-metrics/
COPY crates/openai-frontend/ crates/openai-frontend/
COPY crates/skippy-ffi/ crates/skippy-ffi/
COPY crates/skippy-quantize/ crates/skippy-quantize/
COPY crates/llama-quant-ffi/ crates/llama-quant-ffi/
COPY crates/skippy-runtime/ crates/skippy-runtime/
COPY crates/skippy-server/ crates/skippy-server/
COPY crates/metrics-server/ crates/metrics-server/
Expand All @@ -84,6 +86,7 @@ COPY crates/mesh-llm-cli/ crates/mesh-llm-cli/
COPY crates/mesh-llm-commands/ crates/mesh-llm-commands/
COPY crates/mesh-llm-embedded-runtime/ crates/mesh-llm-embedded-runtime/
COPY crates/mesh-llm-events/ crates/mesh-llm-events/
COPY crates/mesh-llm-build-info/ crates/mesh-llm-build-info/
COPY crates/mesh-llm-hardware-profile/ crates/mesh-llm-hardware-profile/
COPY crates/mesh-llm-native-runtime/ crates/mesh-llm-native-runtime/
COPY crates/mesh-llm-runtime-install/ crates/mesh-llm-runtime-install/
Expand Down
28 changes: 27 additions & 1 deletion fly/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,33 @@ Exposes `:3131` (dashboard, chat, topology) and proxies inference to mesh GPU no

## Deploy

From the **repo root**:
### Preferred: GitHub Action (manual)

Deploy via the **Deploy Fly Console** workflow
(`.github/workflows/fly-deploy-console.yml`). It builds the image on Fly's
remote builders and deploys `mesh-llm-console` — no local Fly login needed.

From the Actions tab, run the workflow, or from the CLI:

```bash
# Deploys the default branch
gh workflow run "Deploy Fly Console"

# Deploy a specific branch/tag/SHA
gh workflow run "Deploy Fly Console" -f ref=v0.72.0
```

The workflow authenticates with the `FLY_API_TOKEN` repo secret, which holds an
app-scoped Fly deploy token:

```bash
fly tokens create deploy -a mesh-llm-console
gh secret set FLY_API_TOKEN # paste the token when prompted
```

### Fallback: local deploy

From the **repo root** (requires `fly auth login`):

```bash
fly deploy --config fly/console/fly.toml --dockerfile fly/Dockerfile
Expand Down
Loading