NetrunВсе статьи блога

Словарь

Слова, которые встречаются при публикации сайта или бота, — простым языком

48 терминов ·

.env

.env — это текстовый файл со строками вида ИМЯ=значение, из которого программа при запуске берёт настройки и секреты.

Обычно его читает библиотека вроде python-dotenv или dotenv для Node.js, а сам файл добавляют в .gitignore, чтобы токены не попали в публичный репозиторий. Частая ошибка — забыть файл при переносе на сервер, и тогда программа падает с пустым токеном. В Netrun значения из .env можно импортировать во вкладку «Секреты», где они хранятся зашифрованными.

Ещё называют: env-файл, файл .env, dotenv

Связано: Переменная окружения, Секрет, Токен бота · Подробнее: Как задать переменные окружения без файла .env

0.0.0.0

0.0.0.0 — это адрес, который говорит программе принимать подключения со всех сетевых интерфейсов компьютера, а не только изнутри него самого.

На своём компьютере разница незаметна, но на сервере приложение, запущенное на 127.0.0.1, снаружи недоступно, и вместо сайта человек видит ошибку. Поэтому при публикации адрес меняют на 0.0.0.0: например, `uvicorn main:app --host 0.0.0.0` или `app.listen(port, "0.0.0.0")`. Если Netrun видит, что приложение слушает только localhost, он подсказывает поменять адрес на 0.0.0.0.

Ещё называют: все интерфейсы, хост 0.0.0.0

Связано: localhost, Порт, 502 Bad Gateway · Подробнее: Сайт не открывается после публикации: localhost, 0.0.0.0 и порт

502 Bad Gateway

502 Bad Gateway — это ошибка, которую показывает промежуточный сервер, когда не может получить нормальный ответ от самого приложения.

Запросы посетителей обычно сначала принимает прокси, и 502 означает, что за ним приложение не запустилось, упало или слушает не тот порт либо адрес. Первым делом откройте логи: там почти всегда видна настоящая причина — ошибка при старте, нехватка памяти или запуск на localhost. Ошибка лечится в приложении, а не в браузере, поэтому обновление страницы без исправлений не помогает.

Ещё называют: ошибка 502, плохой шлюз

Связано: Порт, 0.0.0.0, Логи, OOM (нехватка памяти, код 137) · Подробнее: 502 Bad Gateway после публикации сайта: что значит и как исправить

База данных

База данных — это программа или файл, где приложение хранит записи (пользователей, заказы, сообщения) так, чтобы их можно было быстро найти и изменить.

Для небольшого бота или сайта часто хватает SQLite — это один файл рядом с кодом, а для нескольких серверов или большой нагрузки берут PostgreSQL или MySQL. Главная ловушка новичка — база, которая при каждом обновлении кода оказывается пустой, потому что лежала там, где файлы не сохраняются. Готовой базы данных как услуги в Netrun нет: SQLite держат в папке /data, а PostgreSQL поднимают сервисом в docker-compose или подключают внешнюю.

Ещё называют: БД, база

Связано: SQLite, PostgreSQL, Постоянное хранилище · Подробнее: Как выложить проект с базой данных

Бэкенд

Бэкенд — это часть приложения, которая работает на сервере: принимает запросы, проверяет данные, обращается к базе и отдаёт ответ.

Пользователь бэкенд не видит: он общается с ним через фронтенд или, как в случае бота, через мессенджер. Бэкенд пишут на Python, Node.js, Go, PHP и других языках, и ему нужен компьютер, который работает постоянно. Если фронтенд и бэкенд живут на разных адресах, браузер может заблокировать запросы между ними — это ошибка CORS.

Ещё называют: бекенд, серверная часть, back-end

Связано: Фронтенд, API, CORS, Сервер · Подробнее: Ошибка CORS после публикации: фронтенд не видит бэкенд

Вебхук

Вебхук — это способ, при котором внешний сервис сам отправляет запрос на адрес вашего приложения, как только что-то произошло.

Так работают оплаты, GitHub и Telegram-боты в режиме webhook: вместо того чтобы постоянно спрашивать «есть новое?», приложение ждёт входящего запроса. Для этого нужен публичный адрес с HTTPS — с localhost вебхук не придёт. Если адрес меняется или приложение не отвечает, сервис обычно повторяет попытки, а потом перестаёт присылать события.

Ещё называют: webhook, веб-хук

Связано: Polling (опрос), HTTPS и SSL-сертификат, API · Подробнее: Как запустить Telegram-бота на вебхуке

Деплой

Деплой — это перенос программы с вашего компьютера туда, где она работает для других людей постоянно и открывается по ссылке.

В деплой входят копирование кода на сервер, установка зависимостей, сборка, запуск и выдача адреса с HTTPS — вручную это несколько часов настройки. Ошибки чаще всего всплывают именно здесь: забытый файл зависимостей, неверный порт, токен, оставшийся только на вашем компьютере. В Netrun деплой называется публикацией: код загружается архивом, папкой, из GitHub или из редактора с ИИ, остальное платформа делает сама.

Ещё называют: публикация, развёртывание, выкладка, задеплоить

Связано: Хостинг, Сборка, Сервер, Логи · Подробнее: Что такое деплой простыми словами и чем он отличается от публикации

Домен

Домен — это человекочитаемый адрес сайта вроде example.com, который покупают у регистратора и привязывают к серверу.

Домен оплачивают на срок, чаще всего на год, и забытое продление может оставить сайт без адреса. Сам по себе домен ничего не показывает: чтобы он открывал ваш сайт, в настройках DNS у регистратора добавляют запись, указывающую на хостинг. На тарифе Pro в Netrun к проекту можно привязать свои домены, и у каждого будет HTTPS.

Ещё называют: доменное имя, адрес сайта

Связано: DNS, Хостинг, HTTPS и SSL-сертификат · Подробнее: Как подключить свой домен к сайту

Зависимости

Зависимости — это сторонние библиотеки, без которых ваш код не запустится, и их список хранят в файле вроде requirements.txt или package.json.

На вашем компьютере библиотеки уже установлены, а на сервере их ставят заново по списку, поэтому забытая строка превращается в ModuleNotFoundError или Cannot find module. Список для Python получают командой `pip freeze > requirements.txt` и лучше чистят от лишнего, оставляя только то, что импортирует код. Фиксируйте версии, иначе через полгода установится новая версия библиотеки и код может сломаться.

Ещё называют: requirements.txt, библиотеки, пакеты, модули

Связано: package.json, Сборка, Рантайм · Подробнее: Ошибка при установке requirements.txt: почему падает сборка

Засыпание сайта

Засыпание сайта — это режим, при котором хостинг выключает приложение без посетителей и снова запускает его при первом заходе, отчего первое открытие идёт дольше обычного.

Так бесплатные тарифы экономят ресурсы: пока никто не смотрит, приложение не занимает память. Для портфолио или учебного проекта это незаметно, а вот для того, что должно отвечать мгновенно и круглосуточно, сон не подходит. В Netrun сайт на бесплатном тарифе засыпает без посетителей и сам просыпается при открытии ссылки за несколько секунд, а на Pro не засыпает вовсе.

Ещё называют: холодный старт, сон, cold start, спящий режим

Связано: Хостинг, Serverless, Uptime · Подробнее: Бесплатный хостинг для сайта: куда выложить без VPS

Контейнер

Контейнер — это изолированная «коробка», в которой программа запускается вместе со своими библиотеками и не мешает другим программам на том же сервере.

Контейнер создают из образа, и всё, что программа записала внутрь, исчезает, когда контейнер пересоздают при обновлении. Поэтому базы и загрузки пользователей хранят в постоянном хранилище, подключённом к контейнеру. Сами контейнеры обычно запускает Docker, а на платформах хостинга это происходит без вашего участия.

Ещё называют: docker-контейнер

Связано: Docker, Образ, Постоянное хранилище

Логи

Логи — это текстовая запись того, что программа делала и какие ошибки выдала во время работы.

Всё, что программа выводит через print или console.log, и все сообщения об ошибках попадают в логи — это первое место, куда стоит смотреть, если бот замолчал или сайт не открывается. Ищите последние строки со словами Error, Traceback или Exception: там обычно названы файл и причина. В Netrun логи видны в кабинете проекта в реальном времени.

Ещё называют: журнал, вывод программы, лог

Связано: 502 Bad Gateway, OOM (нехватка памяти, код 137), Uptime · Подробнее: Telegram-бот перестал отвечать: почему это происходит и что делать

Образ

Образ — это готовый снимок программы со всеми её файлами и библиотеками, из которого запускают контейнеры.

Образ собирают по инструкции из Dockerfile, а потом из одного образа можно запустить сколько угодно одинаковых контейнеров. Образ не меняется во время работы: чтобы обновить программу, собирают новый. Готовые образы баз данных и популярных сервисов берут из Docker Hub.

Ещё называют: docker-образ, image

Связано: Dockerfile, Контейнер, Docker

Переменная окружения

Переменная окружения — это именованная настройка, которую программа получает от системы при запуске, а не хранит внутри своего кода.

Так передают токены, пароли от баз и номер порта: в Python их читают через `os.getenv("BOT_TOKEN")`, в Node.js — через `process.env.BOT_TOKEN`. Это позволяет держать секреты вне кода и менять их, не трогая файлы. Если переменная не задана, программа получает пустое значение и часто падает при старте, поэтому проверяйте имя буква в букву.

Ещё называют: env, переменные среды, ENV

Связано: .env, Секрет, Порт · Подробнее: Как задать переменные окружения без файла .env

Порт

Порт — это номер, по которому на одном компьютере различают программы, ждущие подключений: например, 80 и 443 для сайтов или 8080 для приложения.

Локально приложение часто запускают на 3000, 5000 или 8000, но на хостинге номер порта обычно задаёт платформа, и если приложение слушает другой, снаружи будет ошибка 502. Надёжнее всего брать порт из переменной окружения PORT и подставлять свой номер, только если она пустая. Netrun передаёт приложению номер порта как раз в переменной PORT.

Ещё называют: номер порта, PORT

Связано: 0.0.0.0, localhost, Переменная окружения, 502 Bad Gateway · Подробнее: Сайт не открывается после публикации: localhost, 0.0.0.0 и порт

Постоянное хранилище

Постоянное хранилище — это место на диске, где файлы приложения сохраняются между перезапусками и обновлениями кода, а не стираются вместе с контейнером.

Без него SQLite-база, загруженные картинки и любые файлы, которые программа создаёт сама, пропадают при следующей публикации — это одна из самых частых жалоб «всё обнулилось». Решение — писать такие файлы только в подключённую папку и указывать путь к ней в настройках. В Netrun это папка /data: всё, что приложение пишет туда, переживает обновления, а файлы можно посмотреть и скачать на вкладке «Данные».

Ещё называют: том, volume, постоянная папка, /data

Связано: SQLite, База данных, Контейнер · Подробнее: Куда положить SQLite при публикации, чтобы база не терялась

Рантайм

Рантайм — это среда, которая исполняет ваш код: интерпретатор Python, движок Node.js, виртуальная машина Java и тому подобное, вместе с конкретной версией.

Код, написанный под одну версию, может не запуститься на другой: например, библиотека требует Python 3.10, а на сервере стоит 3.8. Нужную версию обычно указывают в файле проекта — `engines` в package.json, `.python-version` или `runtime.txt`. Netrun определяет язык проекта автоматически по файлам кода.

Ещё называют: среда выполнения, версия языка

Связано: Зависимости, Сборка, Образ

Репозиторий

Репозиторий — это папка проекта вместе со всей историей её изменений, которую ведёт Git и обычно хранит сервис вроде GitHub.

Репозиторий бывает публичным — его видят все — и приватным, доступным только вам и тем, кого вы пригласили. В публичный репозиторий нельзя класть токены и пароли: их находят автоматические сканеры. Netrun умеет брать код прямо из репозитория GitHub, в том числе из приватного.

Ещё называют: репо, репа, repo

Связано: Git и GitHub, Секрет, .env

Сборка

Сборка — это шаг, на котором исходный код превращают в готовую к запуску форму: ставят библиотеки, компилируют и упаковывают файлы.

У сайта на React или Vue сборка выполняется командой `npm run build` и создаёт папку dist или build, у Go и Rust она даёт один исполняемый файл. Если сборка падает, приложение даже не запускается, поэтому первые строки с ошибкой в логе сборки — главная подсказка. Частая причина — код, который собирается у вас, но использует библиотеку, не записанную в зависимости.

Ещё называют: билд, build, npm run build

Связано: Зависимости, package.json, Статический сайт, Деплой

Секрет

Секрет — это любое значение, дающее доступ к чему-то от вашего имени: токен бота, ключ API, пароль от базы данных.

Секреты не пишут прямо в код и не кладут в публичный репозиторий, а передают программе через переменные окружения. Если секрет всё-таки утёк, его нужно сразу перевыпустить у сервиса, который его выдал, — старое значение перестанет работать. В Netrun секреты задаются на вкладке «Секреты», хранятся зашифрованными и попадают в приложение как переменные окружения.

Ещё называют: ключ, API-ключ, пароль, токен

Связано: Переменная окружения, .env, Токен бота · Подробнее: Как задать переменные окружения без файла .env

Сервер

Сервер — это компьютер, который постоянно включён, подключён к интернету и выполняет программы для других людей.

Ваш ноутбук тоже может быть сервером, но он засыпает, меняет сеть и не доступен снаружи, поэтому сайты и боты держат на арендованных машинах в дата-центрах. Сервер можно арендовать целиком или виртуальной частью (VPS) и настраивать самому, а можно отдать эту работу хостингу. Главное отличие для новичка — кто отвечает за обновления, безопасность и перезапуск после сбоя.

Ещё называют: удалённый компьютер, машина

Связано: VPS, Хостинг, PaaS · Подробнее: Хостинг, домен и сервер: в чём разница и что нужно вашему проекту

Статический сайт

Статический сайт — это сайт из готовых файлов HTML, CSS, JavaScript и картинок, которые сервер отдаёт как есть, без программы, формирующей страницы на лету.

Так устроены лендинги, портфолио и собранные React- или Vue-приложения без своего сервера: после сборки остаётся папка с файлами. Такой сайт быстрый и почти не ломается, но сам хранить заявки или пароли не умеет — для этого нужен бэкенд или внешний сервис. Если в папке есть index.html, обычно больше ничего настраивать не нужно.

Ещё называют: статика, HTML-сайт

Связано: SPA, Фронтенд, Сборка · Подробнее: Как выложить статический сайт (HTML, CSS, JS) в интернет

Токен бота

Токен бота — это длинная секретная строка, по которой мессенджер узнаёт, что запросы приходят именно от вашего бота.

В Telegram его выдаёт BotFather, и выглядит он как число, двоеточие и набор букв и цифр. Неверный или перевыпущенный токен даёт ошибку 401 Unauthorized, а токен, попавший в публичный код, позволяет чужому человеку управлять ботом. Храните его в переменной окружения и перевыпускайте при малейшем подозрении на утечку.

Ещё называют: токен Telegram, BOT_TOKEN, ключ бота

Связано: BotFather, Секрет, Переменная окружения · Подробнее: Ошибка 401 Unauthorized у Telegram-бота: что не так с токеном

Фронтенд

Фронтенд — это часть приложения, которую человек видит и трогает в браузере: страницы, кнопки, формы.

Фронтенд пишут на HTML, CSS и JavaScript, часто с React, Vue или Svelte, и после сборки он становится набором файлов. За данными он обращается к бэкенду через API. Если фронтенд и бэкенд опубликованы по разным адресам, на бэкенде нужно разрешить запросы с адреса фронтенда, иначе браузер выдаст ошибку CORS.

Ещё называют: фронт, клиентская часть, front-end

Связано: Бэкенд, SPA, Статический сайт, CORS · Подробнее: Как выложить React-приложение в интернет

Хостинг

Хостинг — это услуга, при которой ваш сайт, бот или приложение работает на чужом сервере и доступен в интернете круглосуточно.

Хостинг бывает очень разным: виртуальный для PHP-сайтов, VPS, где всё настраиваете вы, и платформы для приложений, куда достаточно загрузить код. Выбирая, смотрите, какие языки поддерживаются, засыпает ли проект без посетителей и сохраняются ли файлы между обновлениями. Хостинг, домен и сервер — три разные вещи, и покупать их можно у разных компаний.

Ещё называют: хостер, хостинг-провайдер

Связано: Сервер, Домен, PaaS, VPS · Подробнее: Хостинг, домен и сервер: в чём разница и что нужно вашему проекту

API

API — это набор правил, по которым одна программа может обращаться к другой: какие запросы отправлять и какие ответы ждать.

Бот обращается к API Telegram, сайт — к API своего бэкенда, приложение с нейросетью — к API модели. Обычно доступ к чужому API даётся по ключу, который нужно хранить как секрет, а у многих API есть лимит запросов, за превышение которого приходит ошибка 429. Адрес конкретной функции API часто называют эндпоинтом.

Ещё называют: АПИ, программный интерфейс, эндпоинт

Связано: Бэкенд, Вебхук, Секрет

BotFather

BotFather — это официальный бот Telegram, через который создают новых ботов, получают их токены и меняют их имя, описание и команды.

Чтобы создать бота, напишите @BotFather команду /newbot, придумайте имя и адрес, оканчивающийся на bot, и получите токен. Там же токен можно перевыпустить, если он утёк, — после этого старый перестанет работать, и его нужно заменить везде, где бот запущен. Проверяйте, что пишете настоящему @BotFather с синей галочкой, а не подделке.

Ещё называют: @BotFather, Ботфазер

Связано: Токен бота, Polling (опрос), Вебхук · Подробнее: Бесплатный хостинг для Telegram-бота на Python (aiogram)

CORS

CORS — это правило браузера, которое запрещает странице с одного адреса читать ответы сервера с другого адреса, пока тот явно это не разрешит.

Ошибка появляется, когда фронтенд и бэкенд живут на разных адресах, и выглядит в консоли браузера как сообщение про Access-Control-Allow-Origin. Чинится она на бэкенде: в нём разрешают адрес фронтенда, например через CORSMiddleware в FastAPI или пакет cors в Express. Отключать проверку в браузере бессмысленно — у ваших посетителей она всё равно включена.

Ещё называют: ошибка CORS, Access-Control-Allow-Origin, кросс-доменные запросы

Связано: Фронтенд, Бэкенд, API · Подробнее: Ошибка CORS после публикации: фронтенд не видит бэкенд

Cron

Cron — это планировщик, который запускает команды по расписанию, например каждый час или каждый день в девять утра.

Расписание записывают пятью полями — минута, час, день, месяц, день недели: строка `0 9 * * *` значит «каждый день в 9:00». На многих хостингах системного cron нет, и расписание делают внутри самого приложения циклом или библиотекой вроде APScheduler или node-cron. Встроенного планировщика в Netrun нет, поэтому там расписание живёт в коде, а приложение работает постоянно.

Ещё называют: крон, планировщик, задача по расписанию

Связано: Uptime, Логи · Подробнее: Как запускать скрипт по расписанию без cron на сервере

DNS

DNS — это система, которая переводит имя сайта вроде example.com в адрес сервера, к которому браузер должен подключиться.

Записи DNS настраивают у регистратора домена: запись A указывает на IP-адрес, CNAME — на другое имя. После изменения записей новый адрес расходится по интернету не сразу, а за время от минут до нескольких часов, поэтому сайт может открываться по-разному у разных людей. Чаще всего проблемы возникают из-за опечатки в записи или старой записи, которую забыли удалить.

Ещё называют: ДНС, DNS-записи, A-запись, CNAME

Связано: Домен, HTTPS и SSL-сертификат, Хостинг · Подробнее: Как подключить свой домен к сайту

Docker

Docker — это программа, которая упаковывает приложение вместе со всем нужным ему окружением в образ и запускает его в изолированных контейнерах.

Главная польза Docker — «у меня работает» превращается в «работает везде»: на сервере запускается тот же образ, что и у вас. Описание сборки пишут в Dockerfile, а несколько связанных контейнеров описывают в docker-compose. Многие платформы, включая Netrun, сами собирают и запускают контейнеры, поэтому знать Docker для публикации необязательно, но свой Dockerfile можно принести.

Ещё называют: докер

Связано: Контейнер, Образ, Dockerfile, Docker Compose

Docker Compose

Docker Compose — это способ описать в одном файле несколько связанных контейнеров, например сайт, базу данных и очередь, и запускать их вместе одной командой.

Файл называется docker-compose.yml или compose.yaml, и каждый сервис в нём получает свой образ, переменные и тома для данных. Сервисы обращаются друг к другу по имени: из приложения база доступна по адресу `db`, а не localhost. В Netrun проект с docker-compose публикуется как есть, а память и процессор тарифа делятся между его сервисами.

Ещё называют: docker-compose, docker-compose.yml, compose.yaml, композ

Связано: Docker, Контейнер, PostgreSQL, Постоянное хранилище · Подробнее: Как выложить проект с базой данных

Dockerfile

Dockerfile — это текстовый файл с пошаговой инструкцией, как собрать образ приложения: какую систему взять, что установить и какую команду запустить.

Основные строки — FROM (базовый образ), COPY (скопировать код), RUN (выполнить команду при сборке), EXPOSE (порт) и CMD (команда запуска). Свой Dockerfile нужен, когда автоматической сборки не хватает: например, для браузера под Selenium или Playwright или системной библиотеки. В Netrun порт приложения с собственным Dockerfile берётся из первой строки EXPOSE.

Ещё называют: докерфайл

Связано: Docker, Образ, Порт · Подробнее: Как запустить Selenium на сервере без своего компьютера

Git и GitHub

Git — это программа, которая запоминает историю изменений в коде, а GitHub — это сайт, где такие истории хранят в интернете и делятся ими.

Основной цикл — сохранить изменения командой `git commit` и отправить их на GitHub командой `git push`. Git помогает откатиться к рабочей версии, если что-то сломалось, а GitHub — подключить проект к хостингу без ручной загрузки файлов. Netrun берёт код из GitHub, но по push сам не обновляется: новую версию публикуют из кабинета.

Ещё называют: гит, гитхаб, Git, GitHub

Связано: Репозиторий, Деплой, Секрет

HTTPS и SSL-сертификат

HTTPS — это защищённая версия протокола сайтов, при которой данные между браузером и сервером шифруются, а SSL-сертификат подтверждает, что сайт действительно тот, за кого себя выдаёт.

Без HTTPS браузеры помечают сайт как небезопасный, а многие сервисы, например вебхуки Telegram, вообще не работают с обычным HTTP. Сертификат выдаётся на конкретный домен и на ограниченный срок, поэтому его нужно вовремя продлевать — чаще всего это делают автоматически, например через Let’s Encrypt. Netrun выпускает и продлевает сертификат сам, и ссылка на проект сразу открывается по HTTPS.

Ещё называют: HTTPS, SSL, TLS, сертификат, замочек в браузере

Связано: Домен, DNS, Вебхук

localhost

localhost — это адрес, который всегда означает «этот же компьютер», поэтому открыть его может только тот, кто за этим компьютером сидит.

Ссылка вида http://localhost:3000 работает только у вас и не годится, чтобы показать проект другу. На сервере приложение, слушающее localhost или 127.0.0.1, недоступно снаружи даже при правильном порте, и посетители видят ошибку. Чтобы сайт открывался из интернета, его публикуют на хостинге и запускают на адресе 0.0.0.0.

Ещё называют: 127.0.0.1, локалхост, локальный адрес

Связано: 0.0.0.0, Порт, Хостинг · Подробнее: Сайт не открывается после публикации: localhost, 0.0.0.0 и порт

MCP

MCP (Model Context Protocol) — это открытый стандарт, по которому ИИ-ассистенты подключаются к внешним сервисам и выполняют в них действия от вашего имени.

Подключив MCP-сервер в редакторе вроде Cursor или Claude Code, вы просите ассистента обычными словами, и он сам вызывает нужные функции сервиса. Доступ к сервису обычно даётся ключом, поэтому подключайте только серверы, которым доверяете. Через MCP-сервер Netrun ассистент может опубликовать проект прямо из редактора.

Ещё называют: Model Context Protocol, MCP-сервер, протокол контекста модели

Связано: API, Деплой, Секрет · Подробнее: Куда выложить проект, написанный в Cursor

OOM (нехватка памяти, код 137)

OOM (out of memory) — это ситуация, когда программа требует больше оперативной памяти, чем ей выделено, и система принудительно её останавливает, часто с кодом выхода 137.

В логах это выглядит как короткое Killed или OOMKilled без привычного текста ошибки, а приложение перезапускается снова и снова. Типичные причины — загрузка большой нейросети или файла целиком в память, утечка в цикле и сборка тяжёлого фронтенда. Помогают обработка данных частями, более лёгкая модель или тариф с большим объёмом памяти.

Ещё называют: Out of memory, OOMKilled, Killed, exit code 137, код выхода 137

Связано: Логи, 502 Bad Gateway, Контейнер · Подробнее: Приложение падает с Killed или exit code 137: не хватает памяти

PaaS

PaaS (платформа как услуга) — это хостинг, куда вы загружаете код, а сервер, сборку, запуск и HTTPS платформа берёт на себя.

Известные примеры — Heroku, Render и Railway; в отличие от VPS, здесь не нужно ставить систему, настраивать прокси и следить за обновлениями. Взамен вы принимаете правила платформы: приложение слушает выданный порт, файлы хранит в отведённом месте, а доступа к серверу напрямую обычно нет. Netrun тоже относится к этому классу хостинга.

Ещё называют: хостинг приложений, платформа как услуга, Platform as a Service

Связано: VPS, Serverless, Хостинг · Подробнее: Альтернатива Heroku и Railway: где запускать проекты из России

package.json

package.json — это файл проекта на JavaScript или TypeScript, где записаны его название, библиотеки-зависимости и команды для запуска и сборки.

Раздел `dependencies` перечисляет нужные библиотеки, а `scripts` — команды: `start` для запуска и `build` для сборки. Хостинг смотрит именно сюда, поэтому если команды start нет, ему непонятно, что запускать. Рядом лежит package-lock.json с точными версиями — его стоит загружать вместе с кодом, а папку node_modules не нужно.

Ещё называют: пакет.json, package-lock.json

Связано: Зависимости, Сборка, Рантайм · Подробнее: Как выложить Node.js приложение в интернет

Polling (опрос)

Polling — это способ, при котором программа сама раз за разом спрашивает сервер, не появилось ли новых данных, например новых сообщений для бота.

Большинство Telegram-ботов из примеров работают именно так через метод getUpdates: публичный адрес и HTTPS не нужны, поэтому бот запускается где угодно. Но одновременно может работать только одна копия бота — вторая получит ошибку 409 Conflict с текстом terminated by other getUpdates request. Альтернатива — вебхук, где Telegram сам присылает сообщения на адрес бота.

Ещё называют: поллинг, long polling, getUpdates, опрос

Связано: Вебхук, Токен бота, BotFather · Подробнее: Polling или webhook для Telegram-бота: что выбрать

PostgreSQL

PostgreSQL — это популярная бесплатная база данных, которая работает отдельной программой-сервером и выдерживает много одновременных пользователей.

К PostgreSQL подключаются по адресу, логину и паролю, обычно одной строкой вида `postgresql://…` в переменной окружения DATABASE_URL. Его выбирают, когда SQLite становится мало: много записей одновременно, несколько копий приложения или доступ к базе из разных сервисов. Данные базы должны лежать в постоянном хранилище, иначе они пропадут при пересоздании контейнера.

Ещё называют: Postgres, постгрес, PG

Связано: База данных, SQLite, Docker Compose, Постоянное хранилище · Подробнее: SQLite или PostgreSQL для бота или небольшого сайта

Serverless

Serverless — это модель, при которой ваш код запускается небольшими функциями только в ответ на запрос, а о серверах между запросами заботится провайдер.

Так работают, например, AWS Lambda, Yandex Cloud Functions и функции Vercel: платите за вызовы, а в простое ничего не работает. Из-за этого функция не может держать постоянное соединение или крутиться в цикле, поэтому Telegram-бот на polling, фоновые задачи и WebSocket там не живут без переделки. Первый вызов после паузы бывает медленнее — это холодный старт.

Ещё называют: бессерверные функции, облачные функции, FaaS

Связано: PaaS, Засыпание сайта, Polling (опрос) · Подробнее: Альтернатива Yandex Cloud Serverless для небольшого проекта

SPA

SPA (одностраничное приложение) — это сайт, который загружается один раз, а дальше переключает экраны средствами JavaScript в браузере, не запрашивая новые страницы у сервера.

Так обычно устроены приложения на React, Vue и Svelte, собранные в папку с index.html. Типичная ошибка — при обновлении страницы на адресе вроде /about сервер отвечает 404, потому что такого файла нет; лечится настройкой, при которой на любой путь отдаётся index.html. Поисковикам SPA видно хуже, поэтому для блога или лендинга иногда выбирают сборку в готовые HTML-страницы.

Ещё называют: одностраничное приложение, Single Page Application

Связано: Статический сайт, Фронтенд, Сборка · Подробнее: Как выложить React-приложение в интернет

SQLite

SQLite — это база данных, которая целиком хранится в одном файле рядом с программой и не требует отдельного сервера.

Её любят за простоту: Python умеет работать с ней без установки библиотек, а для бота или небольшого сайта её обычно хватает. Главная проблема при публикации — файл базы, лежащий в папке с кодом, затирается при каждом обновлении, и данные пропадают. В Netrun файл SQLite кладут в папку /data, которая переживает обновления кода.

Ещё называют: скьюлайт, файл .db, файл .sqlite3

Связано: База данных, PostgreSQL, Постоянное хранилище · Подробнее: Куда положить SQLite при публикации, чтобы база не терялась

Uptime

Uptime — это доля времени, в течение которой сайт или бот работает и отвечает, обычно в процентах за месяц или сутки.

Разница между процентами больше, чем кажется: 99,9% за месяц — это около 43 минут простоя, а 99% — уже больше семи часов. Uptime зависит не только от хостинга, но и от самого приложения: необработанная ошибка роняет бота так же надёжно, как сбой сервера. Если проект падает, Netrun перезапускает его сам, а о долгом простое присылает уведомление.

Ещё называют: аптайм, время безотказной работы, доступность

Связано: Логи, Засыпание сайта, Хостинг · Подробнее: Как сделать, чтобы Telegram-бот работал круглосуточно

VPS

VPS (виртуальный частный сервер) — это арендованная часть физического сервера, которая ведёт себя как отдельный компьютер с вашей операционной системой и полным доступом к ней.

На VPS можно поставить что угодно, но всё делаете вы сами: заходите по SSH, устанавливаете язык и базу, настраиваете автозапуск, прокси, HTTPS и обновления безопасности. Частая ловушка новичка — бот, запущенный в окне терминала, который умирает, как только окно закрывается. VPS хорош, когда нужен полный контроль; если нужен просто работающий проект, проще платформа для приложений.

Ещё называют: виртуальный сервер, VDS, Virtual Private Server

Связано: Сервер, PaaS, Хостинг · Подробнее: Netrun, VPS или Heroku: что выбрать для запуска проекта

WebSocket

WebSocket — это постоянное двустороннее соединение между браузером и сервером, по которому сообщения идут в обе стороны без новых запросов.

На нём строят чаты, онлайн-игры, живые графики и уведомления: сервер может написать браузеру в любой момент. Адрес такого соединения начинается с ws:// или, при HTTPS, с wss://, и на опубликованном сайте нужен именно wss://, иначе браузер его заблокирует. Соединение рвётся при перезапуске сервера, поэтому клиент должен уметь переподключаться.

Ещё называют: вебсокет, сокет, ws://, wss://

Связано: HTTPS и SSL-сертификат, Бэкенд, Serverless · Подробнее: Хостинг для WebSocket: чат, онлайн-игра или живые обновления