What gets migrated
- Any language or framework (Node.js, Python, Go, Ruby, etc.)
replit.nixenvironment definition (converted to Dockerfile)- Replit Secrets → Nometria environment variables
- Static files
Prerequisites
- An Nometria account
- Your Replit project connected to GitHub (recommended) or a ZIP export
Step 1 — Export from Replit
- Via GitHub (recommended)
- Via ZIP
- In Replit, click Version Control (Git icon in the sidebar)
- Connect your Replit project to a GitHub repository
- Push the current state
- In Nometria, select Connect via GitHub and choose that repo
Step 2 — Configure
1
Environment (Nix → Docker)
Replit uses
replit.nix to define the environment. Nometria reads this file and converts it to a Dockerfile automatically.If your project already has a Dockerfile, Nometria uses it directly.For most Node.js and Python apps, the conversion is automatic. For unusual Nix packages, you’ll see a warning and can provide a manual Dockerfile override.2
Migrate Replit Secrets
Replit Secrets don’t export with your project. Re-enter them in Nometria’s environment variable screen:
3
Start command
Nometria detects the start command from:
.replitfile (runfield)package.jsonstartscriptmain.py(for Python apps)
4
Port
Replit apps typically listen on port 8080 or 3000. Nometria proxies the correct port automatically — but confirm the detected port on the configuration screen.
Step 3 — Database migration
If you use Replit DB: Replit DB is a key-value store proprietary to Replit. You’ll need to migrate to Supabase (PostgreSQL) or another database. This requires updating your app code. If you use PostgreSQL via Replit: Export your database:DATABASE_URL environment variable to point to your external database.
Step 4 — Deploy
Click Deploy. Nometria builds from your Dockerfile (or generates one) and deploys to EC2.Why EC2 vs Replit Always On
Post-migration checklist
- App starts and responds at your live URL
- All Replit secrets re-entered as Nometria env vars
- Database migrated and accessible
- No references to
process.env.REPL_*(Replit-specific env vars) in your code - Always On disabled on Replit to avoid double billing