# Keep an app from GitHub online around the clock

> Put a Python or Node.js app, an API or a bot from GitHub online in the EU and keep it answering at any hour, with a new version on every push. From 2 EUR a month.

Web page: https://blitz.cloud/guides/always-on-app-from-github/
Updated: 2026-10-28

You wrote something small that should just keep running: an API your phone app calls, a price watcher, a webhook receiver, a little web app for your club. On blitz.cloud you connect GitHub, pick the repository, and it is online under an HTTPS address a few minutes later, on servers in the EU. Every push builds a new version. To keep it answering at any hour, you make it a Pro app for 2 EUR a month, or take Pro for 7 EUR a month for all your apps.

## From repository to address

1. Sign up and click "Host something new", then "My own code".
2. Connect GitHub and pick the repository. Private repositories work too.
3. Give the app a short name, like `api`. It becomes `api.yourname.blitz.cloud`.
4. Click "Build it and put it online".

If the project has a Dockerfile, we build it. If it doesn't, we write one from what is in the repository (`requirements.txt`, `package.json`, `go.mod` and the like) and rewrite it if the build fails. Your app should listen on the port in the `PORT` environment variable, which is `8080`. Secrets such as API keys go on the app's Environment tab, where they are encrypted before they are stored.

From then on every push to the branch builds a new version and puts it online. The version that runs stays up until the new one works, so a broken commit changes nothing for your users. The details are in [deploy a GitHub project](https://blitz.cloud/docs/deploy-from-github/).

## Why a free app is not always on

On the free plan an app with an address sleeps after 15 minutes without a visitor, and a person opening it in a browser wakes it. Requests from programs don't wake it: a webhook, a cron service, an uptime check or your phone app gets an answer that the app is asleep. For a portfolio page that is fine. For an API or a webhook receiver it means missed calls.

## Keeping it online

You have two ways to keep it awake, and both run on the same servers in the EU:

| | Pro app | Pro |
|---|---|---|
| Price | 2 EUR a month or 15 EUR a year | 7 EUR a month or 70 EUR a year |
| Covers | One app | Your whole account, up to 50 apps |
| Stays awake at any hour | Yes | Yes |
| A domain you own, with HTTPS | Yes | Yes, on any app |
| Database backups kept | Nightly | Nightly, 30 nights |
| Copies of the app's files | No | Every night, 30 nights |

You turn on the Pro app from the app's own page in the dashboard. Pro starts with a 14-day trial. If you take it and it isn't what you needed, we refund the first month when you ask within 30 days.

## A database next to it

Most small apps need somewhere to keep data. Create a PostgreSQL, MariaDB or Redis database on the Databases page and connect it to the app; the address arrives as an environment variable. Databases have no public address, only your own apps reach them, and they are backed up every night. When a build sees that the code can't start without a database, it sets one up and says so in the build log.

## Bots without an address

A Telegram or Discord bot that connects out by itself needs no address at all. Switch on "Runs in the background" when you name the app. It then never sleeps. On the free plan it stops after 2 days in which nobody signs in, deploys or opens the dashboard, and we email you a day before. As a Pro app or on Pro it doesn't stop. See [Telegram bot hosting](https://blitz.cloud/guides/telegram-bot-hosting/) and [Discord bot hosting](https://blitz.cloud/guides/discord-bot-hosting/).

## Questions

### Which languages work?

Anything that builds into a Docker image for x86: Python, Node.js, Go, Java, PHP, Ruby, Rust and others. Without a Dockerfile we write one; with yours we use it as it is.

### Where does it run?

On blitz.cloud's servers in the EU, run by BlitzWorks, a company in Germany. Once signed in, you can download the [data processing agreement](https://dashboard.blitz.cloud/account/dpa?lang=en) as a PDF.

### Can I try it before paying?

Yes. The free plan builds and runs the app without a card; it just sleeps when nobody visits. Pro has a 14-day trial.
