{"slug":"serverless-quickstart","title":"Serverless Containers Quick Start","description":"Deploy your first serverless container on DanubeData in under 5 minutes.","section":"Features","url":"https://docs.danubedata.ro/serverless-quickstart","markdown_url":"https://docs.danubedata.ro/serverless-quickstart.md","breadcrumbs":[{"title":"Features","slug":null},{"title":"Rapids","slug":"serverless-overview"},{"title":"Quick Start","slug":"serverless-quickstart"}],"headings":[{"level":1,"title":"Serverless Containers Quick Start","id":"serverless-containers-quick-start"},{"level":2,"title":"Prerequisites","id":"prerequisites"},{"level":2,"title":"Option A: Deploy a Docker image","id":"option-a-deploy-a-docker-image"},{"level":3,"title":"Step 1: Create a container","id":"step-1-create-a-container"},{"level":3,"title":"Step 2: Configure the image","id":"step-2-configure-the-image"},{"level":3,"title":"Step 3: Select resources","id":"step-3-select-resources"},{"level":3,"title":"Step 4: Add environment variables (optional)","id":"step-4-add-environment-variables-optional"},{"level":3,"title":"Step 5: Deploy","id":"step-5-deploy"},{"level":2,"title":"Option B: Deploy from a Git repository","id":"option-b-deploy-from-a-git-repository"},{"level":3,"title":"Step 1: Create a container","id":"step-1-create-a-container"},{"level":3,"title":"Step 2: Connect your repository","id":"step-2-connect-your-repository"},{"level":3,"title":"Step 3: Configure the build","id":"step-3-configure-the-build"},{"level":3,"title":"Step 4: Select resources and deploy","id":"step-4-select-resources-and-deploy"},{"level":3,"title":"Step 5: Set up webhooks (optional)","id":"step-5-set-up-webhooks-optional"},{"level":2,"title":"Verify your deployment","id":"verify-your-deployment"},{"level":2,"title":"What's next","id":"whats-next"}],"format":"markdown","word_count":602,"content":"# Serverless Containers Quick Start\n\nDeploy your first serverless container on DanubeData in under 5 minutes.\n\n## Prerequisites\n\n- A DanubeData account with an active team\n- A container image (Docker Hub, GitHub Container Registry, etc.) or a Git repository with your application code\n\n## Option A: Deploy a Docker image\n\n### Step 1: Create a container\n\n1. Navigate to **Serverless Containers** in the sidebar\n2. Click **Create Container**\n3. Select **Docker Image** as the deployment type\n\n### Step 2: Configure the image\n\n1. Enter a **name** for your container (e.g., `my-api`)\n2. Enter the **image** URL (e.g., `docker.io/library/nginx:alpine`)\n3. Set the **port** your application listens on (e.g., `80` for nginx, `3000` for Node.js, `8080` for Go). [Some ports are reserved by the platform](https://docs.danubedata.ro/serverless-overview#reserved-ports).\n\nDanubeData validates that the image exists and is pullable before proceeding.\n\n### Step 3: Select resources\n\nChoose a resource profile:\n\n| Profile | vCPU | Memory |\n|---------|------|--------|\n| **Free** | 0.01 - 0.1 | 64 - 128 MB |\n| **Micro** | 0.1 - 1 | 256 - 512 MB |\n| **Small** | 0.5 - 1 | 256 - 512 MB |\n| **Medium** | 1 - 2 | 512 MB - 1 GB |\n| **Large** | 2 - 4 | 1 - 2 GB |\n\nProfiles have no fixed monthly fee — serverless billing is pay-per-use (vCPU-seconds, memory GiB-seconds, requests) with a free tier that includes 2M requests per month.\n\nConfigure scaling:\n- **Min replicas** — Set to `0` for scale-to-zero (default) or `1` to avoid cold starts\n- **Max replicas** — Maximum number of instances (default: `10`)\n\n### Step 4: Add environment variables (optional)\n\nAdd any environment variables your application needs:\n- Database connection strings\n- API keys and secrets\n- Application configuration\n\n### Step 5: Deploy\n\nClick **Create Container**. DanubeData will:\n\n1. Generate a Knative Service manifest\n2. Deploy via GitOps (ArgoCD)\n3. Provision a TLS certificate\n\nYour container will be accessible at:\n\n```\nhttps://my-api-{team-name}.danubedata.run\n```\n\n## Option B: Deploy from a Git repository\n\n### Step 1: Create a container\n\n1. Navigate to **Serverless Containers** in the sidebar\n2. Click **Create Container**\n3. Select **Git Repository** as the deployment type\n\n### Step 2: Connect your repository\n\n1. Enter your **repository URL** (e.g., `https://github.com/yourorg/yourapp`)\n2. Select the **branch** to deploy (defaults to `main`)\n3. Choose authentication:\n   - **None** — For public repositories\n   - **SSH Key** — Paste your SSH private key\n   - **Access Token** — Paste a personal access token\n\n### Step 3: Configure the build\n\nChoose your build method:\n\n- **Buildpacks (recommended)** — Auto-detects your runtime. No Dockerfile needed.\n- **Dockerfile** — Uses your own Dockerfile. Specify the path if it's not in the repo root.\n\nIf using Buildpacks, DanubeData auto-detects your runtime from files like `package.json` (Node.js), `requirements.txt` (Python), `go.mod` (Go), etc.\n\n### Step 4: Select resources and deploy\n\n1. Choose a resource profile\n2. Set scaling parameters\n3. Add environment variables\n4. Click **Create Container**\n\nDanubeData will clone your repository, build the image, push it to the registry, and deploy it.\n\n### Step 5: Set up webhooks (optional)\n\nFor automatic builds on every push:\n\n1. Navigate to the container detail page\n2. Go to the **Activity** tab\n3. Copy the **Webhook URL** and **Webhook Secret**\n4. Add a webhook in your Git provider settings (GitHub, GitLab, or Bitbucket)\n\n## Verify your deployment\n\nOnce the status shows **Running**:\n\n```bash\n# Test your container\ncurl https://my-api-{team-name}.danubedata.run\n\n# Check with verbose output\ncurl -v https://my-api-{team-name}.danubedata.run\n```\n\n## What's next\n\n- [Add a custom domain](https://docs.danubedata.ro/serverless-domains) — Use your own domain with automatic TLS\n- [Configure authentication](https://docs.danubedata.ro/serverless-authentication) — Secure your endpoints\n- [View code examples](https://docs.danubedata.ro/serverless-invoking) — Call your container from any language\n- [Learn about scaling](https://docs.danubedata.ro/serverless-overview#scaling) — Configure auto-scaling and scheduled scaling\n\nPicked the wrong deployment method? You can switch a container between Docker image, Git repository, and ZIP upload later from its **Edit** page — see [Changing the deployment source](https://docs.danubedata.ro/serverless-overview#changing-the-deployment-source).\n\n---\n\n**Questions?** Contact support at support@danubedata.ro\n","prev":{"title":"Rapids","slug":"serverless-overview","url":"https://docs.danubedata.ro/serverless-overview","markdown_url":"https://docs.danubedata.ro/serverless-overview.md","json_url":"https://docs.danubedata.ro/serverless-overview.json"},"next":{"title":"Deploy with CR: First Deploy","slug":"tutorial-cr-rapids-first-deploy","url":"https://docs.danubedata.ro/tutorial-cr-rapids-first-deploy","markdown_url":"https://docs.danubedata.ro/tutorial-cr-rapids-first-deploy.md","json_url":"https://docs.danubedata.ro/tutorial-cr-rapids-first-deploy.json"},"index_url":"https://docs.danubedata.ro/index.json"}