Deploy Replit Apps
Export your Replit project and deploy to production infrastructure
Overview
Move your Replit prototype to production with Chita Cloud. Keep coding in Replit, deploy to enterprise-grade infrastructure.
What is Replit?
Replit is a collaborative browser-based IDE that makes coding accessible. Great for prototyping, but production needs dedicated infrastructure.
Why Move to Production?
Replit Limitations:
- Apps sleep after inactivity
- Limited to 0.5 vCPU on free tier
- No custom domains on free tier
- No Redis/PostgreSQL included
- Public workspace visibility
Chita Cloud Benefits:
- Always-on infrastructure
- Custom domains + SSL included
- Redis cache included
- PostgreSQL from €7/month
- Private deployments
Deployment Steps
Step 1: Prepare Your Replit Project
- Test your app in Replit
- Ensure all dependencies in requirements.txt (Python) or package.json (Node.js)
- Note environment variables you're using
Step 2: Push to GitHub
From Replit:
- Click the Git icon in left sidebar (or use Shell)
- Initialize git if needed:
git init git add . git commit -m "Initial commit" - Create GitHub repository at github.com
- Add remote and push:
git remote add origin git@github.com:yourusername/your-repo.git git push -u origin main
Or use Replit's GitHub Integration:
- Click "Version Control" in Replit
- Click "Connect to GitHub"
- Authorize and create new repository
- Replit handles the push automatically
Step 3: Deploy to Chita Cloud
- Go to app.chitacloud.com
- Click "Deploy" button
- Select "GitHub Repository"
- Authorize GitHub (first time)
- Choose your Replit repository
- Select
mainbranch - We auto-detect your runtime:
- Python (Flask, FastAPI, Django)
- Node.js (Express, Next.js)
- Go (if you have .go files)
Step 4: Configure Build Settings
For Python apps:
- Handler auto-detected from main.py, app.py, or server.py
- Requirements.txt dependencies installed automatically
- Python version: 3.9, 3.10, or 3.11
For Node.js apps:
- Package.json scripts auto-detected
- Dependencies installed with npm/yarn
- Node version: 16, 18, 20, or 22
Step 5: Add Environment Variables
- Go to "Environment Variables" tab
- Copy variables from Replit Secrets:
- API keys
- Database URLs
- Third-party credentials
- Click "Save"
- Service auto-redeploys
Step 6: Add Database (Optional)
If your Replit app uses Replit DB, migrate to PostgreSQL:
- Click "Add-ons" tab
- Add PostgreSQL (100MB free, or from €7/month)
- Copy
DATABASE_URLfrom environment variables - Migrate data from Replit DB to PostgreSQL
Redis is included in all paid plans for sessions/caching.
PostgreSQL guide: Database setup | Redis info: Cache configuration
Step 7: Add Custom Domain
- Go to "Domains" tab
- Add your domain
- Configure DNS as instructed
- SSL issued automatically
- Now accessible at
yourdomain.cominstead ofreplit.dev
Full guide: Custom Domains
Common Replit Patterns
Flask App
# Your Replit Flask app works as-is
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "Hello from Chita Cloud!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)Deploy with runtime: Python
Express.js App
// Your Replit Express app works as-is
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello from Chita Cloud!');
});
const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`Server running on port ${port}`));Deploy with runtime: Node.js
Pricing Comparison
Replit Costs:
- Free: Apps sleep, 0.5 vCPU, no custom domains
- Core: $15/month, always-on, 2 vCPU
- No included database or Redis
Chita Cloud:
- Freelancer Starter: €16/month
- Always-on
- Custom domains + SSL
- Redis included
- 100MB PostgreSQL free (or 1GB for +€7/month)
Total cost: €16-23/month vs. Replit Core ($15) + database ($25) = Save ~€15/month
Migration Checklist
- Test app works in Replit
- Push code to GitHub
- Deploy to Chita Cloud
- Add environment variables
- Add PostgreSQL if needed
- Test production deployment
- Add custom domain
- Update DNS records
- Monitor logs and performance
Troubleshooting
Port Configuration
Chita Cloud provides PORT environment variable:
# Python
port = int(os.environ.get('PORT', 5000))
# Node.js
const port = process.env.PORT || 3000;Replit DB Migration
Replit DB is key-value storage. For PostgreSQL:
# Old (Replit DB)
from replit import db
db["key"] = "value"
# New (PostgreSQL with SQLAlchemy)
from sqlalchemy import create_engine
engine = create_engine(os.environ['DATABASE_URL'])
# Use proper SQL tablesMissing Dependencies
Ensure all imports are in:
requirements.txtfor Pythonpackage.jsonfor Node.js