---
title: "Як задеплоїти застосунок на Streamlit у 2026"
description: "Задеплойте застосунок на Streamlit однією командою: pethost deploy пише Dockerfile, запускає streamlit run і віддає застосунок через HTTPS за 9,99 € на місяць."
---

[Блог](https://pethost.dev/uk/blog/) · Гайди з деплою

# Як задеплоїти застосунок на Streamlit у 2026: одна команда, HTTPS і Dockerfile, що лишається у вас

Команда Pethost · 25 жовтня 2026 р. · 10 хв читання

У вас є застосунок на Streamlit, який працює через `streamlit run` на ноутбуці, і ви хочете викласти його онлайн за адресою з HTTPS, для людей, у яких немає Python. У Pethost це одна команда, `pethost deploy`, у папці, де лежить `requirements.txt`. Вона пише Dockerfile, збирає застосунок на вашій машині Pethost і виводить його адресу. Застосунок із перших сторінок документації Streamlit був онлайн за 52 секунди, а наступна зміна його коду — за 3.

**Коротко**

- **Одна команда:** `pethost deploy` у папці з `requirements.txt`. Ні файлу конфігурації, ні порту, який треба відкривати, ні Docker на ноутбуці.
- **Що вона робить:** пише Dockerfile, який встановлює ваші пакети й запускає `streamlit run streamlit_app.py`, і спрямовує адресу на порт 8501.
- **Віджети працюють:** WebSocket Streamlit проходить через проксі Pethost, і нічого не треба налаштовувати.
- **API-ключі** лежать у `.env`, який перший деплой бере з собою; згодом ключ змінює `pethost env set`.
- **Ціна:** 9,99 € на місяць за 2 vCPU, 3 GB і 30 GB, для всіх ваших проєктів. Безплатного тарифу немає.

## Що потрібно, щоб задеплоїти застосунок на Streamlit у 2026

Три речі: застосунок, команда `pethost` і акаунт Pethost.

**Застосунок** тут той, з якого починає документація Streamlit. Її посібник зі встановлення створює віртуальне середовище в папці проєкту й встановлює в нього Streamlit:

```
$ cd my-app
$ python -m venv .venv
$ source .venv/bin/activate
$ pip install streamlit
```

Потім `streamlit_app.py` зі слайдером із першого уроку Streamlit:

```
import streamlit as st

st.title("My app")

x = st.slider("x")  # 👈 this is a widget
st.write(x, "squared is", x * x)
```

І `requirements.txt`, список того, що встановлює застосунок, з одним рядком: `streamlit`.

**Команда** — це одна програма, яка встановлюється одним рядком. Усі її команди є в [довіднику CLI](https://pethost.dev/docs/cli/).

```
curl -fsSL https://pethost.dev/install.sh | sh      # macOS, Linux
irm https://pethost.dev/install.ps1 | iex           # Windows, in PowerShell
```

**Акаунту** потрібен тариф. Якщо ви не ввійшли, `pethost deploy` відкриває браузер і виконує вхід. Якщо тарифу ще немає, вона показує, де його обрати, і чекає.

## Задеплойте застосунок на Streamlit однією командою

Перейдіть у папку, де лежить `requirements.txt`, і запустіть `pethost deploy`. Ось увесь екран:

```
$ pethost deploy
Name it [my-app]:                it will live at https://my-app.sam.pethost.app
✓ Packed 2 files, 131 B   (left out .venv)
✓ Uploaded straight to your machine
✗ /compose.yaml: the project directory has no compose.yaml at its root: add one
✓ Streamlit app detected, wrote Dockerfile and .dockerignore.
✓ Packed 4 files, 601 B   (left out .venv)
✓ Uploaded straight to your machine
✓ Built and started in 52 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env, port 8501
✓ app listens on 8501 → https://my-app.sam.pethost.app
  It answers 200.

https://my-app.sam.pethost.app

Wrote .pethost (commit it). Next:   pethost logs -f   ·   pethost open
```

1. **Вона питає одне** Назву проєкту, перше слово його адреси. Enter бере назву папки.
2. **Вона не бере віртуальне середовище** У `.venv` було 450 MB пакетів, які машина встановлює сама.
3. **Машина не знаходить, що запускати** Рядок із хрестиком: у папці ще немає ні Dockerfile, ні файлу Compose.
4. **pethost пише Dockerfile** `requirements.txt` називає `streamlit`, тож pethost пише Dockerfile для Streamlit і завантажує папку ще раз.
5. **Машина збирає й запускає застосунок** Вона бачить, що він слухає 8501, спрямовує туди адресу з HTTPS, а pethost виводить відповідь: 200.

Файл `.pethost` каже, яким проєктом є ця папка. Закомітьте його разом із Dockerfile, і наступний деплой нічого не питатиме.

## Відкрийте застосунок: віджети й WebSocket

Сторінка Streamlit звертається до застосунку через WebSocket, `/_stcore/stream`: через нього йде кожен віджет, який ви рухаєте, і скрипт знову виконується на сервері. Коли це не вдається, сторінка вічно показує свій скелет завантаження; база знань Streamlit винить у цьому CORS або проксі, що відкидає заголовки WebSocket.

У Pethost для цього нічого не налаштовували. У браузері застосунок відмалювався менш ніж за секунду, через `wss://my-app.sam.pethost.app/_stcore/stream`: «0 squared is 0», а коли слайдер пересунули на 10, «10 squared is 100». Перевірка справності Streamlit теж відповідає:

```
$ curl https://my-app.sam.pethost.app/_stcore/health
ok
```

`pethost logs -f` стежить за тим, що виводить застосунок. «External URL», який Streamlit там виводить, нікому не відкритий: адреса застосунку — та, що з HTTPS.

## Dockerfile, який pethost пише для Streamlit

Ось цей файл повністю, таким, яким його записано в папку:

```
# Written by pethost deploy for this Streamlit app: Python 3.14 (no .python-version
# names another), pip installs it (requirements.txt), streamlit_app.py is what it starts
# with.
# It is yours now: change it as you like. pethost does not write it again.

FROM python:3.14
WORKDIR /app

COPY . .

RUN --mount=type=cache,target=/root/.cache/pip \
    pip install -r requirements.txt

ENV PYTHONUNBUFFERED=1
EXPOSE 8501
CMD ["streamlit", "run", "streamlit_app.py"]
```

Його перші рядки кажуть, що pethost прочитав у вашій папці:

- **Python** версії 3.14, якщо `.python-version` не називає іншої.
- **Пакети** встановлює pip із `requirements.txt`, і те, що він звантажує, лишається на вашій машині, або uv з `uv.lock`.
- **Файл застосунку** — `streamlit_app.py`, `app.py` чи `main.py` або єдиний інший файл `.py` у корені, що імпортує Streamlit.

`requirements.txt` має називати `streamlit`. Застосунок, зроблений для Streamlit Community Cloud, може його не містити, бо Community Cloud встановлює Streamlit сам; тоді pethost не пише Dockerfile. Коли рядок додали, такий застосунок був онлайн за 30 секунд.

## Змініть код і задеплойте знову за 3 секунди

Відредагуйте застосунок і запустіть ту саму команду. Першого разу це зайняло 42 секунди: файл копіює папку перед `pip install`, тож через один змінений рядок пакети встановлюються знову. Dockerfile ваш, тому копіюйте `requirements.txt` першим:

```
COPY requirements.txt .
RUN --mount=type=cache,target=/root/.cache/pip \
    pip install -r requirements.txt

COPY . .
```

Деплой, що змінив файл, тривав 34 секунди. Після нього зміна коду обходиться без встановлення:

```
$ pethost deploy
my-app (.pethost)
✓ Packed 5 files · uploaded · built and started in 3 s
…
  It answers 200.
https://my-app.sam.pethost.app
```

Щоб натомість деплоїти на кожен пуш, один раз підключіть репозиторій: `pethost github sam/my-app`. `pethost rollback` повертає попередню версію. ШІ-агент може зробити все це через MCP-сервер Pethost: [як агент деплоїть проєкт і доглядає за ним](https://pethost.dev/uk/blog/hosting-for-ai-coding-agents/).

## Задеплойте застосунок на Streamlit, який читає CSV

Більшість застосунків на Streamlit показують дані, часто з файлу поруч із кодом. Цей один раз читає таблицю Palmer penguins, зберігає її через `st.cache_data` і будує графік для острова, обраного у випадному списку:

```
@st.cache_data
def load_data():
    return pd.read_csv("data/penguins.csv")
```

Із `streamlit` і `pandas` у `requirements.txt` та сама команда спакувала 3 файли, 15 KB, і застосунок був онлайн за 27 секунд. CSV поїхав разом із папкою, і шлях, що працює на ноутбуці, працює й на машині. У браузері вибір острова Dream перемалював кількість, графік і таблицю.

Машина працює завжди, тож те, що зберігає `st.cache_data`, лишається теплим для наступного відвідувача, і ніхто не [чекає, поки застосунок прокинеться](https://pethost.dev/uk/blog/always-on-hosting-no-cold-starts/). Файл, який застосунок пише під час роботи, втрачається, коли деплой створює новий контейнер. Тримайте те, що має зберегтися, у базі даних: Postgres створюється в один клік, [без доплати](https://pethost.dev/uk/blog/european-hosting-postgres-flat-price/).

## Тримайте API-ключ у .env, а не в коді

API-ключу не місце ні в коді, ні в Git. Цей застосунок питає в API NASA, які астероїди пролітають повз Землю в день, обраний у полі дати. На ноутбуці `python-dotenv` читає ключ із `.env`:

```
load_dotenv()  # the .env beside this file, when you run it on your laptop
…
answer = requests.get(
    "https://api.nasa.gov/neo/rest/v1/feed",
    params={"start_date": day, "end_date": day, "api_key": os.environ["NASA_API_KEY"]},
)
```

У `.env` один рядок, `NASA_API_KEY=DEMO_KEY`, ключ NASA, щоб спробувати API (на api.nasa.gov власний ключ дають за ім’я та email). Перший деплой бере `.env` із собою:

```
$ pethost deploy
Name it [asteroids]:          it will live at https://asteroids.sam.pethost.app
✓ Packed 4 files, 863 B   (took .env from this folder)
…
✓ app listens on 8501 → https://asteroids.sam.pethost.app
  It answers 200.
```

Сторінка показала 8 астероїдів, що пролітають повз Землю 20 жовтня 2026 року, і 10 — 21-го, коли дату змінили. Відтоді `.env` проєкту живе на машині, і зміна файлу на ноутбуці лишається на ноутбуці. Наступний деплой про це каже:

```
$ pethost deploy
asteroids (.pethost)
✓ Packed 6 files · uploaded · built and started in 38 s
  · kept the project's .env in place of the version's own: after the first deploy the project's is kept
…
To send this folder's .env:  pethost env push
```

`pethost env set` змінює одну змінну й одразу деплоїть. Сама назва, `pethost env set NASA_API_KEY`, запитує значення, не показуючи його. Streamlit теж читає свої параметри зі змінних:

```
$ pethost env set STREAMLIT_BROWSER_GATHER_USAGE_STATS=false
asteroids (.pethost)
✓ /.env has STREAMLIT_BROWSER_GATHER_USAGE_STATS now. Deployed in 39 s.
```

Застосунок перезапустився без рядка про статистику використання. `pethost env push` натомість надсилає весь ваш `.env`, але спершу називає кожну змінну, яку втратив би файл проєкту, і питає.

`st.secrets` читає `.streamlit/secrets.toml`, а не середовище. Папка, задеплоєна через `pethost deploy`, бере цей файл із собою, і `st.secrets` на машині працював. У репозиторії цьому файлу не місце, тож застосунок, задеплоєний з GitHub, тримає свої ключі в `.env`.

## Задеплойте Dockerfile із туторіалу Streamlit про Docker

Якщо ви пройшли туторіал Streamlit «Деплой Streamlit за допомогою Docker», у вашій папці вже є його Dockerfile. Лишіть його: pethost деплоїть власний Dockerfile папки як є. Ось Dockerfile туторіалу, з `COPY . .` замість `git clone`, як туторіал радить для коду, що лежить поруч із Dockerfile:

```
FROM python:3.12-slim

WORKDIR /app

RUN apt-get update && apt-get install -y …

COPY . .

RUN pip3 install -r requirements.txt

EXPOSE 8501

HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health

ENTRYPOINT ["streamlit", "run", "streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]
```

```
$ pethost deploy
Name it [spiral]:                it will live at https://spiral.sam.pethost.app
✓ Packed 3 files, 2 KB
✓ Uploaded straight to your machine
✓ Built and started in 1 min 25 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env, port 8501
✓ app listens on 8501 → https://spiral.sam.pethost.app
  It answers 200.
```

Спіраль із туторіалу перемальовувала графік, коли рухалися слайдери. Його `docker run -p 8501:8501` тут ні до чого: машина сама знаходить порт і не відкриває нічого, крім HTTPS. `HEALTHCHECK` виконується, і Docker визнав контейнер справним.

## Підключіть власний домен до застосунку на Streamlit

Кожне ім’я в домені вашого акаунта працює одразу, з HTTPS. Для вашого власного домену потрібна одна команда, `pethost domain add dashboard.example.com`, яка виводить CNAME-запис, що його треба створити; сертифікат з’являється, щойно ім’я почне вказувати на машину.

## Що ви отримуєте за цю ціну

Pethost коштує 9,99 € на місяць за все, що ви хостите, на 2 vCPU, 3 GB пам’яті й 30 GB диска. Дашборд рідко буває сам: поруч працюють задача, що наповнює його даними, його база даних і ваш наступний застосунок, [без плати за проєкт](https://pethost.dev/uk/blog/unlimited-projects-flat-monthly-fee/).

- **9,99 €** на місяць за всі ваші проєкти, без оплати за використання
- **52 с** на збірку й запуск першого застосунку
- **3 с** на деплой зміни в коді

Що вже зроблено за вас: HTTPS із сертифікатами, які поновлюються самі, деплої з GitHub, щонічні бекапи, що зберігаються 14 днів, SSH у будь-який контейнер і підрахунок кожного запиту без жодного скрипту на ваших сторінках. Тарифи є в розділі [з цінами](https://pethost.dev/uk/#pricing) на головній сторінці.

**Кожен проєкт підписано.** Сім проєктів на одній машині Starter: застосунки з їхніми адресами й запитами за останню добу, бази даних із застосунками, які ними користуються.

![Перша сторінка панелі Pethost: CPU, пам’ять і диск машини та її проєкти у вигляді карток.](https://pethost.dev/shots/projects.webp)

### Pethost — найкращий вибір для

- **Тих, хто працює з даними й має застосунок на Streamlit**, яким хоче поділитися з колегами чи клієнтами за окремою адресою
- **Соло-розробників** із кількома дашбордами, ботами й пет-проєктами та одним рахунком до оплати
- **Тих, за кого деплоїть агент**: Claude Code чи Codex викладає застосунок онлайн і читає його логи
- **Стартапів на ранній стадії**, яким потрібні фіксовані щомісячні витрати, поки продукт невеликий

### Шукайте інше, якщо

- Вашому застосунку потрібні кілька регіонів або автомасштабування

## Питання

### Як задеплоїти застосунок на Streamlit без Dockerfile?

Запустіть `pethost deploy` у папці з `requirements.txt`. Вона пише Dockerfile, який запускає `streamlit run`, і деплоїть його; файл лишається у вашій папці, і ви можете його змінювати.

### Чому задеплоєний застосунок на Streamlit ніяк не завантажується?

Сторінка звертається до застосунку через WebSocket на `/_stcore/stream`, і коли це не вдається, вона вічно показує скелет завантаження. У Pethost WebSocket проходить через проксі без жодних налаштувань.

### Який порт використовує застосунок на Streamlit у Pethost?

Власний порт Streamlit, 8501. Машина знаходить порт, на якому слухає застосунок, і спрямовує туди адресу з HTTPS: вам нічого не треба відкривати.

### Де зберігати API-ключі для задеплоєного застосунку на Streamlit?

У `.env` проєкту, який перший деплой бере з вашої папки; `pethost env set NAME` змінює ключ, не показуючи його, а застосунок читає `os.environ`. `st.secrets` працює для папки, задеплоєної разом із її `secrets.toml`.

### Скільки коштує хостинг застосунку на Streamlit у Pethost?

9,99 € на місяць за Starter, з 2 vCPU, 3 GB і 30 GB і без плати за проєкт: там працюють і ваші інші застосунки та бази даних. Безплатного тарифу немає. Ціни вказано без ПДВ.

На екранах — деплої на нашій тестовій машині з pethost 0.2.4, Streamlit 1.66.1 і Python 3.14.9 (3.12.15 у Dockerfile туторіалу). `my-app` задеплоїли першим; застосунки з CSV і API-ключем застали образ Python 3.14 уже на машині. Акаунт на них — приклад, `sam`.

1. [Streamlit: встановлення Streamlit через командний рядок](https://docs.streamlit.io/get-started/installation/command-line)
2. [Streamlit: основні концепції](https://docs.streamlit.io/get-started/fundamentals/main-concepts)
3. [Streamlit: деплой Streamlit за допомогою Docker](https://docs.streamlit.io/deploy/tutorials/docker)
4. [Streamlit: застосунок не завантажується, коли запущений віддалено](https://docs.streamlit.io/knowledge-base/deploy/remote-start)
5. [Streamlit: керування секретами](https://docs.streamlit.io/develop/concepts/connections/secrets-management)
6. [Streamlit: залежності застосунку для Community Cloud](https://docs.streamlit.io/deploy/streamlit-community-cloud/deploy-your-app/app-dependencies)
7. [NASA: відкриті API](https://api.nasa.gov/)
8. [Palmer penguins: дані](https://allisonhorst.github.io/palmerpenguins/)
9. [pethost, командний рядок Pethost](https://pethost.dev/docs/cli/)

## Запустіть свої проєкти вже сьогодні

Деплойте застосунки, ботів і бази даних з агента, з GitHub або в браузері, скільки поміститься, за однією фіксованою ціною. Нічого за лічильником, нічого зверху.

[Хостити всі проєкти за 9,99 €/міс](https://console.pethost.dev/)

## Читати далі

- 24 жовтня 2026 р. [Як задеплоїти застосунок на PHP у 2026: Laravel, Symfony чи прості PHP-сторінки однією командою](https://pethost.dev/uk/blog/deploy-php-app/) Задеплойте застосунок на PHP однією командою: pethost deploy пише Dockerfile для Laravel, Symfony чи простих сторінок і віддає через HTTPS за 9,99 € на місяць.
- 10 жовтня 2026 р. [Як задеплоїти застосунок на Gin у 2026: одна команда, HTTPS і Dockerfile, що лишається у вас](https://pethost.dev/uk/blog/deploy-gin-app/) Задеплойте застосунок на Go Gin однією командою: pethost deploy пише Dockerfile, збирає програму й віддає її через HTTPS за 9,99 € на місяць.
- 10 жовтня 2026 р. [Як задеплоїти застосунок на Go Fiber у 2026: одна команда, HTTPS і Dockerfile, що лишається у вас](https://pethost.dev/uk/blog/deploy-fiber-app/) Задеплойте застосунок на Go Fiber однією командою: pethost deploy пише Dockerfile, збирає його за 45 секунд і віддає через HTTPS за 9,99 € на місяць.
- 10 жовтня 2026 р. [Як задеплоїти застосунок на Nuxt у 2026: одна команда, Node-сервер і HTTPS](https://pethost.dev/uk/blog/deploy-nuxt-app/) Задеплойте застосунок на Nuxt 4 однією командою: pethost deploy пише Dockerfile, запускає nuxt build і Node-сервер через HTTPS за 9,99 € на місяць.

[Усі статті](https://pethost.dev/uk/blog/) · [Про Pethost](https://pethost.dev/about/) · [Тарифи](https://pethost.dev/uk/#pricing)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Шаблони](https://pethost.dev/uk/templates/)
- [Про нас](https://pethost.dev/about/)
- [Документація](https://pethost.dev/docs/)
- [Блог](https://pethost.dev/uk/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Плагін](https://github.com/pethost-dev/plugin)
- [Умови](https://pethost.dev/terms/)
- [Конфіденційність](https://pethost.dev/privacy/)
- [Повернення коштів](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Бази даних

- [Postgres](https://pethost.dev/uk/postgres/)

Порівняння

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/uk/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/uk/blog/coolify-cloud-vs-dokploy-cloud/)
- [Ціни Railway vs Render vs Fly.io](https://pethost.dev/uk/blog/railway-vs-render-vs-fly-io-pricing/)
- [Керований хостинг Docker Compose](https://pethost.dev/uk/blog/managed-docker-compose-hosting/)

Альтернативи

- [Альтернативи Railway](https://pethost.dev/uk/blog/railway-alternatives/)
- [Альтернативи Heroku](https://pethost.dev/uk/blog/heroku-alternatives/)
- [Альтернативи Dokploy](https://pethost.dev/uk/blog/dokploy-alternatives/)
- [Альтернативи Coolify](https://pethost.dev/uk/blog/coolify-alternatives/)
- [Альтернативи Render](https://pethost.dev/uk/blog/render-alternatives/)
- [Альтернативи Sliplane](https://pethost.dev/uk/blog/sliplane-alternatives/)
