How to put a Streamlit app online
People like Streamlit because a dashboard or a model demo comes together in one evening and opens right on your own machine. The problem shows up at the next step: showing it to a colleague, a client or a teacher. A local address will not open for anyone else, and the classic path is to rent a server, install Python on it, run the app as a background process, put a proxy in front of it and get a certificate.
Netrun removes that part: you upload the code, the platform sees that this is Streamlit, installs the dependencies, starts the app with the right settings and issues a public HTTPS link. After that you can simply send it in a chat.
Collect dependencies in requirements.txt
Put a requirements.txt next to the app listing the libraries — including streamlit itself. From that file we know this is a Streamlit app and pick the right start command. Do not include the virtual environment in the archive.
Do not hard-code the port and address
The port and address to listen on are set by the platform — do not fix them in your code or in the Streamlit settings file. If you used to start the app with an explicit port, remove that: otherwise the app listens somewhere other than expected and the link will not open.
Move keys into secrets
If your dashboard talks to a database, an external service or a paid model, read the keys and the connection string from environment variables. During project setup Netrun asks for these values and passes them in encrypted — they will not sit in the archive or the repository.
Think about where the data lives
A small CSV can sit next to the code and be read from the file. If there is a lot of data or it changes, it is better to fetch it from external storage or a database: files the app writes itself live inside the container and are recreated on a code update.
Upload the code and send the link
Upload the folder as a ZIP archive or import a repository from GitHub, including a private one. Netrun installs the dependencies, starts the app and issues a public HTTPS address. Logs are visible in your dashboard in real time, so an error in the code shows up immediately instead of as a blank page.
The dashboard opens at an ordinary link you can send to anyone, with no server and no proxy setup. On the free plan the app sleeps when it is not used for a while and wakes up when the link is opened — the first visit after a pause is a little slower. If you are showing the demo live and cannot afford that delay, the Pro plan is a good fit. Try Netrun.
Common questions
Do I need to specify a start command?
No. If streamlit is listed in requirements.txt, the platform works out that this is a Streamlit app and starts it with the right command on the right port.
Why does the app not open at the link?
The most common cause is a port or address hard-coded in the code or in the Streamlit settings file. The platform sets those, so your own values have to go. The second most common cause is an error at startup: it is visible in the logs in your dashboard.
Will files written by the app be kept?
Not if they simply sit next to the code: the container is recreated on a code update. Keep data that has to persist in external storage or in a database — you can run a database next to the app in the same project.
Will the dashboard sleep on the free plan?
Yes. If nobody uses the app for a while it falls asleep and wakes up when someone opens the link. The first visit after a pause takes a few seconds longer. On the Pro plan there is no idle downtime.
Can I put the dashboard behind a password?
The link is public, so do the access check inside the app itself: Streamlit lets you ask for a password before showing the content. Keep the password in secrets rather than in the code.
Can I run a Python project — Django, Flask or FastAPI?
Yes. Put your dependencies in requirements.txt — Netrun detects Python and builds the project for you. Django, Flask and FastAPI are supported; the app should listen on the port from the environment variable, and keys and database access are set as secrets rather than in the code.
Why does my website sometimes sleep?
On the free plan, websites sleep after being idle and wake up in a couple of seconds on the first request. On the Pro plan your project runs without sleeping.
Where do I set tokens and other secret values?
In the project settings there is a section for values from your code — for example, the token from BotFather. We store them encrypted.