Appearance
Quick Reference
Single-page cheat sheet for project setup, webhooks, fields, statuses, and CLI commands.
Project Setup
Projects > New Project → enter Title, Repository URL, Organization → Save. Copy the Webhook URL, Secret, and Deploy Key from the project overview.
Webhook Setup
Bitbucket
- Deploy key — Repository settings > Security > Access keys → paste key (read-only)
- Webhook — Repository settings > Workflow > Webhooks → paste URL and Secret
- Triggers — Pull Request: Created, Updated, Merged, Declined
- Status — Set to Active
GitHub
- Deploy key — Settings > Deploy keys → paste key (read-only)
- Webhook — Settings > Webhooks → paste Payload URL and Secret
- Content type —
application/json - Events — Select individual events: Pull requests
- Status — Check Active
GitLab
- Deploy key — Settings > Repository > Deploy keys → paste key (read-only)
- Webhook — Settings > Webhooks → paste URL and Secret token
- Trigger — Merge request events only
- SSL — Keep verification enabled
Gitea
- Deploy key — Settings > Deploy Keys → paste key
- Webhook — Settings > Webhooks > Add Webhook > Gitea → paste Target URL and Secret
- Content type —
application/json - Events — Custom events: Pull Request
- Status — Check Active
Field Reference
Project Fields
| Field | Required | Format / Example |
|---|---|---|
| Title | Yes | My Application |
| Organization | Yes | Select from dropdown |
| Repository URL | No | git@provider.com:org/repo.git |
| Server IP | No | 138.201.173.243 |
Server Fields
| Field | Required | Description |
|---|---|---|
| Title | Yes | Server name (e.g., Production EU) |
| SSH User | No | Username for SSH (default: web) |
| Server IP | No | Server IP address |
| SSH private key | Yes | Private key for SSH authentication |
| SSH Public Key | Yes | Corresponding public key |
Manual Environment Fields
| Field | Required | Description |
|---|---|---|
| Title | Yes | Environment name (e.g., staging, qa, demo) |
| Branch | Yes | Git branch to deploy (e.g., develop, main) |
| Domain | Yes | Custom domain (e.g., staging.example.com) |
Environment URLs
PR Environments: https://pr-{number}.{project-domain} (e.g., https://pr-42.example.com)
With project prefix: https://p{id}-pr-{number}.{domain} — enable in project settings when multiple projects share a domain.
Manual Environments: Use the custom domain set during creation.
Deployment Statuses
| Status | Meaning |
|---|---|
SUCCESS | Deployment completed successfully |
RUNNING | Deployment is currently in progress |
WAITING | Deployment is queued |
ERROR | Deployment encountered errors |
STOPPED | Deployment was manually stopped |
Webhook Events
Bitbucket
| Event | Nebion Action |
|---|---|
pullrequest:created | Create environment and deploy |
pullrequest:updated | Redeploy to existing environment |
pullrequest:fulfilled | Remove environment (PR merged) |
pullrequest:rejected | Remove environment (PR declined) |
GitHub
| Event | Nebion Action |
|---|---|
pull_request / opened | Create environment and deploy |
pull_request / synchronize | Redeploy to existing environment |
pull_request / closed | Remove environment |
GitLab
| Event | Nebion Action |
|---|---|
Merge Request / open | Create environment and deploy |
Merge Request / update | Redeploy to existing environment |
Merge Request / merge | Remove environment |
Merge Request / close | Remove environment |
Gitea
| Event | Nebion Action |
|---|---|
pull_request / opened | Create environment and deploy |
pull_request / synchronize | Redeploy to existing environment |
pull_request / reopened | Redeploy to existing environment |
pull_request / closed | Remove environment |
Repository Files
| File | Purpose |
|---|---|
.nebion.yml | Deployment configuration (compose file, web service, tasks, actions) |
docker-compose-nebion.yml | Service definitions (database, PHP, Nginx, etc.) |
.nebion.env is auto-generated by Nebion during deployment.
Minimal .nebion.yml:
yaml
docker-compose-yaml: docker-compose-nebion.yml
nginx_service: nginxActions
On-demand commands defined in .nebion.yml. Available after deployment via the Actions tab or CLI.
yaml
actions:
cache-clear:
name: "Clear Cache"
service: php
command: "drush cr"
db-dump:
name: "Database Dump"
service: php
command: "drush sql-dump --gzip > $NEBION_ACTION_OUTPUT/db-dump.sql.gz"
result: file| Field | Required | Default | Description |
|---|---|---|---|
name | Yes | -- | Display name |
service | Yes | -- | Container to run in |
command | Yes | -- | Shell command |
result | No | output | output (show stdout) or file (downloadable) |
File actions use $NEBION_ACTION_OUTPUT for the output directory. Files are retained for 7 days.
See Actions for full details.
Auto-Injected Variables
PR Environments
NEBION_DOMAIN=example.com
NEBION_ENV_IDENTIFIER=42
NEBION_ENV_BRANCH=feature/my-feature
NEBION_ENV_TYPE=pr
NEBION_PR_NUMBER=42
NEBION_PR_BRANCH=feature/my-featureManual Environments
NEBION_DOMAIN=example.com
NEBION_ENV_IDENTIFIER=staging
NEBION_ENV_BRANCH=develop
NEBION_ENV_TYPE=manualCLI Commands
bash
nebioncli login # Login
nebioncli hub # Interactive dashboard
nebioncli doctor # Validate .nebion.yml
nebioncli ssh # SSH (interactive)
nebioncli ssh -p myproject -e 42 -c php # SSH (direct)
nebioncli logs # Logs (interactive)
nebioncli logs -f -p myproject -e 42 -c php # Logs (follow)
nebioncli url # Open URL (interactive)
nebioncli url 42 # Open PR-42 URL
nebioncli action list # List actions ← coming soon
nebioncli action run cache-clear # Run an action ← coming soon
nebioncli action download db-dump # Download artifact ← coming soon
nebioncli org list # List organizations
nebioncli org switch # Switch organization
nebioncli update # Update CLI
nebioncli logout # LogoutTroubleshooting
Webhook not working
- Verify webhook is Active in your Git provider and secret matches exactly (no extra spaces)
- Check webhook delivery history in your Git provider for error responses
- Ensure the Deploy Key is added to the repository
Deployment fails
- Click View Output on the failed deployment for error details
- Check
.nebion.ymlexists in the repository root and is committed to the branch - Verify post-rollout commands work locally
Cannot access environment
- Confirm deployment status is
SUCCESSand wait 1-2 minutes for DNS - Verify URL format:
pr-{number}.{domain} - Check View Output for container startup errors
Variables not taking effect
- Variables require a redeploy to take effect — click Deploy on the environment overview
- If still not working, try deploying with Reset environment checked