Skip to main content
Documentation

Deploy anything in minutes

Learn how to deploy web apps, APIs, databases, and background services on DeploysApp — with automatic HTTPS, GitHub integration, and zero DevOps required.

Quickstart

Your first 5 minutes

Zero to a live HTTPS URL in about 5 minutes. Follow these steps in order — each one builds on the previous.

  1. 1
    0:00

    Sign up & verify your email

    Create an account on the register page. We send a verification link — click it and you're in. Didn't receive it? Check spam, then use "Resend verification email" on the login screen.

    TIPVerification links expire after 24 hours. If yours expired, just request a new one.
  2. 2
    0:30

    Create your first project

    On the Dashboard, click "+ New Project" and give it a short name (e.g. my-blog). A project is a group of services that share a private network and secrets.

    TIPYou don't have to decide on databases now — you can add one later inside the same project.
  3. 3
    1:00

    Connect your code

    Open the project, click "+ Add Service", pick "Web Service", and connect GitHub (recommended) or paste a Git URL. Select the repo and branch.

    TIPThe first time you connect GitHub, you'll authorize the DeploysApp GitHub App. You can limit access to specific repos.
  4. 4
    2:00

    Set build & start commands

    DeploysApp auto-detects Node.js, Python, Go, and static sites and suggests the right commands. Double-check them and set the Internal Port (the port your app listens on — typically 3000, 5000, or 8000).

    TIPUse the PORT environment variable in your code: process.env.PORT || 3000. This avoids port mismatches.
  5. 5
    3:00

    Click Deploy

    Hit "Create Service". The build starts immediately — you'll see live logs on the service page. Build time depends on your app, usually 1-3 minutes for small projects.

    TIPKeep the Logs tab open. Build errors are almost always visible in the last 20 lines.
  6. 6
    4:00

    Open your live URL

    When the service is marked "Running", your HTTPS URL appears at the top of the service page (e.g. my-app.deploysapp.com). Click it to see your live app.

    TIPThis URL is production-ready: automatic HTTPS, HTTP/2, and a global CDN edge.

First deploy

If something went wrong

Five issues cover most first-deploy failures. Match the error to the fix — you'll usually be back up in a minute or two.

Error

Build succeeds but the page won't load

Fix

Your app is probably listening on 127.0.0.1 or localhost. Change it to 0.0.0.0 so the container network can reach it. In Node: app.listen(PORT, "0.0.0.0").

Error

"Connection refused" on the public URL

Fix

The Internal Port setting doesn't match the port your app listens on. Open service Settings → Build & Deploy, set Internal Port to whatever your app logs at startup (e.g. "Listening on 3000").

Error

Build fails with "Cannot find module" or missing dependency

Fix

Your package.json is missing a dependency, or the Build Command skipped install. Make sure your build command starts with npm install (or pip install -r requirements.txt).

Error

App crashes immediately after starting

Fix

You're probably missing an environment variable (DATABASE_URL, API_KEY, etc). Go to the service's Environment tab and add them. The container auto-restarts when you save.

Error

Build works locally but fails on DeploysApp

Fix

Node version mismatch is the most common cause. Add an "engines" field in package.json (e.g. "node": "20.x") or a .nvmrc file. For Python, add a runtime.txt.

Getting Started

Your first deploy in 4 steps

1

Create a project

Projects group related services together with shared networking and environment variables. Click "+ New Project" on the Dashboard.

2

Add a service

Inside your project, click "+ Add Service" and choose a service type. Connect your GitHub repo, paste a Git URL, or deploy a Docker image directly.

3

Configure & deploy

Set your branch, build command, and internal port. Hit "Create Service" — DeploysApp builds your container and gives you a live HTTPS URL automatically.

4

Add extras

Set up custom domains, databases, environment variables, health checks, and auto-deploy as you need them.

Service Types

Choose the right service for your app

Each service type is optimized for a specific use case. Pick the one that matches your app and DeploysApp handles the rest.

Static Site

Public

Perfect for React, Vue, Svelte, Astro, or plain HTML sites. Your build output is served over HTTPS automatically.

How to set up

Set the Build Command (e.g. npm install && npm run build) and the Publish Directory (e.g. dist or build). No start command needed.

React / ViteNext.js static exportAstroHugo / Jekyll

Web Service

Public

Long-running HTTP application or API with a public URL. Supports any language or framework.

How to set up

Set the Build Command, Start Command, and Internal Port (the port your app listens on). DeploysApp routes traffic to your container automatically.

Next.jsExpress / FastifyDjango / FastAPIGo / Rust APIs

Worker

Internal

Background process without a public URL. Ideal for queue consumers, schedulers, and async jobs.

How to set up

Set the Build and Start commands. No internal port or public URL needed — the process just runs.

Bull / BullMQ workerCelery consumerCustom scheduler

Cron Job

Scheduled

Runs your code on a schedule. The container starts, executes, and stops automatically.

How to set up

Set your Build and Start commands, then configure the cron schedule (e.g. 0 * * * * for every hour).

Database cleanupReport generationNightly sync

WordPress

Public

Full WordPress setup with automatic database configuration. Just add the service and start building your site.

How to set up

Select WordPress when adding a service. DeploysApp automatically provisions a database and connects everything for you.

BlogBusiness websiteWooCommerce store

n8n

Public

No-code workflow automation platform. Build automated workflows visually — connect APIs, databases, and services without writing code.

How to set up

Select n8n when adding a service. DeploysApp gives you a running n8n instance with a public URL, ready to create workflows immediately.

API integrationsScheduled automationsWebhook handlersData sync pipelines

MinIO

Internal

S3-compatible object storage. Store files, images, backups, and any binary data with a familiar S3 API.

How to set up

Select MinIO when adding a service. Configure access keys via environment variables. Other services in the project can access it by service name.

File uploadsImage storageBackup storageStatic asset hosting

Deployment

Four ways to deploy

🔗

GitHub

Connect your GitHub account and select a repository. Enable auto-deploy to automatically redeploy on every push.

  1. 1.Go to Account → Connect GitHub App
  2. 2.Create a service and choose "GitHub" as the source
  3. 3.Select your repo and branch
  4. 4.Enable auto-deploy for automatic deployments on push
📋

Git URL

Paste any public Git repository URL. Works with GitHub, GitLab, Bitbucket, or any Git host.

  1. 1.Create a service and choose "Git URL" as the source
  2. 2.Paste the full repository URL
  3. 3.Set the branch name
  4. 4.Deploy manually or set up a deploy hook for automation
🐳

Docker Image

Deploy a pre-built Docker image directly. No build step needed — just provide the image name.

  1. 1.Create a service and choose "Docker Image"
  2. 2.Enter the image name (e.g. nginx:alpine)
  3. 3.Configure ports and environment variables
  4. 4.Deploy — your container starts immediately
🐱

Gitea (Self-hosted Git)

Use your own Gitea instance hosted on DeploysApp. Push code to your private repos and auto-deploy to services.

  1. 1.Set up Gitea from Dashboard → Git Hosting
  2. 2.Create a repository and push your code
  3. 3.Go to Git Hosting → Auto-deploy tab
  4. 4.Link a Gitea repo to a service — every push triggers a redeploy

Build Settings

Command examples by framework

Here are the recommended build and start commands for popular frameworks. Set these in your service's Build & Deploy settings.

Next.jsWeb Service
Buildnpm install && npm run build
Startnpm start
Port: 3000
Vite / ReactStatic Site
Buildnpm install && npm run build
Start
Port:
ExpressWeb Service
Buildnpm install
Startnode server.js
Port: 3000
NestJSWeb Service
Buildnpm install && npm run build
Startnode dist/main.js
Port: 3000
FastAPIWeb Service
Buildpip install -r requirements.txt
Startuvicorn main:app --host 0.0.0.0 --port 8000
Port: 8000
DjangoWeb Service
Buildpip install -r requirements.txt && python manage.py collectstatic --noinput
Startgunicorn myapp.wsgi --bind 0.0.0.0:8000
Port: 8000
GoWeb Service
Buildgo build -o app .
Start./app
Port: 8080

Tip: If your project uses a monorepo, set the Root Directory to the subfolder containing your app (e.g. apps/web). You can also provide your own Dockerfile for full control over the build process.

Databases

Managed database services

Add a database to your project and DeploysApp sets up persistent storage, credentials, and internal networking automatically.

PostgreSQL

:5432

The most popular open-source relational database. Great for web apps, APIs, and complex queries.

MySQL

:3306

Widely used relational database. Compatible with WordPress, PHP apps, and many frameworks.

MariaDB

:3306

MySQL-compatible database with enhanced performance. Drop-in replacement for MySQL.

MongoDB

:27017

NoSQL document database. Ideal for flexible schemas and JavaScript/Node.js applications.

Redis

:6379

In-memory data store for caching, sessions, queues, and real-time features.

Connecting your app to a database

Services in the same project share a private network. Use the database service name as the hostname in your connection string:

PostgreSQLpostgres://user:pass@my-postgres:5432/mydb
MySQLmysql://user:pass@my-mysql:3306/mydb
Redisredis://my-redis:6379
MongoDBmongodb://user:pass@my-mongo:27017/mydb

Replace "my-postgres", "my-mysql", etc. with your actual database service name. Connection details are also shown on the database service page.

Features

Everything you can configure

🌍

Custom Domains

  • Add your own domain to any public service.
  • SSL/TLS certificates are provisioned automatically via Let's Encrypt.
  • Add a CNAME record pointing to your service URL and DeploysApp handles the rest.
  • Supports both subdomains (app.yourdomain.com) and apex domains.
🔐

Environment Variables & Secrets

  • Set environment variables per service — they're injected into your container at runtime.
  • Project-level secrets are shared across all services in a project.
  • All values are encrypted at rest. Secret values are write-only — you can't see them after saving.
  • Rotate secrets without redeploying — services auto-restart with the new values.
💓

Health Checks

  • Set an HTTP endpoint (e.g. /health) that DeploysApp checks every 30 seconds.
  • If your service fails 3 consecutive checks, it's automatically restarted.
  • Health status is visible on your service dashboard.
  • Email alerts notify you when a service goes down or recovers.
🔄

Auto-Deploy & Previews

  • Enable auto-deploy to redeploy automatically on every push to your branch.
  • Preview environments auto-create isolated URLs for pull requests.
  • Deploy hooks let you trigger deploys from any CI/CD pipeline via a REST endpoint.
  • Rollback to any previous successful build with one click.
💾

Persistent Storage

  • Mount Docker volumes to persist data across deploys and restarts.
  • Configure custom mount paths for your application data.
  • Data is preserved even when you redeploy or restart your service.
  • Download volume backups directly from the dashboard.
📊

Live Logs & Monitoring

  • Stream container logs in real-time from the dashboard.
  • Filter logs with regex patterns to find what you need.
  • Monitor CPU, memory, and network usage.
  • Export logs for external analysis.
🛡️

Security

  • IP whitelist restricts access to specific IPs or CIDR ranges.
  • Supports dynamic hostnames (DDNS) that resolve automatically.
  • Two-factor authentication (MFA) for your account.
  • All secrets and credentials are encrypted at rest.
👥

Team Collaboration

  • Invite team members to your projects as collaborators.
  • Collaborators can manage services, deploy, and configure settings.
  • Team size depends on your billing plan (up to 10 on Pro).
🐱

Git Hosting (Gitea)

  • Host your own private Git server powered by Gitea — directly from DeploysApp.
  • Create repositories, manage access, and push code via HTTPS or SSH.
  • Set up auto-deploy webhooks: push to a Gitea repo and your service redeploys automatically.
  • Full control over your source code — no third-party dependency required.

Resources

Instance types & pricing

Choose the right resources for each service. You can change instance types at any time — your service restarts with the new resources.

Nano

256 MB · Shared

Free

Micro

512 MB · 0.25 vCPU

$3/mo

Small

1 GB · 0.5 vCPU

$7/mo

Medium

2 GB · 1 vCPU

$14/mo

Large

4 GB · 2 vCPU

$28/mo

Instance costs are per service, per month. Platform plans (Free, Starter, Pro) control service limits, custom domains, and collaboration features.

Billing

Plans & pricing

Choose a platform plan that fits your needs. Instance costs (above) are separate — you only pay for the resources each service uses.

Free

$0forever
Services5
Build minutes300/mo
Collaborators0
Custom domainsNo
Deploy previewsNo
Git repos3
Databases1
Cron jobsNo
Priority buildsNo

Starter

$5/month
Services15
Build minutes1,500/mo
Collaborators3 per project
Custom domainsYes
Deploy previewsYes
Git repos10
Databases5
Cron jobs3
Priority buildsNo

Pro

$12/month
Services30
Build minutes6,000/mo
Collaborators10 per project
Custom domainsYes
Deploy previewsYes
Git repos30
Databases15
Cron jobs10
Priority buildsYes

Custom

Contact us
ServicesUnlimited
Build minutesUnlimited
CollaboratorsUnlimited
Custom domainsYes
Deploy previewsYes
Git repos100
DatabasesUnlimited
Cron jobsUnlimited
Priority buildsYes

How billing works

  • Your platform plan is billed monthly via Stripe. You can upgrade or downgrade at any time.
  • Instance costs are calculated per service, per month — based on the instance type you select for each service.
  • Build minutes are tracked per calendar month and reset on the 1st. If you exceed your limit, builds are queued until the next cycle.
  • Plan changes take effect immediately. When upgrading, you're charged the prorated difference for the remaining billing period.

Payments: All payments are processed securely via Stripe. We accept all major credit and debit cards. You can manage your subscription and download invoices from the Billing page in your dashboard.

Domains

Domain registration

Search, register, and manage domains directly from the DeploysApp dashboard. DNS is configured automatically when you connect a domain to a service.

How to register a domain

  1. 1.Go to Dashboard → DNS → Register Domain.
  2. 2.Search for your desired domain name — available TLDs and prices are shown instantly.
  3. 3.Click "Register" and complete the checkout via Stripe.
  4. 4.Your domain is provisioned automatically with DeploysApp nameservers.
  5. 5.Connect it to any service from the Domains tab, or manage DNS records manually.

Domain pricing

.com
$18/yr
.net
$20/yr
.org
$20/yr
.eu
$14/yr
.io
$65/yr
.dev
$22/yr
.app
$24/yr
.co
$35/yr
.me
$22/yr
.xyz
$18/yr
.de
$10/yr
.uk
$12/yr
.ai
$110/yr
.cloud
$22/yr

Prices are per year and include auto-renewal. TLDs not listed above are available at $25/yr. Domain transfers from other registrars are also supported.

Using your own domain (registered elsewhere)

  • You don't need to register your domain with us. Any domain from any registrar works.
  • Point your domain's nameservers to DeploysApp for full DNS management, or add a CNAME record pointing to your service URL.
  • SSL/TLS certificates are provisioned automatically via Let's Encrypt for all connected domains.
  • Both apex domains (yourdomain.com) and subdomains (app.yourdomain.com) are supported.

DNS

DNS management

Manage DNS records for your domains directly from the dashboard. Supports all standard record types with instant propagation.

Supported record types

APoints a domain to an IPv4 address.
AAAAPoints a domain to an IPv6 address.
CNAMECreates an alias from one domain to another.
MXDirects email to a mail server. Requires a priority value.
TXTStores text data — used for SPF, DKIM, domain verification, etc.
NSDelegates a subdomain to specific nameservers.
SRVSpecifies a host and port for specific services (e.g. SIP, XMPP).

Setting up DNS for a DeploysApp-registered domain

  1. 1.Domains registered through DeploysApp automatically use our nameservers — no manual setup needed.
  2. 2.Go to Dashboard → DNS and select your domain.
  3. 3.Add, edit, or delete records. Changes propagate within seconds.
  4. 4.To connect a domain to a service, add it in the service’s Domains tab — the required DNS records are created automatically.

Using DeploysApp nameservers with external domains

  • If you registered your domain elsewhere, you can point its nameservers to DeploysApp for full DNS management.
  • Set your domain's nameservers to ns1.deploysapp.com and ns2.deploysapp.com at your registrar.
  • Once nameservers propagate (usually 1-24 hours), you can manage all DNS records from the DeploysApp dashboard.
  • Alternatively, keep your current nameservers and just add a CNAME record pointing to your DeploysApp service URL.

Email

Email hosting

Host professional email on your own domain. Create mailboxes, send and receive email, and access your inbox from any email client or our built-in webmail.

Email Lite

$3/month
  • 1 email domain
  • 5 mailboxes per domain
  • 5 GB storage
  • 1 GB per mailbox

Email Standard

$8/month
  • 3 email domains
  • 15 mailboxes per domain
  • 25 GB storage
  • 2 GB per mailbox

Email Business

$20/month
  • 10 email domains
  • 50 mailboxes per domain
  • 100 GB storage
  • 5 GB per mailbox

Email Enterprise

$45/month
  • 25 email domains
  • Unlimited mailboxes
  • 500 GB storage
  • 10 GB per mailbox

Getting started with email

  1. 1.Choose an email plan from Dashboard → Billing → Email Plan.
  2. 2.Go to Dashboard → Email and add your domain (must be verified or registered through DeploysApp).
  3. 3.Create mailboxes — e.g. [email protected], [email protected].
  4. 4.DNS records (MX, SPF, DKIM) are configured automatically for DeploysApp-managed domains.
  5. 5.Access your inbox via the built-in Webmail, or configure any IMAP/SMTP email client.

Email client settings

Use these settings to connect your mailbox in Outlook, Thunderbird, Apple Mail, Gmail, or any IMAP/SMTP client:

Incoming Mail (IMAP)

Servermail.deploysapp.com
Port993
SecuritySSL/TLS
UsernameYour full email address

Outgoing Mail (SMTP)

Servermail.deploysapp.com
Port587
SecuritySTARTTLS
UsernameYour full email address

Storage add-ons

Need more storage? Add extra capacity to your email plan at any time:

+10 GB
$2/mo
+50 GB
$5/mo
+200 GB
$10/mo

Email features

  • Spam filtering with SpamAssassin — automatically scores and filters incoming mail.
  • DKIM signing — outgoing emails are cryptographically signed for better deliverability.
  • DMARC support — configure a DMARC policy to protect against email spoofing.
  • Webmail access — read and send email from your browser, no client setup needed.
  • Quota management — set per-mailbox storage limits from the dashboard.

External domains: If your domain uses external nameservers (e.g. Cloudflare), you'll need to add the required MX, SPF, and DKIM records manually. The exact records are shown on the Email domain setup page in your dashboard.

Automation

Deploy hooks & API

Trigger deployments from CI/CD pipelines, scripts, or any HTTP client using deploy hooks.

Deploy Hook

Each service can have a unique deploy hook URL. Send a POST request to trigger a new build and deployment.

Request

POST https://api.deploysapp.com/webhooks/deploy/{TOKEN}

Optional JSON body

{
  "branch": "main",
  "commit": "abc1234...",
  "noCache": false
}

Example (cURL)

curl -X POST https://api.deploysapp.com/webhooks/deploy/your-token-here

GitHub Actions example

# .github/workflows/deploy.yml
name: Deploy to DeploysApp
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Trigger deploy
        run: |
          curl -X POST \
            https://api.deploysapp.com/webhooks/deploy/${{ secrets.DEPLOY_HOOK_TOKEN }}

Where to find your deploy hook

  • Go to your service page
  • Click the "Settings" tab
  • Find "Deploy Hook" in the configuration section
  • Click "Generate" to create a new hook token
  • Copy the URL and use it in your CI/CD pipeline

Configuration

Environment variables reference

Environment variables let you configure your app without hardcoding values. DeploysApp supports three levels of configuration.

Service env vars

Single service

Database URLs, API keys, ports — specific to one container

Project env group

All services in project

Shared config like API base URLs, feature flags, log levels

Secrets vault

Project (linked to services)

Sensitive values shared across services — write-only, encrypted at rest

Priority order

When the same key exists at multiple levels, the most specific value wins:

Service env var>Secret ref>Project env group

Import from .env file

You can bulk-import environment variables from a .env file:

  • Go to your project's "Secrets" tab
  • Click "Import .env" and paste your file contents
  • Each KEY=value line becomes a secret
  • Link secrets to services by adding a "Secret ref"

Security note: All environment variables and secrets are encrypted at rest using AES-256-GCM. Secret values are write-only — once saved, they cannot be read back. Service env vars are visible to project collaborators.

Troubleshooting

Common issues & fixes

Build fails with "npm ERR! code ENOMEM"

Your build is running out of memory. Go to your service settings and select a larger instance type (e.g. Small or Medium). The build step uses the same memory limit as the runtime by default.

Build succeeds but the service shows "unhealthy"

Your health check path might be wrong, or your app takes longer to start than expected. Check: (1) the health check path returns HTTP 200, (2) your app listens on the configured internal port, (3) your app starts within 30 seconds.

My app works locally but shows a blank page after deploy

Common causes: (1) your app listens on localhost instead of 0.0.0.0, (2) the internal port doesn't match what your app listens on, (3) missing environment variables. Check the container logs for errors.

"Port already in use" error

Your start command might try to bind a port that's already taken inside the container. Make sure your app uses the PORT environment variable or the internal port configured in DeploysApp.

Environment variables not available during build

Service environment variables are injected at runtime, not during the Docker build. If you need values during build, use build arguments (set in Build Settings) or a .env file committed to your repo (not recommended for secrets).

Custom domain shows SSL error

SSL certificates are provisioned automatically but may take 1-2 minutes. Verify: (1) your CNAME/A record points to the correct target, (2) DNS propagation is complete (check with a DNS tool), (3) you're not behind a conflicting CDN configuration.

Services can't connect to each other

Services must be in the same project to share a network. Use the service name (not localhost or IP) as the hostname. Example: if your database service is named my-postgres, connect to my-postgres:5432.

Deploy hook returns 404

The deploy hook token might have been regenerated. Go to your service settings and copy the current deploy hook URL. Each regeneration invalidates the previous token.

Build times out after 15 minutes

Builds have a 15-minute timeout. To speed up: (1) use a .dockerignore to exclude node_modules and large files, (2) optimize your Dockerfile with multi-stage builds, (3) reduce dependencies.

How do I check my container logs?

Go to your service page → Logs tab. Logs stream in real-time. You can filter with regex patterns, and export logs. For build logs, check the Deploy History tab and click on a specific build.

Migration

Moving from another platform

Migrating from Render, Railway, Heroku, or Vercel? Here's how to move your services to DeploysApp.

From Render

  1. 1.Create a project in DeploysApp and add a Web Service
  2. 2.Connect the same GitHub repo and branch
  3. 3.Copy your build command, start command, and internal port from Render
  4. 4.Copy environment variables from Render → DeploysApp env vars
  5. 5.If you use a Render PostgreSQL, create a PostgreSQL service in the same project
  6. 6.Update your DATABASE_URL to use the new service name as hostname
  7. 7.Deploy and verify — then update your DNS to point to DeploysApp

From Heroku

  1. 1.If using a Procfile, your "web" process maps to a Web Service start command
  2. 2.Heroku buildpacks translate to build commands (e.g. npm install && npm run build)
  3. 3.Export Heroku config vars: heroku config -s > .env
  4. 4.Import the .env file into DeploysApp secrets
  5. 5.Heroku add-ons need to be replaced with DeploysApp services (PostgreSQL, Redis) or external providers
  6. 6.Deploy and test before cutting over DNS

From Vercel

  1. 1.For Next.js apps, create a Web Service with build command: npm install && npm run build
  2. 2.Set the start command to: npm start (or next start)
  3. 3.Copy environment variables from Vercel project settings
  4. 4.If using Vercel serverless functions, refactor to a standard Node.js server
  5. 5.Static sites: use a Static Site service type with your build output directory
  6. 6.Deploy and verify before updating your domain DNS

From Railway

  1. 1.Railway services map directly to DeploysApp Web Services
  2. 2.Copy your start command and environment variables
  3. 3.Railway volumes → DeploysApp persistent volumes (configure mount path)
  4. 4.Railway PostgreSQL/Redis → create equivalent database services in your project
  5. 5.Internal service communication uses service names as hostnames (same concept as Railway)

FAQ

Common questions

Do I need to write a Dockerfile?

No. DeploysApp auto-generates a Dockerfile for Node.js, Python, Go, and static sites based on your build and start commands. But if you have a custom Dockerfile in your repo, you can point to it and we'll use that instead.

How does auto-deploy work?

When you connect a GitHub repository and enable auto-deploy, DeploysApp installs a webhook that listens for pushes to your configured branch. Every push triggers a new build and deploy automatically.

Can I use a custom domain?

Yes. Add your domain in the service settings, point a CNAME record to your service URL, and DeploysApp provisions an SSL certificate automatically. Available on Starter plan and above.

How do I roll back a broken deploy?

Go to your service's Deploy History tab and click "Rollback" on any previous successful build. Your service reverts to that version immediately.

Can services within the same project talk to each other?

Yes. All services in a project share a private network. Use the service name as the hostname — for example, your web app can reach your database at my-postgres:5432.

What happens if my service crashes?

DeploysApp automatically restarts crashed containers. If health checks are configured, services are also restarted after 3 consecutive failures. You'll receive an email alert when a service goes down.

What's the build timeout?

Builds time out after 15 minutes. If your build consistently takes longer, optimize your Dockerfile, use .dockerignore to exclude large files, or consider multi-stage builds.

Can I SSH into my container?

Direct SSH access is not available. Use the Logs tab for debugging, or add a health check endpoint that returns diagnostic information. You can also run one-off commands via the pre-deploy command.

How are secrets encrypted?

All secrets and environment variables are encrypted at rest using AES-256-GCM with a server-managed key. Secrets are write-only — the plaintext cannot be retrieved after saving.

Do you support monorepos?

Yes. Set the Root Directory field in your service's build settings to the subfolder containing your app (e.g. apps/web). Each service can point to a different subfolder in the same repo.

How do I upgrade or downgrade my plan?

Go to Dashboard → Billing and click "Change Plan". Upgrades take effect immediately with prorated billing. Downgrades take effect at the end of your current billing period. Your services are not affected — but if you exceed the new plan's limits, you won't be able to create new ones.

Can I register a domain through DeploysApp?

Yes. Go to Dashboard → DNS → Register Domain, search for your desired name, and complete the checkout. The domain is set up automatically with DeploysApp nameservers and is ready to connect to your services.

How do I set up email on my domain?

Choose an email plan from Dashboard → Billing → Email Plan, then go to Dashboard → Email to add your domain and create mailboxes. For DeploysApp-managed domains, DNS records are set up automatically. For external domains, you'll need to add the required MX, SPF, and DKIM records at your DNS provider.

Can I use webmail or do I need an email client?

Both. DeploysApp includes a built-in webmail interface accessible from the dashboard. You can also use any IMAP/SMTP email client (Outlook, Thunderbird, Apple Mail, Gmail app) — connection settings are shown in the Email section above.

What payment methods are accepted?

All payments are processed via Stripe. We accept Visa, Mastercard, American Express, and other major credit/debit cards. You can view invoices and manage your payment method from Dashboard → Billing.

What happens if I run out of build minutes?

When your monthly build minutes are exhausted, new builds are queued until the next billing cycle (resets on the 1st of each month). You can upgrade your plan for more build minutes, or wait for the reset.

Can I transfer a domain to DeploysApp?

Yes. Domain transfers are supported. Initiate a transfer from Dashboard → DNS → Transfer Domain. You'll need the authorization/EPP code from your current registrar. Transfer pricing matches the registration price for that TLD.