Установка 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 ставится установщиком с того же сайта.
- Скачайте архив вида go1.X.Y.linux-amd64.tar.gz командой wget или curl.
- Удалите старую установку и распакуйте архив в /usr/local: поверх прежней версии его не распаковывают.
- Добавьте PATH.
- Проверьте командой go version.
Сборка 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 выдаются сразу.
- React, Vue, Next.js, Nuxt, Angular, Svelte
- Любой стек через 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, второй копирует его в минимальный образ без компилятора.