Pet-проект обычно умирает не из-за плохого кода, а потому что его некому показать. Он крутится у вас на ноутбуке, но чтобы отправить его другу, положить в портфолио или приложить к резюме, нужна живая ссылка — а это значит аренда сервера, настройка, возня с сертификатами. Именно этот барьер и держит проекты в папке «Загрузки». Хорошая новость: чтобы поделиться pet-проектом, поднимать сервер не обязательно. Ниже — какие проекты вообще имеет смысл выкладывать и как уложить путь от кода до ссылки в пару минут.
Решите, что именно вы показываете
Pet-проектом может быть почти всё: лендинг-портфолио, небольшая браузерная игра, Telegram-бот, калькулятор, парсер, дашборд или крошечный сервис.
Для публикации годится любой проект, который стартует по команде и отвечает наружу. Либо открывается в браузере, либо реагирует на сообщения в мессенджере. Если это про вас — проект можно выкладывать, дальше вопрос только в удобстве.
Приведите проект в запускаемое состояние
Прежде чем заливать код, убедитесь, что он запускается без ручных ритуалов и не требует вашего личного участия.
Одна команда на старте. Плохой сценарий — «сначала открой два терминала, потом запусти вот это». Хороший — одна точка входа: python main.py, npm start, ./app.
Соберите зависимости в файл. Платформа должна понимать, что доустановить. Для Python это requirements.txt, для Node.js — package.json:
aiogram==3.15.0
uvicorn==0.34.0
httpx==0.28.1
Порт читайте из переменной окружения, а не из кода. Тогда среда сама подставит нужное значение, и проект не упадёт из-за занятого порта:
import os
PORT = int(os.environ.get("PORT", 8000))
app.run(host="0.0.0.0", port=PORT)
Dockerfile — если хотите зафиксировать окружение. Dockbox работает с Docker-контейнерами, так что минимальный Dockerfile снимает вопросы с версией языка и системными библиотеками:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
ENV PORT=8000
EXPOSE 8000
CMD ["python", "main.py"]
Вынесите ключи и пароли из кода
Токен бота, ключ API, пароль от базы не должны лежать прямо в исходниках — и уж точно не должны уехать в публичный репозиторий. Так делать нельзя:
TOKEN = "7123456789:AAH..."
Правильно — читать значения из переменных окружения:
import os
TOKEN = os.environ["BOT_TOKEN"]
При заведении проекта в Dockbox вы укажете эти значения в панели, и они придут в контейнер снаружи. Секретов не будет ни в архиве, ни в Git, ни в истории коммитов.
Загрузите проект в Dockbox
Код можно отправить ZIP-архивом или импортировать из GitHub — приватный репозиторий тоже подходит. Dockbox сам определяет язык и тип проекта (сайт, бот или скрипт) и готовит его к запуску по адресу платформы. Выбирать сервер, тариф и версию языка руками не нужно: сборка идёт в Docker-контейнере на стороне платформы.
Дождитесь сборки и посмотрите логи
Прогресс сборки и логи видны в панели в реальном времени. Если что-то пошло не так, вы сразу видите, на каком шаге, и получаете внятную причину вместо простыни из stack trace. Для pet-проекта это главный режим работы: поправили код, перезалили, через минуту смотрите результат.
Поделитесь ссылкой
Готовый сайт открывается по HTTPS-адресу, бот начинает отвечать в мессенджере. Ссылку можно вставить в резюме, в био профиля или просто скинуть другу.
Сколько живёт проект. Сайт доступен постоянно: платформа держит контейнер запущенным, а при сбое перезапускает его. Лимита по времени нет — ни у сайтов, ни у ботов. Если нагрузка вырастет, можно перейти на тариф выше, с большим запасом ресурсов. Адрес при этом не меняется.
Боты и фоновые скрипты работают так же. Публичного адреса у них нет, но это не мешает им работать: контейнер запущен постоянно, а платформа следит за процессом и перезапускает его при сбое. Код, настройки и секреты остаются на месте. Если процессу нужно больше запаса, можно взять тариф с большими ресурсами.
Планы и цены
Первый месяц на тарифе Starter (990 ₽/мес, 1 vCPU, 2 ГБ RAM) бесплатный — этого достаточно, чтобы держать сайт в интернете и не думать о сроке. Тарифы Pro (2 490 ₽/мес) и Team (4 990 ₽/мес) нужны, когда проектов становится больше или им требуется больше ресурсов. Если проектов больше одного, дополнительное место можно докупить на любом тарифе. Актуальные цены смотрите в панели на dockbox.host.
Pet-проекту нужна не идеальная архитектура, а живая ссылка, которую не стыдно отправить. Загрузите код в Dockbox — и через несколько минут у проекта будет адрес, который можно показать кому угодно, без сервера и настройки. А если хочется заранее узнать, заведётся ли проект, на платформе есть бесплатная проверка без регистрации. Смежные материалы: бесплатный хостинг для сайта, статический сайт, Telegram-бот без VPS — всё это тоже разобрано на dockbox.host.
Частые вопросы
Сколько стоит выложить pet-проект в интернет?
Сайт можно держать на Dockbox сколько угодно — первый месяц Starter бесплатный. Боты и фоновые скрипты работают так же: контейнер запущен постоянно, платформа следит за процессом и перезапускает его при сбое. Тариф с большим запасом ресурсов выручает, если сайту нужно больше CPU и памяти, чтобы отвечать мгновенно. А если проектов несколько, можно доплатить за место под ещё один — на любом тарифе. Актуальные цены всегда видны на странице тарифов в панели.
Какие проекты можно задеплоить?
Сайт, браузерную игру, Telegram- или Discord-бота, калькулятор, парсер, дашборд, небольшой сервис или API. Проекты на Python, Node.js, Go, PHP, Rust и других языках работают так же, как статические сайты из HTML, CSS и JS. Ограничение одно: проект должен стартовать по команде и отвечать наружу.
Нужно ли разбираться в серверах и Docker?
Нет. Dockbox сам определяет язык, собирает проект, запускает его и выдаёт HTTPS-ссылку. Знать про серверы, nginx, SSL и Docker не требуется — вся инфраструктура остаётся на стороне платформы, вы работаете только со своим кодом и переменными окружения.
Можно ли задеплоить проект прямо из GitHub?
Да. Можно импортировать публичный или приватный репозиторий — Dockbox заберёт код и соберёт проект сам. Вручную выгружать архив для этого не обязательно, хотя ZIP тоже поддерживается.
Ссылка будет работать долго?
Ссылка не временная: проект открывается по одному и тому же адресу, пока он есть в вашей панели. Проект отвечает постоянно, пока запущен его контейнер, а адрес при этом не меняется.