# 2025
Source: https://docs.dcdeploy.com/changelog/2025
Changelogs
* Improved activity timeline for better visibility into user and system actions.
* Set a default GitHub source for more consistent deployment behavior.
* Added log copy functionality for easier debugging and support.
* Improved redeploy workflow for faster and more reliable rebuilds.
* Introduced an updated user profile interface with better clarity and detail.
* Updated development code improvements for internal consistency.
* Introduced **Live Tail** in logs to view real-time streaming logs directly within the dashboard.
* Optimized the **log processing pipeline** for faster rendering and reduced latency.
* Added the **Environment Deletion** feature to safely remove unused environments.
* Fixed a **major issue** where updating the revision version via GitHub commit push caused incorrect version tracking.
* Displayed **Last Modified Time** for better visibility into recent configuration updates.
* Passed **Revision ID** for precise cancellation workflows.
* Added **Active Revision Key** handling to accurately show the current active revision chip.
* Fixed **incorrect machine count and usage metrics** on the dashboard.
* Enhanced **Database Backup** reliability and restore performance.
* **Alert Emails** now include organization name, version details, and a direct link to open the affected service.
* Refined **Cancel CTA** behavior for smoother interaction and better feedback.
* Launched an **Interactive Tutorial** to help new users set up and deploy easily.
* Improved **Build Performance** with reduced build times across all environments.
* Added detailed **Build Events** for clearer visibility into the build lifecycle.
* Introduced **Build/Revision Cancellation** with intuitive UI controls.
* Released a **Revision List View** to manage and browse deployment revisions efficiently.
* Added **Managed Database Support** for PostgreSQL, MariaDB, and MySQL — fully integrated within the dashboard.
* Enhanced the **Deployment Experience** with improved feedback, stability, and error handling.
* Fixed inconsistencies in **Service Deployment Status** reporting.
* Applied general **Bug Fixes** and performance optimizations.
* Launched **DCDeploy Overview Dashboard** → view org balance, usage, and activity timeline.
* Added **User Management** with role changes and invitation support.
* Added **Domains Management** → support for default `.cloud` domains and custom domains.
* Introduced **Private Services & Databases using Internal Link** for secure intra-env connectivity.
* Support for **Deploy from Docker Registry** (DockerHub & private registries).
* Added **Scaling Options** with cold-start handling and auto-scaling to 1 during traffic spikes.
* Introduced **Outbound Bandwidth** quota: free **1TB per organization**.
* Released **Security Upgrades** using **Cilium, Kata Containers, Encryption at Rest, Secrets, and Isolation**.
* Integrated **Cloudflare Edge Network** for DDoS protection and faster global delivery.
* Default **API Rate Limits** added for fair usage and protection.
### Features
* Diff change analyzer for better update tracking
* Clone environment button with **Min-Scale support** and pricing details
* Public **GitHub** repository integration
* Database engine support with improved deployment success notifications
* Multi-region support with updated region handling
### Fixes
* Bug fixes across production services
* Corrected logic for stopped machine count handling
### UI Updates
* Updated service overview page for clarity
* Improved deployment dialog with success messages
* Refined notification system with dropdown enhancements
* Font size and icon refinements for better readability
### Improvements
* Optimized environment management and stability
* Performance improvements across services
* Workflow enhancements for smoother development
# 2026
Source: https://docs.dcdeploy.com/changelog/2026
Changelogs
* Improved **activity log filtering** for faster and more accurate results.
* Optimized **environment usage limits** and billing consistency.
* Enhanced invoice + pod usage tracking with a unified cron workflow.
* Reduced backend overhead by removing unnecessary database calls.
* Improved pod reconciliation by auto-marking deleted remote pods.
* Fixed caching issues and applied general stability improvements.
# Build Minutes Pricing
Source: https://docs.dcdeploy.com/docs/billing/build-minutes-pricing
Learn how DCDeploy calculates and charges for build minutes. Currently, all build minutes are unlimited and free of cost.
## Overview
When you push code to your repository or trigger a **Rebuild & Deploy**, DCDeploy performs a **build process** to generate the Docker image for your service.\
This process consumes **build minutes** — the total time taken by DCDeploy’s infrastructure to compile, package, and prepare your application image.
***
## Current Pricing
* **Unlimited build minutes** for all plans.
* **No extra charges** are applied for builds.
* Every build runs on high-performance infrastructure without time restrictions.
This means you can push commits, trigger builds, and redeploy as many times as needed **without worrying about build minute limits**.
***
## Future Updates
While build minutes are currently unlimited, DCDeploy may introduce:
* **Plan-based limits** (e.g., Free tier with capped minutes, Pro with higher or unlimited).
* **Additional usage-based pricing** for extremely heavy workloads.
* **Build caching optimizations** to reduce build time and costs.
> ⚠️ If DCDeploy introduces build minute quotas in the future, you’ll be notified in advance and can review the updated pricing at [DCDeploy.com/pricing](https://DCDeploy.com/pricing).
***
## Best Practices
Even though build minutes are unlimited, it’s good to:
* Use **Docker layer caching** to speed up builds.
* Keep your **Dockerfile optimized** to reduce build time.
* Use **multi-stage builds** for smaller and faster images.
* Avoid unnecessary rebuilds by using **Redeploy** when only code/config changes.
***
## Learn More
* [Rebuild & Deploy](./rebuild-deploy)
* [Redeploy](./redeploy)
* [Plans & Pricing](./plans-usage)
# Invoices
Source: https://docs.dcdeploy.com/docs/billing/invoices
Learn how to view, download, and manage your monthly invoices in DCDeploy. Invoices provide a detailed record of your usage, charges, and billing information.
## Overview
Invoices in **DCDeploy** are generated automatically at the end of each billing cycle.\
They contain a detailed breakdown of:
* **Monthly usage charges** (compute, storage, bandwidth, databases, repos).
* **Environment-wise usage summary**.
* **Taxes (if applicable)**.
* **Billing details** (based on the info you provided in the Billing Information form).
***
## Accessing Invoices
1. Navigate to **Settings → Usage and Billing**.
2. Scroll to the **Invoices** section.
3. Select the billing month you want to view.
4. Click **Download PDF** to save the invoice.
***
## Invoice Details
Each invoice contains:
* **Invoice number** – unique identifier for your records.
* **Billing period** – start and end dates of usage.
* **Customer details** – name, email, and billing address you provided.
* **Usage summary** – charges grouped by environments and services.
* **Payment status** – Paid / Pending.
* **Downloadable PDF** – for accounting and compliance.
***
## Updating Billing Information
* Invoices pull information from the **Billing Information** form.
* Ensure your **Name, Address, GST/Business details** are correct before the billing cycle ends.
* If you update after invoice generation, changes will only apply to **future invoices**.
***
## Business & Compliance
* You can mark your account as **Business** to include company details.
* GST/compliance-ready invoices are automatically generated.
* Use invoices for bookkeeping, accounting, and audits.
***
## Best Practices
* Always download and archive invoices for your records.
* Verify billing details before the billing cycle closes.
* Use **Business invoices** for tax and compliance reporting.
* Compare invoice usage summary with the **Usage dashboard** for accuracy.
***
# Outgoing Bandwidth
Source: https://docs.dcdeploy.com/docs/billing/outgoing-badwidth
Understand how outgoing bandwidth usage is measured and managed in DCDeploy. Each organization gets 1TB of free outgoing bandwidth per month.
## Overview
Outgoing bandwidth refers to the amount of data transferred **from DCDeploy workloads to the public internet**.\
Every organization on DCDeploy gets **1TB of free outgoing bandwidth per month**. After this limit, additional usage may incur charges.
***
## Use Cases
* Hosting APIs or web apps accessed by external clients.
* Serving static files, media, or downloads to users.
* Handling traffic spikes from public-facing services.
***
## Bandwidth Allocation
* **1TB per month** included free per organization.
* Applies across **all environments, workloads, and services** under the org.
* Ingress (incoming traffic to workloads) is **not charged**.
***
## Monitoring Bandwidth Usage
You can track outgoing bandwidth from the **DCDeploy dashboard**:
1. Go to **Settings → Usage & Billing**.
2. Check the **Daily Usage** chart for data transfer costs.
3. View **Usage by Environment** to see which workloads consume the most bandwidth.
Example (UI):
* env1 → 600GB
* api-service → 200GB
* file-storage → 150GB
* db → negligible
***
## Best Practices
* Use a **CDN (e.g., Cloudflare, AWS CloudFront)** to reduce direct bandwidth usage.
* Compress responses with **gzip** or **brotli** to reduce data size.
* Cache frequently accessed assets to avoid repeated transfers.
* Monitor usage regularly to avoid hitting limits.
***
## Troubleshooting
* **High unexpected bandwidth usage**
* Check logs for unusually large file downloads.
* Ensure you’re not accidentally exposing large public endpoints.
* **Service throttled after exceeding limit**
* Review your billing plan for overage charges.
* Optimize traffic using caching/CDN.
***
## Learn More
* [Plans & Pricing](./plans-usage)
* [Usage & Billing](./usage-and-billing)
* [Health Checks](./health-checks)
# Persistent Volumes
Source: https://docs.dcdeploy.com/docs/billing/persistant-volumes
Use persistent volumes in DCDeploy to store data that survives container restarts, deployments, and scaling operations.
## Overview
By default, workloads in DCDeploy use **ephemeral storage** — data is lost when the container restarts, redeploys, or scales.\
To store data reliably across restarts and deployments, DCDeploy provides **Persistent Volumes**.
Persistent volumes are ideal for databases, file storage, or any workload that needs durable storage.
***
## Use Cases
* Running databases like **Postgres, MySQL, MongoDB**.
* Storing **uploaded files** (images, PDFs, media).
* Maintaining **caches, logs, or stateful services** that must survive restarts.
***
## Prerequisites
* An active **environment** in DCDeploy.
* A workload with volume support enabled.
* Sufficient quota for storage (allocated at org level).
***
## Step-by-Step Guide
### 1. Create a Service with Volume
In the **DCDeploy dashboard**:
1. Go to **Deploy → Add Service**.
2. Under **Workload Settings**, choose **Persistent Volume**.
3. Set the **volume size** (e.g., 10GB).
4. Mount it at a path inside the container (e.g., `/data`).
Example YAML (`DCDeploy.yml`):
```yaml theme={null}
services:
my-db:
image: postgres:15
volumes:
- mountPath: /var/lib/postgresql/data
size: 20GB
```
### 2. Access the Volume
Inside your container, the mounted path behaves like a local folder.
Example (Postgres):
```bash theme={null}
psql -h localhost -U user -d mydb
# Data will persist in /var/lib/postgresql/data across restarts
```
### 3. Scaling Behavior
* Vertical scaling (CPU/RAM changes): volume is preserved.
* Horizontal scaling (multiple instances): each instance gets its own volume (data is not automatically shared).
* For shared storage, use an external database or object storage.
## Best Practices
* Always mount databases to a persistent volume.
* Avoid storing large assets directly in volumes; use object storage (S3, GCS) instead.
* Use backup tools to periodically snapshot data.
* Keep volumes lightweight for faster redeploys.
## Troubleshooting
* Data loss after redeploy: Ensure you’re using a persistent volume, not ephemeral storage.
* Multiple replicas with inconsistent data: Volumes are not shared — use an external DB if consistency is required.
* Storage full errors: Increase the volume size via dashboard or update your DCDeploy.yml.
# Plans & Usage
Source: https://docs.dcdeploy.com/docs/billing/plans-and-usage
Learn how to manage billing, usage, and pricing in DCDeploy. Understand how costs are calculated, view usage by environment, and update billing details.
## Plans and Pricing
DCDeploy offers flexible plans based on your usage and needs.\
You can explore all available plans and pricing options here:
👉 [View Plans & Pricing](https://DCDeploy.com/pricing)
***
## Usage
The **Usage and Billing** page provides detailed insights into your monthly spend and environment-wise breakdown.
### Daily Usage
* A graph displays the **amount spent in the last 30 days**.
* Each bar represents daily spend in INR (₹).
* Helps track spending patterns and detect unusual spikes.
### Usage by Environments
* Shows total usage for the **current billing month**.
* Breakdown by **environments** (e.g., `env1`, `private-repo`, `public-repo`, `db`).
* Ensures you know exactly which workloads are driving costs.
Example:
| Environment | Monthly Usage (₹) |
| ------------ | ----------------- |
| env1 | 1,779.61 |
| private-repo | 136.89 |
| public-repo | 9,048.18 |
| db | 576.41 |
***
### Usage by Machine Type
(If enabled in your project) DCDeploy also provides usage per machine type:
* **vCPU hours** – cost per compute unit used.
* **Memory usage** – cost per GB-hour.
* **Storage usage** – persistent disk or volume charges.
* **Bandwidth** – outbound data transfer charges.
This helps in identifying which workloads consume the most resources.
***
## Billing Information
* Add your **Name, Email, Address, City, Postal Code, and Country**.
* Option to mark as **Business** for GST/compliance invoices.
* Saved billing details appear on your monthly invoices.
***
## Best Practices
* Review usage trends weekly to avoid billing surprises.
* Use environment-wise breakdown to optimize workloads.
* Check machine type usage to downsize underutilized resources.
* Keep billing info updated for correct invoicing.
***
# Clone Service
Source: https://docs.dcdeploy.com/docs/deploy/clone-service
DCDeploy allows you to **clone an existing service** with a single click. This is useful when you want to create a new workload with the **same configuration** (build settings, ports, scaling rules, environment variables) as an existing one.
***
## When to use Clone
* **Staging and Production** → Duplicate your service and point it to a different branch or database.
* **A/B Testing** → Run two versions of the same service with small differences.
* **Quick Setup** → Save time instead of re-entering build and scaling options manually.
***
## How to clone a service
1. Go to your **Environment Dashboard** → **Deploy tab**.
2. Select the service you want to clone (e.g., `bunny`).
3. At the bottom of the service card, click **Clone**.
4. A new service (`bunny-clone`) will be created with identical configuration.
5. Update the cloned service:
* Change **name** to avoid conflicts.
* Adjust **repository ref / branch / commit** if needed.
* Modify **ports** if both services must run simultaneously.
* Update **environment variables** (e.g., different API keys).
***
## Example: Cloning `bunny`
Original service:
Cloned service:
***
## Best practices
* **Rename immediately** to avoid name conflicts.
* **Keep configs in sync** with environment variables.
* **Use cloning for speed**, but review each setting before deployment.
***
# DCDeploy YAML
Source: https://docs.dcdeploy.com/docs/deploy/dcdeploy-yaml
Every deployment in DCDeploy is defined using a **`dcdeploy.yaml`** file. This manifest describes your workloads, how to build them, scaling limits, ports, regions, and environment configuration. Below is a breakdown of the structure with an example. **`dcdeploy.yaml`** is highly inspired by Docker Compose and follows the schema
***
## Example: `dcdeploy.yaml`
```yaml theme={null}
services:
nikaniki:
type: service
machineType: DCD-1
regions: India
build:
context: ./
dockerfilePath: ./Dockerfile
private: true
autoBuild: true
repo: DCDeploy-labs/ecom-api
ref: main
refType: branch
commitHash: 6970cad1cc13f5f542fcb3b4714695d6f69330b8
ports:
- 45
minScale: 1
maxScale: 1
protocol: https
madeline:
type: service
machineType: DCD-2
regions: India
image: nginx
ports:
- 80
minScale: 1
maxScale: 1
protocol: https
yt:
type: service
machineType: DCD-2
regions: India
build:
context: ./
dockerfilePath: ./Dockerfile
repo: https://github.com/Utkarshya24/markedDownSyntax
ref: master
refType: branch
commitHash: bd1f517f0a03f2fd202152cffbf1d4aa144d34c7
autoBuild: false
private: false
ports:
- 3000
minScale: 1
maxScale: 1
protocol: https
```
***
## Top-level fields
### `services`
Defines all workloads (apps, APIs, background workers). Each key under `services:` is the unique service name.
***
## Service fields
### `type`
Specifies the workload type. Currently supported:
* `service` → Long-running service accessible via HTTP(s).
### `machineType`
Defines the compute size used. Examples:
* `DCD-1` → Small (low-cost)
* `DCD-2` → Medium
* etc...
### `regions`
Specifies the deployment region. Example: `Mumbai (India)`, `Frankfurt (Germany)`.
### `build`
Describes how to build the container image.
* `context` → Path to the build directory.
* `dockerfilePath` → Path to the Dockerfile.
* `repo` → Source repository (GitHub).
* `ref` → Branch, tag, or commit reference.
* `refType` → Type of ref (`branch`, `tag`).
* `commitHash` → Pin to a specific commit.
* `autoBuild` → If true, DCDeploy auto-builds on new commits.
* `private` → If true, repository is private.
### `image`
Instead of `build`, you can directly use a pre-built Docker image:
```yaml theme={null}
image: nginx:latest
```
### `ports`
List of exposed container ports (e.g., `80`, `3000`).
### `protocol`
Defines network protocol: `https`.
### `minScale` / `maxScale`
Defines autoscaling range.
* `minScale` → Minimum instances always running.
* `maxScale` → Maximum instances allowed.
### `environment`
Optional key-value pairs for environment variables.
```yaml theme={null}
environment:
GEMINI_API_KEY: your-api-key
MONGO_URI: mongodb+srv://...
```
***
## Best practices
* Use **`autoBuild: true`** for continuous deployment.
* Prefer **`image`** for stable, pre-built containers.
* Keep secrets in `environment` or [Secrets Manager](./environment-variables).
* Use appropriate `minScale`/`maxScale` to balance cost and availability.
***
# Deploy a Database
Source: https://docs.dcdeploy.com/docs/deploy/deploy-db
Provision and deploy a managed database in your DCDeploy environment.
Go to the **Deploy** tab of the environment in your DCDeploy dashboard.\
Here you can deploy both services and databases.
Click on **Add Database**. A new form will appear where you can configure your database.
Provide the following details:
* **Database Name**: Enter a unique name for your database instance.
* **Engine**: Select the database engine and version. Supported engines:
* MongoDB (v4, v5, v6, v7)
* MariaDB
* PostgreSQL
* MySQL
* **Region**: Choose the DCDeploy region where your database should be deployed.
* **Machine Type**: Select a machine type that fits your resource needs (CPU, RAM, Disk).
Click **Continue > Deploy** to start provisioning your database.
* Deployment may take a few minutes depending on the engine and machine type selected.
* Once deployed, connection details (hostname, port, username, password) will be available in the dashboard.
# Deploy from Docker registry
Source: https://docs.dcdeploy.com/docs/deploy/deploy-docker-image
Deploy your services using Docker images either from DockerHub or from a private registry
Navigate to the **Deploy** tab of the environment in your DCDeploy dashboard where you want to deploy your service.
Click on **Add Service**. A new form will appear where you can provide details of your service.
1. Begin by adding a new service.
2. **Service Name**: A unique name is auto-generated by default. You can change it if needed.
6. Next, select the source type for your service (default is **Docker**).
7. Afterwards, provide the image details.
8. Valid examples: `nginx:latest`, `nginx`, `docker.io/nginx:latest`, `docker.io/nginx`.
9. Continue by adding the image configuration.
10. By default pull-secret set to no pull-secret if the service is private configure credentials , the service will be deployed in private network. Otherwise, it will be deployed in public network.
Configure how your service should run:
* **Port**: Enter the port number your service listens on. Ensure your app binds to `0.0.0.0` on this port.
* **Protocol**: HTTPS is the default protocol.
* **Region**: Select the DCDeploy region(s) where you want your service deployed.
* **Machine Type**: Choose from available DCDeploy machine types (CPU, RAM, and Disk). [See details here](https://dcdeploy.com/pricing/).
* **CPU/Memory Usage Limits**: Configure resource limits according to your service requirements.
* **Environment Variables**: Provide environment variables by directly pasting your `.env` file or add them manually.
* **Scaling Options**:
* Define minimum and maximum instances.
* Enable **Auto Scaling** to automatically scale based on traffic or CPU/memory thresholds.
Click the **Continue** button.
* You’ll be asked for confirmation before deployment.
* If multiple services are added, removed, or updated, confirmation will cover all changes.
# Deploy from GitHub Repository
Source: https://docs.dcdeploy.com/docs/deploy/deploy-github-repo
Deploy your services directly from your GitHub repository with optional auto-build support.
Navigate to the **Deploy** tab of the environment in your DCDeploy dashboard where you want to deploy your service.
Click on **Add Service**. A new form will appear where you can provide details of your service.
Complete the following fields:
* **Service Name**: A unique name is auto-generated by default. You can change it if needed.
* **Source**: Select **GitHub** as the source.
* **Configure** github account, there are two way to Configuration
* Click on user profile icon top right at navbar
* Click on profile option
* navigate to **connection** tab
* and connect your github account\
OR in your service form
* Click on cog icon right side of the github
* Select the account you want to configure
* Select the repository you want to deploy or allow all
* Click on install
* **Repository**: Choose the GitHub repository you want to deploy
Complete the following fields:
* **Service Name**: A unique name is auto-generated by default. You can change it if needed.
* **Source**: Select **GitHub** as the source.
* **Repository**: Choose the GitHub repository where your code resides. Make sure your repository should be **public** repositories.
* **Branch / Tag**: Select the branch or tag you want to deploy from.
* **Build Context**: Provide the path in your repo where the Docker build should run (default is `./`).
* **Dockerfile Path**: Specify the Dockerfile path if it’s not in the root directory (default is `./`).
* **Auto Build (Optional)**: Enable auto-build to automatically trigger a new build whenever you push to the selected branch.
Configure how your service should run:
* **Port**: Enter the port number your service listens on. Ensure your app binds to `0.0.0.0` on this port.
* **Protocol**: HTTPS is the default protocol.
* **Region**: Select the DCDeploy region(s) where you want your service deployed.
* **Machine Type**: Choose from available DCDeploy machine types (CPU, RAM, and Disk). [See details here](https://dcdeploy.com/pricing/).
* **CPU/Memory Usage Limits**: Configure resource limits according to your service requirements.
* **Environment Variables**: Provide environment variables directly paste your `.env` file or add manually.
* **Scaling Options**:
* Define minimum and maximum instances.
* Enable **Auto Scaling** to automatically scale based on traffic or CPU/memory thresholds.
Click the **Continue** button.
* You’ll be asked for confirmation before deployment.
* If multiple services are added, removed, or updated, confirmation will cover all changes.
# Environment Variables
Source: https://docs.dcdeploy.com/docs/deploy/environment-variables
Environment variables let you configure services in DCDeploy without hard-coding values into your source code or container images. Use them to define secrets, connection strings, API keys, and runtime configuration.
## Adding environment variables
You can define environment variables while creating or updating a deployment:
1. Go to your **Environment Dashboard** → select your service.
2. add service and add **Environment Variables**, click **Add Variable**.
3. Provide a **key** and **value**.
4. Save changes and **redeploy** for updates to take effect.
**Quick Option:** You can also copy-paste the content of your `.env` file directly using the **`.ENV`** button in the form. DCDeploy will automatically parse and add the variables.
***
## Secrets management
Sensitive values (e.g., database passwords, API keys) should be stored as **secrets**. DCDeploy automatically encrypts them and injects them at runtime.
Example:
***
## Overriding variables
* Variables defined in the dashboard UI override those in the manifest.
* Redeployment is required for changes to apply.
* Deleted variables are removed from the runtime environment on next deploy.
***
## Best practices
* **Never hard-code secrets** in images or code.
* **Use different env files** for dev, staging, and production.
* **Prefix variables** for clarity (e.g., `DB_HOST`, `REDIS_URL`).
* **Keep non-secret configs** (like `LOG_LEVEL`) separate from sensitive ones.
***
## Example usage in code
```javascript helloWorld.js theme={null}
const dbUrl = process.env.DATABASE_URL;
```
```python hello_world.py theme={null}
import os
DB_URL = os.getenv("DATABASE_URL")
```
# Ephemeral & Persistent Storage
Source: https://docs.dcdeploy.com/docs/deploy/ephemeral-persistant-storage
Understand the difference between ephemeral and persistent storage in DCDeploy and how to use each for your services effectively.
## Overview
DCDeploy supports both **ephemeral** and **persistent storage**. Choosing the right type depends on whether your service data needs to survive container restarts or deployments.
* **Ephemeral Storage:** Temporary storage tied to the container lifecycle.
* **Persistent Storage:** Durable storage that survives container restarts and redeployments.
***
## Ephemeral Storage
* Created automatically with a container.
* Data is lost when the container stops, restarts, or is deleted.
* Best for:
* Temporary caches
* Session storage
* Scratch data during builds or computation
#### Notes:
* Use for stateless services or data that can be regenerated.
* No additional configuration needed.
## Persistent Storage
* Separate storage volume that survives container restarts or redeploys.
* Ideal for databases, uploaded files, or any critical data.
## Dashboard:
1. Navigate to the service → Volumes → Add Persistent Volume
2. Mount the volume to the desired path in the container.
3. Start the service; data persists across restarts and deployments.
#### Notes:
* Ensure volumes are backed up regularly.
* Multiple services can share volumes if configured correctly.
* Volumes can be migrated to other environments if needed.
### Comparison Table
| Feature | Ephemeral Storage | Persistent Storage |
| --------------- | ---------------------------- | ---------------------------------------- |
| Lifecycle | Container only | Survives restarts & redeploys |
| Use Case | Caches, temp files, sessions | Databases, uploaded files, critical data |
| Backup Required | No | Yes |
| Configuration | Automatic | Requires volume setup |
### Best Practices
* Use ephemeral storage for stateless services and temporary data.
* Use persistent storage for databases, user files, and critical data.
* Regularly backup persistent volumes.
* Avoid storing critical data on ephemeral storage.
# Organization Overview
Source: https://docs.dcdeploy.com/docs/deploy/overview
Understand the DCDeploy Organization Overview page, including environments, usage, billing, and activity insights.
The **Organization Overview** page gives you a central view of your organization’s resources, usage, and billing in DCDeploy.\
It helps you monitor environments, manage balance, and track activities across workloads in real time.
***
## Sections in Organization Overview
### 1. **Environments**
* Lists all active environments under the organization (e.g., `dev`, `QA`, `prod`).
* For each environment you can:
* View associated workloads and machines.
* Manage deployments.
* Access environment-specific settings.
👉 Use the **View** button to drill into details for each environment.
***
### 2. **Activity Timeline**
* Displays recent events and deployments across environments.
* Events include:
* Build start & completion.
* Deployment progress.
* Failed builds (marked in red).
* Helps track history and troubleshoot issues in real time.
***
### 3. **Balance**
* Shows your **current account balance** in INR.
* Negative values indicate outstanding dues.
* You can **add funds** directly from this panel.
* Also displays estimated **minutes left** based on current balance and usage.
***
### 4. **Usage by Environments**
* Breaks down **current month’s billing** by environment.
* Helps identify which environment or repo consumes the most resources.
* Example:
* `dev` – ₹1,845.59
* `prod` – ₹9,381.05
* `staging` – ₹141.97
***
## Key Use Cases
* Quickly monitor environment health and usage.
* Identify high-cost environments and optimize workloads.
* Track build and deployment history for debugging.
* Manage balance to avoid service interruptions.
***
## Best Practices
* Regularly check the **Activity Timeline** to spot failed builds.
* Use **Usage by Environments** to optimize cost allocation.
* Ensure your **balance is positive** to prevent deployment failures.
* Organize workloads into separate environments for clarity (e.g., dev, staging, prod).
***
# Rebuild & Deploy
Source: https://docs.dcdeploy.com/docs/deploy/rebuild-deploy
The **Rebuild & Deploy** feature in DCDeploy forces a fresh build of your service and then redeploys it. This is different from a normal **Redeploy**, which may reuse the latest built image. With **Rebuild & Deploy**, the entire Docker image is rebuilt from scratch and then rolled out.
## When to use Rebuild & Deploy
* **Dockerfile changes** – When you’ve updated the `Dockerfile` or build context.
* **Dependencies update** – If you changed `package.json`, `requirements.txt`, or other dependency files.
* **Build configuration changes** – Updating `context`, `dockerfilePath`, or `autoBuild` in `DCDeploy.yml`.
* **Corrupted image fixes** – Forcing a clean rebuild ensures the latest state is deployed.
## How Rebuild & Deploy Works
1. **Fresh Build**
* DCDeploy ignores cached layers.
* A new Docker image is built from your repository or build context.
2. **Deploy Rollout**
* The new image is deployed to your service.
* If **zero downtime deployment** is enabled, old containers are kept alive until the new ones pass health checks.
## Rebuild & Deploy via Dashboard
1. Open the **DCDeploy dashboard**.
2. Navigate to your service.
3. Click **Rebuild & Deploy**.
4. Confirm the rebuild trigger.
5. Watch build and deployment logs in real-time.
### Auto Rebuild on Commit
If you set `autoBuild:` true in your DCDeploy.yml, DCDeploy automatically triggers a Rebuild & Deploy whenever you push new commits to the specified branch.
Example:
```yaml theme={null}
services:
my-app:
build:
context: ./
dockerfilePath: ./Dockerfile
repo: my-org/my-repo
ref: main
refType: branch
autoBuild: true
```
* Every commit to main will rebuild and deploy the service automatically.
* Ensures your production always runs the latest code.
* Works with both public and private repositories.
### Key Difference: Redeploy vs Rebuild & Deploy
| Feature | Redeploy | Rebuild & Deploy |
| ------------------ | ------------------------ | ------------------------------------- |
| Uses cached image? | Yes | No (fresh build) |
| Speed | Faster | Slower (full build) |
| Use case | Code/config changes only | Dockerfile/dependencies/build changes |
### Best Practices
* Use Redeploy for small code/config changes.
* Use Rebuild & Deploy when build environment changes are required.
* Test in staging before running on production.
* Enable zero downtime to avoid interruptions during rebuilds.
* Prefer autoBuild: true for continuous integration workflows.
By using Rebuild & Deploy, you ensure your service always runs on the freshest possible build, eliminating risks from outdated or cached images.
# Revision Events
Source: https://docs.dcdeploy.com/docs/deploy/revision-events
Track build and deployment progress with revision events
Revision events provide real-time feedback on the status of builds and deployments.\
These events are recorded against each revision and can be viewed on hover (as tooltips) or inside logs.
***
## Build Events
These events are triggered during the build process:
* **Build failed due to internal error.**
* **Build failed due to excessive retries.**
* **Build failed due to timeout.**
* **Build failed due to no build started.**
* **Build failed due to wrong Git config.**
* **Build failed. Please check build logs.**
* **Build failed due to no commit hash.**
* **Build failed. Source not fetched.**
* **Build completed successfully.**
***
## Deployment Events
These events indicate the status of deployment:
* **Deployment seems stuck in progress.**\
*(Check configured port and logs for more details.)*
* **Deployment is successful and ready to use.**
* **Deployment timeout.**\
*(Check the logs for more details.)*
* **Deployment is crashing.**\
*(Check the logs for more details.)*
* **Deployment startup probe failed.**\
*(Verify configured port and logs.)*
***
## Event Categories
Each revision event has:
* **Message** → Human-readable status update.
* **Status** → `active`, `failed`, or `success`.
* **Phase** → e.g., `started`, `deployed`, `failed`.
# Service Management
Source: https://docs.dcdeploy.com/docs/deploy/service-management
Manage your services in DCDeploy by starting, stopping, restarting, or deleting them. This guide covers the full lifecycle of service management for maintenance, cost optimization, and operational control.
## When to Manage Services
* **Maintenance** – Temporarily stop, restart, or delete services for updates or troubleshooting.
* **Cost Optimization** – Stop or delete unused services to save resources.
* **Testing & Configuration Changes** – Restart services to apply configuration changes without redeploying.
* **Emergency Actions** – Stop or delete services immediately to prevent errors or security issues.
***
## Start, Stop & Restart Services
### How It Works
1. **Stop Service**
* Stops all running containers.
* Preserves configuration for later restart.
* No traffic is routed to the service while stopped.
2. **Start Service**
* Starts containers using the last deployed image and configuration.
* Runs health checks before routing traffic.
3. **Restart Service**
* Stops the service and immediately starts it again.
* Useful for refreshing containers without a full rebuild.
### Dashboard Steps
1. Open the **DCDeploy dashboard**.
2. Navigate to workload tab in your environment.
3. Use the buttons in your workload quick action column:
* **Stop Service** to halt containers.
* **Start Service** to bring it online.
* **Restart Service** to refresh containers.
4. Monitor logs and health checks in real-time.
### Comparison Table
| Action | What Happens | Use Case |
| ------- | ------------------------------------------ | -------------------------------- |
| Start | Starts containers from last deployed image | Bring service online |
| Stop | Stops all containers, no traffic routed | Maintenance, save resources |
| Restart | Stops and starts containers immediately | Refresh service without redeploy |
### Delete Service
#### How It Works
* Permanently removes the selected service from the environment.
* Deletes all containers, associated resources, configuration, deployment history, and logs.
* Action is irreversible, so ensure the service is no longer needed.
#### Dashboard Steps
* Open the DCDeploy dashboard.
* Navigate to the Environment tab.
* Go to the Deploy section.
* Select the service you want to delete.
* Click Mark as Delete.
* Click Continue to confirm.
* Click Deploy to finalize deletion.
* The service will be permanently removed.
### Best Practices
* Always double-check the service before stopping or deleting.
* Backup important data before deletion.
* Use staging environments for testing service management actions.
* Combine restart with zero-downtime deployment to minimize user impact.
* Automate start/stop actions during off-peak hours via scripts or CI/CD pipelines.
# TCP Proxy & Public URLs
Source: https://docs.dcdeploy.com/docs/deploy/tcp-proxy
The **TCP Proxy** in DCDeploy allows you to expose workloads that communicate over **raw TCP protocols** (non-HTTP). This is especially useful for **databases, message brokers, and custom TCP-based services**. With **TCP Public URLs**, you can also securely connect to these services from outside DCDeploy.
***
## When to use TCP Proxy?
* **Databases** – Expose PostgreSQL, MySQL, or Mongodb for internal/external access.
* **Message Brokers** – Kafka, RabbitMQ, or custom TCP services.
* **Custom Protocols** – Any app or service that doesn’t use HTTP/HTTPS.
***
### Example: Mongo-db with TCP Proxy
### TCP Public URLs for Databases
When you set protocol: tcp, DCDeploy provisions a public TCP endpoint so you can connect to your database or TCP service from anywhere.
### PostgreSQL Example
Mysql Example
### Best practices
* Secure your database – Never leave databases open without authentication. Always set strong passwords.
* Restrict access – Use firewall rules or allow-list IPs if possible.
* Prefer private networking – For production workloads, use DCDeploy’s private VPC or service-to-service networking instead of exposing databases publicly.
* Use secrets to store credentials rather than hardcoding them in your worhload form.
***
# Workloads Tab
Source: https://docs.dcdeploy.com/docs/deploy/workload-details
Monitor and manage your deployed workloads in the DCDeploy dashboard.
The **Workloads** tab gives you a centralized view of all the services and databases deployed within your selected environment. It provides real-time visibility into status, resources, and quick management actions.
Each workload is listed with the following details:
* **Name**: The unique name of your service or database.
* **Status**: Current state of the workload (e.g., *Created*, *Accepted*, *Buiding*, *Started*, *Pulled*, *Pulling*, *Deployed*,*Failed*).
* **Source**: The origin of the workload (e.g., *Docker image*, *GitHub public/private repo*).
* **Machine Type**: The compute machine type allocated (e.g., *DCD-2*, *DCD-3*, etc..).
* **Active Machines**: Number of running instances for the workload.
* **Version**: The current deployed version.
* **Last Modified By**: The user who last updated the workload and timestamp of modification.
Use the **Status filter** or the **search bar** to quickly locate workloads by name or status.
The **Quick Actions** dropdown (⚙️ **View**) provides shortcuts to manage each workload:
* **View**: Inspect workload configuration and details.
* **Logs**: View real-time application logs for debugging and monitoring.
* **Metrics**: Analyze CPU, memory, and resource usage trends.
* **Terminal**: Access an interactive shell inside the running container for direct troubleshooting.
* Regularly check **Logs** to ensure application health.
* Use **Metrics** to fine-tune scaling and machine types.
* Keep workload versions updated to avoid stale deployments.
* For debugging, use the **Terminal** cautiously (production workloads should use secrets and configs instead of manual fixes).
# Workload Types
Source: https://docs.dcdeploy.com/docs/deploy/workload-types
DCDeploy supports multiple workload types to match the nature of your application or service. Choosing the right workload type ensures resources are allocated efficiently and scaling policies behave as expected.
## Available workload types
### 1. **Service**
* Long-running processes designed to handle network traffic (HTTP, gRPC, TCP, Websockets).
* Typically used for APIs, web apps, or microservices.
* Can be autoscaled based on **CPU, memory, or network RPS**.
**Example:**
***
### 2. **Database**
* Managed databases.
* Persistent storage enabled.
* Optimized for durability and stateful workloads.
**Example:**
### 3. **Worker**
* Worker is a special type of container designed to run indefinitely in the background without exposing any HTTP endpoints or acting as a web server.
* Unlike typical app containers that handle incoming requests, a worker is focused solely on executing background logic — continuously, or in response to internal events, queues, or schedules.
**Example**
***
## Choosing the right workload type
| Workload Type | Use Case |
| ------------- | ----------------------------- |
| **Service** | Web apps, APIs, microservices |
| **Database** | Stateful data storage |
| **Worker** | Job / Task runner |
***
## Best practices
* Use **Services** for stateless traffic-handling apps.
* Run **Databases** only when you need custom DB setups (prefer managed DBs if available).
* Ensure **Workers** have retry logic and error handling.
***
# Fair Use Guidelines
Source: https://docs.dcdeploy.com/docs/legal/fair-use
All deployments hosted on DCDeploy are subject to our Fair Use Guidelines. In general, do not use our platform for any illegal activities, violate the rights of others, or engage in behavior that could harm our network or other users. Violations of our Fair Use Guidelines may result in account suspension or termination.
* Websites
* Backends apis and servers
* Cron Jobs / Scheduled Jobs
* Code Servers
* Databases
* Torrent Aggregators
* Crypto Miners
* Hosting/Distribution of DMCA protected content
* VNCs/Virtual desktops
* Free Tier Abuse
* Sending Spam
* Illegal activities
* Proxy services
* Scraping and Crawling
# Privacy Policy
Source: https://docs.dcdeploy.com/docs/legal/privacy
## Introduction
Welcome to Sappal Cloud Services Pvt. Ltd.("us", "we", or "our") operates [https://DCDeploy.com](https://DCDeploy.com) (hereinafter referred to as "Service").
Our Privacy Policy governs your visit to [https://DCDeploy.com](https://DCDeploy.com), and explains how we collect, safeguard and disclose information that results from your use of our Service. We use your data to provide and improve Service.
By using Service, you agree to the collection and use of information in accordance with this policy.
Unless otherwise defined in this Privacy Policy, the terms used in this Privacy Policy have the same meanings as in our Terms and Conditions.
Our Terms and Conditions ("Terms") govern all use of our Service and together with the Privacy Policy constitutes your agreement with us ("agreement").
## Definitions
**SERVICE** means the [https://DCDeploy.com](https://DCDeploy.com) website operated by Sappal Cloud Services Pvt. Ltd.
**PERSONAL DATA** means data about a living individual who can be identified from those data (or from those and other information either in our possession or likely to come into our possession).
**USAGE DATA** is data collected automatically either generated by the use of Service or from Service infrastructure itself (for example, the duration of a page visit).
**COOKIES** are small files stored on your device (computer or mobile device).
**DATA CONTROLLER** means a natural or legal person who (either alone or jointly or in common with other persons) determines the purposes for which and the manner in which any personal data are, or are to be, processed. For the purpose of this Privacy Policy, we are a Data Controller of your data.
**DATA PROCESSORS** (OR SERVICE PROVIDERS) means any natural or legal person who processes the data on behalf of the Data Controller. We may use the services of various Service Providers in order to process your data more effectively.
**DATA SUBJECT** is any living individual who is the subject of Personal Data.
**THE USER** is the individual using our Service. The User corresponds to the Data Subject, who is the subject of Personal Data.
## Information Collection and Use
We collect several different types of information for various purposes to provide and improve our Service to you.
## Types of Data Collected
#### Personal Data
While using our Service, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you ("Personal Data"). Personally identifiable information may include, but is not limited to:
* Email address
* First name and last name
* Cookies and usage data
We may use your Personal Data to contact you with newsletters, marketing or promotional materials and other information that may be of interest to you. You may opt out of receiving any, or all, of these communications from us by following the unsubscribe link.
#### Usage Data
We may also collect information that your browser sends whenever you visit our Service or when you access Service by or through a mobile device ("Usage Data").
This Usage Data may include information such as your computer's Internet Protocol address (e.g. IP address), browser type, browser version, the pages of our Service that you visit, the time and date of your visit, the time spent on those pages, unique device identifiers and other diagnostic data.
When you access Service with a mobile device, this Usage Data may include information such as the type of mobile device you use, your mobile device unique ID, the IP address of your mobile device, your mobile operating system, the type of mobile Internet browser you use, unique device identifiers and other diagnostic data.
#### Tracking Cookies Data
We use cookies and similar tracking technologies to track the activity on our Service and we hold certain information.
Cookies are files with a small amount of data which may include an anonymous unique identifier. Cookies are sent to your browser from a website and stored on your device. Other tracking technologies are also used such as beacons, tags and scripts to collect and track information and to improve and analyze our Service.
You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if you do not accept cookies, you may not be able to use some portions of our Service.
Examples of Cookies we use:
* Session Cookies: We use Session Cookies to operate our Service.
* Preference Cookies: We use Preference Cookies to remember your preferences and various settings.
* Security Cookies: We use Security Cookies for security purposes.
#### Other Data
While using our Service, we may also collect the following information: sex, age, date of birth, place of birth, passport details, citizenship, registration at place of residence and actual address, telephone number (work, mobile), details of documents on education, qualification, professional training, employment agreements, non-disclosure agreements, information on bonuses and compensation, information on marital status, family members, social security (or other taxpayer identification) number, office location and other data.
## Use of Data
Sappal Cloud Services Pvt. Ltd. uses the collected data for various purposes:
* to provide and maintain our Service;
* to notify you about changes to our Service;
* to allow you to participate in interactive features of our Service when you choose to do so;
* to provide customer support;
* to gather analysis or valuable information so that we can improve our Service;
* to monitor the usage of our Service;
* to detect, prevent and address technical issues;
* to fulfill any other purpose for which you provide it;
* to carry out our obligations and enforce our rights arising from any contracts entered into between you and us, including for billing and collection;
* to provide you with notices about your account and/or subscription, including expiration and renewal notices, email-instructions, etc.;
* to provide you with news, special offers and general information about other goods, services and events which we offer that are similar to those that you have already purchased or enquired about unless you have opted not to receive such information;
* in any other way we may describe when you provide the information;
* for any other purpose with your consent.
## Retention of Data
We will retain your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use your Personal Data to the extent necessary to comply with our legal obligations (for example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.
We will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period, except when this data is used to strengthen the security or to improve the functionality of our Service, or we are legally obligated to retain this data for longer time periods.
## Disclosure Of Data
We may disclose personal information that we collect, or you provide:
* Disclosure for Law Enforcement.
Under certain circumstances, we may be required to disclose your Personal Data if required to do so by law or in response to valid requests by public authorities.
* Business Transaction.
If we or our subsidiaries are involved in a merger, acquisition or asset sale, your Personal Data may be transferred.
* Other cases. We may disclose your information also:
* to our subsidiaries and affiliates;
* to fulfill the purpose for which you provide it;
* for the purpose of including your company’s logo on our website;
* if we believe disclosure is necessary or appropriate to protect the rights, property, or safety of the Company, our customers, or others.
## Security of Data
The security of your data is important to us but remember that no method of transmission over the Internet or method of electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your Personal Data, we cannot guarantee its absolute security.
## GDPR
If you are a resident of the European Union (EU) and European Economic Area (EEA), you have certain data protection rights, covered by GDPR. – See more at [https://eur-lex.europa.eu/eli/reg/2016/679/oj](https://eur-lex.europa.eu/eli/reg/2016/679/oj)
We aim to take reasonable steps to allow you to correct, amend, delete, or limit the use of your Personal Data.
If you wish to be informed what Personal Data we hold about you and if you want it to be removed from our systems, please email us at [support@DCDeploy.com](mailto:support@DCDeploy.com).
In certain circumstances, you have the following data protection rights:
* the right to access, update or to delete the information we have on you;
* the right of rectification. You have the right to have your information rectified if that information is inaccurate or incomplete;
* the right to object. You have the right to object to our processing of your Personal Data;
* the right of restriction. You have the right to request that we restrict the processing of your personal information;
* the right to data portability. You have the right to be provided with a copy of your Personal Data in a structured, machine-readable and commonly used format;
* the right to withdraw consent. You also have the right to withdraw your consent at any time where we rely on your consent to process your personal information;
Please note that we may ask you to verify your identity before responding to such requests. Please note, we may not able to provide Service without some necessary data.
## Service Providers
We may employ third party companies and individuals to facilitate our Service ("Service Providers"), provide Service on our behalf, perform Service-related services or assist us in analyzing how our Service is used.
These third parties have access to your Personal Data only to perform these tasks on our behalf and are obligated not to disclose or use it for any other purpose.
## Analytics
We may use third-party Service Providers to monitor and analyze the use of our Service.
Google Analytics
## CI/CD tools
We may use third-party Service Providers to automate the development process of our Service.
#### GitHub
GitHub is provided by GitHub, Inc.
GitHub is a development platform to host and review code, manage projects, and build software.
For more information on what data GitHub collects for what purpose and how the protection of the data is ensured, please visit GitHub Privacy Policy page:
## Behavioral Remarketing
Sappal Cloud Services Pvt. Ltd. uses marketing services to advertise on third party websites to you after you visited our Service. We and our third-party vendors use cookies to inform, optimize and serve ads based on your past visits to our Service.
#### Google Ads (AdWords)
Google Ads (AdWords) marketing service is provided by Google Inc.
You can opt-out of Google Analytics for Display Advertising and customize the Google Display Network ads by visiting the Google Ads Settings page: [http://www.google.com/settings/ads](http://www.google.com/settings/ads)
Google also recommends installing the Google Analytics Opt-out Browser Add-on – [https://tools.google.com/dlpage/gaoptout](https://tools.google.com/dlpage/gaoptout) – for your web browser. Google Analytics Opt-out Browser Add-on provides visitors with the ability to prevent their data from being collected and used by Google Analytics.
For more information on the privacy practices of Google, please visit the Google Privacy Terms web page: [https://policies.google.com/privacy?hl=en](https://policies.google.com/privacy?hl=en)
#### Twitter
Twitter marketing service is provided by Twitter Inc.
You can opt-out from Twitter's interest-based ads by following their instructions: [https://support.twitter.com/articles/20170405](https://support.twitter.com/articles/20170405)
You can learn more about the privacy practices and policies of Twitter by visiting their Privacy Policy page: [https://twitter.com/privacy](https://twitter.com/privacy)
## Payments
We may provide paid products and/or services within Service. In that case, we use third-party services.
We will not store or collect your payment details. That information is provided directly to our third-party payment processors whose use of your personal information is governed by their Privacy Policy. These payment processors adhere to the standards set by PCI-DSS as managed by the PCI Security Standards Council, which is a joint effort of brands like Visa, Mastercard, American Express and Discover. PCI-DSS requirements help ensure the secure handling of payment information.
The payment processor we work with is [Razorpay](https://www.razorpay.com). You can view their Privacy Policy here: [https://razorpay.com/privacy](https://razorpay.com/privacy)
## Links to Other Sites
Our Service may contain links to other sites that are not operated by us. If you click a third party link, you will be directed to that third party's site. We strongly advise you to review the Privacy Policy of every site you visit.
We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.
## Children's Privacy
Our Services are not intended for use by children under the age of 13 ("Children").
We do not knowingly collect personally identifiable information from Children under 13. If you become aware that a Child has provided us with Personal Data, please contact us. If we become aware that we have collected Personal Data from Children without verification of parental consent, we take steps to remove that information from our servers.
## Changes to This Privacy Policy
We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page.
We will let you know via email and/or a prominent notice on our Service, prior to the change becoming effective and update "effective date" at the top of this Privacy Policy.
You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.
## Contact Us
If you have any questions about this Privacy Policy, please contact us:
By email: [support@DCDeploy.com](mailto:support@DCDeploy.com).
# Terms of Service
Source: https://docs.dcdeploy.com/docs/legal/terms
## Summary
For your convenience, we have summarized the key points of our terms of service as follows:
1. We will send you emails.
2. We can communicate with other services on your behalf, such as GitHub.
3. You agree not to host any illegal content on our platform.
4. We have obtained all the necessary licenses for all contributions to our open source community submitted to our GitHub public code repository.
5. You are legally responsible for the content and services you deploy and manage on our platform.
6. We will comply with copyright takedown requests.
7. We will try our best to notify you when our terms of service change.
8. The services and content provided by DCDeploy are provided "as is" without any warranty.
If you use the DCDeploy platform and its services, you agree to these terms.
If you need the full terms, please read the following content.
## 1. Basic Introduction
Thank you for choosing DCDeploy as your partner. Please read the following content to understand the rules and restrictions you need to follow when using our website, products, services and applications (hereinafter referred to as "services").
The following user terms (hereinafter referred to as "terms") are a binding contract between you and Sappal Cloud Services Pvt. Ltd. (hereinafter referred to as "DCDeploy", "we", "our company", "our platform" or "DCDeploy Technology"). By using any service in any way, you agree to abide by all terms, and these terms will remain in effect during your use of the service. These terms include the terms in this document and the terms in the privacy policy. You may also be subject to other policies, rules and terms (hereinafter referred to as "additional terms") when you use or participate in certain services, which have been referenced in this document. You understand and agree that when you use or participate in any service, you agree to abide by these additional terms.
Please read these terms carefully. They cover important information about the services we provide to you, as well as the fees and taxes we will charge you. These terms include information about future changes to these terms, automatic renewal, liability limitations, class action waivers, and arbitration to resolve disputes instead of resolving disputes in court. Please note that your use and access to our services will be subject to the following terms; if you do not agree to all of the following, you may not be able to use or access the service in any way.
### Arbitration Notice and Exclusion of Class Actions
Except for disputes of the types described in the arbitration agreement below, you agree that disputes will be resolved by binding individual arbitration and that you waive your right to participate in a class action or class arbitration.
## 2. Terms of Change
We are constantly working to improve our services, so these terms may need to change as our services change. We reserve the right to change these terms at any time, but if we do so, we will post a notice on our website and send you an email in some other way.
If you do not agree to the new terms, you can freely refuse them; unfortunately, this means you will no longer be able to use the service. If you use the service in any way after the terms take effect, this means you agree to all changes.
Except for changes described here, no other amendments or modifications to these terms will be effective unless signed in writing by you and us.
## 3. Privacy Policy
Dcdeploy places the privacy and data security of users first. Please click [here](./privacy) to view the latest privacy policy.
## 4. Basic Requirements
You may need to register an account using email address, and provide us with some information or data, such as your contact information. You promise to provide accurate, complete and updated self-registration information to us. You cannot choose a email that you do not have the right to use, or choose another person's email in the name of another person. You cannot transfer your account to another person without our prior written permission.
You must provide accurate, complete and up-to-date information when you register for an account, and you must keep this information up to date. You are responsible for all activities that occur under your account. You must not disclose your login details to anyone else. You must notify us immediately if you become aware of any unauthorized use of your account or any other breach of security.
In addition, you can access some parts or functions of the service by using the account credentials of other services (each of which is referred to as a "third-party account"), such as services provided by GitHub, GitLab or Google. By using the service through a third-party account, you allow us to access some information from such accounts for use by the service. You ultimately control how much information is visible to us and can execute such control by adjusting the privacy settings of the third-party account.
You promise that you are a legal adult and can form a binding contract (or if you are not, you have obtained permission from your parents or guardians to use the service and have obtained your parents' or guardians' consent to these terms on your behalf). If you agree to these terms on behalf of an organization or entity, you promise and guarantee that you have the authority to agree to these terms on behalf of the organization or entity and to bind it in these terms (in which case, references to "you" and "your" in these terms refer to the organization or entity, except for this sentence).
You can only use the service for your own internal, personal, non-commercial purposes, not on behalf of or for the benefit of any third party, and can only use it in a manner that complies with all applicable laws. If the use of the service is prohibited by applicable law, you are not allowed to use the service. We cannot and will not be responsible for your use of the service in a manner that violates the law.
## 5. Communications
As part of the service, you may receive communications from us, including messages sent to you by DCDeploy (for example, by email). When you register for the service, you will receive a welcome message and instructions on how to opt out of receiving messages.
## 6. Restrictions on Use
You promise that you will not provide or contribute anything in any of the following ways, including any content or user-submitted content (as defined below), to the service, or otherwise use or interact with the service:
1. Infringe or violate any person's intellectual property rights or any other rights (including DCDeploy);
2. Violate any law or regulation, including but not limited to any applicable export control laws, privacy laws or any other purpose reasonably intended by DCDeploy;
3. Dangerous, harmful, fraudulent, deceptive, threatening, harassing, defamatory, obscene or otherwise objectionable;
4. Endanger your DCDeploy account or the security of any person (for example, allowing others to log in to the service as you);
5. Attempt to obtain any other user's account or other security information in any way;
6. Violate the security of any computer network, or crack any password or security encryption code;
7. Run mailing lists, list servers, any form of autoresponder or "spam" on the service, or any process that runs or is activated when you are not logged in to the service, or otherwise interfere with the normal operation of the service (including placing unreasonable loads on the service's infrastructure);
8. Use "crawlers" to "scrape" any page, data or any part of the service or content (by manual or automatic means);
9. Copy or store any significant part of the content;
10. Reverse engineer, decompile or otherwise attempt to obtain the source code or underlying ideas or information related to the service.
Any such breach of these terms is grounds for termination of your use or access to the service.
## 7. Rights
Content displayed, accessible or otherwise provided on the service, including but not limited to text, graphics, data, articles, photos, images, illustrations, user-submitted content (as defined below) and the like (collectively, "content"), is protected by copyright and/or other intellectual property laws. You agree to comply with all copyright notices, trademark rules, information and restrictions contained in any content accessed through the service and you will not use, copy, reproduce, modify, translate, publish, broadcast, distribute, perform, upload, display, license, sell or otherwise exploit for any purpose any content that you do not own (i) without the prior written consent of the owner of that content, or (ii) in a way that violates the rights of others (including DCDeploy).
Unless otherwise specified, we grant to each user of the service a non-exclusive, non-transferable, non-sublicensable license to use (i.e. download and display locally) content solely for the purpose of using the service. You may not use, copy, modify, distribute or store any content for any purpose without our prior written permission. You understand that DCDeploy owns the service. You will not modify, publish, transmit, participate in the transfer or sale, create derivative works from, or in any way exploit any of the service. The service may allow you to copy or download certain content, but remember that all the restrictions in this section still apply even if such features exist.
## 8. Content License
### User Submitted Content
Any content you publish, upload, share, store, or otherwise provide through the service is "User Submitted Content". Some User Submitted Content may be viewable by other users. You are responsible for all User Submitted Content that you submit through the service. You represent that all User Submitted Content you submit is accurate, complete, up-to-date, and compliant with all applicable laws, rules, and regulations.
You agree that you will not publish, upload, share, store, or otherwise provide any User Submitted Content through the service that:
1. Infringes any third-party's copyright or other rights (such as trademark, privacy, etc.)
2. Contains pornography or sexually explicit content
3. Contains hate speech, defamation, or discriminatory content, or incites hatred against any individual or group
4. Exploits minors
5. Depicts illegal activities or extreme violence
6. Depicts animal abuse or extreme violence against animals
7. Promotes fraudulent schemes, multi-level marketing (MLM) schemes, get-rich-quick schemes, online games and gambling, cash gifting, work-at-home businesses, or any other suspicious money-making scheme
8. Violates any laws
### License
In order to display your user-submitted content on the service and allow other users to enjoy it (if applicable), you grant us certain rights with respect to that user-submitted content (see below for more information). Please note that all of the following licenses are subject to our Privacy Policy, to the extent they relate to user-submitted content that is associated with your personal information.
By submitting user-submitted content through the service, you hereby grant DCDeploy a worldwide, non-exclusive, perpetual, royalty-free, fully-paid, irrevocable, sublicensable and transferable license to use, edit, modify, truncate, aggregate, copy, distribute, prepare derivative works of, display, perform and otherwise fully exploit user-submitted content in connection with the Site, the Service and us (and our successors and assigns) business, including without limitation for the purpose of promoting and redistributing the whole or part of the Site or the Service (and its derivative works), and including after you terminate your account or the service. You also hereby grant to each user of the Site and/or the Service a non-exclusive, perpetual license to access your user-submitted content through the Site and/or the Service and to use, edit, modify, copy, distribute, prepare derivative works of, display and perform such user-submitted content, and including after you terminate your account or the service.
For the avoidance of doubt, the licenses granted to us and our users under the foregoing will not affect any other rights or licenses that you may have in and to user-submitted content, including the right to grant other licenses relating to user-submitted content, unless otherwise expressly agreed in writing.
Finally, you understand and agree that DCDeploy may need to take necessary technical steps in order to provide the service to users (including you) when such steps are reasonably necessary to conform and adapt any user-submitted content so that it is in technical compliance with the connection requirements of networks, devices, services or media, and the foregoing license includes the right to do so.
## 9. Intellectual Property Disputes
In accordance with the Digital Millennium Copyright Act (DMCA), we reserve the following rights to deal with copyright infringement:
1. The right to block access to or remove material that we believe in good faith to be infringing, to the extent that material is made available via our advertising, affiliate, content provider, member or user network, and to the extent that such material is made available under a party’s legitimate license.
2. The right to remove and/or disable access to material that we believe in good faith to be infringing, to the extent that such material is made available via our advertising, affiliate, content provider, member or user network, and to the extent that such material is made available under a party’s legitimate license.
### Reporting Copyright Infringement
If you believe that material or content available on the service infringes your copyright (or the copyright of someone you are authorized to act on behalf of), please send a copyright infringement notification containing the following information to DCDeploy:
1. A physical or electronic signature of a person authorized to act on behalf of the owner of an exclusive right that is allegedly infringed;
2. Identification of the copyrighted work or material that you claim has been infringed, or, if multiple copyrighted works at a single online site are covered by a single notification, a representative list of such works at that site;
3. Identification of the material that is claimed to be infringing or to be the subject of infringing activity and that is to be removed or access to which is to be disabled, and information reasonably sufficient to permit us to locate the material;
4. Information reasonably sufficient to permit us to contact you, such as an address, telephone number, and, if available, an electronic mail address at which you may be contacted;
5. A statement that you have a good faith belief that use of the material in the manner complained of is not authorized by the copyright owner, its agent, or the law;
6. A statement that the information in the notification is accurate, and under penalty of perjury, that you are authorized to act on behalf of the owner of an exclusive right that is allegedly infringed.
Upon receipt of a copyright infringement notification, we will take whatever action, in our sole discretion, we deem appropriate, including removal of the challenged material from the service.
1. The right to remove or disable access to material that we believe in good faith to be infringing, to the extent that material is made available via our advertising, affiliate, content provider, member or user network, and to the extent that such material is made available under a party’s legitimate license;
2. The right to notify the content provider, member or user that we have removed or disabled access to such material;
3. The right to terminate in appropriate circumstances the content provider, member or user’s access to our service.
### Reporting Copyright Infringement
If the content provider believes that the material that was removed (or to which access was disabled) is not infringing, or the content provider believes that it has the authorization from the copyright owner, the copyright owner’s agent, or pursuant to the law, to post and use such material, the content provider may send a counter-notice containing the following information to DCDeploy:
1. A physical or electronic signature of the content provider;
2. Identification of the material that has been removed or to which access has been disabled and the location at which the material appeared before it was removed or disabled;
3. A statement under penalty of perjury that the content provider has a good faith belief that the material was removed or disabled as a result of mistake or a misidentification of the material to be removed or disabled;
4. The content provider’s name, address, and telephone number, and a statement that such person or entity consents to the jurisdiction of the Federal District Court for the judicial district in which the content provider’s address is located, or if the content provider’s address is outside of the United States, for any judicial district in which DCDeploy may be found, and that such person or entity will accept service of process from the person who provided notification of the alleged infringement.
If we receive a counter-notice, we may send a copy of the counter-notice to the original complaining party informing that person that we may replace the removed material or cease disabling it in 10 to 14 business days. We may also replace the removed material or cease disabling it in 10 to 14 business days if the copyright owner files an action seeking a court order against the content provider alleging that the material was removed or disabled as a result of a mistake or misidentification of the material to be removed or disabled.
## 10. Limitation of Liability
Any information or content published or transmitted via the service by the original provider of such content is solely responsible for it, and you access all such information and content at your own risk. We are not responsible for any errors or omissions in such information and content or for any loss or damage caused by such information and content. We cannot control and have no obligation to take any action regarding how you may interpret and use the content or what actions you may take as a result of having been exposed to the content, and you hereby waive all liability for claims arising from or related to the content you have or have not received through the service. We cannot guarantee the identity of any users with whom you interact in the course of using the service, and are not responsible for which users gain access to the service.
You are responsible for all content you contribute to the service in any manner, and you warrant that you have all necessary rights to do so in the manner you contribute.
The service may contain links to or connect to third-party websites or services that are not owned or controlled by DCDeploy. When you access third-party websites or use third-party services, you accept that there are such risks, and
We are not responsible for any content, accuracy, privacy policies, or practices of or opinions expressed by any third-party websites or any third parties with whom you interact through the service. In addition, DCDeploy will have no ability to monitor, verify, review, or edit any content on any third-party website or service. We encourage you to be aware when you leave the service and to read the terms and conditions and privacy policies of each third-party website or service that you visit or use. By using the service, you waive and hold us harmless from any and all liability arising from your use of any third-party website or service.
Your interactions with organizations and/or individuals found through the service, including payment and delivery for goods or services, and any other terms, conditions, warranties or representations associated with such transactions, are solely between you and such organizations and/or individuals. You should make whatever investigation you feel necessary or appropriate before engaging in any transaction with these third parties. You agree that DCDeploy is not responsible or liable for any loss or damage of any kind incurred as the result of any such transaction.
If there is a dispute between participants on the site or the service, or between you and any third party, you agree that DCDeploy is not responsible for it. If you have a dispute with one or more other users, you will release DCDeploy, its directors, employees, agents, and successors in right from any claims, demands, and damages of any kind or nature, known or unknown, suspected or unsuspected, disclosed or undisclosed, arising out of or in any way related to such disputes and/or our service.
## 11. Service Changes
We are constantly working to improve our services, so they may change over time. We may suspend or stop any part of the service, or we may introduce new features, or we may impose limits on certain features, or we may restrict access to part or all of the service. We will try to notify you when we make major changes to a service that is not to your advantage, but this is not always possible. We reserve the right to delete any content at any time, for any reason (including but not limited to if someone claims that you provided the content in violation of these terms), in our sole discretion, and without notice.
## 12. Fees
If you are using a free version of the service, we will notify you before we start charging you for any service you use, and if you wish to continue using such service, you must pay all applicable fees for such service.
### Billing
Some of our services may now or in the future be charged for (the "Paid Services"). Please refer to our Paid Services page for a description of the current Paid Services. Please note that any payment terms displayed to you during the use or registration process for a Paid Service are deemed to be part of these terms.
### Payment
We use third-party payment service companies to charge you for using paid services through your account on the service (the "Billing Account") linked to your payment account. The payment processing of the third-party payment service company will be subject to terms, conditions and privacy policies other than these terms. Currently, we use Razorpay as our third-party payment service company.
You can access Razorpay's service terms through [Razorpay Service Terms](https://razorpay.com/terms) and its privacy policy through [Razorpay Privacy Policy](https://razorpay.com/privacy). We are not responsible for any errors or other actions or omissions of the third-party payment company. By choosing to use a paid service, you agree to pay all fees to us through the third-party payment company in order to use such paid service at the then-current price, and authorize us to charge your selected payment provider (the "Payment Method") through the third-party payment company. You agree to pay using the selected payment method. We reserve the right to correct any errors or errors of the third-party payment company, even if the third-party payment company has requested or received payment.
### Payment Method
The terms related to your payment method will be determined by your payment method and may be determined by agreements you have with your financial institution, issuer of your credit card, or other provider of your chosen payment method. If we do not receive your payment through the third-party payment company, you agree to pay all fees on your billing account when requested.
### Recurring Billing
Some paid services may include an initial period of one-time charge, followed by recurring charges that you agree to. By choosing a recurring payment plan, you confirm that the service has an initial and recurring payment feature, and you assume responsibility for all recurring charges before cancellation. We may submit periodic charges (e.g., monthly) without further authorization from you until you provide prior notice (we confirm receipt of such notice) that notifies us that you have terminated such authorization or wish to change your payment method. Such notices will not affect charges that we reasonably could have taken prior to submission. To terminate your authorization or change your payment method, please go to Account Settings.
### Current Information Requirement
You must provide your billing account with current, complete and accurate information. You must immediately update all information to keep your billing account current, complete and accurate (for example, changing your billing address, credit card number or credit card expiration date), and if your payment method is canceled (for example, due to loss or theft), or if you become aware of a potential security breach, such as unauthorized disclosure or use of your user name or password, you must immediately notify us or our third-party payment company. This information can be changed in Account Settings. If you do not provide any of the information above, you agree that unless you have terminated your paid services in accordance with the above, we will continue to charge you for any use of paid services under your billing account.
### Authorization Amount Change
If the amount to be charged from your billing account is different from the amount you have preauthorized (unless due to collection or change in sales tax amount), you are entitled to receive and we will provide notice, which will include the amount to be charged and the transaction schedule date. Your agreement with your payment provider will govern your use of your payment method. You agree that we may accumulate charges that occur and submit them as one or more aggregate charges so that they are submitted at the end or end of each billing cycle.
### Automatic Renewal
Unless you choose to cancel automatic renewal, any paid service you have signed up for will automatically renew for the same continuous term as the initial subscription period and at the then-current non-promotional price. To change or cancel your paid service at any time, please go to Account Settings. If you terminate a paid service, you can use your subscription until the end of your current term, and your subscription will not renew after the end of your current term. However, you will not be entitled to a pro rata refund of any portion of the subscription fee paid for the current subscription period. If you do not want to be charged on a monthly recurring basis, you must cancel the corresponding paid service through your Account Settings or terminate your DCDeploy account before the end of the recurring period. Unless otherwise specified in this section, any fees you have paid, DCDeploy will not refund.
### Termination of Paid Services
You will be responsible for these fees unless you terminate or continue to use the paid service, which we may submit for payment to your payment method. This does not waive our right to seek payment directly from you. Your fees may be prepaid, postpaid, billed on a usage basis, or described in other ways when you initially choose to use the paid service.
### Free Trials and Other Promotions
Any free trial or other promotional offer that provides access to paid services must be used within the time specified for the trial period. You must stop using the paid service before the trial period ends to avoid being charged for the paid service. If you cancel your subscription before the trial period ends and are charged for the paid service, please contact us.
## 13. Termination
You can stop using the service at any time by contacting us at [contact@DCDeploy.com](mailto:contact@DCDeploy.com)]\(mailto:[contact@DCDeploy.com](mailto:contact@DCDeploy.com)) ; please refer to our Privacy Policy, and the above license, for information about how we handle the information you provide to us after you stop using our services.
DCDeploy also has the right to terminate (or suspend) your right to use the service or account, including if you violate any restrictions set forth in these terms. DCDeploy alone has the right to determine whether you have violated any of the restrictions set forth in these terms.
Account termination may result in the destruction of content related to your account, so please consider carefully before deciding to terminate your account.
If you accidentally delete your account, please contact us immediately. We will try to help you, but unfortunately we cannot guarantee that we can recover or restore anything.
By their very nature, provisions that should survive termination of these provisions will survive termination. For example, all of the following terms will survive termination: any obligations you are entitled to pay or indemnify us, limitations on our liability, all terms regarding ownership or intellectual property rights, and terms of disputes between us, including but not limited to an arbitration agreement.
## 14. Promotional Rewards
Sometimes, DCDeploy may offer rewards or incentives for recommending other users to use the service. For details on current referral promotions, please refer to our referral page. A referring user (the "referring user") can refer a person or entity that is neither a current customer of DCDeploy nor a registered user of the service (the "referred user"). Registered users are people or entities who already have a DCDeploy account. There is no limit to the number of people a referring user can refer through such special promotions, nor is there a limit to the total rewards or incentives that a referring user can receive through such special promotions, unless otherwise specified.
The referring user will receive a reward or incentive for each referred user who completes the required actions described in the special promotion (for example, registering an account or purchasing). All referred users must be the first to receive the promotion and will ignore multiple recommendations for the same person or entity.
DCDeploy reserves the right to modify or terminate any special promotion at any time and reserves the right to revoke any special promotion granted to a referring user or a referred user, for any reason. If DCDeploy believes that a referring user or a referred user is trying to obtain an unfair or violates the terms or spirit of such special promotions, DCDeploy reserves the right to revoke any rewards or incentives that the referring user or the referred user has received.
All special promotions are subject to any other terms, conditions and restrictions on the service or associated with the special promotion.
## 15. Other
### Disclaimer
DCDeploy and its licensors, suppliers, partners, parent companies, subsidiaries or affiliated entities, and each of their directors, officers, members, employees, advisors, contractors, representatives and agents, and each of their heirs and successors (collectively, DCDeploy and partners) will not make any representation or warranty about the service, including but not limited to the content included in or accessed through the service, DCDeploy and partners will not be responsible for the accuracy, copyright compliance, legality or morality of any content included in or accessed through the service or any claim, action, lawsuit, cost, fee, loss or liability related to your use of the service or any way in which you participate in the service.
DCDeploy and partners make no representations or warranties about the services or products offered through or in connection with the service. The services and content provided by DCDeploy (and its licensors and suppliers) are provided "as is" without any warranty of any kind, whether express or implied, including but not limited to the implied warranties of merchantability, fitness for a particular purpose, non-infringement or the use of the service will not be interrupted or error-free.
### Limitation of Liability
In no event will DCDeploy or its partners be liable to you or any other person for any indirect, special, incidental, punitive or consequential damages, including but not limited to loss of profits, business interruption, data loss, loss of goodwill, work stoppage, accuracy of results, or computer failure or malfunction, even if DCDeploy or its partners have been advised of the possibility of such damages. In no event will DCDeploy or its partners' total liability to you for all damages (other than as may be required by applicable law in cases involving personal injury) exceed the amount of one hundred U.S. dollars (\$100) or the amount you have paid and/or payable to DCDeploy for the services in question in the twelve (12) months prior to the action giving rise to such liability, whichever is greater. The foregoing limitations will apply even if the above stated remedy fails of its essential purpose.
### Indemnification
In the maximum extent permitted by applicable law, you agree to indemnify and hold DCDeploy and its partners harmless from and against any and all claims, liabilities, damages (actual and consequential), losses and expenses (including reasonable attorneys' fees) arising out of or in any way connected with any claim arising from or related to (a) your use of the service (including any action taken by any third party using your account), and (b) your breach of these terms. In the event of such a claim, lawsuit or action ("claim"), we will try to provide notice of the claim to the contact information we have about your account (provided that failure to provide such notice will not relieve or reduce your indemnification obligations under these terms).
### Transfer
You may not assign, transfer or delegate these terms or your rights or obligations under these terms, or your service account, in any way (by operation of law or otherwise) without DCDeploy's prior written consent. We may assign, transfer or delegate these terms and our rights and obligations without consent.
### Other matters
You will be responsible for paying, withholding, reporting and remitting all taxes, duties and other governmental charges related to your activities in connection with the service, to the extent that DCDeploy can, in its sole discretion, represent you or act on its own behalf with respect to any such item. No matter how we exercise any right under these terms, no waiver of any further rights is implied. If any term of these terms is held to be unenforceable or invalid, that term will be limited or eliminated to the minimum extent necessary so that these terms will otherwise remain in full force and effect and enforceable.
You and DCDeploy agree that these terms are the complete and exclusive statement of the agreement between you and DCDeploy, and these terms supersede and cancel all prior written and oral agreements, communications and other understandings with respect to the subject matter hereof. You hereby acknowledge and agree that you are not an employee, agent, partner or joint venture of DCDeploy, and you have no authority to bind DCDeploy in any way.
Unless otherwise expressly provided, you and DCDeploy agree that there are no third-party beneficiaries under these terms.
# Environment Management
Source: https://docs.dcdeploy.com/docs/management/env-management
Manage your environments in DCDeploy including rename, clone, and delete operations.
Environments in DCDeploy represent isolated spaces for your workloads (e.g., `dev`, `staging`, `production`).\
They allow you to test, deploy, and manage applications separately.
***
## Rename an Environment
You can rename an environment to better reflect its purpose.
1. Navigate to **Environment → Settings**.
2. Update the **Environment Name** field.
3. Click **Save**.
> ⚠️ Renaming does not affect workloads, secrets, or configurations linked to the environment.
***
## Clone an Environment
Easily duplicate an existing environment to create a copy with the same configurations.
1. Go to **Environment → Settings**.
2. Select **Clone Environment**.
3. Provide a new name for the cloned environment.
4. Click **Clone**.
The cloned environment includes:
* Workloads and configurations
* Secrets and variables
* Networking settings
> ⚠️ Billing and usage are tracked separately for cloned environments.
***
## Delete an Environment
Environments can be permanently deleted when no longer needed.
1. Navigate to **Environment → Settings**.
2. Scroll to **Delete Environment**.
3. Confirm by clicking **Delete**.
> ⚠️ This action is irreversible. All workloads, secrets, and associated billing data will be removed.
***
## Best Practices
* Use **cloning** to quickly set up staging from production.
* Keep environment names descriptive (`dev2`, `staging`, `prod`).
* Always review secrets before cloning to avoid leaking sensitive data.
* Delete unused environments to optimize costs.
# Organization Management
Source: https://docs.dcdeploy.com/docs/management/org-management
Manage organizations in DCDeploy including billing details, user access, deletion, and applicable limits.
## Overview
Organizations in DCDeploy are the top-level resource for grouping environments, workloads, and users.\
Each organization comes with its own billing, usage limits, and member management features.
***
## Billing Details
You can set up and update billing information for your organization.
1. Go to **Settings → Usage and Billing**.
2. Under **Billing Information**, provide:
* Name & Email
* Address (City, State, Country, Postal Code)
* Business flag (optional)
3. Click **Save** to update billing info.
> ⚠️ This information appears on all invoices generated for the organization.
***
## Delete Organization
Organizations can be **permanently deleted**, including their environments, workloads, and associated billing data.
1. Go to **Settings → General**.
2. Scroll down to **Delete Organization**.
3. Confirm deletion by clicking **Delete**.
> ⚠️ This action is irreversible. Ensure you back up data before deleting.
***
## User Management
You can invite, manage, and remove users from an organization.
### Add a User
1. Go to **Settings → Users**.
2. Click **Invite User**.
3. Enter the email address and assign a **role**:
* **Owner** – Full access including billing and org deletion.
* **Developer** – Can deploy and manage services, but no billing access.
4. The user receives an email invitation.
### Remove a User
* Navigate to **Settings → Users**.
* Click the action menu (⋮) beside the user.
* Select **Delete**.
***
## Applicable Limits
Each organization has limits depending on its plan:
| Resource | Allowed |
| ------------------------------- | ------- |
| Organizations per account | 4 |
| Environments per organization | 4 |
| Workloads per environment | 5 |
| Users per organization | 3 |
| Custom domains per organization | 5 |
| Regions | All |
| Resource | Allowed |
| ------------------------------- | ------- |
| Organizations per account | 1 |
| Environments per organization | 1 |
| Workloads per environment | 1 |
| Users per organization | 1 |
| Custom domains per organization | 0 |
| Regions | 1 |
***
## Best Practices
* Use separate organizations for **production** and **staging** projects.
* Assign **Owner** roles carefully; only trusted team members should manage billing.
* Regularly review user access to maintain security.
* Monitor usage under **Settings → Usage and Billing** to avoid unexpected costs.
***
## Learn More
* [Invoices](./invoices)
* [Plans & Pricing](./plans-pricing)
* [Usage](./usage)
# Domains
Source: https://docs.dcdeploy.com/docs/networking/domains
Configure default `.cloud` subdomains or connect custom domains for your applications.
Each application deployed on DCDeploy gets a **default `.cloud` subdomain**.\
You can also connect your own **custom domains** for production-grade deployments.
***
## Default `.cloud` Domains
* Automatically generated when you deploy.
* Useful for quick testing or preview environments.
* Example: `myapp.DCDeploy.cloud`.
***
## Custom Domains
You can bind your own domains for branding and production use.
### Steps:
1. Go to **workload-tab**.
2. Click on view **Quick Action** button of the service you want to add custom-domain
3. In workload-modal navigate to settings-Tab
4. Add your custom domain (e.g., `app.example.com`).
5. Update DNS records to point to DCDeploy’s edge network:
```txt theme={null}
CNAME app.example.com → myapp.DCDeploy.cloud
```
6. Wait for DNS propagation.
SSL certificates are provisioned automatically.
## Best Practices
* Use default .cloud domains for staging or temporary previews.
* Always secure production apps with a custom domain + SSL.
* Regularly review DNS settings after domain registrar changes.
# Edge Network
Source: https://docs.dcdeploy.com/docs/networking/edge-network
Deliver apps globally using Cloudflare’s edge network for performance and DDoS protection.
DCDeploy applications are delivered via **Cloudflare’s global edge network**.\
This provides low-latency access, DDoS mitigation, and TLS termination by default.
***
## Benefits
* **Global CDN caching** for faster delivery.
* **Automatic TLS/SSL** certificates.
* **DDoS protection** at the network edge.
* **Anycast routing** for reliability.
***
## Use Cases
* Deploying production web apps.
* Handling traffic spikes safely.
* Reducing latency for global users.
***
## Example
When you bind a custom domain:
```txt theme={null}
CNAME → myapp.DCDeploy.cloud
Traffic is automatically routed via Cloudflare’s edge.
```
## Best Practices
* Keep your app stateless for maximum caching.
* Use persistent volumes or managed databases for state.
* Monitor metrics to optimize global performance.
# Outbound Bandwidth
Source: https://docs.dcdeploy.com/docs/networking/outbound-bandwidth
1TB of free outbound data transfer per organization each month.
Every DCDeploy organization gets **1TB of outbound data transfer free per month**.\
This applies to all workloads, environments, and domains combined.
***
## Details
* Inbound traffic is always **free**.
* Outbound traffic beyond 1TB is billed per GB.
* Usage is aggregated across all environments in your organization.
***
## Example
| Plan | Included Outbound | Additional Cost |
| ----------------- | ----------------- | --------------- |
| Default (per org) | 1TB | \$0.10 / GB |
***
## Monitoring Usage
1. Navigate to **Org → Metrics**.
2. Check **Outbound Bandwidth** usage.
3. Set alerts for thresholds (e.g., 80% usage).
***
## Best Practices
* Use caching and CDNs to reduce outbound usage.
* Compress assets and enable gzip/brotli.
* Place databases in the same region as workloads to avoid unnecessary data egress.
# Private Network
Source: https://docs.dcdeploy.com/docs/networking/private-network
Securely connect environments and workloads over DCDeploy’s private network.
DCDeploy provides an **isolated private network** for all workloads inside your environments.\
This enables secure communication between services without exposing them to the public internet.
***
## Key Features
* **Environment-wide isolation** — workloads in the same environment can talk to each other privately.
* **Cross-environment networking** — connect services across multiple environments if enabled.
* **Automatic DNS resolution** — workloads are discoverable by name.
***
## Use Cases
* Secure backend-to-database connections.
* Microservices communication without public exposure.
* Hybrid setups where only specific endpoints are public.
***
## Best Practices
* Keep databases and internal services private.
* Only expose workloads via proxy or edge if necessary.
* Use secrets for credentials even in private networks.
# TCP Proxy
Source: https://docs.dcdeploy.com/docs/networking/tcp-proxy
Expose workloads over raw TCP using DCDeploy’s managed proxy.
DCDeploy supports **TCP proxies** for workloads that require raw TCP connections\
(e.g., databases, custom services, or non-HTTP protocols).
***
## When to Use
* Running PostgreSQL, MySQL, or other TCP-based services.
* Exposing internal tools that don’t use HTTP.
* Secure external access to non-web workloads.
***
## Configuration
1. Go to **Deploy-tab → Add database**.
2. Enable **TCP Proxy**.
3. Select the port(s) you want exposed.
4. A public TCP endpoint will be provisioned.
***
## Example: PostgreSQL
```yaml theme={null}
services:
mysql-db:
engine: mysql:9
ports:
- "5432"
proxy: true
```
### Result:
Public TCP URL → mysql://USERNAME:[PASSWORD@mysql-9myyqbqq9e.tcp-proxy-2212.dcdeploy.cloud](mailto:PASSWORD@mysql-9myyqbqq9e.tcp-proxy-2212.dcdeploy.cloud):30298/mysql-db
### Security Notes
* Always require authentication (databases, SSH).
* Restrict IP access using firewall rules if possible.
* Use TLS where supported.
# Alerts
Source: https://docs.dcdeploy.com/docs/observability/alerts
Get notified about important events and issues related to your services, databases, users, and subscriptions on DCDeploy.
DCDeploy provides a powerful alerting system to keep you informed about critical events, resource usage, and system changes.\
Alerts help you **track service health, deployment issues, user activities, billing events, and feature updates**—all in real-time.
***
## Types of Alerts
Below are the categories of alerts you may receive:
### Success Alerts
* **Service Build Completed Successfully** → Service built and ready for deployment.
* **Service Deployment Completed Successfully** → Service deployed and running.
* **Database Created Successfully** → Database provisioned and available.
* **Backup Completed** → Backup completed successfully.
***
### Failure Alerts
* **Service Build Failed** → Build error occurred, check logs.
* **Service Deployment Failed** → Deployment error occurred.
* **Database Creation Failed** → Database provisioning failed.
* **Backup Failed** → Backup did not complete successfully.
* **Service Crashed** → Service stopped unexpectedly.
***
### Warnings
* **Container Health Issue** → Container is unhealthy, check logs.
* **Subscription Expiry Warning** → Subscription is about to expire, renew to avoid downtime.
* **High Resource Usage** → Usage thresholds exceeded. Examples:
* High CPU Usage
* High Memory Usage
* High Disk Usage (Persistent / Ephemeral)
* High Network Input / Output Usage
***
### Informational
* **User Role Changed** → A user’s role was updated in your environment.
* **New User Joined** → A new user joined your organization.
* **New Feature Released** → A feature has been rolled out to your environment.
***
### Billing & Subscription
* **Payment Failed** → Payment for your subscription failed.
* **Subscription Expiry Warning** → Your subscription is nearing expiry.
***
## Usage Alerts
DCDeploy generates **open** and **close** usage alerts automatically when resource consumption crosses defined thresholds:
* **Open Alert** → Raised when usage (CPU, Memory, Disk, or Network) exceeds safe limits.
* **Close Alert** → Triggered when usage returns back to normal.
Example:
* **High CPU Usage Open Alert** → Service exceeded CPU threshold.
* **High CPU Usage Alert Closed** → CPU usage returned to safe levels.
***
## Activity Log Mapping
Some alerts are mapped directly to activity logs for traceability:
| Activity Log Key | Alert Type |
| ------------------------ | -------------------------- |
| `service-deploy-success` | Service Deployment Success |
| `service-deploy-failed` | Service Deployment Failed |
| `service-build-success` | Service Build Success |
| `service-build-failed` | Service Build Failed |
***
## How Alerts Help
* **Faster Debugging** → Alerts pinpoint the issue instantly.
* **Proactive Monitoring** → Stay ahead of service failures and resource overuse.
* **Security & Compliance** → Track role changes and user activity.
* **Smooth Operations** → Never miss subscription or billing updates.
***
## Delivery Channels
Alerts can be viewed in:
* **DCDeploy Dashboard → Alerts Tab**
* **Email Notifications (if enabled)**
* **Slack / Discord Integrations (coming soon)**
***
# Logs
Source: https://docs.dcdeploy.com/docs/observability/logs
View and search real-time logs for your workloads directly in the DCDeploy dashboard.
The **Logs** tab provides real-time visibility into the output of your running workloads.\
It is especially useful for debugging, monitoring application health, and investigating errors.
Each log entry contains:
* **Timestamp**: When the log line was generated.
* **Workload & Version**: Identifies which workload and version produced the log (e.g., `v1-tommie-...`).
* **Log Message**: The actual application or system output (e.g., HTTP requests, errors, warnings).
* **Client Details**: Includes client IP, user-agent, referrer, and request path.
You can narrow down the displayed logs using:
* **Time Range**: Select a window (e.g., *Last 15 minutes*, *1 hour*, *24 hours*).
* **Search Box**: Enter keywords, error codes, or paths to filter relevant log entries.
Use the **download button** (⬇️) to export logs for offline analysis or sharing with your team.
* Regularly monitor logs to identify unexpected errors early.
* Use search filters when debugging specific issues (e.g., `500`, `favicon.ico`, `POST /api/login`).
* Combine log analysis with the **Metrics tab** for deeper insights on performance bottlenecks.
* For production environments, integrate log shipping with external monitoring systems if needed.
# Metrics
Source: https://docs.dcdeploy.com/docs/observability/metrics
The **Metrics** tab helps you monitor workload performance in real time.\
You can track CPU, Memory, Network, Storage usage, and response errors over a selected time window.
***
## CPU Usage
Tracks how much CPU your workload is consuming over time.\
Helps you identify performance spikes or bottlenecks.
***
## Memory Usage
Displays the memory consumption of your workloads.\
Useful for detecting memory leaks or unusual memory growth.
***
## Network In Usage
Shows the amount of incoming traffic to your workloads (in bytes).\
Helps track request volume and data transfer rates.
***
## Network Out Usage
Shows the amount of outgoing traffic from your workloads (in bytes).\
Useful for monitoring external API calls or client responses.
***
## Storage Usage
Monitors how much storage your workload is consuming over time.\
Helps in preventing disk usage issues.
***
## 4xx Responses
Displays client-side errors (e.g., bad requests, unauthorized, not found).\
Helps detect incorrect API calls or misconfigured clients.
***
## 5xx Responses
Displays server-side errors (e.g., internal server errors, service unavailable).\
Useful for debugging backend or server-related issues.
***
## Features
* **Per Pod/Instance Breakdown** → Metrics per pod/instance for deeper insights.
* **Time Range Selector** → Choose between last 15 min, 1 hr, 1 day, etc.
* **Export & Filter** → Download or filter metrics by workload type.
# Overview
Source: https://docs.dcdeploy.com/docs/overview
Learn what DCDeploy is, the problems it solves, and the key features that make it a secure, high-performance platform for running modern applications.
DCDeploy is a **developer-first deployment platform** designed to run modern applications on **high-performance bare metal infrastructure** with built-in security, networking, and scalability.
It removes the complexity of managing servers, Kubernetes, networking, and security, so you can focus on building applications—not infrastructure.
***
## Why DCDeploy?
* **Simple** – Deploy services and databases in minutes without complex setup.
* **Secure** – End-to-end encryption, internal networking, private services, and DDoS protection.
* **High Performance** – Runs workloads on **Intel Xeon, AMD EPYC latest generation bare metal machines** with no in-between virtualization overhead.
* **Scalable** – Auto-scaling, microVMs, namespaces, and per-env isolation ensure your apps grow seamlessly.
***
## Core Features
### 1. **Environments & Namespaces**
* Isolated environments for **dev, staging, prod**.
* Each environment has its own **private network**.
### 2. **Private Services & Databases**
* Databases and internal services run **without public exposure**.
* Accessible only via **internal links** within a env.
### 3. **Networking & Security**
* **Private networks** per env.
* **TCP Proxy with SSL** for secure DB access from outside.
* **Cloudflare DDoS protection** & **default request rate limits**.
* **SSL certificates** managed automatically.
### 4. **Security by Design**
* Built with **Cilium, Kata Containers, encryption at rest, and secrets isolation**.
* **Audit logs** track every action and API call for compliance.
### 5. **Scalable Infrastructure**
* Powered by **bare metal + microVMs (Firecracker, Cloud Hypervisor)**.
* Ephemeral & persistent storage options for workloads.
* Optimized for **high-bandwidth networking**.
### 6. **Developer Experience**
* Git-based deployments.
* Simple **service management** (start, stop, restart, delete).
* Easy environment cloning.
* Role-based access & permissions.
***
## Security Highlights
* **CF DDoS protection** – all traffic is protected by Cloudflare’s global network.
* **Default request rate limits** – prevent abuse by throttling excessive requests.
* **Audit logs** – every action is tracked for visibility.
* **Secrets management** – sensitive data is never exposed.
***
## Summary
DCDeploy is more than just hosting—it’s a **secure, high-performance platform** that takes care of the hard parts of running applications:
* **Security** by default
* **Networking** simplified
* **Scalability** built-in
* **Developer-friendly** workflows
So you can ship apps **faster, safer, and at scale**
# Quick Start
Source: https://docs.dcdeploy.com/docs/quickstart
Deploy your app or service within a minute
Firstly login into your DCDeploy dashboard using your Github account. If you're a new user, your account will be created automatically.
A default organization will be created for you. All the activities, environments, billing and more is present in the dashboard.
Now create a new environment. An environment can be viewed as a group of services / apps / databases which are required to run your business and will be interdependent to each other.
For example, you may start with Dev environment, then go to QA and then go to Prod.
You can create multiple environments as per your requirement.
Deploy your services or databases. You may deploy as many service or database as you want. All these services and databases are networked together in a private wireguard vpn based networking as well as public Endpoints are also available.
For advance users, a yaml editor is also available to deploy services and databases in a single click.
# DDoS Protection & API Rate Limits
Source: https://docs.dcdeploy.com/docs/security/CF-DDOS-and-default-api-rate-limits
How DCDeploy protects workloads with Cloudflare DDoS mitigation and enforced API rate limiting.
DCDeploy ensures that your applications stay online and secure under heavy traffic and potential attacks.\
This is achieved through **Cloudflare’s global edge network** for DDoS mitigation and **default API rate limiting** to prevent abuse.
***
## Cloudflare DDoS Protection
* All incoming traffic to DCDeploy workloads is routed through **Cloudflare’s edge network**.
* Protects against:
* **Layer 3/4 attacks** (volumetric floods, SYN floods, UDP floods).
* **Layer 7 attacks** (HTTP floods, slowloris).
* Uses **intelligent traffic filtering** to allow legitimate users while blocking malicious requests.
* Provides **global anycast routing** for high availability and performance.
**Benefits**
* Automatic mitigation of large-scale DDoS attacks.
* Zero downtime during attacks.
* Faster response due to Cloudflare’s **120+ edge locations worldwide**.
***
## Default API Rate Limits
To protect workloads from abuse and accidental overload, DCDeploy enforces **default request-per-second (RPS) limits**.
### Per-Service Defaults
* **Burst traffic allowed** (short spikes are absorbed).
* Sustained limits are applied per service instance.
* Requests beyond the threshold return:
```http theme={null}
429 Too Many Requests
```
### Use Cases
* Protection against brute force attacks – prevents credential stuffing or API abuse.
* Fair usage enforcement – ensures no single client can overload your workloads.
* Cost control – keeps autoscaling predictable and avoids unnecessary overprovisioning.
### Best Practices
* Use authentication + rate limiting in your app for per-user control.
* Configure autoscaling by RPS if you expect sudden traffic surges.
* Monitor logs for repeated 429 Too Many Requests errors.
* For enterprise workloads, request custom rate limits via support.
# Audit Logs & Activity
Source: https://docs.dcdeploy.com/docs/security/audit-logs-&-activity
Track all actions across your DCDeploy organization with detailed audit logs and activity history.
DCDeploy provides **audit logs** to help you monitor, trace, and secure activity across your organization.\
Every significant action — from deployments to user management — is recorded with timestamps, user details, and context.
***
## Overview
* **Who did what, when, and where** – every action is traceable.
* Logs include **user identity, action type, resource affected, and timestamp**.
* Useful for **security investigations, compliance, and debugging issues**.
***
## What Gets Logged?
| Category | Example Actions |
| ------------------- | ----------------------------------------------- |
| **Deployments** | Service deployed, redeployed, rebuilt |
| **Scaling** | Manual or autoscale events triggered |
| **Configuration** | Changes in `DCDeploy.yml`, env vars, or domains |
| **Access Control** | User invited, role updated, or removed |
| **Billing & Plans** | Plan upgraded/downgraded, payment attempts |
| **Networking** | Domain changes, TCP proxy setup, SSL updates |
***
## Viewing Audit Logs
### Dashboard
1. Navigate to **Organization → Audit Logs**.
2. Filter logs by:
* User
* Service
* Action type
* Date range
3. Export logs in **CSV or JSON** for compliance reporting.
### Use Cases
* Security – Detect unauthorized or suspicious activity.
* Compliance – Maintain audit trails for SOC2, GDPR, HIPAA, etc.
* Debugging – Trace who triggered a failed deployment or config change.
* Collaboration – See recent activity by team members.
### Retention Policy
* Logs are stored for 90 days by default.
* Enterprise plans allow custom retention (up to 1 year).
* Export regularly if you need longer history.
### Best Practices
* Assign proper roles & permissions to limit risky actions.
* Regularly review audit logs for anomalies.
* Enable alerts (via email or Discord integration) for critical events:
* Service deletions
* Billing changes
* User role escalations
# Platform Security
Source: https://docs.dcdeploy.com/docs/security/how-platform-is-keeping-for-security
How DCDeploy ensures workload and data security using Cilium, Kata Containers, encryption at rest, secrets management, and isolation.
DCDeploy is designed with **security as a core principle**, ensuring that applications and data are protected at every layer.\
From the **network plane** to the **container runtime**, DCDeploy applies modern security practices for safe multi-tenant operations.
***
## Security Layers
### 1. Network Security with Cilium
* DCDeploy uses **Cilium (eBPF-based networking)** for workload communication.
* Provides **identity-aware network policies** instead of relying only on IPs.
* Enforces **zero-trust networking** between services and environments.
* Prevents lateral movement by restricting unauthorized connections.
### 2. Workload Isolation with Kata Containers
* Containers run inside lightweight VMs using Kata Containers.
* Provides hardware-enforced isolation between tenants.
* Limits the blast radius in case of container escape exploits.
* Delivers the speed of containers with the security boundary of VMs.
### 3. Data Security – Encryption at Rest
* All persistent volumes and databases use AES-256 encryption at rest.
* Keys are managed and rotated automatically by the platform.
* Ensures compliance with security standards (GDPR, HIPAA, SOC2).
* Even if disks are compromised, data remains unreadable.
### 4. Secrets Management
* Secrets (API keys, tokens, passwords) are stored in encrypted secret stores.
* Mounted into workloads only at runtime.
* Never exposed in build logs, environment dumps, or plaintext configs.
* Access is scoped to specific environments and services.
### 5. Multi-Tenant Isolation
* Each workload is isolated by namespace, network, and VM boundaries.
* Shared resources (CPU, memory, disk) are carefully quota-controlled.
* Prevents noisy neighbors or malicious workloads from impacting others.
## Best Practices for Developers
* Always store sensitive data in Secrets, not plain env variables.
* Use private networking for internal service-to-service communication.
* Regularly rotate database and API credentials.
* Enable health checks to avoid cascading failures from unhealthy services.
# Private Network
Source: https://docs.dcdeploy.com/docs/security/private-network
Understand how DCDeploy provides private networking across environments and namespaces for secure service-to-service communication.
DCDeploy provides a **built-in private network** for all workloads.\
This allows services to securely communicate with each other **inside the same namespace or environment** without exposing them to the public internet.
***
## Overview
* Every **environment (env)** in DCDeploy has its own **isolated private network**.
* Services inside the same environment can reach each other using **internal DNS names**.
* Traffic inside the private network:
* Never leaves DCDeploy’s infrastructure.
* Is protected with **encryption-in-transit**.
* Avoids public exposure unless explicitly configured.
***
## Namespaces & Isolation
* Each **namespace (per environment)** acts as a separate private network.
* Services in different namespaces cannot talk to each other unless connected via a **private link**.
* Example:
* `service-a` in `staging` cannot reach `service-b` in `production` unless explicitly linked.
***
## Example: Internal Communication
You can call one service from another using its **service name + namespace**.
```bash theme={null}
curl http://my-api.staging.svc.cluster.local:3000/health
```
* my-api → service name
* staging → namespace (environment)
* .svc.cluster.local → private network domain suffix
## Use Cases
* Connect a backend API to a database without public exposure.
* Secure microservice-to-microservice communication inside the same environment.
* Run internal-only workloads (admin panels, monitoring agents).
## Public vs Private
| Network Type | Accessible From | Use Case |
| ------------ | --------------- | ----------------------------------------- |
| **Public** | Internet | Exposing APIs, websites, external clients |
| **Private** | Internal only | Databases, internal APIs, secure services |
## Best Practices
* Use private network for all databases and sensitive services.
* Only expose public endpoints when necessary.
* Combine with TCP Proxy for secure DB access if needed externally.
* Use private services + internal links to connect across environments.
# Private Services and Databases using Internal Links
Source: https://docs.dcdeploy.com/docs/security/private-services-and-db-using-internal-link
Connect services and databases securely inside DCDeploy using internal DNS-based links, without exposing them to the public internet.
DCDeploy allows you to connect workloads and databases privately within an **internal network**.\
Instead of exposing your service publicly with a domain or TCP proxy, you can use **internal links** that resolve via private DNS inside your organization and environments.
This ensures:
* **Secure communication** – no public internet exposure.
* **Low latency** – direct private network traffic.
* **Isolation** – workloads only talk to what they are allowed to.
***
## Overview
* Every service in DCDeploy can be given an **internal hostname**.
* Internal DNS works automatically across services inside the **same environment**.
* Supported for **applications, APIs, and databases**.
* Works across **environments** if private networking is enabled.
***
## Use Cases
* Microservices communicating privately (e.g., API ↔ Worker ↔ DB).
* Databases accessible only from backend services, not the internet.
* Multi-environment internal communication (e.g., staging → shared DB).
* Avoiding public endpoints for sensitive workloads.
***
## Internal Link Format
Each service is automatically available at:
```yaml theme={null}
..internal
### Examples:
- api: api.dev.internal
- postgres: postgres.prod.internal
- redis: redis.shared.internal
```
***
## Example: Connecting to a Database
Suppose you have a **PostgreSQL DB** and a **Node.js backend** in the same environment (`prod`).
* **DB Internal Hostname:**\
`postgres.prod.internal`
* **Backend Connection String:**
```env theme={null}
DATABASE_URL = postgres://user:password@postgres.prod.internal:5432/mydb
```
The backend will connect to PostgreSQL without needing a public TCP proxy.
### Example: Private Service-to-Service Communication
Frontend (Next.js) → Backend (Express API) → Database (Postgres)
* Frontend connects to backend.prod.internal:3000
* Backend connects to postgres.prod.internal:5432
No public domains are required; traffic stays internal.
## Best Practices
* Use internal links by default for all service-to-service communication.
* Only enable public domains / TCP proxies when external access is required.
* Keep secrets (DB URLs, API keys) in DCDeploy secrets instead of hardcoding.
* Test connectivity with:
```bash theme={null}
curl http://..internal:
```
## Troubleshooting
* Can’t resolve internal hostnames?
Ensure both workloads are in the same environment or private networking is enabled for cross-env.
* Connection refused?
Verify the target service is running and listening on the expected port.
* Need external access temporarily?
Use a TCP Proxy or Custom Domain for debugging, then disable when done.
# SSL Configuration
Source: https://docs.dcdeploy.com/docs/security/ssl-configuration
Configure and manage SSL/TLS certificates for your applications and services in DCDeploy for secure HTTPS traffic.
DCDeploy automatically provisions and manages **SSL/TLS certificates** for your applications, ensuring all traffic is served securely over **HTTPS**.\
You can use SSL with both **default `.cloud` domains** and **custom domains**.
***
## Overview
* **Automatic SSL** – Free SSL certificates issued via Let’s Encrypt.
* **Supported domains** – Works with DCDeploy’s default `.cloud` domains and your custom domains.
* **Auto-renewal** – Certificates are renewed automatically before expiry.
* **Zero-downtime updates** – Certificates refresh without interrupting traffic.
***
## Use Cases
* Secure your **web apps** and **APIs** with HTTPS.
* Enforce **end-to-end encryption** for sensitive workloads.
* Deploy custom domains with **trusted certificates**.
***
## SSL on Default Domains
All workloads deployed with a `.cloud` domain (e.g., `myapp.DCDeploy.cloud`) automatically get SSL enabled.\
You don’t need to configure anything.
Example:
```bash theme={null}
https://myapp.DCDeploy.cloud
```
## SSL on Custom Domains
When using a custom domain, DCDeploy provisions and manages SSL certificates automatically after you point DNS to the platform.
### Steps:
1. Add your custom domain in the DCDeploy dashboard.
2. Update your DNS records to point to the provided target (CNAME or A record).
3. Wait for validation.
4. SSL certificate is issued and HTTPS is enabled automatically.
## Enforcing HTTPS
By default, SSL is enabled, but you may also enforce strict HTTPS redirection:\
This ensures all HTTP traffic is redirected to HTTPS.
## Troubleshooting
* SSL not active?
* Check if your DNS is pointing correctly to DCDeploy.
* Verify DNS propagation (can take a few minutes).
* Certificate pending?
* Ensure there are no conflicting DNS records (e.g., another A record or CNAME).
* Expired certificate?
* Certificates are auto-renewed. If still expired, check logs and contact support.
## Best Practices
* Always enable forceSSL for production workloads.
* Use custom domains with SSL for customer-facing apps.
* Avoid exposing workloads without SSL unless strictly necessary.
* Combine SSL with private networking for internal-only services.
# TCP Proxy SSL Configuration
Source: https://docs.dcdeploy.com/docs/security/tcp-proxy-ssl-configuration
Secure TCP connections to databases and services in DCDeploy using SSL certificates for encrypted communication.
DCDeploy provides a **TCP Proxy** feature to expose databases and custom TCP-based services securely.\
When SSL is enabled, all traffic between your client and the service is **encrypted**, ensuring data confidentiality and integrity.
***
## Overview
* **Secure database connections** using SSL/TLS.
* Works with **Postgres, MySQL, MongoDB, Redis, and other TCP-based services**.
* Certificates are automatically issued and managed by DCDeploy.
* Supports both **public TCP URLs** and **private network connections**.
***
## Use Cases
* Connect to **databases** from external clients securely.
* Enforce **SSL-only connections** for compliance and security.
* Protect sensitive workloads (e.g., financial, healthcare, production apps).
***
## Enabling SSL for TCP Proxy
When exposing a database/service over TCP, enable SSL in your service configuration.
* exposeTCP: true → Enables public TCP proxy.
* ssl: true → Enforces SSL for connections.
## Connecting to Databases with SSL
Postgres Example
```bash theme={null}
psql "host=my-db.DCDeploy.cloud port=5432 dbname=mydb user=myuser password=mypass sslmode=require"
```
MySQL Example
```bash theme={null}
mysql --host=my-db.DCDeploy.cloud --port=3306 --user=myuser --password --ssl-mode=REQUIRED
```
MongoDB Example
```bash theme={null}
mongo "mongodb://myuser:mypass@my-db.DCDeploy.cloud:27017/mydb?ssl=true"
```
## Using SSL Certificates
Some clients require explicit SSL certificates for validation. DCDeploy provides:
* CA Certificate – to verify server identity.
* Client Certificate & Key – for mutual TLS (optional).
Download from the DCDeploy dashboard → Database → SSL Certificates.
Example:
```bash theme={null}
psql "host=my-db.DCDeploy.cloud port=5432 dbname=mydb user=myuser password=mypass sslmode=verify-full sslrootcert=ca.pem"
```
Example: Node.js (Postgres with SSL)
```javascript theme={null}
import { Client } from 'pg';
import fs from 'fs';
const client = new Client({
host: 'my-db.DCDeploy.cloud',
port: 5432,
database: 'mydb',
user: 'myuser',
password: 'mypass',
ssl: {
rejectUnauthorized: true,
ca: fs.readFileSync('./ca.pem').toString(),
},
});
await client.connect();
```
## Troubleshooting
* SSL connection error
* Ensure sslmode=require or equivalent flag is set.
* Check if the CA certificate is loaded correctly.
* Timeouts
* Verify the service is exposed with exposeTCP: true.
* Check firewall or VPN restrictions.
* Self-signed certificate errors
* Use sslmode=verify-full with the provided CA cert.
## Best Practices
* Always enable SSL for external TCP connections.
* Use private networking if clients are inside the same DCDeploy environment.
* Rotate client certificates periodically.
* Enforce mutual TLS for sensitive workloads.
# User Roles and Permissions
Source: https://docs.dcdeploy.com/docs/security/user-roles-and-permissions
Manage user access in DCDeploy with role-based permissions.
DCDeploy provides **role-based access control (RBAC)** to manage how users interact with your organization, environments, and workloads.\
This ensures secure collaboration without overexposing sensitive controls.
***
## Available Roles
### Developer
* **Permissions:** Edit and View
* Can create, update, and deploy workloads.
* Can view logs, metrics, and secrets.
* Cannot manage organization-level settings or billing.
***
### Admin
* **Permissions:** Edit, View, and Manage
* Full control over environments and workloads.
* Can invite or remove users.
* Can manage billing and organization settings.
* Can configure domains, networking, and limits.
***
### Viewer
* **Permissions:** View Only
* Read-only access to workloads, logs, and metrics.
* Cannot edit or deploy workloads.
* Suitable for stakeholders, QA, or monitoring users.
***
## Assigning Roles
1. Go to **Organization → Users**.
2. Click **Invite User** or edit an existing member.
3. Choose a role: Developer, Admin, or Viewer.
4. Save changes.
***
## Best Practices
* Assign **Admin** only to trusted core team members.
* Use **Developer** for active contributors working on code.
* Give **Viewer** access to non-technical stakeholders.
* Regularly review user roles to maintain least-privilege access.
***
# Deploy Django on DCDeploy
Source: https://docs.dcdeploy.com/guide/django
Guide for deploying Django applications on DCDeploy using Docker or build-from-code
This guide shows how to deploy a Django application on DCDeploy, covering setup, Docker configuration, environment variables, and best practices.
***
## Quick Start: Hello World
To test the flow, you can deploy a minimal Django app:
1. Create a Django project locally:
```bash theme={null}
mkdir hello_dcdeploy
cd hello_dcdeploy
python3 -m venv venv
source venv/bin/activate
pip install django
django-admin startproject hellosite .
```
2. Edit hellosite/settings.py to allow all hosts and read port from environment:
```python theme={null}
# settings.py
import os
ALLOWED_HOSTS = ["*"]
PORT = os.environ.get("PORT", "8000")
```
3. Optionally add a simple view (if needed) in hellosite/urls.py:
```python theme={null}
from django.http import HttpResponse
from django.urls import path
def home(req):
return HttpResponse("Hello DCDeploy from Django!")
urlpatterns = [
path("", home),
path("admin/", path),
]
```
4. Commit and push to your Git provider.
## Overview
Django is a high-level Python web framework that promotes rapid development and clean design.
On DCDeploy you can deploy Django apps via:
* Dockerfile (recommended for full control)
* Build-from-code method (auto-detects Django app)
Key concerns include static files, database connections, allowed hosts, and environment configuration.
## Prerequisites
* A Django project with requirements.txt including all dependencies (e.g. Django, gunicorn, psycopg2).
* settings.py using environment variables for sensitive configs (DB credentials, secret key).
* STATIC\_ROOT configured and static file collection in build or startup.
* Dockerfile (if using Docker) or autoBuild setup.
* Git repository with your code.
## Step-by-Step Guide
1. Prepare Your Django App
* Set environment variables for DJANGO\_SECRET\_KEY, DATABASE\_URL, etc.
* In settings, allow connections from 0.0.0.0 and the port your service will listen on.
* Configure ALLOWED\_HOSTS (for production, include your custom domain or default).
* Set up static files:
```python theme={null}
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
```
2. Add Dockerfile (recommended)
Example Dockerfile:
```dockerfile theme={null}
FROM python:3.11-slim AS builder
WORKDIR /app
COPY requirements.txt ./
RUN pip install --upgrade pip && pip install -r requirements.txt
COPY . .
RUN python manage.py collectstatic --noinput
FROM python:3.11-slim
WORKDIR /app
COPY --from=builder /app /app
EXPOSE 8000
CMD ["gunicorn", "hellosite.wsgi:application", "--bind", "0.0.0.0:${PORT:-8000}"]
```
3. Push Code to Git
* Initialize repo, commit, push to GitHub or similar.
* Include .dockerignore to exclude venv, **pycache**, etc.
4. Deploy on DCDeploy
* In DCDeploy dashboard → Environment → Deploy tab.
* Add a new service → choose Build from Code or Docker Registry.
* Provide your Git repo or Docker image.
* Set port to 8000 and protocol (HTTP/HTTPS).
* Select machine type based on expected traffic.
* Provide environment variables:
* `DJANGO_SETTINGS_MODULE`
* `DJANGO_SECRET_KEY`
* `DATABASE_URL`
* Other secrets.
* Configure static files: ensure collectstatic is run and static served.
* Adjust scale (minScale/maxScale).
* Deploy and monitor build & deployment, check revision events.
Example Service Configuration
```yaml theme={null}
services:
django-app:
build:
context: ./
dockerfilePath: ./Dockerfile
repo: your-username/hello_django
ref: main
refType: branch
autoBuild: true
ports:
- 8000
protocol: https
minScale: 1
maxScale: 2
environment:
DJANGO_SECRET_KEY: "{{DJANGO_SECRET_KEY}}"
DATABASE_URL: "postgres://user:pass@db.internal:5432/mydb"
DJANGO_SETTINGS_MODULE: hellosite.settings
```
## Best Practices
* Use gunicorn (or similar WSGI) for production, not runserver.
* Serve static files via built-in mechanisms or via external storage/CDN.
* Keep SECRET\_KEY and other secrets in environment or Secrets management.
* Use internal networking for DB connections and other internal services.
* Enable health checks (e.g. /healthz) to verify readiness.
* If your app is idle, consider scale-to-zero if acceptable.
## Troubleshooting
| Problem | Likely Cause | Solution |
| ----------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------------------- |
| App not accessible | Server not listening on `0.0.0.0` or wrong port specified | Ensure `bind 0.0.0.0:` in Gunicorn, match port config. |
| Static files not loaded | `collectstatic` not run, or static root misconfigured | Confirm Dockerfile runs `collectstatic`, and STATIC\_ROOT is correct. |
| DB connection errors | Wrong `DATABASE_URL`, network settings | Check env vars, private networking, and DNS in DCDeploy. |
| Environment vars not found during runtime | Missing in service config or not added via Secrets | Add via dashboard or service manifest. |
| Build fails due to missing dependencies | Requirements missing in `requirements.txt` | Include all needed packages and test locally. |
# Deploy Docker on DCDeploy
Source: https://docs.dcdeploy.com/guide/docker
Guide for deploying any Dockerized application on DCDeploy
DCDeploy natively supports **Docker deployments**.\
You can bring your own **Dockerfile** or deploy directly from a **Docker image** hosted in a registry.
***
## When to Use Docker on DCDeploy
* You want **full control** over runtime, dependencies, and OS libraries.
* You’re deploying apps not natively supported by a language/framework guide.
* You already maintain **Docker images** in registries like DockerHub, GitHub Container Registry, or AWS ECR.
* You need **multi-service setups** with custom networking.
***
## Deployment Options
| Method | Use Case |
| ---------------- | -------------------------------------------------------------------- |
| **Dockerfile** | Build from your source code on DCDeploy. Best for CI/CD pipelines. |
| **Docker Image** | Deploy prebuilt images from a container registry. Fast and portable. |
***
## Example: Using a Dockerfile
1. Create a `Dockerfile` in your project:
```dockerfile theme={null}
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
```
# Deploy Express.js on DCDeploy
Source: https://docs.dcdeploy.com/guide/expressjs
Guide for deploying Express.js applications on DCDeploy
This guide walks you through deploying an Express.js application on DCDeploy, including setup, build configuration, and best practices.
***
## Quick Start: Hello World
You can try deploying a minimal Express.js app to test the workflow.
1. Create a new project:
```bash theme={null}
mkdir hello-dcdeploy
cd hello-dcdeploy
npm init -y
npm install express
```
2. Create an index.js file with the following code:
```js theme={null}
const express = require("express");
const app = express();
const PORT = process.env.PORT || 3000;
app.get("/", (req, res) => {
res.send("Hello DCDeploy 🚀 from Express.js!");
});
app.listen(PORT, "0.0.0.0", () => {
console.log(`Server running on http://0.0.0.0:${PORT}`);
});
```
3. Update package.json scripts:
```json theme={null}
{
"scripts": {
"start": "node index.js"
}
}
```
4. Run locally:
```bash theme={null}
npm start
```
5. Commit and push to GitHub/Git provider.
6. Deploy on DCDeploy using the steps in the guide below.
## Overview
Express.js is a lightweight Node.js web framework often used for REST APIs and backend services.
On DCDeploy, you can deploy Express.js apps using:
* Build from Code (auto-detected Node.js project) – easiest method.
* Custom Dockerfile – for advanced control over runtime and dependencies.
## Prerequisites
* Express.js project (index.js or app.js entrypoint).
* package.json with a valid start script.
* GitHub (or Git) repository to push your project.
* (Optional) Dockerfile if you want a custom build.
## Step-by-Step Guide
1. Prepare Your Express App
* Ensure package.json has a start script that runs your server.
* App must listen on 0.0.0.0 and use the PORT environment variable.
2. Add Dockerfile (optional)
```dockerfile theme={null}
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
```
3. Push Code to Git
* Initialize Git, commit files, and push to your Git provider.
* Add .dockerignore if using Docker.
4. Deploy on DCDeploy
* In DCDeploy dashboard → Deploy tab of your environment.
* Create a new service → select Build from Code or Docker Registry.
* Provide repo + branch.
* Set port to 3000 (or the one used in your app).
* Configure environment variables for secrets, DB URLs, etc.
* Choose machine type (CPU, RAM) based on traffic needs.
* Deploy and monitor logs.
## Example Service Config
```yaml theme={null}
services:
express-app:
build:
context: ./
dockerfilePath: ./Dockerfile
repo: your-username/express-app
ref: main
refType: branch
autoBuild: true
ports:
- 3000
protocol: https
minScale: 1
maxScale: 2
environment:
NODE_ENV: production
API_KEY: your-secret-key
```
## Best Practices
* Use environment variables (not hardcoded secrets).
* Use internal networking in DCDeploy to connect databases/APIs securely.
* Add health check endpoints (e.g. /healthz).
* Log errors clearly for debugging.
* Scale services with minScale/maxScale depending on workload.
## Troubleshooting
| Problem | Likely Cause | Solution |
| ------------------------ | -------------------------------------------- | --------------------------------------------- |
| App crashes on deploy | Wrong entrypoint or missing dependencies | Check `start` script, install deps. |
| Not accessible | App not listening on `0.0.0.0` or wrong port | Ensure `listen("0.0.0.0", process.env.PORT)`. |
| Build timeout / too slow | Large deps or missing Docker ignore | Optimize deps, use `.dockerignore`. |
| Env vars not working | Missing DCDeploy config | Add env vars in dashboard. |
# Languages & Frameworks
Source: https://docs.dcdeploy.com/guide/language-framework
Deploy applications on DCDeploy using popular languages and frameworks with quickstart examples and configuration tips.
DCDeploy supports a wide range of programming languages and frameworks.\
This guide shows how to deploy common stacks, what to expect, and best practices for each.
***
## Supported Stacks
Below are languages and frameworks that are known to work well on DCDeploy:
| Language / Runtime | Example Frameworks / Use Cases |
| ------------------------ | ------------------------------------------- |
| **JavaScript / Node.js** | Express, Next.js, Nest.js, SvelteKit, Astro |
| **Python** | FastAPI, Flask, Django |
| **Go** | Gin, Echo, Fiber, Hugo |
| **Ruby** | Rails |
| **PHP** | Laravel, Symfony |
| **Rust** | Rocket, Actix |
| **Java** | Spring Boot |
| **Docker** | Supporting all Docker file and images |
***
# Deploy NestJS on DCDeploy
Source: https://docs.dcdeploy.com/guide/nest
Guide for deploying NestJS applications on DCDeploy using Docker or build-from-code
This guide walks you through deploying a **NestJS** application on DCDeploy, including setup, Docker configuration, environment variables, and recommended practices.
***
## Quick Start: Hello World
You can deploy a minimal NestJS app to test the workflow.
1. Create a new NestJS project locally:
```bash theme={null}
npm i -g @nestjs/cli
nest new hello-dcdeploy
cd hello-dcdeploy
```
2. Modify src/app.controller.ts (or similar) to return a simple message:
```ts theme={null}
import { Controller, Get } from '@nestjs/common';
@Controller()
export class AppController {
@Get()
getHello(): string {
return 'Hello DCDeploy from NestJS!';
}
}
```
3. Test locally:
```bash theme={null}
npm run start
```
Access at [http://localhost:3000](http://localhost:3000).
4\. Push to GitHub or your Git provider:
```bash theme={null}
git init
git add .
git commit -m "Initial NestJS commit"
git branch -M main
git remote add origin https://github.com/your-username/hello-nestjs
git push -u origin main
```
Deploy on DCDeploy using steps in the guide below.
## Overview
NestJS is a progressive, extensible framework for building efficient, scalable server-side applications in Node.js. It uses TypeScript by default and supports modular architecture, dependency injection, and multiple transport layers.
On DCDeploy, you can deploy NestJS applications using:
* Build-from-code (auto-detecting Node.js projects)
* Dockerfile — for custom control over build, runtime, and dependencies
## Prerequisites
* A NestJS project (with TypeScript)
* package.json must have correct scripts like start, build, etc.
* A GitHub (or Git) repo containing your project
* If using Docker, a Dockerfile in project root
* Knowledge of environment variables for DB credentials, etc.
## Step-by-Step Guide
1. Prepare Your NestJS App
* Ensure the app listens on 0.0.0.0 on process.env.PORT || 3000.
* Replace any hardcoded DB credentials / secrets with environment variables.
2. (Optional) Dockerfile
Here’s a sample `Dockerfile:`
```dockerfile theme={null}
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
RUN npm run build
FROM node:18-alpine
WORKDIR /app
COPY --from=builder /app ./
EXPOSE 3000
CMD ["node", "dist/main"]
```
3. Push Code to Git
Commit your code, tag your branch (e.g. main).
Ensure .dockerignore excludes node\_modules, dist, etc.
4. Deploy on DCDeploy
* In DCDeploy dashboard → Navigate to the environment → Deploy tab
* Add a new service → Choose Build from Code (or Docker if using custom image).
* Provide repo URL, branch/ref.
* Set port 3000, ensure listening address 0.0.0.0.
* Choose protocol (HTTP/HTTPS), region(s).
* Configure environment variables needed (e.g. DB\_HOST, DB\_USER, DB\_PASS, DB\_NAME).
* Select machine type (CPU, RAM) based on expected load.
* Set minScale/maxScale as needed.
* Deploy and monitor logs & revision events.
## Example Service Config
```yaml theme={null}
services:
nestjs-app:
build:
context: ./
dockerfilePath: ./Dockerfile
repo: your-username/hello-nestjs
ref: main
refType: branch
autoBuild: true
ports:
- 3000
protocol: https
minScale: 1
maxScale: 2
environment:
NODE_ENV: production
DB_HOST: ${DB_HOST}
DB_USERNAME: ${DB_USERNAME}
DB_PASSWORD: ${DB_PASSWORD}
DB_NAME: ${DB_NAME}
```
## Best Practices
* Use internal networking for connecting to databases or services within DCDeploy.
* Add a health check endpoint (e.g., /healthz) for better deployment monitoring.
* Set NODE\_ENV=production for performance optimizations.
* Keep the Docker image small (use Alpine or slim images, multi-stage builds).
* Use logging, and avoid exposing secrets in code.
* Use SSL / custom domain for secure access in production.
## Troubleshooting
| Problem | Likely Cause | Solution |
| --------------------------------------------- | --------------------------------------------------------- | ----------------------------------------------------------------------------- |
| App not accessible after deployment | App isn’t listening on `0.0.0.0` or wrong port configured | Check listening address & port in both NestJS code & DCDeploy service config. |
| Build fails due to missing TypeScript compile | Missing `build` script or dependencies | Ensure `npm run build` works locally; include `tsconfig`, etc. |
| Environment variables not set or wrong | Variables missing in DCDeploy dashboard | Add required env vars accurately. |
| Slow cold start or high memory usage | Large dependencies, SSR, or unoptimized build | Use slim base images, optimize dependencies, increase memory if needed. |
# Deploy Next.js on DCDeploy
Source: https://docs.dcdeploy.com/guide/nextjs
Guide for deploying Next.js applications (App Router or Pages Router) on DCDeploy
This guide walks you through deploying a Next.js application on DCDeploy, including setup, build configuration, routing, and best practices.
***
## Quick Start: Hello World
You can try deploying a minimal Next.js app to test the workflow.
1. Create a new Next.js app:
```bash theme={null}
npx create-next-app hello-dcdeploy
cd hello-dcdeploy
```
2. Replace the default page (app/page.tsx for App Router or pages/index.js for Pages Router) with:
```jsx theme={null}
export default function Home() {
return (
Hello DCDeploy 🚀
)
}
```
3. Start locally to verify:
```bash theme={null}
npm run dev
```
4. Commit and push to GitHub/Git provider.
5. Deploy on DCDeploy using the steps in the guide below.
## Overview
Next.js is a React framework that supports both static and server-rendered applications.\
On DCDeploy, you can deploy Next.js using:
* **Node.js server mode** (`next start`) for server-side rendering (SSR), API routes, etc.
* **Docker-based deployment** for custom control.
* **Static export** for static sites (no server-side features).
***
## When to Use Each Mode
| Mode | Use Cases | Limitations |
| --------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------- |
| **Node.js Server** | Full Next.js features: SSR, API Routes, Middleware, Image Optimization. | Requires more resources; cold-start delay can be higher. |
| **Docker Deployment** | Custom setup, dependencies, versions. | More complex configuration; build times may increase. |
| **Static Export** | Blogs, marketing sites, documentation with mostly static content. | No SSR or API routes; dynamic features not supported. |
***
## Prerequisites
* Next.js project with either App Router or Pages Router.
* `package.json` scripts:
```json theme={null}
{
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
}
}
```
* If using Docker, a Dockerfile in your project root.
* GitHub (or other Git) repository to push your project.
## Step-by-Step Guide
1. Prepare Your Next.js App
* Choose router type (App Router or Pages Router).
* Ensure dependencies are in package.json.
* If using image optimization (next/image), ensure relevant libs like sharp may be installed.
2. Add Dockerfile (optional but recommended for control)
Example `Dockerfile:`
```dockerfile theme={null}
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "run", "start"]
```
If using static export (no server), you may build and serve static with a lightweight server or from static hosting.
3. Push Code to Git
* Initialize Git, commit all files, push to your git provider (GitHub, etc.).
* Include .dockerignore to speed up builds when using Docker.
4. Deploy on DCDeploy
* In DCDeploy dashboard → Deploy tab in your target environment.
* Create a new service → select Docker Registry / Build from Code.
* Provide image or repo + branch.
* Set port to 3000 (common for Next.js) and ensure app listens on 0.0.0.0.
* Select protocol (http / https) and region(s).
* Choose machine type (CPU, RAM) especially if SSR or many API routes.
* Configure environment variables (NEXT\_PUBLIC\_\*, database URLs, etc.).
* Set minScale / maxScale. If your app is dormant at times, you can allow scale‐to‐zero if enabled.
* Deploy and monitor build + deploy logs.
Examples
Node.js Server Example
```yaml theme={null}
services:
next-app:
build:
context: ./
dockerfilePath: ./Dockerfile
repo: your-username/nextjs-app
ref: main
refType: branch
autoBuild: true
ports:
- 3000
protocol: https
minScale: 1
maxScale: 2
environment:
NEXT_PUBLIC_API_URL: https://api.example.com
```
### Static Export Example
If using static export:
* Run next export or configure Next.js to export static.
* Serve from static hosting or minimal server.
* Dockerfile might look like:
```dockerfile theme={null}
FROM node:18-alpine as builder
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build
RUN npm run export
FROM nginx:alpine
COPY --from=builder /app/out /usr/share/nginx/html
```
## Best Practices
* Use internal networking for connecting your Next.js app to databases / APIs within DCDeploy instead of making those publicly exposed.
* Enable SSL / custom domain for production.
* Monitor resource usage (CPU, memory), especially if using SSR or Server Components.
* Use caching / ISR (Incremental Static Regeneration) wisely for performance.
* Optimize image sizes and bundle sizes.
## Troubleshooting
| Problem | Likely Cause | Solution |
| ---------------------------------- | ---------------------------------------------- | --------------------------------------------------------- |
| Page showing blank or can't access | App not listening on `0.0.0.0` or wrong port | Verify `listen("0.0.0.0", port)` and port match manifest. |
| Image optimization failing | Missing `sharp` or unsupported library | Install needed libs, ensure docker image includes them. |
| Build timeout / too slow | Large dependencies, cached layers not used | Use slim base image, optimize dependencies, use caching. |
| SSR / API route error on deploy | Environment variables missing or misconfigured | Check env var settings, check logs for stack trace. |
# Deploy Spring Boot on DCDeploy
Source: https://docs.dcdeploy.com/guide/spring-boot
Guide for deploying Spring Boot applications on DCDeploy using Docker or build-from-code
# Deploy Spring Boot on DCDeploy
This guide helps you deploy a Spring Boot application on DCDeploy—from setup, build config, to monitoring.
***
## Quick Start: Hello World
You can deploy a minimal Spring Boot app to test the flow.
1. Create a new Spring Boot project (using Spring Initializr or CLI):
```bash theme={null}
curl https://start.spring.io/starter.zip \
-d dependencies=web \
-d language=java \
-d name=hello-dcdeploy \
-o hello-dcdeploy.zip
unzip hello-dcdeploy.zip
cd hello-dcdeploy
```
2. Modify src/main/java/com/example/demo/DemoApplication.java:
```java theme={null}
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@RestController
class HelloController {
@GetMapping("/")
public String hello() {
return "Hello DCDeploy from Spring Boot!";
}
}
```
3. Add a Dockerfile (if using Docker for deployment) or prepare the build to be invoked by DCDeploy.
4. Push the code to a Git repository.
5. Deploy on DCDeploy using the steps in this guide.
## Overview
Spring Boot is a Java framework for building production-grade standalone applications with embedded servers (Tomcat, Jetty, etc.).
On DCDeploy, you can deploy Spring Boot apps via:
* Build from Code (auto-detecting Java/Maven/Gradle projects)
* Dockerfile, for full control (custom JVM options, multi-stage builds)
## Prerequisites
* Java 17+ or appropriate version for your app.
* Build tool: Maven or Gradle in your repo.
* pom.xml or build.gradle describing dependencies.
* A Git repository.
* If using Docker, include a Dockerfile.
* Application should read port from environment (e.g. \$ or fallback) and listen on 0.0.0.0.
## Step-by-Step Guide
1. Prepare Your Spring Boot App
* Ensure your main class (with @SpringBootApplication) is correctly set.
* Update application.properties or application.yml to use environment variables:
```properties theme={null}
server.port=${PORT:8080}
spring.datasource.url=${DATABASE_URL}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASS}
```
Do not hardcode secrets in code. Use environment variables or Secrets management.
2. Add Dockerfile (optional but often preferred)
Example Dockerfile with multi-stage build:
```dockerfile theme={null}
# Build stage
FROM maven:3.9.0-openjdk-17-slim AS build
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn clean package -DskipTests
# Runtime stage
FROM openjdk:17-slim
WORKDIR /app
COPY --from=build /app/target/*.jar ./app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]
```
3. Push Code to Git
* Initialize Git if needed, commit all files.
* If using .gitignore, exclude target/, .mvn/, .settings, etc.
4. Deploy on DCDeploy
* In DCDeploy dashboard → go to your environment → Deploy tab.
* Add a new service → choose Build from Code or Docker Registry.
* Provide repo + branch.
* Set port to 8080 (or configured port), ensure the app listens on 0.0.0.0.
* Choose protocol (HTTP/HTTPS), region(s).
* Provide environment variables:
* DATABASE\_URL, DB\_USER, DB\_PASS etc.
* SPRING\_PROFILES\_ACTIVE if you use profiles.
* Choose machine type (CPU/RAM) based on expected load.
* Set scaling parameters (minScale / maxScale).
* Deploy and monitor build & deployment logs.
## Example Service Configuration
```yaml theme={null}
services:
spring-boot-app:
build:
context: ./
dockerfilePath: ./Dockerfile
repo: your-username/hello-spring-boot
ref: main
refType: branch
autoBuild: true
ports:
- 8080
protocol: https
minScale: 1
maxScale: 2
environment:
DATABASE_URL: "jdbc:postgresql://db.internal:5432/mydb"
DB_USER: "username"
DB_PASS: "password"
SPRING_PROFILES_ACTIVE: "prod"
```
## Best Practices
* Use multi-stage Docker builds to reduce image size.
* Set server.port dynamically via \$ environment variable.
* Use internal networking for databases and other services inside DCDeploy.
* Use health checks (for example /actuator/health) to allow DCDeploy to monitor readiness.
* Configure logging and monitoring.
* Use secrets instead of hard-coded credentials.
## Troubleshooting
| Problem | Likely Cause | Solution |
| -------------------------------------- | ---------------------------------------------------- | ----------------------------------------------------------------------- |
| App not reachable | Application not listening on `0.0.0.0` or wrong port | Verify `server.port` property and listening address. |
| Build failed (Maven or Gradle errors) | Missing dependencies, repository issues | Ensure your build file is correct, test build locally. |
| Environment variables missing or wrong | Variables not set in DCDeploy service/profile | Set up env vars in service manifest or dashboard. |
| Long cold start or high memory usage | Large jar size, many dependencies | Use slim base image, strip dependencies, optimize build. |
| Database connection errors | Wrong JDBC URL, DB not reachable | Check `DATABASE_URL`, internal network, DNS, and private network usage. |