cyph3rasi ae2c34df6c Add installer, CI, ARM build and test updates
Introduce a one‑line Docker installer and environment examples, add CI and docker validation workflows, and update docs and tests.

Key changes:
- Add docker/install.sh installer that bootstraps /opt/synapsis, downloads compose files, optionally installs Docker, and generates secrets.
- Add top-level .env.example and docker/.env.example entries for shared storage and local development.
- Add GitHub Actions CI (ci.yml) with type checks, targeted vitest runs, build and docker-compose validation.
- Update existing docker workflow to set up QEMU and build multi‑arch images (amd64, arm64).
- Update README and docker/README to use the installer, point to the new repo, adjust local setup instructions, and note shared S3 env vars.
- Update docker-compose comments and include shared S3 env variables and defaults.
- Update .gitignore to ignore site-work mirrors.
- Tests: expand supported bot source types (add brave_news, youtube), increase POST_MAX_LENGTH from 400 to 600, add minimal user handle in mention handler tests, and add mocks & test adjustments in scheduler tests to keep them unit-scoped.

These changes simplify installation, add CI coverage (including Docker config validation), enable multi‑arch builds, and align tests with expanded bot source/validation behavior.
2026-03-07 16:11:37 -08:00
2026-01-26 08:34:48 +01:00
2026-02-05 02:49:34 +01:00
2026-01-26 08:34:48 +01:00
2026-01-26 08:34:48 +01:00
2026-01-26 08:34:48 +01:00
2026-01-26 08:34:48 +01:00
2026-01-26 08:34:48 +01:00
2026-01-26 08:34:48 +01:00

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.

Updating (migrations run automatically):

docker compose pull && docker compose up -d

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.

S
Description
No description provided
Readme Apache-2.0 7.1 MiB
Languages
TypeScript 97.5%
CSS 1.9%
JavaScript 0.3%
Shell 0.3%