Title: Deploy guides | EthioDeploy
Open Graph Title: Deploy guides
X Title: Deploy guides
Description: How to deploy your app on EthioDeploy, by framework or AI tool: Next.js, Node.js, Django, FastAPI, Flask, Express, Laravel, Go, SvelteKit, Lovable, Bolt, Replit, v0, Google AI Studio, Base44, Firebase Studio, Claude Code and Cursor.
Open Graph Description: How to deploy your app on EthioDeploy, by framework or AI tool: Next.js, Node.js, Django, FastAPI, Flask, Express, Laravel, Go, SvelteKit, Lovable, Bolt, Replit, v0, Google AI Studio, Base44, Firebase Studio, Claude Code and Cursor.
X Description: How to deploy your app on EthioDeploy, by framework or AI tool: Next.js, Node.js, Django, FastAPI, Flask, Express, Laravel, Go, SvelteKit, Lovable, Bolt, Replit, v0, Google AI Studio, Base44, Firebase Studio, Claude Code and Cursor.
Opengraph URL: https://ethiodeploy.com/deploy
Domain: ethiodeploy.com
{"@context":"https://schema.org","@type":"Organization","@id":"https://ethiodeploy.com/#organization","name":"EthioDeploy","url":"https://ethiodeploy.com","logo":"https://ethiodeploy.com/icon.svg","description":"Deploy from GitHub with an AI coding agent that writes, tests and ships your code. No Dockerfile, no YAML. Pay by card in USD or in Ethiopian Birr.","email":"support@ethiodeploy.com","foundingLocation":{"@type":"Place","name":"Ethiopia"},"sameAs":["https://t.me/EthioDeploy"]}
{"@context":"https://schema.org","@type":"SoftwareApplication","name":"EthioDeploy","url":"https://ethiodeploy.com","description":"Deploy from GitHub with an AI coding agent that writes, tests and ships your code. No Dockerfile, no YAML. Pay by card in USD or in Ethiopian Birr.","applicationCategory":"DeveloperApplication","operatingSystem":"Web","publisher":{"@id":"https://ethiodeploy.com/#organization"},"offers":[{"@type":"Offer","name":"Free","price":"0","priceCurrency":"USD","url":"https://ethiodeploy.com/pricing","priceSpecification":{"@type":"UnitPriceSpecification","price":"0","priceCurrency":"USD","unitCode":"MON"}},{"@type":"Offer","name":"Pro","price":"10","priceCurrency":"USD","url":"https://ethiodeploy.com/pricing","priceSpecification":{"@type":"UnitPriceSpecification","price":"10","priceCurrency":"USD","unitCode":"MON"}},{"@type":"Offer","name":"Business","price":"30","priceCurrency":"USD","url":"https://ethiodeploy.com/pricing","priceSpecification":{"@type":"UnitPriceSpecification","price":"30","priceCurrency":"USD","unitCode":"MON"}}]}
| og:site_name | EthioDeploy |
| og:locale | en_US |
| og:image | https://ethiodeploy.com/og?path=/deploy |
| og:image:width | 1200 |
| og:image:height | 630 |
| og:image:alt | Deploy guides |
| og:type | website |
| twitter:card | summary_large_image |
| twitter:image | https://ethiodeploy.com/og?path=/deploy |
Links:
| EthioDeploy | https://ethiodeploy.com/ |
| Docs | https://ethiodeploy.com/docs |
| Pricing | https://ethiodeploy.com/pricing |
| Domains | https://ethiodeploy.com/domains |
| Blog | https://ethiodeploy.com/blog |
| Tools | https://ethiodeploy.com/tools |
| Changelog | https://ethiodeploy.com/changelog |
| Next.js↗Next.js is auto-detected on Node 22, with standalone output handled for you. Push to GitHub and it builds with no adapter or config step.!Fix this first: NEXT_PUBLIC_ values are baked in at build time | https://ethiodeploy.com/deploy/nextjs |
| Node.js↗Express, Fastify, Hono, NestJS and plain Node apps all deploy the same way: we run your start script. The only requirements are the port and the bind address.!Fix this first: Bind 0.0.0.0 and read PORT | https://ethiodeploy.com/deploy/nodejs |
| SvelteKit↗SvelteKit needs one change before it runs on a container host: swap adapter-auto for adapter-node and add a start script. Then it's a normal git-push deploy.!Fix this first: Fix this first: adapter-auto has no runnable server here | https://ethiodeploy.com/deploy/sveltekit |
| TanStack Start↗TanStack Start is detected automatically, for React and Solid. We build it with Nitro's Node preset and run its server, so server functions and API routes work. Push to GitHub and it deploys.!Fix this first: Keep the nitro() plugin in vite.config | https://ethiodeploy.com/deploy/tanstack-start |
| Express↗Express apps deploy with npm start. Listen on PORT, turn on trust proxy for HTTPS cookies, and keep sessions out of memory so logins survive a deploy.!Fix this first: Listen on process.env.PORT | https://ethiodeploy.com/deploy/express |
| NestJS↗NestJS apps build with nest build and need one setting: start the compiled dist/main instead of nest start. Add a Postgres addon, run migrations at start, and push.!Fix this first: Set the Start command to node dist/main | https://ethiodeploy.com/deploy/nestjs |
| Python↗FastAPI, Flask and Django deploy from requirements.txt or pyproject.toml. Set a start command that binds 0.0.0.0:$PORT, and for Django, add the domain to your settings.!Fix this first: Set a start command that binds 0.0.0.0:$PORT | https://ethiodeploy.com/deploy/python |
| Django↗Django is detected from manage.py and started with migrate plus gunicorn, no Procfile needed. Update settings.py for production, add Postgres, and push.!Fix this first: Set ALLOWED_HOSTS and CSRF_TRUSTED_ORIGINS before the first deploy | https://ethiodeploy.com/deploy/django |
| FastAPI↗FastAPI deploys from requirements.txt or pyproject.toml. Set a start command with fastapi run, add a health route, and push. Postgres is one click away.!Fix this first: Set a start command: the default only runs python main.py | https://ethiodeploy.com/deploy/fastapi |
| Flask↗Flask needs one thing before it deploys: a gunicorn start command. Add ProxyFix so URLs and cookies know they're on HTTPS, then push.!Fix this first: Flask has no default start command | https://ethiodeploy.com/deploy/flask |
| Laravel↗Laravel is detected from artisan and built on the official PHP image with nginx and PHP-FPM. Vite assets are built for you and config, route and view caches are warmed on start.!Fix this first: Laravel 11+ defaults to SQLite, which resets on every deploy | https://ethiodeploy.com/deploy/laravel |
| Rails↗Rails is detected from the Gemfile and built with nixpacks, not the Dockerfile Rails generates. Set RAILS_ENV and your master key, point the health check at /up, add Postgres, and push.!Fix this first: Set RAILS_ENV and RAILS_MASTER_KEY before the first deploy | https://ethiodeploy.com/deploy/rails |
| Go↗Go apps are detected from go.mod and compiled into a single binary. Read PORT, add a health route, and push.!Fix this first: Listen on the PORT variable | https://ethiodeploy.com/deploy/go |
| Telegram bot↗Run a Telegram bot as a web service that receives webhooks, or as a Background Worker that long-polls. Both work on the Free plan. A worker never sleeps; a webhook bot sleeps and wakes on the next message.!Fix this first: A polling bot must be a Background Worker | https://ethiodeploy.com/deploy/telegram-bot |
| Discord bot↗A Discord bot that logs in to the gateway holds a WebSocket open and serves no HTTP, so deploy it as a Background Worker: no port, no health check, and it never sleeps, even on the Free plan. A bot that only answers slash commands through an Interactions Endpoint URL is a web service instead, and it needs an always-on plan because Discord waits only 3 seconds for a reply.!Fix this first: A gateway bot must be a Background Worker | https://ethiodeploy.com/deploy/discord-bot |
| LLovable↗Sync your Lovable project to GitHub and EthioDeploy builds it on every push. Both older Vite apps and newer TanStack Start apps are detected automatically.!Fix this first: Add your Supabase values before the first deploy | https://ethiodeploy.com/deploy/lovable |
| Bolt↗Connect your Bolt project to GitHub and EthioDeploy builds it on every push. Bolt apps are JavaScript, so they deploy like any Vite or Node app.!Fix this first: Don't edit the same files in Bolt and GitHub | https://ethiodeploy.com/deploy/bolt |
| Replit↗Push your Replit app to GitHub and EthioDeploy builds it on every push. Most apps need a port change and new env vars; apps that use Replit Auth or App Storage need more work.!Fix this first: Read PORT instead of a fixed port | https://ethiodeploy.com/deploy/replit |
| v0↗v0 apps are Next.js apps. Sync to GitHub and they build with next build and next start. Vercel services need a key or a replacement.!Fix this first: v0 changes reach main through a pull request | https://ethiodeploy.com/deploy/v0 |
| Google AI Studio↗Sync your AI Studio app to GitHub and EthioDeploy builds it on every push. Set GEMINI_API_KEY in Settings and make sure it never ends up in the browser.!Fix this first: Keep your Gemini key out of the browser | https://ethiodeploy.com/deploy/google-ai-studio |
| BBase44↗A Base44 export is a React and Vite frontend that still calls Base44 for data, sign-in and functions. You can host the frontend here today; leaving Base44 completely means replacing its backend.!Fix this first: Your app still runs on Base44's backend | https://ethiodeploy.com/deploy/base44 |
| Firebase Studio↗Firebase Studio shuts down on March 22, 2027. Push your app to GitHub, add your Gemini key and Firebase config, and it runs as a normal Next.js app.!Fix this first: Export before March 22, 2027 | https://ethiodeploy.com/deploy/firebase-studio |
| Claude Code & Cursor↗Your coding agent already runs terminal commands. Give it the ethiodeploy CLI and it can create the project, deploy, read the build log when something breaks, and fix it.!Fix this first: Push before you deploy | https://ethiodeploy.com/deploy/claude-code-cursor |
| Deploy a repo | https://ethiodeploy.com/login |
| Read the docs | https://ethiodeploy.com/docs |
| EthioDeploy | https://ethiodeploy.com/ |
| Telegram community | https://t.me/EthioDeploy |
| Pricing | https://ethiodeploy.com/pricing |
| AI coding agent | https://ethiodeploy.com/ai-coding-agent |
| Agent mode docs | https://ethiodeploy.com/docs/agent-mode |
| Domains | https://ethiodeploy.com/domains |
| CLI | https://ethiodeploy.com/docs/cli |
| Free backend hosting | https://ethiodeploy.com/free-backend-hosting |
| Hosting in Ethiopia | https://ethiodeploy.com/ethiopia-hosting |
| Changelog | https://ethiodeploy.com/changelog |
| Deploy guides | https://ethiodeploy.com/deploy |
| Next.js | https://ethiodeploy.com/deploy/nextjs |
| Node.js | https://ethiodeploy.com/deploy/nodejs |
| Python | https://ethiodeploy.com/deploy/python |
| SvelteKit | https://ethiodeploy.com/deploy/sveltekit |
| TanStack Start | https://ethiodeploy.com/deploy/tanstack-start |
| Django | https://ethiodeploy.com/deploy/django |
| FastAPI | https://ethiodeploy.com/deploy/fastapi |
| Flask | https://ethiodeploy.com/deploy/flask |
| Express | https://ethiodeploy.com/deploy/express |
| NestJS | https://ethiodeploy.com/deploy/nestjs |
| Laravel | https://ethiodeploy.com/deploy/laravel |
| Rails | https://ethiodeploy.com/deploy/rails |
| Go | https://ethiodeploy.com/deploy/go |
| Telegram bot | https://ethiodeploy.com/deploy/telegram-bot |
| Discord bot | https://ethiodeploy.com/deploy/discord-bot |
| Lovable | https://ethiodeploy.com/deploy/lovable |
| Bolt | https://ethiodeploy.com/deploy/bolt |
| Replit | https://ethiodeploy.com/deploy/replit |
| v0 | https://ethiodeploy.com/deploy/v0 |
| Google AI Studio | https://ethiodeploy.com/deploy/google-ai-studio |
| Base44 | https://ethiodeploy.com/deploy/base44 |
| Firebase Studio | https://ethiodeploy.com/deploy/firebase-studio |
| Claude Code & Cursor | https://ethiodeploy.com/deploy/claude-code-cursor |
| Compare | https://ethiodeploy.com/compare |
| vs Heroku | https://ethiodeploy.com/compare/heroku |
| vs Vercel | https://ethiodeploy.com/compare/vercel |
| vs Render | https://ethiodeploy.com/compare/render |
| vs Railway | https://ethiodeploy.com/compare/railway |
| vs Fly.io | https://ethiodeploy.com/compare/fly-io |
| vs Netlify | https://ethiodeploy.com/compare/netlify |
| Heroku alternatives | https://ethiodeploy.com/alternatives/heroku |
| Vercel alternatives | https://ethiodeploy.com/alternatives/vercel |
| Netlify alternatives | https://ethiodeploy.com/alternatives/netlify |
| Render alternatives | https://ethiodeploy.com/alternatives/render |
| Railway alternatives | https://ethiodeploy.com/alternatives/railway |
| Fly.io alternatives | https://ethiodeploy.com/alternatives/fly-io |
| Replit alternatives | https://ethiodeploy.com/alternatives/replit |
| Docs | https://ethiodeploy.com/docs |
| Blog | https://ethiodeploy.com/blog |
| Free tools | https://ethiodeploy.com/tools |
| About | https://ethiodeploy.com/about |
| Support | https://ethiodeploy.com/support |
| Contact | https://ethiodeploy.com/contact |
| llms.txt | https://ethiodeploy.com/llms.txt |
| Terms | https://ethiodeploy.com/terms |
| Privacy | https://ethiodeploy.com/privacy |
Viewport: width=device-width, initial-scale=1