Apps Starter
- 1 vCPU
- 1 GB RAM
- 20 GB Disk
- 2 Apps
- 1 Databases
Deploy a template, your own Git repo, an uploaded folder, or a one-click app like n8n on HTTPS with NABHCLOUD Apps, without managing a server.
Maybe you built an app using Cursor, Claude, Lovable or Bolt, and right now it only runs on your laptop. This guide shows how to put it online over HTTPS, without needing to learn Docker, Nginx or Linux first. Four routes work: begin from a starter template, link your own Git repository, upload your project folder directly, or install a ready-made application from our store.
Check out app hosting
Billing is hourly, a GST invoice is issued, and your app can go live within a minute.
You will need a verified NABHCLOUD account with eKYC completed first. Under India's CERT-In rules, every cloud customer must be verified, including on the entry-level tier, and this check only happens once.
Next, open the Apps section of the panel and create an app server. Hobby runs a single app on a shared sandbox and pauses when nobody is visiting it. Starter, Pro and Business each provide a private server that can hold multiple apps, databases and a custom domain. You can compare all the tiers on the app hosting page.
A template is a small, working application that deploys exactly as it is, letting you confirm the whole process before touching any code. Choices include Next.js, Vite with React, Express, FastAPI, Django, Laravel and a plain static site, and every one of these runs on the Hobby tier.
Go to the app hosting page and click Deploy in one click beside the framework you want, or open Apps → App Store inside the panel.
If you already have an app server, it is selected automatically. If you have none yet, the page offers to set up a Hobby server for you first.
The template is then built and started. Any framework secret it needs, such as a Django SECRET_KEY or Laravel APP_KEY, is generated automatically and stored as an environment variable.
Your app is now served on HTTPS at its own address under our apps subdomain, and the page confirms it is live.
Copy the template's code into a Git repository of your own, edit it as you like, and then point the app at that repository from its settings.
Push your code to GitHub, GitLab or any other Git host, then add a new app on your app server and paste in the repository URL together with the branch name. The platform works out the language on its own — Node.js, Python, PHP, Go, Ruby or plain static files — installs whatever dependencies it needs, and builds and starts the app.
Your application must listen on the port it is assigned. Read the PORT environment variable and bind to 0.0.0.0 rather than localhost; most frameworks already do this by default, and in Express it looks like app.listen(process.env.PORT).
If your code is not yet sitting in a Git repository, add a new app, select Upload folder or zip, and choose your project folder or a .zip archive of it. Your browser compresses the folder, and it is then built exactly as a repository would be, with the same language detection and the same PORT requirement.
There is no need to include node_modules, virtual environments or build output, since these are ignored anyway and dependencies are installed fresh during the build. Store large media files in object storage instead of bundling them into the upload. To push out a change later, click Upload folder on that app's row, pick the folder once more, and the new files will replace the old ones as the app redeploys.
Open the app, go to its Auto-deploy tab, and click Turn on auto-deploy; the panel will then display a payload URL along with a secret.
On GitHub, open the repository and go to Settings → Webhooks → Add webhook, paste in the payload URL, set the content type to application/json, paste in the secret, and leave it set to "Just the push event". On GitLab, go to Settings → Webhooks, paste the URL, enter the secret into the Secret token field, and tick Push events.
After that, any push to the branch the app is tracking triggers a build and swaps in the new version, while pushes to other branches are simply ignored. Apps on the Hobby tier are limited to five builds a day. Should the secret ever leak, click New secret and update the webhook with the replacement.
On Pro and Business tiers, switch on Branch previews from the same tab. Pushing to any other branch then builds it at its own dedicated address, carrying a copy of the app's environment variables, so you can try out a change before merging it. Removing the branch deletes its preview too, and any preview left untouched for a week is automatically cleaned up.
Our App Store lets you install well-known open-source software with a single click, including WordPress, Ghost, n8n, Odoo, Dolibarr, Chatwoot, Mattermost, Grafana, Uptime Kuma, Vaultwarden, Gitea, NocoDB, PostgreSQL and more. Each installed app receives its own HTTPS address. Wherever we generate the admin password ourselves, it is stored under Login details on your app server page so you can retrieve it later; for other apps, you will be asked to set up the admin account on your first visit.
Since most store applications need a database, or more memory than the shared sandbox offers, they require at least the Starter tier. The store lists the minimum tier needed beside each app.
On any paid tier, open the app, go to its Domains tab, and add your own domain there. Create the CNAME record the panel displays with your DNS provider. Once that record resolves, a certificate is issued and renewed for you automatically. Apps on the Hobby tier continue to use their default address.
nginx.template.conf from the Laravel starter template into the root of your repository; without it, the web server sees two conflicting routes and the app will not start.No. The build process, container, web server and certificate are all handled on your behalf, leaving you to work only with your code, environment variables and logs.
Yes. The Hobby tier runs a single app on a shared, sandboxed pool with HTTPS on its own address, and it pauses when idle. Current plans and prices are shown on the app hosting page.
Any framework a buildpack can recognise, including Next.js, React with Vite, Express, FastAPI, Flask, Django, Laravel, Go and static sites. Paid tiers can also build from a Dockerfile.
In our datacentre in Noida, on our own network with DDoS protection, so your data stays within India.
Yes, on paid tiers. Open the app, go to Domains, add your domain, and create the CNAME record the panel displays; a certificate is then issued and renewed automatically. Apps on the Hobby tier keep their default address.
Yes. Switch on Auto-deploy within the app, then add the payload URL and secret it provides as a webhook on GitHub or GitLab. From then on, a push to the branch the app is tracking builds and swaps in the new version.
Tell us what you plan to run and we will suggest the right setup.