Python on Falix

How the Python application runs your code — the app.py entry file, automatic requirements.txt installs, SERVER_PORT for web apps — and the few rules that make any Python tutorial work here.

Skip the setup This guide has a one-click starter template that installs everything below onto your server.

Python goes almost anywhere, and a Falix server is no exception: Discord bots, Flask sites, scrapers, scheduled jobs, data crunching. The Python application takes care of the fiddly parts — installing your packages and picking an interpreter — so you can stay focused on the code. There are only a few Falix-specific rules, and once they click, any Python tutorial online works here unchanged.

At a glance
You need A Falix server running the Python application
Plan Any — on free it runs while your session timer has time left, premium runs 24/7
Time Ten minutes
No server yet? Create your first app server

The four rules

  1. Your code starts from app.py. When you press Start, Falix runs python app.py in your server folder. If your entry file is named something else, change the App py file variable on the Settings page — no premium needed.

  2. Dependencies install themselves. If a requirements.txt exists, Falix installs it every time the server starts, before your code runs. You never type pip install by hand — you edit requirements.txt, restart, and watch the install scroll past in the console. (The Requirements file variable in Settings controls which file it reads; it defaults to requirements.txt.)

  3. Your public port is SERVER_PORT. If your app listens for web traffic, read the port from the environment and bind 0.0.0.0 — never localhost or 127.0.0.1. Here's a complete Flask app that does it right:

    import os
    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route("/")
    def home():
        return "Hello from Falix!"
    
    if __name__ == "__main__":
        port = int(os.environ.get("SERVER_PORT", 8080))
        app.run(host="0.0.0.0", port=port)

    Put flask in your requirements.txt and this serves on your public port. Hard-coding port 5000 or binding localhost are the two classic "works on my PC, not on the server" mistakes — see Your first web app.

  4. The console is your window. Everything your app prints shows up on the Console page. For anything long-running — a bot, a web server, a worker loop — use print("...", flush=True) so your logs appear immediately instead of getting stuck in Python's buffer. When something breaks, read the console from the top: the first error is usually the real one.

Try it: hello world

Deploy the Python Hello World template from this page (it only overwrites files with the same names). Press Start, and the console shows the greeting and your Python version. Then open app.py in the File Manager, change the message, restart, and watch it update. That loop — edit, restart, read the console — is Python development on Falix.

Adding packages

Want requests or flask? Open the Packages page in your server menu, type the package name into the Install package panel, and press Install. The job runs under Tasks, your requirements.txt is updated for you, and after a restart your import works. The same page lists every dependency you have, flags outdated ones, and warns about known security problems.

🎯 Good to know: The console knows about missing packages too: if your app crashes with ModuleNotFoundError: No module named 'requests', the panel pops up a diagnostic that opens Packages — or installs the missing package in one click.

If you prefer editing files (or your project comes from Git), the mechanics are plain pip: list your dependencies in requirements.txt, and they install on every start. Both paths end in the same place.

A different file, several apps, and reinstalls

Your entry point is the App py file variable — point it at any .py file in your project. To run a genuinely separate app, though — a second bot, a different scraper — don't pile it into the same folder. Give it its own Instance: an isolated application, files, and startup on the same server, switched whenever you like.

🎯 Good to know: Your installed packages live in a .local folder that isn't yours to keep. A reinstall — or switching the server to a different application — can wipe your files, .local included. You don't reinstall by hand: the requirements install runs on the next start and rebuilds it. Guard your own source and data instead (managed databases are the safe home for data).

Picking a Python version

The application defaults to a current release. You can switch anywhere from Python 3.7 to 3.13 on the Settings page (the runtime version dropdown) on any plan.

💡 Tip: Switch the Python version when a library needs a specific one; otherwise the default is fine.

When things go wrong

  • ModuleNotFoundError: No module named 'xyz' — the package isn't in requirements.txt, or the install above it in the console failed. Scroll up and read the pip output first.
  • Server starts, then immediately stops — your script finished and exited cleanly. That's not a crash: a bot or web server keeps running because something stays open; a script that only prints and returns is done. See My app won't start.
  • Web app not reachable in the browser — a port or bind-address problem: I can't reach my app.
  • Killed out of nowhere — likely memory: Out of memory.
Cheat sheet
Entry file app.py (App py file variable)
Dependencies requirements.txt installs automatically on start (Requirements file variable)
Web port rule Read SERVER_PORT, bind 0.0.0.0
Versions Python 3.7 to 3.13 on the Settings page (any plan)

Next steps

Was this guide helpful?