Skip to main content
Replit’s Always On feature keeps your app running but comes with limitations on compute, cold starts, and cost. This guide migrates your Replit app to a dedicated EC2 instance with true always-on uptime.

What gets migrated

  • Any language or framework (Node.js, Python, Go, Ruby, etc.)
  • replit.nix environment 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

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:
# Common Replit secrets
DATABASE_URL=postgresql://...
SECRET_KEY=...
OPENAI_API_KEY=sk-...
In Replit, open your project → Secrets (lock icon) to see all your secret names. You’ll need to copy the values from wherever you originally stored them.
3

Start command

Nometria detects the start command from:
  • .replit file (run field)
  • package.json start script
  • main.py (for Python apps)
Verify the detected start command on the configuration screen and override if needed.
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:
pg_dump $DATABASE_URL > backup.sql
Then in Nometria, create a new Supabase project and use the seed file option to import your dump. If you use an external database (PlanetScale, Neon, etc.): No migration needed — update your 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

Replit Always OnNometria EC2
Uptime99% (sleep between requests)99.9%+ (no sleep)
Cold startsYesNo
ComputeShared, throttledDedicated vCPU
Custom domainPaid add-onIncluded
SSH accessNoYes
CostUsage-basedFixed monthly

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