Skip to main content
Admin Modules

Deployments & Sync

Full DevOps control center — Gitea repositories, GitHub mirrors, Cloudflare Pages deployments, and pull requests

March 1, 2026

Overview

The Deployments & Sync page (/admin/deployments) is a unified DevOps hub providing full control over the Arcturus-Prime deployment pipeline: Gitea source repos, GitHub push mirrors, Cloudflare Pages builds, and pull requests.

Tabs

Deployments

Shows all recent Cloudflare Pages deployments as status-colored cards. Each card displays branch, commit hash, commit message, environment (production/preview), and relative time.

Features:

  • Filter by production/preview environment
  • Search by branch name, commit hash, or message
  • Click any card for a detail modal with build timeline (queued → initialize → build → deploy stages with durations)
  • Direct links: “Site” for production, “Preview” for preview deploys (appends ?preview for admin access)
  • Deploy trigger button (calls CF Pages deploy hook)
  • Auto-refreshes every 30 seconds

API: GET /api/dashboard/cf-pages?project=Arcturus-Prime&limit=40 and POST /api/dashboard/cf-pages for deploy trigger.

Repositories

Lists all Gitea organization repos with full CRUD operations.

Features:

  • Search across repo names, descriptions, languages
  • Create new repos (name, description, visibility, auto-init with README)
  • Edit repos (description, default branch, public/private toggle)
  • Delete repos (with confirmation prompt)
  • Each card shows: visibility tag, language, default branch, stars, forks, last updated
  • Direct links to Gitea and GitHub

API: GET /api/admin/gitea-repos?org=InovinLabs&limit=50 and POST /api/admin/gitea-repos with actions: create, update, delete.

Mirrors & Sync

Shows all Gitea → GitHub push mirror configurations with sync controls.

Features:

  • Visual pipeline diagram: Gitea → GitHub → CF Pages
  • Stats: total mirrors, healthy count, error count
  • Per-repo sync button
  • Bulk “Sync All” button
  • Health status badges (Healthy/Error/No mirror)
  • Auto-sync indicator for repos with sync-on-commit enabled
  • Error messages displayed inline

API: GET /api/admin/github-sync and POST /api/admin/github-sync with optional { repo } body.

Pull Requests

Lists open and closed pull requests from the Arcturus-Prime Gitea repo.

Features:

  • Filter: Open / Closed / All
  • Search by title, branch, author
  • Click for detail modal with: branch info, author, state, description, changed files list with +/- counts
  • Merge and Close actions (with confirmation)
  • Direct link to Gitea PR page

API: GET /api/admin/gitea-pr?repo=InovinLabs/Arcturus-Prime&state=open&head= and POST /api/admin/gitea-pr with actions: merge, close, files.

Environment Variables

VariablePurpose
CF_API_TOKENCloudflare API bearer token
CF_ACCOUNT_IDCloudflare account ID
CF_DEPLOY_HOOK_URLCloudflare Pages deploy hook URL
GITEA_API_TOKENGitea API access token

Demo Mode

When demo mode is active, all write actions are disabled: deploy trigger, sync, merge, close, create, edit, and delete buttons are greyed out with tooltips.

Technical Notes

  • Uses <style is:global> because content is dynamically rendered by JavaScript
  • All script variables use var (not const) to prevent View Transitions redeclaration errors
  • Tabs lazy-load: each tab fetches its API only on first visit
  • Auto-refresh interval is 30 seconds (deployments and mirrors tabs only)
  • The astro:before-preparation event cleans up the refresh interval on navigation
deploymentsgiteagithubcloudflaredevops