• Go
  • systemd
  • NGINX
  • PostgreSQL

Go VPS HostingShip one binary and run it as a service

Go compiles to a single executable, so deploying is copying a file and starting a service. We set up a hardened KVM VPS with NGINX and free SSL, and the Go toolchain if you want to build on the server. You bring the binary.

  • KVM virtualisation
  • NVMe storage
  • Root SSH access
  • Free one-time setup
  • 99.9% uptime SLA

systemctl list-units --type=service --state=active

  • nginxHTTPS reverse proxy
  • myserviceyour Go binary (systemd)
  • postgresqloptional database
  • ufwfirewall: 22, 80, 443
  • fail2banSSH brute-force guard
  • unattended-upgradessecurity updates

Installed and secured before handover.

1 binarycopy it and run it
0 runtimeno interpreter to install on the server
VPS-1plenty for a typical Go API
HTTPSfree Let's Encrypt on your domain
01Why a VPS

Why Run Go on a VPS

Go services are small and fast. A VPS gives them a stable home with no platform fees per instance.

Tiny deploys

One file to copy; nothing to install beside it.

Efficient on small plans

A typical API sits comfortably on VPS-1.

Systemd keeps it running

Starts on boot and restarts on failure.

Flat cost

One server cost for the service and its database.

02The stack

How a Go Server Is Set Up

NGINX in front, your binary behind it on a local port.

  1. Reverse proxy

    NGINX

    HTTPS on your domain, forwarding to your service on localhost.

  2. Application

    Your Go binary

    Runs as a systemd service under its own unprivileged user.

  3. Toolchain (optional)

    Go from go.dev

    Installed under /usr/local/go if you build on the server.

  4. Database

    PostgreSQL (optional)

    A database and user for your service.

04 DATABASE PostgreSQL (optional) 03 TOOLCHAIN (OPTIONAL) Go from go.dev 02 APPLICATION Your Go binary 01 REVERSE PROXY NGINX

Engineer's notes

  1. Go is installed from the official tarball into /usr/local/go; remove any old copy first and never untar over it.
  2. Add /usr/local/go/bin to PATH, then check with go version.
  3. Build for Linux from any machine with GOOS=linux GOARCH=amd64 go build.
  4. Run the service as its own user and keep it on localhost behind NGINX.
  • 443HTTPS, NGINX
  • 80HTTP, redirects to HTTPS
  • 22SSH, you only
  • 8080your Go service, localhost only
03Use cases

What You Can Run

A REST or gRPC API

A Go service behind NGINX.

A web app or SaaS backend

With PostgreSQL beside it.

Workers and schedulers

Queue consumers and cron-like jobs.

CLI tools and bots

Long-running tools as services.

Webhook receivers

Fast endpoints for callbacks.

Microservices

Several services on one server.

04Sizing guide

Which Plan for Your Go Service

Your own load test beats any table, but this is a sane start.

Recommended start

VPS-1

2 vCores and 4 GB RAM.

vCores2
RAM4 GB
NVMe40 GB
See VPS-1
Recommended start

VPS-2

4 vCores and 8 GB RAM.

vCores4
RAM8 GB
NVMe75 GB
See VPS-2
Recommended start

VPS-3

6 vCores and 12 GB RAM.

vCores6
RAM12 GB
NVMe100 GB
See VPS-3
Recommended start

VPS-4

8 vCores and 24 GB RAM.

vCores8
RAM24 GB
NVMe200 GB
See VPS-4

A starting point, not a limit: every plan upgrades in place, keeping your data, IP address and configuration.

05After handover

Running Your Go Binary as a Service

A first deployment, as your own user. Replace the names with yours.

  1. Build for Linux

    On your own machine.

    GOOS=linux GOARCH=amd64 go build -o myservice .
  2. Copy it to the server

    Into its own folder and user.

    scp myservice admin@your-server:/tmp/myservicesudo install -o myservice -g myservice -m 755 /tmp/myservice /opt/myservice/myservice
  3. Create the systemd unit

    In /etc/systemd/system/myservice.service: User=myservice, ExecStart=/opt/myservice/myservice, Restart=on-failure, WantedBy=multi-user.target.

    sudo systemctl daemon-reloadsudo systemctl enable --now myservice
  4. Build on the server instead (optional)

    Install Go from go.dev's tarball, then check it.

    sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.xx.x.linux-amd64.tar.gzecho 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profilego version

Example commands: adjust names, paths and versions to your project. Deploying and maintaining your application is yours to do, or ask us for a quote.

06Cheat sheet

Go commands you will use every week

Copy, paste, adjust the names. Each one is safe to run as your own user on the server.

Restart the service

sudo systemctl restart myservice

Follow the log

sudo journalctl -u myservice -f

Cross-compile for Linux

GOOS=linux GOARCH=amd64 go build -o myservice .

Which Go is installed?

go version

Is it listening?

ss -ltnp | grep 8080

Reload NGINX safely

sudo nginx -t && sudo systemctl reload nginx
07Compare

A Container Platform or Go on a VPS?

A platform hides the server. A VPS runs your binary on a flat-cost machine.

Container platform

  • DeploymentThe platform's workflow
  • PricingPer instance and per resource
  • Startup timeImage pull and boot
  • ControlWithin platform limits
  • Server administrationHandled by the platform

Go VPS

  • DeploymentCopy a binary, restart a service
  • PricingFlat server cost
  • Startup timeInstant: the service stays running
  • ControlFull root on the server
  • Server administrationYours, after our free setup
Choose a VPS plan
08Handover

Your Go stack

Free one-time setup before you get access. Here is what happens, and what you receive.

  1. Pick a plan and a location

    Resources that fit your workload, in the datacentre closest to your users.

  2. Tell us your Go setup

    Versions, database and domain: at order or right after.

  3. We install and secure it

    Server hardened, the stack installed and tested, HTTPS on your domain.

  4. You get root

    SSH to a working server, ready for your code and data.

Installed for you

  • NGINX reverse proxy with HTTPS on your domain
  • A service user and a folder for your binary
  • The Go toolchain from go.dev, on request, if you build on the server
  • PostgreSQL with a database and user, on request
  • Your binary and its configuration are deployed by you

Secured before handover

  • Non-root sudo user created for daily work
  • SSH key login, password login for root disabled
  • Firewall (UFW) open only for the ports you use
  • Fail2ban blocking repeated login attempts
  • Automatic security updates enabled
  • Free Let's Encrypt SSL on your domain
  • Timezone, swap and hostname configured

Not included (we say so up front)

  • Ongoing server administration
  • Application maintenance and updates
  • Debugging your code
  • Migrating existing sites or data
09Hardening and tuning

Security and Performance for Go

Security

  • Run the service as an unprivileged user, never as root.
  • Keep the service on localhost; only NGINX faces the internet.
  • Rebuild with a current Go release to get security fixes.
  • Keep secrets in environment variables or a protected file.

Performance

  • Set timeouts on your HTTP server so slow clients cannot pile up.
  • Use a connection pool for the database.
  • Profile with pprof before you add RAM.
  • Log to stdout and let systemd and journalctl collect it.

Built from the official documentation

VPS Plans

VPS Plans for Go

Go is light. VPS-1 runs a typical API with a database; add RAM and cores for heavy workloads.

VPS-1

Small websites, APIs, bots and development servers.

₹1,008 /mo
Get Started
  • 2 vCores
  • 4 GB RAM
  • 40 GB NVMe
  • 500 Mbps
  • Full root and SSH access
  • Free initial stack installation
  • Server hardening and firewall setup
  • Daily backup of the previous 24 hours
  • Unlimited traffic *
  • Anti-DDoS protection
  • Dedicated IPv4 and IPv6
  • KVM virtualisation

VPS-3

Busy stores, SaaS products and several projects.

₹2,748 /mo
Get Started
  • 6 vCores
  • 12 GB RAM
  • 100 GB NVMe
  • 2 Gbps
  • Full root and SSH access
  • Free initial stack installation
  • Server hardening and firewall setup
  • Daily backup of the previous 24 hours
  • Unlimited traffic *
  • Anti-DDoS protection
  • Dedicated IPv4 and IPv6
  • KVM virtualisation

VPS-4

High-traffic apps, large databases and agencies.

₹5,274 /mo
Get Started
  • 8 vCores
  • 24 GB RAM
  • 200 GB NVMe
  • 3 Gbps
  • Full root and SSH access
  • Free initial stack installation
  • Server hardening and firewall setup
  • Daily backup of the previous 24 hours
  • Unlimited traffic *
  • Anti-DDoS protection
  • Dedicated IPv4 and IPv6
  • KVM virtualisation

* Unlimited traffic in Europe and North America. In Mumbai, Singapore and Sydney a monthly allowance applies (VPS-1 500 GB, VPS-2/VPS-3 1 TB, VPS-4 3 TB), then speed is limited to 10 Mbps until the next month.

Prices exclude 18% GST, which is added to invoices for customers in India.

10Under the hood

Platform specs and locations

The same KVM platform on every plan; only CPU, RAM, storage and port speed change.

Virtualisation
KVM with reserved vCores and RAM
Storage
NVMe SSD on every plan
Network
Dedicated IPv4 and IPv6, 500 Mbps to 3 Gbps per plan
Operating systems
Ubuntu 26.04, 24.04 and 22.04 LTS · Debian 13, 12 and 11 · AlmaLinux · Rocky Linux · Fedora · FreeBSD
Access
Full root over SSH, key-based login
Backups
Automatic daily backup of the previous 24 hours; snapshots and longer retention on request
Protection
Always-on anti-DDoS mitigation
Availability
99.9% uptime SLA

Asia-Pacific

  • Mumbai
  • Singapore
  • Sydney

Europe

  • London
  • Limburg
  • Roubaix
  • Gravelines
  • Strasbourg
  • Milan
  • Warsaw

North America

  • Beauharnois

Availability per location changes with demand; we confirm your location before setup. In Mumbai, Singapore and Sydney each plan includes a monthly traffic allowance (VPS-1 500 GB, VPS-2 and VPS-3 1 TB, VPS-4 3 TB); beyond it, speed is limited to 10 Mbps until the next month.

Go VPS FAQs

Questions before you deploy

Not covered here? Ask an engineer before you order.

Ready when you are

Run Your Go Service

Choose a plan and we hand over a hardened server with NGINX and HTTPS, ready for your binary.