Home

Documentation

Everything you need to deploy your apps on Exparon.

On this page

Getting started

1. Create an account

Sign up at exparon.dev. A free account lets you deploy one project with 3 deploys per month.

2. Connect GitHub

From Settings → Integrations, click "Connect GitHub" and authorise the exparon app.

3. Create a project

Click "New project" on the dashboard. Select your repository and choose the branch you want to auto-deploy (e.g. main).

4. Deploy

Push any commit to your branch. The build starts automatically. You will see real-time logs in the dashboard.

Your app is live at {project-name}.exparon.dev once the build succeeds.

Supported runtimes

We auto-detect the runtime from your repository root. No configuration file required.

RuntimeDetection fileInstall commandStart command
Node.jspackage.jsonnpm installnpm start
Next.jspackage.json + next in depsnpm install && npm run buildnpx next start
Pythonrequirements.txtpip install -r requirements.txtpython app.py
Gogo.modgo build -o bin/app ../bin/app
RustCargo.tomlcargo build --release./target/release/app
RubyGemfilebundle installbundle exec ruby app.rb
Static HTML(fallback)—npx serve -s .

The detected framework is shown on the project page and can be overridden when creating the project.

Environment variables

Go to your project → Environment Variables tab to add secrets.

Variables are encrypted at rest with AES-256-GCM before storage.

Values are masked in the dashboard after saving (you cannot read them back, only overwrite or delete).

Variables are injected into both the build container and the running serve container.

Changes require a redeploy to take effect.

Important: Do not put secrets in your repository. Use env vars instead.

Custom domains

Pro and Team plans support custom domains with automatic HTTPS.

Step 1 — Point your DNS

Add an A record from your domain to the Exparon server IP. You can find the server IP on the Domains dashboard page.

yourdomain.com.   A   <server-ip>

Step 2 — Attach the domain

On the project page, scroll to the Custom Domains panel and enter your domain. Click Add.

HTTPS is provisioned automatically via Let's Encrypt within a few minutes of attaching the domain.

Step 3 — Verify

Visit your domain over HTTPS. If you see a certificate error, wait 2-3 minutes for Let's Encrypt to issue the cert.

Preview deployments

Preview deployments give each pull request its own live URL.

How it works:

1.Open a pull request to any branch in a connected repository.

2.Exparon detects the webhook event and builds the PR branch.

3.A temporary URL is assigned: pr-{number}-{project}.exparon.dev

4.When the PR is merged or closed, the preview container is stopped automatically.

Preview deployments are available on Pro and Team plans.

Container controls

From the project page you can manage the running container without triggering a new build.

Deploy — Trigger a full build and deploy from the current branch HEAD.

Restart — Restart the existing container (useful after config changes).

Stop — Stop the container. The project status changes to "idle". Your subdomain goes offline.

Start — Restart a stopped container from its last deployed state.

Retry deploy — Available when the project status is "error". Triggers a fresh build.

GitHub webhook

When you create a project and connect a repository, exparon automatically installs a webhook on your GitHub repo.

The webhook triggers on:

push events to your configured branch → full deploy

pull_request opened / synchronize events → preview deploy

pull_request closed → preview teardown

If you need to manually add the webhook:

1.Go to your GitHub repo → Settings → Webhooks → Add webhook

2.Payload URL: https://api.exparon.dev/webhooks/github

3.Content type: application/json

4.Secret: your GITHUB_WEBHOOK_SECRET from project settings

5.Events: "Just the push event" + "Pull requests"

AI agents (MCP)

Let an AI coding agent such as Claude Code or Codex work with your projects: check status, read build and runtime logs, find out why a deploy failed, deploy, roll back, and change settings. It connects through the Model Context Protocol and acts as you, with only the permissions you give it.

1. Connect

Sign in with OAuth (when your operator enabled it): claude mcp add --transport http exparon https://mcp.{your-domain}/mcp, then sign in from Claude Code with /mcp; in Codex run codex mcp login exparon. You choose the permissions and projects on a consent page.

Or use an access token: create one under Settings → Access tokens and pass it as a Bearer token.

2. Choose what it may do

Read — view projects, deployments, logs and metrics. Environment values are never shown.

Deploy — deploy, roll back, cancel, restart and stop.

Write — create projects and services, change settings, environment variables, domains and cron jobs.

Destructive — delete things. The agent still has to repeat the exact name of what it deletes.

Limit a token or connected app to specific projects, and set an expiry. Tokens never reach admin pages or billing.

3. Stay in control

Settings → Connected apps and Access tokens list everything that can act for you; disconnect or revoke at any time and it stops at once.

Settings → Activity log records every change an agent makes, including refused attempts. Secret values are never recorded.

Text from your projects (build logs, commits, database rows) is handed to the agent as data, not instructions.

Ask your agent to run diagnose_service first when something is broken: it checks status, the last deploys, recent errors and alerts in one call.