Replace Vercel docs with VPS deployment guide
This commit is contained in:
@@ -83,51 +83,93 @@ Synapsis is an open-source, federated social network built to serve as global co
|
|||||||
5. Add your email to `ADMIN_EMAILS` in your `.env` file to grant yourself admin privileges.
|
5. Add your email to `ADMIN_EMAILS` in your `.env` file to grant yourself admin privileges.
|
||||||
6. Restart the server (if running locally) to apply the admin changes.
|
6. Restart the server (if running locally) to apply the admin changes.
|
||||||
|
|
||||||
## Deployment & Updates
|
## Deployment (VPS)
|
||||||
|
|
||||||
### 1. Initial Deployment
|
Since Synapsis stores media files locally by default, it is best hosted on a VPS (Virtual Private Server) like DigitalOcean, Hetzner, or AWS EC2.
|
||||||
|
|
||||||
The easiest way to deploy your own instance is with **Vercel**. Click the button below to clone the repository and deploy:
|
### Prerequisites
|
||||||
|
|
||||||
[](https://vercel.com/new/clone?repository-url=https://github.com/cyph3rasi/Synapsis)
|
- A VPS running Ubuntu 20.04 or later.
|
||||||
|
- A domain name pointing to your VPS IP address.
|
||||||
|
- PostgreSQL database (managed or self-hosted).
|
||||||
|
|
||||||
1. **Create Repository**: Vercel will ask you to create a new Git repository.
|
### 1. Server Setup
|
||||||
2. **Deploy**: Click "Deploy". The initial build will succeed using placeholder values.
|
|
||||||
3. **Configure**: Once deployed, go to your project dashboard:
|
|
||||||
- **Settings** > **Environment Variables**
|
|
||||||
- Add `DATABASE_URL` (your Neon connection string)
|
|
||||||
- Add `AUTH_SECRET` (generate with `openssl rand -base64 33`)
|
|
||||||
- Add `ADMIN_EMAILS` (optional, for admin access)
|
|
||||||
4. **Redeploy**: Go to **Deployments**, click the three dots on the latest deployment, and select **Redeploy** to apply the new variables.
|
|
||||||
|
|
||||||
### 2. Updating Your Instance
|
Install Node.js 18+ and PM2 (process manager):
|
||||||
|
|
||||||
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):**
|
|
||||||
1. Clone your new repository to your local machine:
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/YOUR_USERNAME/YOUR_REPO_NAME.git
|
|
||||||
cd YOUR_REPO_NAME
|
|
||||||
```
|
|
||||||
2. Add the official repository as a remote source:
|
|
||||||
```bash
|
|
||||||
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:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Fetch latest changes from the official source
|
# Install Node.js
|
||||||
git fetch upstream
|
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
|
||||||
|
sudo apt-get install -y nodejs
|
||||||
|
|
||||||
# 2. Merge changes into your main branch
|
# Install PM2
|
||||||
git checkout main
|
sudo npm install -g pm2
|
||||||
git merge upstream/main
|
```
|
||||||
|
|
||||||
# 3. Push to your repository (Vercel will auto-deploy)
|
### 2. Installation
|
||||||
git push origin main
|
|
||||||
|
Clone and configure the application:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Clone repo
|
||||||
|
git clone https://github.com/cyph3rasi/Synapsis.git
|
||||||
|
cd Synapsis
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# Setup Env
|
||||||
|
cp .env.example .env
|
||||||
|
nano .env # (Edit with your DB credentials and domain)
|
||||||
|
|
||||||
|
# Build the project
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
# Push Database Schema
|
||||||
|
npm run db:push
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Start Application
|
||||||
|
|
||||||
|
Use PM2 to run the app in the background:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pm2 start npm --name "synapsis" -- start
|
||||||
|
pm2 save
|
||||||
|
pm2 startup
|
||||||
|
```
|
||||||
|
|
||||||
|
Your node is now running on port 3000!
|
||||||
|
|
||||||
|
### 4. Reverse Proxy (Nginx)
|
||||||
|
|
||||||
|
It is highly recommended to use Nginx to handle SSL and forward traffic to port 3000.
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
server_name your-domain.com;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://localhost:3000;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection 'upgrade';
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_cache_bypass $http_upgrade;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Updating Your Instance
|
||||||
|
|
||||||
|
To update your node when a new version is released:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd Synapsis
|
||||||
|
git pull origin main
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
pm2 restart synapsis
|
||||||
```
|
```
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|||||||
Reference in New Issue
Block a user