GoGolangCompilación7 min de lectura

Instalar Go (Golang) y compilar aplicaciones

Instalá Go, compilá aplicaciones y ejecutalas como servicios en tu VPS Linux.


Go es un lenguaje compilado ideal para servicios web, APIs y herramientas CLI de alto rendimiento.

Paso 1 — Descargar e instalar Go

bash
cd /tmp
curl -LO https://go.dev/dl/go1.22.4.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz

Paso 2 — Configurar PATH

Agregá al final de ~/.bashrc:

bash
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Aplicá los cambios:

bash
source ~/.bashrc
go version

Paso 3 — Crear un proyecto de ejemplo

bash
mkdir -p ~/miapi && cd ~/miapi
go mod init miapi

Creá main.go:

bash
cat > main.go << 'EOF'
package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "API corriendo en Baires Host")
    })
    fmt.Println("Servidor en :8080")
    http.ListenAndServe(":8080", nil)
}
EOF

Paso 4 — Compilar

bash
go build -o miapi .

Esto genera un binario estático sin dependencias.

Paso 5 — Ejecutar

bash
./miapi

Paso 6 — Crear servicio systemd

Creá /etc/systemd/system/miapi.service:

ini
[Unit]
Description=Mi API en Go
After=network.target

[Service]
Type=simple
User=deploy
WorkingDirectory=/home/deploy/miapi
ExecStart=/home/deploy/miapi/miapi
Restart=on-failure
RestartSec=5
Environment=PORT=8080

[Install]
WantedBy=multi-user.target

Activá el servicio:

bash
sudo systemctl daemon-reload
sudo systemctl enable miapi
sudo systemctl start miapi
sudo systemctl status miapi

Paso 7 — Compilar para producción

bash
# Compilación optimizada
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags='-s -w' -o miapi .

Flags:

  • -s -w: elimina información de debug (binario más chico)
  • CGO_ENABLED=0: binario estático sin dependencias de C

Paso 8 — Actualizar Go

bash
cd /tmp
curl -LO https://go.dev/dl/go1.XX.X.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.XX.X.linux-amd64.tar.gz
go version

Go es perfecto para servicios de alto rendimiento en tu VPS de Baires Host: binarios livianos, arranque instantáneo y bajo consumo de memoria.


¿Te resultó útil esta guía?