Установка Golang и деплой Go-сервиса на сервер: коротко и с данными

Конспект страницы: 6 разделов коротко, данные на 14 октября 2026 и ответы на 5 вопросов. Полный разбор с примерами: Установка Golang и деплой Go-сервиса на сервер.

Коротко

Установка Golang на Ubuntu сводится к распаковке официального архива в /usr/local/go и добавлению каталога bin в PATH. Для запуска готовой программы Go на сервере не нужен вовсе: код собирается в один исполняемый файл, который копируют на сервер или кладут в маленький Docker-образ. Go ставят из архива с go.dev, а не из apt: пакет в репозиториях Ubuntu обычно старше текущего релиза.

Конспект по разделам

Установка Golang на Ubuntu из архива с go.dev

Архив с сайта go.dev содержит свежий компилятор целиком, а пакет golang-go из apt обычно отстаёт по версии. Номер версии и ссылку на архив для вашей архитектуры (amd64 или arm64) берут на странице загрузок go.dev. На Windows и macOS Go ставится установщиком с того же сайта.

Сборка Go-программы для сервера: один файл без зависимостей

Go умеет собирать под другую систему прямо на вашем компьютере. Для сервера на Linux переменные задают перед командой сборки: Параметр CGO_ENABLED=0 отключает обращение к библиотекам C, поэтому файл не зависит от libc и запустится даже в пустом контейнере. Ключи -s -w убирают отладочные символы и уменьшают размер.

Golang на VPS: служба systemd и Caddy

Файл /etc/systemd/system/goapp.service запускает бинарник и возвращает его к жизни после сбоя: Go-сервер сам открывает порт, обычно 8080, поэтому отдельного прикладного сервера вроде gunicorn не нужно. Перед ним ставят Caddy: достаточно двух строк в Caddyfile, api.example.com и reverse_proxy 127.0.0.1:8080, а сертификат он выпустит сам. Если на сервере уже работает Nginx, подойдёт он.

Golang в Docker: многоэтапный Dockerfile

Первый этап собирает программу в образе с компилятором, второй берёт из него только файл. Тег golang:1.24 замените на версию из вашего go.mod. Модули скачиваются отдельным слоем, поэтому при правке кода Docker не качает их заново.

Куда выложить Golang-сервис: App Platform или VPS

Платформа деплоя в Таймвеб Клауд принимает приложения на Go как Docker-образ из репозитория, тарифы от 1 ₽ в месяц на 14 октября 2026. VPS нужен, когда рядом должны работать база, очередь и фоновые процессы. Базу при этом можно взять управляемую: установка PostgreSQL и цены.

Задеплойте приложение из репозитория

Подключите репозиторий, выберите фреймворк или Docker, домен и SSL выдаются сразу.

Вопросы и ответы

Как установить Golang на Ubuntu последней версии?

Скачать архив с go.dev, удалить прежний каталог /usr/local/go, распаковать архив в /usr/local и добавить /usr/local/go/bin в PATH. Пакет golang-go из apt может быть старше.

Нужно ли ставить Golang на сервер, чтобы запустить Go-программу?

Нет. Программа компилируется в один исполняемый файл, и серверу нужен только он. Компилятор нужен на машине, где вы собираете.

Как установить Golang в VS Code?

Поставить Go по инструкции выше, затем расширение Go в VS Code. При первом открытии файла.go редактор предложит установить gopls и сопутствующие инструменты.

Почему Go-контейнер на scratch не делает запросы по HTTPS?

В образе scratch нет корневых сертификатов, и проверка сертификата сервера не проходит. Возьмите distroless/static или добавьте файл сертификатов в образ.

Какой Dockerfile нужен для Golang-приложения?

Двухэтапный: первый этап на образе golang собирает файл с CGO_ENABLED=0, второй копирует его в минимальный образ без компилятора.