4.4 KiB
Synapsis
Synapsis is an open-source, federated social network built to serve as global communication infrastructure. It is designed to be lightweight, easy to deploy, and interoperable with the broader fediverse.
Features
- Federation Ready: Built with ActivityPub compatibility in mind (WebFinger, NodeInfo).
- Identity: Portable identity system backed by user handles.
- Modern UI: Clean, responsive interface inspired by Vercel's design system.
- Rich Media: Support for image uploads and media galleries.
- Moderation: Built-in admin dashboard for user management and content moderation.
- Setup Wizard: User-friendly
/installflow to get your node running in minutes. - Curated Feeds: Smart feed algorithms to highlight engaging content.
Tech Stack
- Framework: Next.js 15+ (App Router)
- Database: PostgreSQL (via Neon / Drizzle ORM)
- Styling: Tailwind CSS v4 & custom Vercel-like design system
- Authentication: Auth.js (NextAuth)
- Type Safety: TypeScript
Getting Started
Prerequisites
- Node.js 18+
- A PostgreSQL database (e.g., Neon)
Installation
-
Clone the repository
git clone https://github.com/cyph3rasi/Synapsis.git cd Synapsis -
Install dependencies
npm install -
Configure Environment Copy the example environment file:
cp .env.example .envUpdate
.envwith your credentials:# Database (PostgreSQL connection string) DATABASE_URL="postgresql://user:password@host/dbname..." # Auth (Generate with: openssl rand -base64 33) AUTH_SECRET="your-secret-key" # Node Configuration NEXT_PUBLIC_NODE_DOMAIN="your-domain.com" NEXT_PUBLIC_NODE_NAME="My Synapsis Node" # Admin Access (Comma-separated emails) ADMIN_EMAILS="admin@example.com,moderator@example.com" -
Initialize Database Push the schema to your database:
npm run db:push -
Start Development Server
npm run devVisit
http://localhost:3000to see your node.
Initial Setup
- Go to
http://localhost:3000(or your deployed URL). - You will be redirected to the Setup Wizard (
/install) if the node is not configured. - Follow the wizard to verify your environment and database connection.
- Register your first account.
- Add your email to
ADMIN_EMAILSin your.envfile to grant yourself admin privileges. - Restart the server (if running locally) to apply the admin changes.
Deployment & Updates
1. Initial Deployment
The easiest way to deploy your own instance is with Vercel. Click the button below to clone the repository and deploy:
- Create Repository: Vercel will ask you to create a new Git repository.
- Deploy: Click "Deploy". The initial build will succeed using placeholder values.
- Configure: Once deployed, go to your project dashboard:
- Settings > Environment Variables
- Add
DATABASE_URL(your Neon connection string) - Add
AUTH_SECRET(generate withopenssl rand -base64 33) - Add
ADMIN_EMAILS(optional, for admin access)
- Redeploy: Go to Deployments, click the three dots on the latest deployment, and select Redeploy to apply the new variables.
2. Updating Your Instance
Since Vercel creates a clone (new copy) of the repository, you need to manually pull updates from the official source (upstream) to keep your node current.
Setup (One-time):
- Clone your new repository to your local machine:
git clone https://github.com/YOUR_USERNAME/YOUR_REPO_NAME.git cd YOUR_REPO_NAME - Add the official repository as a remote source:
git remote add upstream https://github.com/cyph3rasi/Synapsis.git
To Update: Whenever a new version of Synapsis is released, run these commands globally to pull changes and deploy them to your instance:
# 1. Fetch latest changes from the official source
git fetch upstream
# 2. Merge changes into your main branch
git checkout main
git merge upstream/main
# 3. Push to your repository (Vercel will auto-deploy)
git push origin main
License
Licensed under the Apache 2.0 License. See LICENSE for details.