Куда выложить курсовую, чтобы поделиться ссылкой

Курсовую или дипломный проект нужно не просто дописать, а показать так, чтобы преподаватель открыл его со своего ноутбука или телефона — и накануне защиты, и прямо во время выступления. Пока проект живёт только в вашем терминале, проверить его не может никто. Решение простое: залить код на хостинг, который сам собирает приложение и выдаёт публичный HTTPS-адрес. В Dockbox это укладывается в вечер — подключаете Git-репозиторий или загружаете архив, платформа собирает Docker-контейнер, запускает его и возвращает ссылку, которую можно вставить в слайд, в отчёт или превратить в QR-код.

Почему «работает на моём компьютере» ничего не доказывает

Локальный запуск — это отладка, а не демонстрация. Проект живёт ровно столько, сколько открыт терминал: закрыли ноутбук — ссылка умерла. На защите это выглядит слабо, потому что преподавателю нужен адрес, который открывается на его устройстве без вашего участия. Отсюда стандартная паника за три дня до дедлайна: сервера нет, а осваивать администрирование Linux уже некогда. Платформа для деплоя забирает эту часть на себя: вы отвечаете за код, она — за сборку, запуск и HTTPS.

Арендованный сервер против платформы

Можно взять VPS и настроить всё руками: nginx, сертификаты, systemd, автозапуск. Если цель — разобраться в DevOps, это правильный путь. Если цель — сдать курсовую, вы потратите вечер на инфраструктуру вместо самого проекта. Dockbox убирает ручную настройку: Git → сборка Docker-образа → работающий контейнер с доменом и HTTPS. Тема серверов при этом не исчезает — просто перестаёт быть тем, что нужно делать в ночь перед защитой.

Что выкинуть из архива перед загрузкой

Первое, что тормозит публикацию, — мусор в папке проекта. Удалите всё, что появляется только при сборке: venv и .venv для Python, node_modules для JavaScript, каталоги target, bin, obj, build. Они раздувают архив в разы, а пользы не несут — зависимости платформа поставит сама из requirements.txt, package.json или pyproject.toml. В архиве оставьте исходники, файл зависимостей и небольшие демо-данные. Формат — ZIP; rar, 7z и tar тоже подойдут.

Уберите localhost и зашитый порт

Это причина номер один, почему проект открывается на ноутбуке и молчит по ссылке. В коде обычно прописаны 127.0.0.1 или localhost и порт вида 5000, 8000, 3000, причём вручную. В контейнере так нельзя: приложение должно слушать все интерфейсы (0.0.0.0), а номер порта — брать из переменной окружения PORT, которую подставит платформа.

host = "0.0.0.0"
port = int(os.environ.get("PORT", 8000))

Во Flask, Django, FastAPI, Express и почти любом фреймворке это правка в одну строку в точке старта: app.run(host="0.0.0.0", port=port) для Flask, app.listen(process.env.PORT || 3000, "0.0.0.0") для Express. Именно здесь ломается большинство студенческих проектов после переезда с ноутбука.

Пароли и ключи — только в переменные окружения

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

Правильный путь

Читайте значения из переменных окружения, а сами значения задавайте в панели Dockbox в разделе секретов. Они хранятся зашифрованно и передаются в контейнер при старте — в архиве и в репозитории их нет. Файл .env в архив не кладите.

import os
DB_PASSWORD = os.environ["DB_PASSWORD"]
BOT_TOKEN = os.environ["BOT_TOKEN"]

Куда складывать данные

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

База данных и несколько сервисов

Полноценные СУБД вроде PostgreSQL или MySQL поднимайте отдельным сервисом рядом с приложением через docker-compose. В одном проекте можно связать сколько угодно сервисов, и если вы приносите свой docker-compose, постоянное хранилище — это тома, объявленные в вашем файле.

Загрузите проект и получите ссылку

Путей два: подключить Git-репозиторий, включая приватный, и деплоить в один клик — или загрузить архив. Терминал и установленный git на вашей машине не нужны, Dockbox принимает и то, и другое. Платформа определяет язык и фреймворк по коду, собирает Docker-образ и запускает контейнер. Статус сборки и логи видны в панели в реальном времени, поэтому ошибка старта всплывает сразу, а не выглядит как пустая страница. Результат — публичный HTTPS-адрес проекта.

Проверьте ссылку с телефона и вставьте в слайды

Откройте адрес на телефоне по мобильному интернету, а не по домашнему Wi-Fi: так вы увидите проект глазами преподавателя. Убедитесь, что открывается главная страница, а не только та, которую вы гоняли в тестах. Вставьте ссылку на титульный слайд и в текст отчёта и сделайте QR-код любым генератором — аудитория откроет проект, не набирая адрес руками.

Адрес не меняется

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

Что с проектом после защиты

Проект продолжает работать по той же ссылке, пока вы его не удалите: код и настройки остаются на месте, к работе можно вернуться и через месяц. Удаление — одно действие в панели, оно освобождает место под следующую работу, но исходники уходят вместе с проектом, поэтому свою копию архива держите отдельно. Многие оставляют курсовую как элемент портфолио: живую ссылку удобно показывать на собеседованиях. Актуальные тарифы и лимиты по числу проектов смотрите на dockbox.host.

Частые вопросы

Сколько времени занимает публикация курсовой?

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

Проект работает на ноутбуке, а по ссылке ничего нет — почему?

В девяти случаях из десяти виноват адрес старта: приложение слушает 127.0.0.1 или порт, зашитый в код руками. Переключите адрес на 0.0.0.0, а порт берите из переменной PORT. Если дело не в этом, откройте логи проекта в панели Dockbox — там видно, упало ли приложение при старте и на какой строке.

Можно ли показать проект с базой данных?

Да. Для SQLite держите файл базы в постоянном томе, чтобы записи не терялись при обновлении кода. Если нужна полноценная СУБД вроде PostgreSQL или MySQL, поднимите её отдельным сервисом рядом с приложением через docker-compose — в одном проекте можно связать столько сервисов, сколько требуется.

Как сделать QR-код для проекта?

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

Нужно ли выкладывать код на GitHub?

Нет. Достаточно загрузить папку архивом — ни git, ни командная строка не нужны. Импорт из Git в Dockbox тоже есть, включая приватные репозитории, но это просто ещё один способ доставить тот же код. GitHub пригодится отдельно, если преподаватель хочет ссылку на исходники, — это не связано с публикацией.