Deploy applications on Replit's hosting platform. Covers Replit Deployments (Static, Autoscale, Reserved VM), configuring .replit files, managing secrets, and setting up custom domains.
# .replit
run = "npm start"
entrypoint = "index.js"
[deployment]
run = ["sh", "-c", "npm start"]
deploymentTarget = "autoscale"
[nix]
channel = "stable-24_05"
[env]
NODE_ENV = "production"
PORT = "3000" # 3000: 3 seconds in ms
1. Open your Repl in Replit
2. Click the lock icon (Secrets) in the sidebar
3. Add each secret:
- Key: API_KEY, Value: your-api-key
- Key: DATABASE_URL, Value: your-db-url
# Or via Replit CLI
replit secrets set API_KEY "your-api-key"
replit secrets set DATABASE_URL "your-db-url"
1. Click "Deploy" button in the Replit editor
2. Choose deployment type:
- **Static**: For frontend-only apps (free)
- **Autoscale**: Scales to zero, pay per request
- **Reserved VM**: Always-on, fixed monthly cost
3. Configure machine size (0.25 - 8 vCPU)
4. Click "Deploy"
1. Go to Deployment settings > Custom Domain
2. Enter your domain: app.example.com
3. Add DNS records:
- CNAME: app -> your-repl.replit.app
4. Wait for SSL certificate provisioning
// health.ts
export async function GET() {
return Response.json({
status: "healthy",
environment: process.env.REPL_SLUG,
region: process.env.REPLIT_DEPLOYMENT_REGION,
timestamp: new Date().toISOString(),
});
}
| Issue | Cause | Solution |
|---|---|---|
| Deploy fails | Build error | Check console logs in Replit |
| Port mismatch | Wrong PORT | Use process.env.PORT or 3000 |
| Cold start slow | Autoscale spin-up | Use Reserved VM for latency-sensitive apps |
| Secret not found | Not set in Secrets | Add secret via Replit sidebar |
set -euo pipefail
# Install Replit CLI
npm install -g replit
# Deploy current repl
replit deploy --type autoscale
For multi-environment setup, see replit-multi-env-setup.