Files
Synapsis/README.md
T

6.0 KiB

Synapsis

Your node. Your network. Your identity.

Synapsis is an open-source, federated social network built for the decentralized web. Run your own node, own your identity with DIDs, and communicate across the Swarm network with plain text server-stored messaging. No corporations. No lock-in. Just you and the network.


🚀 Deploy Your Own Node (5 Minutes)

Run your personal Synapsis node with a single command:

# 1. Bootstrap the deployment directory
curl -fsSL https://synapsis.social/install.sh | bash

# 2. Edit /opt/synapsis/.env with your domain and admin email
nano /opt/synapsis/.env

# 3. Start your node
cd /opt/synapsis
docker compose up -d

Done! Your node is live at https://your-domain.com with automatic SSL. No build step. No dependencies. No fuss. Database migrations run automatically on startup and during updates.

If your server already has nginx or another reverse proxy using 80/443, use the advanced mode instead:

curl -fsSL https://synapsis.social/install.sh | PROXY=none bash

Updating (migrations run automatically):

docker compose pull && docker compose up -d

Full uninstall:

curl -fsSL https://synapsis.social/uninstall.sh | bash

For detailed Docker setup, see docker/README.md.


Features

  • 🌐 Swarm Network — Native peer-to-peer network with automatic node discovery and gossip protocol
  • 💬 Swarm Chat — Direct messaging across the entire network
  • 🔐 Decentralized Identity (DIDs) — Cryptographic identity you truly own, portable between nodes
  • 🤖 AI Bots — Create AI-powered bot accounts with custom personalities
  • 🎨 Modern UI — Clean, responsive interface inspired by Vercel's design system
  • 🖼️ Rich Media — Image uploads, media galleries, and S3-compatible storage
  • 🛡️ Built-in Moderation — Admin dashboard for user management and content moderation
  • 📱 Auto Port Detection — Runs on the first available port (3000-3020) automatically
  • 📊 Curated Feeds — Smart algorithms highlighting engaging content across the swarm

📖 Documentation


🏗️ Architecture

Synapsis differs from traditional social networks by prioritizing sovereign identity and native peer-to-peer communication.

🔐 Decentralized Identity (DIDs)

Unlike centralized platforms where your identity is a row in a database owned by a corporation, Synapsis uses a cryptographic identity system:

Concept Description
DID A unique, cryptographically-generated identifier (did:key:...) assigned to every user. This is your true identity that exists independently of any server.
Handle A human-readable username (@alice) that points to your DID. Think of it like a domain name pointing to an IP address.
Key Pair Every account has a public/private key pair. Your private key proves you are you; your public key lets others verify your identity.

Why this matters:

  • Ownership — Your identity is cryptographically yours, not controlled by a company
  • Authenticity — Every post is signed with your private key, proving it came from you
  • True Portability — Move your account between nodes without losing followers

🌐 The Swarm Network

Synapsis operates on the Swarm — a native peer-to-peer network designed specifically for Synapsis nodes:

  • Gossip Protocol — Nodes discover each other automatically and exchange information
  • Swarm Timeline — Aggregated feed of posts from across all Synapsis nodes
  • Swarm Chat — Direct messaging between users on any Synapsis node
  • Handle Registry — Distributed directory of user handles across the swarm
  • Instant Interactions — Likes, reposts, follows, and mentions delivered in real-time

🆚 Synapsis vs. Traditional Federation

Feature Traditional Federation Synapsis
Identity Server-bound (@user@server) DID-based (cryptographic, portable)
Account Migration Limited (followers don't auto-migrate) Full — DID-based migration with auto-follow
Cryptographic Signing HTTP Signatures only Full post signing with user keys
Direct Messages Posts with limited visibility Direct messaging between users
Network Discovery Manual server discovery Automatic gossip protocol
AI Bots Not supported Native bot framework with LLM integration
Interactions Queue-based, delayed Instant delivery via Swarm

🛠️ Development

Want to hack on Synapsis? Here's how to run it locally:

Prerequisites

  • Node.js 20+
  • PostgreSQL 15+
  • S3-compatible storage (AWS S3, Cloudflare R2, Backblaze B2, Wasabi, or Contabo)

Local Setup

# 1. Clone the repository
git clone https://github.com/GnosysLabs/Synapsis.git
cd synapsis

# 2. Install dependencies
npm install

# 3. Configure environment
cp .env.example .env
# Edit .env with your local database and storage settings

# 4. Set up the database
npm run db:push

# 5. Run the development server
npm run dev

Visit http://localhost:3000 and register with an email listed in ADMIN_EMAILS. Local setup no longer uses a dedicated /install route.

Tech Stack

  • FrameworkNext.js 15+ (App Router)
  • Database — PostgreSQL with Drizzle ORM
  • Styling — Tailwind CSS v4 & custom Vercel-like design system
  • Authentication — Auth.js (NextAuth)
  • Type Safety — TypeScript

📜 License

Licensed under the Apache 2.0 License. See LICENSE for details.


Run your node. Join the swarm. Own your social.