Only show guides for your app
Install Node or Python on your own machine, run your app before you deploy, mirror SERVER_PORT with a local env var, and settle into the edit-locally, push, deploy loop.
The slowest way to find a bug is to deploy, watch the server crash, fix, deploy again. The fastest is to run your project on your own computer first, where changes are instant and nothing is live. This guide gets your project running locally and mirrors the one Falix-specific detail — the port — so "works on my machine" also means "works on the server".
| At a glance | |
|---|---|
| You need | Your project in a Git repo, and admin rights to install software on your computer |
| Plan | Any — this runs on your machine, not a server |
| Time | Thirty minutes the first time |
Install the same language your Falix application uses, from its official source:
node -v and npm -v.python --version (or python3 --version) and pip --version.💡 Tip: Match the version to your server. Falix lets you pick the Node or Python version on the Settings page; install the same major version locally so a feature that works on your machine also works on the server. See Node.js on Falix and Python on Falix.
Clone the repository you push to (the Git from zero guide covers this):
git clone https://github.com/you/my-project.git
cd my-project
This mirrors exactly what Falix does automatically when your server starts:
# Node — reads package.json
npm install
# Python — a virtual environment keeps things tidy, then install
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
On Falix these run for you on every start; locally you run them once (and again whenever the dependency list changes).
On a Falix server your public port arrives as the environment variable SERVER_PORT, and your app is written to read it:
const PORT = process.env.SERVER_PORT || 8080;
server.listen(PORT, '0.0.0.0', () => console.log(`Listening on ${PORT}`));
On your own machine, SERVER_PORT isn't set, so that code falls back to 8080 — which is fine. But to run exactly the way the server does, set the variable yourself when you launch:
# macOS / Linux
SERVER_PORT=3000 node index.js
# Windows PowerShell
$env:SERVER_PORT=3000; node index.js
Then open http://localhost:3000 in your browser. (Locally, binding 0.0.0.0 also answers on localhost — same code, no changes needed.)
🎯 Good to know: Prefer a file over typing the variable each time? A
.envfile plus a loader (dotenvfor Node,python-dotenvfor Python) readsSERVER_PORT=3000at startup. Keep.envout of Git — it's for local and server secrets, never the repo. See Keep secrets out of Git.
With the runtime installed and the port sorted, you've got a tight feedback cycle:
| Step | Where | Command |
|---|---|---|
| Edit | Your machine | Your editor |
| Run | Your machine | node index.js / python app.py |
| Check | Your machine | Browser, console output, tests |
| Commit & push | Your machine | git add . && git commit -m "…" && git push |
| Deploy | Falix | Auto-deploy fires, or press Deploy |
You go around the first three steps many times, cheaply, and only push when it works. The deploy is the last step, not the debugger.
Generated and machine-specific files don't belong in Git — they're rebuilt on the server anyway. Add these to .gitignore:
node_modules/ (Node) and .venv/ / __pycache__/ (Python) — reinstalled from package.json / requirements.txt on start..env — secrets live on the server, not in the repo.Your laptop and a Falix container are not the same machine. Keep these differences in mind so a green run locally doesn't surprise you on deploy:
Run your app locally with SERVER_PORT set and open http://localhost:3000 (or watch a bot connect in your terminal). Seeing your app behave on your machine — before any deploy — is the whole win. Then push, and the server runs the code you already know works.
command not found: node / python — the runtime didn't install onto your PATH; reinstall from the official installer and reopen your terminal.SERVER_PORT (http://localhost:3000 above).package.json / requirements.txt. Add it and push. See My app won't start.