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:
| Field | Description |
|---|---|
| Repository URL | HTTPS or SSH URL of the Git repository |
| Branch | Branch to deploy (default: main) |
| Service Name | Name for the service (becomes the subdomain) |
| Customer | Which 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:
| Priority | File | Build Method |
|---|---|---|
| 1 | docker-compose.yml or docker-compose.yaml | Docker Compose |
| 2 | Dockerfile | Docker build |
| 3 | (fallback) | Nixpacks |
Docker Compose
If a compose file exists, the panel:
- Parses the compose file
- Injects Traefik labels for the primary service
- Connects services to the
aiadminpanelnetwork - Removes exposed ports
- Deploys the full compose stack
Dockerfile
If a Dockerfile exists, the panel:
- Builds the Docker image locally
- Generates a compose file wrapping the built image
- Adds Traefik routing and health checks
- 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:
- In the service detail page, click Settings > Webhooks
- Copy the webhook URL
- Add it to your Git provider (GitHub, GitLab, Gitea) as a push webhook
- 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:
- Go to Settings > Webhooks > Add webhook
- Set Payload URL to the webhook URL from the panel
- Set Content type to
application/json - Select Just the push event
- Click Add webhook
Gitea Webhook Setup
In your Gitea repository:
- Go to Settings > Webhooks > Add Webhook > Gitea
- Set Target URL to the webhook URL from the panel
- Select Push Events
- Click Add Webhook
Environment Variables
You can set environment variables for Git-deployed services:
- In the service detail page, click Settings > Environment
- Add key-value pairs
- 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 Contextfield) - Build caching is per-service — first builds are slower than subsequent ones
- GPU access is not available during Nixpacks builds