Словарь
Слова, которые встречаются при публикации сайта или бота, — простым языком
48 терминов ·
- .env
.env — это текстовый файл со строками вида ИМЯ=значение, из которого программа при запуске берёт настройки и секреты.
Обычно его читает библиотека вроде python-dotenv или dotenv для Node.js, а сам файл добавляют в .gitignore, чтобы токены не попали в публичный репозиторий. Частая ошибка — забыть файл при переносе на сервер, и тогда программа падает с пустым токеном. В Netrun значения из .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.
- 502 Bad Gateway
502 Bad Gateway — это ошибка, которую показывает промежуточный сервер, когда не может получить нормальный ответ от самого приложения.
Запросы посетителей обычно сначала принимает прокси, и 502 означает, что за ним приложение не запустилось, упало или слушает не тот порт либо адрес. Первым делом откройте логи: там почти всегда видна настоящая причина — ошибка при старте, нехватка памяти или запуск на localhost. Ошибка лечится в приложении, а не в браузере, поэтому обновление страницы без исправлений не помогает.
- База данных
База данных — это программа или файл, где приложение хранит записи (пользователей, заказы, сообщения) так, чтобы их можно было быстро найти и изменить.
Для небольшого бота или сайта часто хватает SQLite — это один файл рядом с кодом, а для нескольких серверов или большой нагрузки берут PostgreSQL или MySQL. Главная ловушка новичка — база, которая при каждом обновлении кода оказывается пустой, потому что лежала там, где файлы не сохраняются. Готовой базы данных как услуги в Netrun нет: SQLite держат в папке /data, а PostgreSQL поднимают сервисом в docker-compose или подключают внешнюю.
- Бэкенд
Бэкенд — это часть приложения, которая работает на сервере: принимает запросы, проверяет данные, обращается к базе и отдаёт ответ.
Пользователь бэкенд не видит: он общается с ним через фронтенд или, как в случае бота, через мессенджер. Бэкенд пишут на Python, Node.js, Go, PHP и других языках, и ему нужен компьютер, который работает постоянно. Если фронтенд и бэкенд живут на разных адресах, браузер может заблокировать запросы между ними — это ошибка CORS.
- Вебхук
Вебхук — это способ, при котором внешний сервис сам отправляет запрос на адрес вашего приложения, как только что-то произошло.
Так работают оплаты, GitHub и Telegram-боты в режиме webhook: вместо того чтобы постоянно спрашивать «есть новое?», приложение ждёт входящего запроса. Для этого нужен публичный адрес с HTTPS — с localhost вебхук не придёт. Если адрес меняется или приложение не отвечает, сервис обычно повторяет попытки, а потом перестаёт присылать события.
- Деплой
Деплой — это перенос программы с вашего компьютера туда, где она работает для других людей постоянно и открывается по ссылке.
В деплой входят копирование кода на сервер, установка зависимостей, сборка, запуск и выдача адреса с HTTPS — вручную это несколько часов настройки. Ошибки чаще всего всплывают именно здесь: забытый файл зависимостей, неверный порт, токен, оставшийся только на вашем компьютере. В Netrun деплой называется публикацией: код загружается архивом, папкой, из GitHub или из редактора с ИИ, остальное платформа делает сама.
- Домен
Домен — это человекочитаемый адрес сайта вроде example.com, который покупают у регистратора и привязывают к серверу.
Домен оплачивают на срок, чаще всего на год, и забытое продление может оставить сайт без адреса. Сам по себе домен ничего не показывает: чтобы он открывал ваш сайт, в настройках DNS у регистратора добавляют запись, указывающую на хостинг. На тарифе Pro в Netrun к проекту можно привязать свои домены, и у каждого будет HTTPS.
- Зависимости
Зависимости — это сторонние библиотеки, без которых ваш код не запустится, и их список хранят в файле вроде requirements.txt или package.json.
На вашем компьютере библиотеки уже установлены, а на сервере их ставят заново по списку, поэтому забытая строка превращается в ModuleNotFoundError или Cannot find module. Список для Python получают командой `pip freeze > requirements.txt` и лучше чистят от лишнего, оставляя только то, что импортирует код. Фиксируйте версии, иначе через полгода установится новая версия библиотеки и код может сломаться.
- Засыпание сайта
Засыпание сайта — это режим, при котором хостинг выключает приложение без посетителей и снова запускает его при первом заходе, отчего первое открытие идёт дольше обычного.
Так бесплатные тарифы экономят ресурсы: пока никто не смотрит, приложение не занимает память. Для портфолио или учебного проекта это незаметно, а вот для того, что должно отвечать мгновенно и круглосуточно, сон не подходит. В Netrun сайт на бесплатном тарифе засыпает без посетителей и сам просыпается при открытии ссылки за несколько секунд, а на Pro не засыпает вовсе.
- Контейнер
Контейнер — это изолированная «коробка», в которой программа запускается вместе со своими библиотеками и не мешает другим программам на том же сервере.
Контейнер создают из образа, и всё, что программа записала внутрь, исчезает, когда контейнер пересоздают при обновлении. Поэтому базы и загрузки пользователей хранят в постоянном хранилище, подключённом к контейнеру. Сами контейнеры обычно запускает Docker, а на платформах хостинга это происходит без вашего участия.
- Логи
Логи — это текстовая запись того, что программа делала и какие ошибки выдала во время работы.
Всё, что программа выводит через print или console.log, и все сообщения об ошибках попадают в логи — это первое место, куда стоит смотреть, если бот замолчал или сайт не открывается. Ищите последние строки со словами Error, Traceback или Exception: там обычно названы файл и причина. В Netrun логи видны в кабинете проекта в реальном времени.
- Образ
Образ — это готовый снимок программы со всеми её файлами и библиотеками, из которого запускают контейнеры.
Образ собирают по инструкции из Dockerfile, а потом из одного образа можно запустить сколько угодно одинаковых контейнеров. Образ не меняется во время работы: чтобы обновить программу, собирают новый. Готовые образы баз данных и популярных сервисов берут из Docker Hub.
- Переменная окружения
Переменная окружения — это именованная настройка, которую программа получает от системы при запуске, а не хранит внутри своего кода.
Так передают токены, пароли от баз и номер порта: в Python их читают через `os.getenv("BOT_TOKEN")`, в Node.js — через `process.env.BOT_TOKEN`. Это позволяет держать секреты вне кода и менять их, не трогая файлы. Если переменная не задана, программа получает пустое значение и часто падает при старте, поэтому проверяйте имя буква в букву.
- Порт
Порт — это номер, по которому на одном компьютере различают программы, ждущие подключений: например, 80 и 443 для сайтов или 8080 для приложения.
Локально приложение часто запускают на 3000, 5000 или 8000, но на хостинге номер порта обычно задаёт платформа, и если приложение слушает другой, снаружи будет ошибка 502. Надёжнее всего брать порт из переменной окружения PORT и подставлять свой номер, только если она пустая. Netrun передаёт приложению номер порта как раз в переменной PORT.
- Постоянное хранилище
Постоянное хранилище — это место на диске, где файлы приложения сохраняются между перезапусками и обновлениями кода, а не стираются вместе с контейнером.
Без него SQLite-база, загруженные картинки и любые файлы, которые программа создаёт сама, пропадают при следующей публикации — это одна из самых частых жалоб «всё обнулилось». Решение — писать такие файлы только в подключённую папку и указывать путь к ней в настройках. В Netrun это папка /data: всё, что приложение пишет туда, переживает обновления, а файлы можно посмотреть и скачать на вкладке «Данные».
- Рантайм
Рантайм — это среда, которая исполняет ваш код: интерпретатор Python, движок Node.js, виртуальная машина Java и тому подобное, вместе с конкретной версией.
Код, написанный под одну версию, может не запуститься на другой: например, библиотека требует Python 3.10, а на сервере стоит 3.8. Нужную версию обычно указывают в файле проекта — `engines` в package.json, `.python-version` или `runtime.txt`. Netrun определяет язык проекта автоматически по файлам кода.
- Репозиторий
Репозиторий — это папка проекта вместе со всей историей её изменений, которую ведёт Git и обычно хранит сервис вроде GitHub.
Репозиторий бывает публичным — его видят все — и приватным, доступным только вам и тем, кого вы пригласили. В публичный репозиторий нельзя класть токены и пароли: их находят автоматические сканеры. Netrun умеет брать код прямо из репозитория GitHub, в том числе из приватного.
- Сборка
Сборка — это шаг, на котором исходный код превращают в готовую к запуску форму: ставят библиотеки, компилируют и упаковывают файлы.
У сайта на React или Vue сборка выполняется командой `npm run build` и создаёт папку dist или build, у Go и Rust она даёт один исполняемый файл. Если сборка падает, приложение даже не запускается, поэтому первые строки с ошибкой в логе сборки — главная подсказка. Частая причина — код, который собирается у вас, но использует библиотеку, не записанную в зависимости.
- Секрет
Секрет — это любое значение, дающее доступ к чему-то от вашего имени: токен бота, ключ API, пароль от базы данных.
Секреты не пишут прямо в код и не кладут в публичный репозиторий, а передают программе через переменные окружения. Если секрет всё-таки утёк, его нужно сразу перевыпустить у сервиса, который его выдал, — старое значение перестанет работать. В Netrun секреты задаются на вкладке «Секреты», хранятся зашифрованными и попадают в приложение как переменные окружения.
- Сервер
Сервер — это компьютер, который постоянно включён, подключён к интернету и выполняет программы для других людей.
Ваш ноутбук тоже может быть сервером, но он засыпает, меняет сеть и не доступен снаружи, поэтому сайты и боты держат на арендованных машинах в дата-центрах. Сервер можно арендовать целиком или виртуальной частью (VPS) и настраивать самому, а можно отдать эту работу хостингу. Главное отличие для новичка — кто отвечает за обновления, безопасность и перезапуск после сбоя.
- Статический сайт
Статический сайт — это сайт из готовых файлов HTML, CSS, JavaScript и картинок, которые сервер отдаёт как есть, без программы, формирующей страницы на лету.
Так устроены лендинги, портфолио и собранные React- или Vue-приложения без своего сервера: после сборки остаётся папка с файлами. Такой сайт быстрый и почти не ломается, но сам хранить заявки или пароли не умеет — для этого нужен бэкенд или внешний сервис. Если в папке есть index.html, обычно больше ничего настраивать не нужно.
- Токен бота
Токен бота — это длинная секретная строка, по которой мессенджер узнаёт, что запросы приходят именно от вашего бота.
В Telegram его выдаёт BotFather, и выглядит он как число, двоеточие и набор букв и цифр. Неверный или перевыпущенный токен даёт ошибку 401 Unauthorized, а токен, попавший в публичный код, позволяет чужому человеку управлять ботом. Храните его в переменной окружения и перевыпускайте при малейшем подозрении на утечку.
- Фронтенд
Фронтенд — это часть приложения, которую человек видит и трогает в браузере: страницы, кнопки, формы.
Фронтенд пишут на HTML, CSS и JavaScript, часто с React, Vue или Svelte, и после сборки он становится набором файлов. За данными он обращается к бэкенду через API. Если фронтенд и бэкенд опубликованы по разным адресам, на бэкенде нужно разрешить запросы с адреса фронтенда, иначе браузер выдаст ошибку CORS.
- Хостинг
Хостинг — это услуга, при которой ваш сайт, бот или приложение работает на чужом сервере и доступен в интернете круглосуточно.
Хостинг бывает очень разным: виртуальный для PHP-сайтов, VPS, где всё настраиваете вы, и платформы для приложений, куда достаточно загрузить код. Выбирая, смотрите, какие языки поддерживаются, засыпает ли проект без посетителей и сохраняются ли файлы между обновлениями. Хостинг, домен и сервер — три разные вещи, и покупать их можно у разных компаний.
- API
API — это набор правил, по которым одна программа может обращаться к другой: какие запросы отправлять и какие ответы ждать.
Бот обращается к API Telegram, сайт — к API своего бэкенда, приложение с нейросетью — к API модели. Обычно доступ к чужому API даётся по ключу, который нужно хранить как секрет, а у многих API есть лимит запросов, за превышение которого приходит ошибка 429. Адрес конкретной функции API часто называют эндпоинтом.
- BotFather
BotFather — это официальный бот Telegram, через который создают новых ботов, получают их токены и меняют их имя, описание и команды.
Чтобы создать бота, напишите @BotFather команду /newbot, придумайте имя и адрес, оканчивающийся на bot, и получите токен. Там же токен можно перевыпустить, если он утёк, — после этого старый перестанет работать, и его нужно заменить везде, где бот запущен. Проверяйте, что пишете настоящему @BotFather с синей галочкой, а не подделке.
- CORS
CORS — это правило браузера, которое запрещает странице с одного адреса читать ответы сервера с другого адреса, пока тот явно это не разрешит.
Ошибка появляется, когда фронтенд и бэкенд живут на разных адресах, и выглядит в консоли браузера как сообщение про Access-Control-Allow-Origin. Чинится она на бэкенде: в нём разрешают адрес фронтенда, например через CORSMiddleware в FastAPI или пакет cors в Express. Отключать проверку в браузере бессмысленно — у ваших посетителей она всё равно включена.
- Cron
Cron — это планировщик, который запускает команды по расписанию, например каждый час или каждый день в девять утра.
Расписание записывают пятью полями — минута, час, день, месяц, день недели: строка `0 9 * * *` значит «каждый день в 9:00». На многих хостингах системного cron нет, и расписание делают внутри самого приложения циклом или библиотекой вроде APScheduler или node-cron. Встроенного планировщика в Netrun нет, поэтому там расписание живёт в коде, а приложение работает постоянно.
- DNS
DNS — это система, которая переводит имя сайта вроде example.com в адрес сервера, к которому браузер должен подключиться.
Записи DNS настраивают у регистратора домена: запись A указывает на IP-адрес, CNAME — на другое имя. После изменения записей новый адрес расходится по интернету не сразу, а за время от минут до нескольких часов, поэтому сайт может открываться по-разному у разных людей. Чаще всего проблемы возникают из-за опечатки в записи или старой записи, которую забыли удалить.
- Docker
Docker — это программа, которая упаковывает приложение вместе со всем нужным ему окружением в образ и запускает его в изолированных контейнерах.
Главная польза Docker — «у меня работает» превращается в «работает везде»: на сервере запускается тот же образ, что и у вас. Описание сборки пишут в Dockerfile, а несколько связанных контейнеров описывают в docker-compose. Многие платформы, включая Netrun, сами собирают и запускают контейнеры, поэтому знать Docker для публикации необязательно, но свой Dockerfile можно принести.
- Docker Compose
Docker Compose — это способ описать в одном файле несколько связанных контейнеров, например сайт, базу данных и очередь, и запускать их вместе одной командой.
Файл называется docker-compose.yml или compose.yaml, и каждый сервис в нём получает свой образ, переменные и тома для данных. Сервисы обращаются друг к другу по имени: из приложения база доступна по адресу `db`, а не localhost. В Netrun проект с docker-compose публикуется как есть, а память и процессор тарифа делятся между его сервисами.
- Dockerfile
Dockerfile — это текстовый файл с пошаговой инструкцией, как собрать образ приложения: какую систему взять, что установить и какую команду запустить.
Основные строки — FROM (базовый образ), COPY (скопировать код), RUN (выполнить команду при сборке), EXPOSE (порт) и CMD (команда запуска). Свой Dockerfile нужен, когда автоматической сборки не хватает: например, для браузера под Selenium или Playwright или системной библиотеки. В Netrun порт приложения с собственным Dockerfile берётся из первой строки EXPOSE.
- Git и GitHub
Git — это программа, которая запоминает историю изменений в коде, а GitHub — это сайт, где такие истории хранят в интернете и делятся ими.
Основной цикл — сохранить изменения командой `git commit` и отправить их на GitHub командой `git push`. Git помогает откатиться к рабочей версии, если что-то сломалось, а GitHub — подключить проект к хостингу без ручной загрузки файлов. Netrun берёт код из GitHub, но по push сам не обновляется: новую версию публикуют из кабинета.
- HTTPS и SSL-сертификат
HTTPS — это защищённая версия протокола сайтов, при которой данные между браузером и сервером шифруются, а SSL-сертификат подтверждает, что сайт действительно тот, за кого себя выдаёт.
Без HTTPS браузеры помечают сайт как небезопасный, а многие сервисы, например вебхуки Telegram, вообще не работают с обычным HTTP. Сертификат выдаётся на конкретный домен и на ограниченный срок, поэтому его нужно вовремя продлевать — чаще всего это делают автоматически, например через Let’s Encrypt. Netrun выпускает и продлевает сертификат сам, и ссылка на проект сразу открывается по HTTPS.
- localhost
localhost — это адрес, который всегда означает «этот же компьютер», поэтому открыть его может только тот, кто за этим компьютером сидит.
Ссылка вида http://localhost:3000 работает только у вас и не годится, чтобы показать проект другу. На сервере приложение, слушающее localhost или 127.0.0.1, недоступно снаружи даже при правильном порте, и посетители видят ошибку. Чтобы сайт открывался из интернета, его публикуют на хостинге и запускают на адресе 0.0.0.0.
- MCP
MCP (Model Context Protocol) — это открытый стандарт, по которому ИИ-ассистенты подключаются к внешним сервисам и выполняют в них действия от вашего имени.
Подключив MCP-сервер в редакторе вроде Cursor или Claude Code, вы просите ассистента обычными словами, и он сам вызывает нужные функции сервиса. Доступ к сервису обычно даётся ключом, поэтому подключайте только серверы, которым доверяете. Через MCP-сервер Netrun ассистент может опубликовать проект прямо из редактора.
- OOM (нехватка памяти, код 137)
OOM (out of memory) — это ситуация, когда программа требует больше оперативной памяти, чем ей выделено, и система принудительно её останавливает, часто с кодом выхода 137.
В логах это выглядит как короткое Killed или OOMKilled без привычного текста ошибки, а приложение перезапускается снова и снова. Типичные причины — загрузка большой нейросети или файла целиком в память, утечка в цикле и сборка тяжёлого фронтенда. Помогают обработка данных частями, более лёгкая модель или тариф с большим объёмом памяти.
- PaaS
PaaS (платформа как услуга) — это хостинг, куда вы загружаете код, а сервер, сборку, запуск и HTTPS платформа берёт на себя.
Известные примеры — Heroku, Render и Railway; в отличие от VPS, здесь не нужно ставить систему, настраивать прокси и следить за обновлениями. Взамен вы принимаете правила платформы: приложение слушает выданный порт, файлы хранит в отведённом месте, а доступа к серверу напрямую обычно нет. Netrun тоже относится к этому классу хостинга.
- package.json
package.json — это файл проекта на JavaScript или TypeScript, где записаны его название, библиотеки-зависимости и команды для запуска и сборки.
Раздел `dependencies` перечисляет нужные библиотеки, а `scripts` — команды: `start` для запуска и `build` для сборки. Хостинг смотрит именно сюда, поэтому если команды start нет, ему непонятно, что запускать. Рядом лежит package-lock.json с точными версиями — его стоит загружать вместе с кодом, а папку node_modules не нужно.
- Polling (опрос)
Polling — это способ, при котором программа сама раз за разом спрашивает сервер, не появилось ли новых данных, например новых сообщений для бота.
Большинство Telegram-ботов из примеров работают именно так через метод getUpdates: публичный адрес и HTTPS не нужны, поэтому бот запускается где угодно. Но одновременно может работать только одна копия бота — вторая получит ошибку 409 Conflict с текстом terminated by other getUpdates request. Альтернатива — вебхук, где Telegram сам присылает сообщения на адрес бота.
- PostgreSQL
PostgreSQL — это популярная бесплатная база данных, которая работает отдельной программой-сервером и выдерживает много одновременных пользователей.
К PostgreSQL подключаются по адресу, логину и паролю, обычно одной строкой вида `postgresql://…` в переменной окружения DATABASE_URL. Его выбирают, когда SQLite становится мало: много записей одновременно, несколько копий приложения или доступ к базе из разных сервисов. Данные базы должны лежать в постоянном хранилище, иначе они пропадут при пересоздании контейнера.
- Serverless
Serverless — это модель, при которой ваш код запускается небольшими функциями только в ответ на запрос, а о серверах между запросами заботится провайдер.
Так работают, например, AWS Lambda, Yandex Cloud Functions и функции Vercel: платите за вызовы, а в простое ничего не работает. Из-за этого функция не может держать постоянное соединение или крутиться в цикле, поэтому Telegram-бот на polling, фоновые задачи и WebSocket там не живут без переделки. Первый вызов после паузы бывает медленнее — это холодный старт.
- SPA
SPA (одностраничное приложение) — это сайт, который загружается один раз, а дальше переключает экраны средствами JavaScript в браузере, не запрашивая новые страницы у сервера.
Так обычно устроены приложения на React, Vue и Svelte, собранные в папку с index.html. Типичная ошибка — при обновлении страницы на адресе вроде /about сервер отвечает 404, потому что такого файла нет; лечится настройкой, при которой на любой путь отдаётся index.html. Поисковикам SPA видно хуже, поэтому для блога или лендинга иногда выбирают сборку в готовые HTML-страницы.
- SQLite
SQLite — это база данных, которая целиком хранится в одном файле рядом с программой и не требует отдельного сервера.
Её любят за простоту: Python умеет работать с ней без установки библиотек, а для бота или небольшого сайта её обычно хватает. Главная проблема при публикации — файл базы, лежащий в папке с кодом, затирается при каждом обновлении, и данные пропадают. В Netrun файл SQLite кладут в папку /data, которая переживает обновления кода.
- Uptime
Uptime — это доля времени, в течение которой сайт или бот работает и отвечает, обычно в процентах за месяц или сутки.
Разница между процентами больше, чем кажется: 99,9% за месяц — это около 43 минут простоя, а 99% — уже больше семи часов. Uptime зависит не только от хостинга, но и от самого приложения: необработанная ошибка роняет бота так же надёжно, как сбой сервера. Если проект падает, Netrun перезапускает его сам, а о долгом простое присылает уведомление.
- VPS
VPS (виртуальный частный сервер) — это арендованная часть физического сервера, которая ведёт себя как отдельный компьютер с вашей операционной системой и полным доступом к ней.
На VPS можно поставить что угодно, но всё делаете вы сами: заходите по SSH, устанавливаете язык и базу, настраиваете автозапуск, прокси, HTTPS и обновления безопасности. Частая ловушка новичка — бот, запущенный в окне терминала, который умирает, как только окно закрывается. VPS хорош, когда нужен полный контроль; если нужен просто работающий проект, проще платформа для приложений.
- WebSocket
WebSocket — это постоянное двустороннее соединение между браузером и сервером, по которому сообщения идут в обе стороны без новых запросов.
На нём строят чаты, онлайн-игры, живые графики и уведомления: сервер может написать браузеру в любой момент. Адрес такого соединения начинается с ws:// или, при HTTPS, с wss://, и на опубликованном сайте нужен именно wss://, иначе браузер его заблокирует. Соединение рвётся при перезапуске сервера, поэтому клиент должен уметь переподключаться.