Skip to main content

Git Deployment

Git deployment lets you deploy any application from a Git repository. The panel clones the repo, detects the build method, builds the project, and deploys it with Traefik routing.

How It Works

Step 1: Provide Repository URL

Navigate to Deploy > Git Deploy and enter:

FieldDescription
Repository URLHTTPS or SSH URL of the Git repository
BranchBranch to deploy (default: main)
Service NameName for the service (becomes the subdomain)
CustomerWhich customer owns this service

For private repositories, provide authentication credentials (username/token or SSH key).

Step 2: Build Detection

After cloning, the panel auto-detects the build method by checking for these files in order:

PriorityFileBuild Method
1docker-compose.yml or docker-compose.yamlDocker Compose
2DockerfileDocker build
3(fallback)Nixpacks

Docker Compose

If a compose file exists, the panel:

  1. Parses the compose file
  2. Injects Traefik labels for the primary service
  3. Connects services to the aiadminpanel network
  4. Removes exposed ports
  5. Deploys the full compose stack

Dockerfile

If a Dockerfile exists, the panel:

  1. Builds the Docker image locally
  2. Generates a compose file wrapping the built image
  3. Adds Traefik routing and health checks
  4. Deploys the container

Nixpacks

If no Docker-related files are found, the panel uses Nixpacks to auto-detect the language and framework, then builds an image. Supported languages include Node.js, Python, Go, Rust, Ruby, PHP, Java, and more.

Step 3: Deploy

The built container(s) are started with:

  • Traefik labels for {SERVICE_NAME}.{PANEL_DOMAIN}
  • SSL certificate provisioning via Let's Encrypt
  • Health check monitoring
  • Resource limits based on the assigned service plan

Webhook Auto-Deploy

After the initial deploy, you can enable webhook-triggered redeployment:

  1. In the service detail page, click Settings > Webhooks
  2. Copy the webhook URL
  3. Add it to your Git provider (GitHub, GitLab, Gitea) as a push webhook
  4. Push to the configured branch to trigger a redeploy

The webhook flow:

Git push → Webhook fires → Panel receives event
→ Pull latest code → Rebuild → Rolling restart

GitHub Webhook Setup

In your GitHub repository:

  1. Go to Settings > Webhooks > Add webhook
  2. Set Payload URL to the webhook URL from the panel
  3. Set Content type to application/json
  4. Select Just the push event
  5. Click Add webhook

Gitea Webhook Setup

In your Gitea repository:

  1. Go to Settings > Webhooks > Add Webhook > Gitea
  2. Set Target URL to the webhook URL from the panel
  3. Select Push Events
  4. Click Add Webhook

Environment Variables

You can set environment variables for Git-deployed services:

  1. In the service detail page, click Settings > Environment
  2. Add key-value pairs
  3. Click Save and Redeploy

Environment variables are injected into the container at runtime and are encrypted at rest.

Build Logs

Build logs are streamed in real time via WebSocket during deployment. After deployment, build logs are available in the service's Logs tab under the Build section.

Limitations

  • Large repositories may take longer to clone and build
  • Monorepo support requires specifying a subdirectory (use the Build Context field)
  • Build caching is per-service — first builds are slower than subsequent ones
  • GPU access is not available during Nixpacks builds