Foundry CI
Dashboard Jobs Runs Environments My Dashboards Queue Analytics Capacity Planning Cache Analytics Log Filters
System
Secrets Agents API Keys Users Notifications Plugins Agent Pools Insights Log Search Scheduled Reports Maintenance Step Templates Job Templates Variable Groups Webhooks Webhook Inbox Org Settings Status Page Usage Audit Log System Info
Platform
Organizations Platform Stats Database
Build Queue
No builds in the queue.
Build Executor Status
Logout
0
Notifications Mark all read
Notification Settings

Welcome to Foundry CI

Create an admin account to get started.

Sign in to Foundry CI

or
Forgot password?
Don't have an account? Sign up

Two-Factor Authentication

Enter the 6-digit code from your authenticator app.

Use a recovery code instead
Back to login

Reset your password

Enter your email and we'll send you a reset link.

Back to sign in

Set new password

Create your account

Set up your workspace on Foundry CI

Lowercase letters, numbers, and hyphens only

Already have an account? Sign in

Change Your Password

You must change your password before continuing.

Welcome to Foundry CI

Let's set up your first CI/CD pipeline in a few quick steps.

  • Create a job linked to your repository
  • Trigger your first build
  • Optionally set up a build agent
Skip setup

Create Your First Job

A job defines what to build and how.

Skip setup

Run Your First Build

Click below to trigger a build for your new job.

Building...

Set Up a Build Agent (Optional)

Agents let you run builds on remote machines. You can skip this for now and use the local runner.

./foundry-agent --server http://YOUR_SERVER:8080 --token YOUR_AGENT_TOKEN

Configure agents later in Settings > Agents.

You're All Set!

Your Foundry CI instance is ready. Head to the dashboard to manage your builds.

Dashboard

Organization Suspended

This organization has been suspended. Builds, jobs, and most operations are disabled. Contact your administrator or upgrade your plan.

Payment Issue

Please update your payment method to avoid service interruption.

Update Billing
⏳
Pro Trial Active — days remaining
Enjoying Pro features? Upgrade before your trial ends.
Total Jobs
-
Running
-
Succeeded (24h)
-
Failed (24h)
-
Queued
-

Favorites

Recent Failures

Agents

Activity Feed

Build Activity (30 days)

Build Duration Trend

Recent Runs

Job Run Status Triggered By Started Duration
Loading...

All Runs

0 selected
Job Run Status Triggered By Started Duration
Loading...

My Dashboards

Queue Analytics

Total Enqueued
-
Avg Wait Time
-
P95 Wait Time
-
Max Wait Time
-

Wait Time Trend

Bottlenecks

Loading...

Capacity Planning

Online Agents
-
Utilization
-
Avg Queue Wait
-
Recommended Agents
-

Build Volume & Concurrency

Projection

Build Trend (WoW)
-
Projected Builds (7d)
-
Projected Builds (30d)
-

Daily Breakdown

DateBuildsPeak ConcurrentAvg ConcurrentAvg Wait

Cache Analytics

Hit Rate
-
Hits
-
Misses
-
Uploads
-
Total Cached
-

By Job

Job Hits Misses Uploads Hit Rate Size
Loading...

Log Filters & Alerts

Saved Filters

Alert Rules

Public Status Page

Enabled

Select jobs to display on the public status page. The page is accessible at

Preview

Enable and add jobs to see a preview.

Environments

Name Last Deployed Last Run Status Actions
Loading...

Deployment History

Jobs

Name Latest Run Status Health Duration Actions
Loading...

Status
N/A
Repository
Branch
Created
Health

Build Duration Trend (30 days)

Stage View

Build Caches

Cache KeyBranchSizeUpdated
No build caches

Triggers

Flaky Tests

TestSuitePassFailFlakinessLast Failure
No flaky tests detected

Duration Forecast

Performance Regression

vs historical average
StepAvgLatestDeltaStatus

Step Metrics

Avg duration across recent runs
StepAvgMinMaxMedianP95Samples

Step Failure Analysis

Failure rates across recent runs
StepRunsFailuresFail RateAvg DurationP95Last Failure

Variable Groups

GroupPriorityActions

Environment Variables

NameValueTypeActions
No environment variables configured

Job Spec


                

Build Badge

Build Status

Webhook

application/json

Recent Deliveries

Event Branch Status Detail Time
No deliveries yet

Runs

Override env vars for this run only. One KEY=value per line.

Run Branch Status Triggered By Started Duration
No runs yet.

Secrets

Add Secret

Name Used By Created
Loading...

Rotation Status

Secret Age Policy Status

Agents

Name Hostname Status Tags Last Seen
Loading agents...

API Keys

Create API Key

New API Key (copy now — it won't be shown again)


                
Name Key Prefix Scopes Expires Last Used Created
Loading...

Users

Pending Invitations

OrganizationRoleFromExpires

Your Email

Change Your Password

Two-Factor Authentication

Add an extra layer of security to your account using a TOTP authenticator app.

Scan this QR code or enter the secret manually in your authenticator app:

Save these recovery codes — you won't see them again!

Active Sessions

Device / Browser IP Address Last Active Created
Loading...

Create User

Username Role Created
Loading...

Status
Hostname
Last Seen
Tags
Runners
Capabilities

Health Metrics (24h)

CPU %
Memory %
Disk %

Recent Runs

Job Run Status Started Duration
Loading...

System Information

Version
-
Go Version
-
Platform
-
Uptime
-
TLS
-
Encryption
-

Database Stats

Jobs
-
Runs
-
Agents
-
Artifacts
-
Artifact Disk Usage
-

Retention Policy

Max Runs
-
Max Age
-

Notification Settings

General

Slack

Discord

Microsoft Teams

Email (SMTP)

Outbound Webhooks

Add Webhook

Available: run.completed, member.added, member.removed, member.left, webhook.test, or * for all
URL Events Status Last Triggered Actions

No outbound webhooks configured.

Webhooks send HTTP POST requests when events occur in your org.

Delivery Log

Time Event Status Duration Error

No delivery logs yet.

Plugins

Add Plugin

Used in YAML as uses: name
with: params become FOUNDRY_INPUT_* env vars
Name Command Description Status
Loading...

Agent Pools

Create Agent Pool

NameDescriptionMax ConcurrentActions
Loading...

Build Insights

Slowest Steps

JobStepAvgRuns

Most Failing Jobs

JobFailsTotalRate

Build Frequency Heatmap

Log Search

Enter a search term (min 3 characters) to search across all build logs.

Maintenance Windows

Schedule Maintenance Window

TitleStartsEndsStatusActions
Loading...

Scheduled Reports

Create Scheduled Report

NameTypeScheduleChannelLast SentEnabled
Loading...

Notification Preferences

Configure how you receive notifications for this organization.

Step Templates

Add Step Template

Used in YAML as uses: template/name
Template inputs use ${{ inputs.KEY }} syntax
Name Description Spec
Loading...

Job Templates

Add Job Template

Name Description Spec
Loading...

Variable Groups

NameDescriptionVariablesLinked JobsActions
Loading...

Webhook Inbox

Source Event Status Error Received
Loading...

Usage & Billing

Plan
-
Current Period
-
Builds This Month
-
Success Rate
-

Resource Usage

Monthly Usage History

Build Cost Summary

This Month-
Total Runs-
Total Minutes-
MonthRunsMinutesCost

Cost Rates

API Rate Limits

Remaining
-
Limit (RPM)
-

Request History (24h)

API Usage Analytics

Total Requests-
Avg Latency-
Error Rate-

Request Trend

Top Endpoints

MethodPathCountAvg LatencyError %

Top API Keys

KeyRequestsLast Used

Billing

Payment Status-
Current Period-
Subscription-
Payment Issue

Cancellation Scheduled

Build Minute Breakdown

Total Minutes-
Limit-
Usage-
Overage-

Top Jobs by Minutes

JobMinutesRuns

Billing Events

DateEvent

Plan Comparison

FeatureFreeProTeam
Change Plan:

Usage Alerts

DateTypeThresholdMonth

Plan Features

Features available on your current plan. Upgrade for more capabilities.

Email Verification

Loading...

Data Export

Export all organization data (jobs, runs, audit logs, settings) as a ZIP file. Exports are available for 7 days.

Cancel Organization

Cancelling your organization will schedule it for deletion in 30 days. All data will be permanently removed after this period. You can revoke the cancellation at any time before then.

Audit Log

TimeUserActionResourceDetailsIP
Loading...

Organization Settings

Name
-
Slug
-
Plan
-

Members

UsernameRoleJoined
Loading...

Agent Registration Tokens

New token created — copy it now, it won't be shown again:

Use: foundry-agent --org-token <token> ...

NameCreatedExpiresStatus
Loading...

Invitations

Invitation created — share this link/token with the user:
InvitedRoleStatusSentExpires
Loading...

Environment Variables

Organization-level env vars are injected into all jobs. Job-level vars override org-level vars with the same name.

NameValueType
Loading...

IP Allowlist

Restrict API access to specific IP addresses/ranges. Platform admins and agents bypass the allowlist.

CIDRDescriptionAdded

Git Providers (Self-Hosted)

Register self-hosted GitLab or Bitbucket instances for commit status reporting and PR/MR comments.

ProviderBase URL

Danger Zone

Deleting the organization will permanently remove all jobs, runs, logs, artifacts, and members. This cannot be undone.

Organizations

Create Organization

NameSlugPlanStatus
Loading...

Organization

Slug
-
Plan
-
Members
-
Storage
-
Status
-

Resource Limits

Members

UsernameRoleJoined

Platform Statistics

Organizations
-
Users
-
Total Jobs
-
Total Runs
-
Active Runs
-

Database Management

Database Size
-
Tables
-
Last Modified
-

Backup

Download a consistent snapshot of the SQLite database using VACUUM INTO.

Restore

Upload a SQLite database file to restore. The server will need to be restarted to apply the restore.

Warning: This will replace the current database on next server restart. A backup of the current DB will be created automatically.

Create Job

When enabled, the build spec is read from the repo on each trigger instead of being defined here.
Config from Repository

The build configuration will be loaded from .foundry-ci.yml in the repository root on each webhook push or manual trigger. The file uses the same YAML format as the editor below.

Leave empty to use the global default.
Standard 5-field cron: minute hour day month weekday. Example: 0 */2 * * * = every 2 hours.
Optional. Jobs with the same group are shown together in the jobs list.
Delete runs older than N days. Leave empty for global default.
Keep at most N runs per job. Leave empty for global default.
Delete artifacts (not runs) older than N days.
Loading...

                                    
                                

Run # for

Status
Triggered By
Branch
Commit
Pull Request
Started
Finished
Environment
Retry

Changelog

Milestone

Retry History

AttemptRunStatusDurationWhen

Pipeline Jobs

Step Timeline

Build Timeline

Build Progress

Error


                    

Build Log

Loading build log...

Artifacts

No artifacts.

Test Results

Step Outputs

No outputs.

Run Comparison: # vs #

Step Comparison

StepRun 1 StatusRun 1 DurationRun 2 StatusRun 2 DurationDelta

Register an Agent

Run this command on the machine where you want to register an agent:

Replace <name> and <tags> with the desired agent name and comma-separated tags.

Keyboard Shortcuts

?Show this help
Ctrl+KOpen search
g then dGo to Dashboard
g then jGo to Jobs
g then rGo to Runs
g then aGo to Agents
g then sGo to Secrets
g then iGo to System Info
EscClose modal / search