Manual Hub Setup

Step-by-step guide for installing SeaClip hub manually

When to use manual setup:
  • You need custom configuration before installation
  • You're installing in an air-gapped environment
  • You want to understand each step of the process

Prerequisites

System Requirements

Component Minimum Recommended
CPU 2 cores 4+ cores
RAM 2 GB 8 GB
Disk 10 GB 50 GB SSD
OS Ubuntu 22.04+, Debian 12+, or macOS 13+

Software Requirements

bash — Check versions
node -v   # Must be 20.x or higher
pnpm -v   # Must be 8.x or higher
git --version

Install Node.js 20

bash — Ubuntu/Debian
# Using NodeSource
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

# Verify
node -v

Install pnpm

bash
npm install -g pnpm

# Verify
pnpm -v

Step 1: Clone the Repository

bash
git clone https://github.com/t4tarzan/seaclip.git
cd seaclip

Step 2: Install Dependencies

bash
pnpm install

This installs dependencies for all workspace packages:

Step 3: Configure Environment

bash
# Copy example environment file
cp .env.example .env

# Edit with your settings
nano .env

Essential Environment Variables

.env
# Server
PORT=51842
SEACLIP_DEPLOYMENT_MODE=local_trusted
SEACLIP_EDITION=simple  # or "enhanced"

# Database (SQLite by default, or PostgreSQL)
# DATABASE_URL=postgres://user:pass@localhost:5432/seaclip

# Ollama (local LLM)
OLLAMA_BASE_URL=http://localhost:11434

# Optional: Telegram notifications
# TELEGRAM_BOT_TOKEN=your-bot-token
# TELEGRAM_CHAT_ID=your-chat-id

Step 4: Initialize Database

Option A: SQLite (Default)

No setup needed — SQLite database is created automatically on first run.

Option B: PostgreSQL

bash
# Create database
sudo -u postgres createdb seaclip

# Set DATABASE_URL in .env
echo 'DATABASE_URL=postgres://postgres:password@localhost:5432/seaclip' >> .env

# Run migrations
pnpm --filter @seaclip/server db:migrate

Step 5: Build the Project

bash
pnpm build

Step 6: Start the Server

Development Mode

bash
pnpm dev

Production Mode

bash
pnpm start

Step 7: Set Up Systemd Service (Production)

bash — Create service file
sudo tee /etc/systemd/system/seaclip.service > /dev/null << 'EOF'
[Unit]
Description=SeaClip Hub Server
After=network.target

[Service]
Type=simple
User=seaclip
WorkingDirectory=/opt/seaclip
ExecStart=/usr/bin/node /opt/seaclip/server/dist/index.js
Restart=always
RestartSec=10
Environment=NODE_ENV=production
EnvironmentFile=/opt/seaclip/.env

[Install]
WantedBy=multi-user.target
EOF
bash — Enable and start
sudo systemctl daemon-reload
sudo systemctl enable seaclip
sudo systemctl start seaclip

# Check status
sudo systemctl status seaclip

Step 8: Verify Installation

bash
# Health check
curl http://localhost:51842/api/health

# Run diagnostics
pnpm cli doctor

Next Steps