Skip to content

Self-host GoToSocial

updated Sep 2026prices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →

A lightweight ActivityPub social network server written in Go that federates with Mastodon and the rest of the Fediverse. It has no built-in posting client beyond a basic web view; you use a Mastodon-compatible app to post.

Key facts

LicenseAGPL-3.0
StackGo, SQLite, PostgreSQL
Min RAM1024 MB
Official imageyes
Measured idle RAM435 MB
Difficulty

What you need

  • Any VPS with at least 1024 MB of RAM
  • A domain you control — most self-hosted setups need HTTPS in front of them
  • Under an hour if you've used Docker before
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

Install

Run these commands on your server:

# GoToSocial — the official docker-compose.yaml (single container, SQLite)
mkdir -p ~/gotosocial/data && cd ~/gotosocial
wget https://codeberg.org/superseriousbusiness/gotosocial/raw/branch/main/example/docker-compose/docker-compose.yaml
# GTS_HOST is your domain and cannot change later; upstream maps 443→8080 as plain HTTP for a reverse proxy, this publishes 8080 instead
sed -i 's/GTS_HOST: example.org/GTS_HOST: social.example.com/; s/"443:8080"/"8080:8080"/' docker-compose.yaml
# the container runs as uid/gid 1000:1000, so the data dir must be owned by it or SQLite fails with "permission denied"
sudo chown -R 1000:1000 ~/gotosocial/data
docker compose up -d  #  →  http://SERVER_IP:8080
# create your account: docker exec -it gotosocial /gotosocial/gotosocial admin account create --username you --email you@example.com --password 'LongPassword1!'

Head-to-head

More self-hosted tools

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.