A Container is a server on FPS.ms that runs your own code: a Discord or Telegram bot, an API, a website backend, a background worker or a script. You pick a runtime such as Python or Node.js, upload your code or connect a GitHub repository, and FPS.ms keeps it running. Discord bots and Telegram bots are no longer separate products: you host them on a Python or Node.js Container.
Game Servers, Containers and Apps
When you create a server on panel.fps.ms/deploy, you first pick one of three categories:
| Category | What it runs | Examples |
|---|---|---|
| Game Servers | A game, set up for you | Minecraft, Terraria, Hytale |
| Containers | Your own code in the runtime you pick | A Discord bot, a Telegram bot, an API, a web app |
| Apps | A ready-made app, installed for you | Vikunja, Navidrome |
A Container is not a VPS. You do not get root access or SSH. You manage your code with the file manager, SFTP, the console and, on a paid plan, GitHub deploys. FPS.ms looks after the machine, the runtime and the network.
Runtimes you can pick
| Runtime | Good for | Free plan |
|---|---|---|
| Python | Discord and Telegram bots, scripts, Flask and FastAPI apps | Yes |
| Node.js | Discord and Telegram bots, Express and other web apps | Yes |
| Bun | Fast JavaScript and TypeScript apps | Yes |
| .NET | C# apps and ASP.NET Core | Yes |
| Dart | Dart servers and command-line apps | Yes |
| Go | APIs, bots and workers | Yes |
| Java | Spring Boot and other JVM apps | Yes |
| Lua | Lua scripts and tools | Yes |
| Odin | Odin programs | Yes |
| Rust | APIs, bots and workers | Yes |
| Kotlin | Ktor and other Kotlin apps | No, paid plans only |
| Haskell | Haskell programs | No, paid plans only |
The supported runtimes page shows which file each runtime starts and how it installs your packages.
What you get on the free plan
- One free Container. You can have one free server per category, so one free Container in total, whatever the runtime. A Discord bot and a Telegram bot no longer get a free slot each. If you already had two free bot servers before the change, both keep running.
- It does not sleep. A Container keeps running when nobody uses it, so a bot stays online. Free servers still need to be renewed.
- Environment variables. Up to 8 on a free server. See environment variables.
- A Public URL with a random name, like
faint-forge.hostedbyfps.com, for web apps. See Public URL.
What needs a paid plan
Paid plans show a PRO badge in the panel. On a paid Container you also get:
- Deploys from GitHub on every push, with a build log and rollbacks.
- Up to 100 environment variables.
- Your own name on
hostedbyfps.com, and a domain you bought somewhere else. - More memory, CPU and disk.
Create a Container
- Click Deploy in the top bar of the panel, or go to panel.fps.ms/deploy.
- Click Containers.
- Under Choose a container, click the runtime you want.
- Under Choose a runtime version, pick the version your code needs, for example Python 3.12.
- Pick a plan and a location, then click Deploy Server.
When it is installed, the panel says: "Upload your code or connect a GitHub repository to start it."