NetrunНа главную

Как выложить Go-приложение в интернет

· 3 мин чтения

Обычно, чтобы показать миру Go-приложение, нужно арендовать сервер, собрать на нём бинарь, поставить рядом nginx как прокси, получить SSL-сертификат и следить, чтобы процесс не падал. Go удобен тем, что весь проект компилируется в один исполняемый файл, но возня вокруг сервера от этого никуда не девается.

Netrun убирает эту часть: вы загружаете исходный код, мы сами видим, что это Go, собираем проект и выдаём публичную ссылку с HTTPS (защищённое соединение, замочек в браузере). Ни сервера, ни nginx, ни ручного сертификата — ниже о том, как пройти путь от папки с кодом до рабочей ссылки.

  1. Проверьте, что в корне есть go.mod

    Файл go.mod в корне проекта перечисляет зависимости и говорит Netrun, что перед ним Go-приложение. Папку с зависимостями (например, vendor) класть не нужно — библиотеки мы подтянем сами по go.mod при сборке.

  2. Читайте порт из переменной окружения

    Если у вас веб-сервис, он должен слушать тот порт, который задаёт Netrun через переменную окружения PORT, а не прописанный в коде намертво. На практике это значит взять порт через os.Getenv("PORT") и слушать именно его — тогда мы автоматически пробросим наружу нужный адрес. Захардкоженный порт сломал бы публикацию.

  3. Загрузите код

    Откройте Netrun и принесите проект одним из двух способов: ZIP-архивом с исходниками или импортом из GitHub-репозитория, в том числе приватного. Достаточно самого кода с go.mod — собирать бинарь у себя и ставить Go где-либо не нужно, всё происходит у нас.

  4. Укажите секреты, если они есть

    Если приложение ходит во внешний сервис или базу данных, ключи API, токены и строку подключения мы спросим при настройке. Они подставятся в переменные окружения и не будут лежать в коде — читайте их из окружения через os.Getenv так же, как порт.

  5. Дождитесь сборки и заберите ссылку

    Netrun сам соберёт проект и поднимет его. Логи и статус публикации видны в кабинете в реальном времени, так что вы сразу заметите, если что-то пошло не так. Когда всё готово, вы получите публичную ссылку с HTTPS — её можно открывать и отправлять кому угодно.

Готово: ваше Go-приложение доступно в интернете без аренды сервера и настройки SSL. На бесплатном тарифе доступен один проект, и веб-сервис на нём засыпает при простое и просыпается по запросу — первый ответ после паузы будет чуть медленнее. Если приложение должно отвечать без задержек постоянно, подойдёт платный тариф с работой без простоев, а если проектов нужно больше — можно докупить дополнительные слоты. Попробовать Netrun.