Wiki

Installation Guide

SeaVesselManager · Updated May 2026

This guide walks you through installing SeaVesselManager on your server — whether that's a Windows machine on the vessel, a Linux VPS in the cloud, or an office server.

You only need Docker. The setup installs everything automatically — PostgreSQL, Redis, the backend API, and the web app are all bundled inside Docker containers. You do not need to install Node.js, PostgreSQL, Redis, or anything else beforehand.
SeaVesselManager dashboard running in browser

What gets installed

ComponentPortWhat it does
PostgreSQLInternalThe database — stores all your data
RedisInternalCaching and real-time events
Backend API4001The server your app talks to
Frontend3000The web application users open
Admin Panel8080Server status and QR-code onboarding

Pick your platform

🪟

Windows

On-vessel or office Windows server. Requires Docker Desktop.

Windows guide →
🐧

Linux / VPS / Cloud

Ubuntu 22.04/24.04 server, DigitalOcean, AWS, Hetzner, etc.

Linux guide →
💡
New to Docker? Don't worry — the setup script handles everything automatically. You just answer a few questions and it does the rest.

Before You Start

Make sure these are ready before installing

What you need

RequirementMinimumNotes
DockerVersion 24+Docker Desktop on Windows, Docker Engine on Linux
Docker ComposeV2Included with Docker Desktop. Use docker compose (not docker-compose)
RAM2 GB free4 GB recommended for production
Disk5 GB freeFor Docker images and the database
Ports free3000, 4001, 8080Nothing else should be using these ports

Install Docker

🪟 Windows — Install Docker Desktop
  1. Go to docker.com/products/docker-desktop
  2. Download and install Docker Desktop for Windows
  3. Start Docker Desktop and wait for it to show "Engine running"
  4. Open PowerShell and verify: docker --version
📸 Screenshot: Docker Desktop showing "Engine running" Add screenshot here
🐧 Linux — Install Docker Engine

Run this one command — it installs Docker and Docker Compose automatically:

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker

Verify it worked:

docker --version
docker compose version

Install on Windows

Requires Docker Desktop · Installs to C:\SVM\Server

Everything is included — you don't need to install anything else.
The setup script automatically installs: PostgreSQL database, Redis, the backend API, and the web application — all running inside Docker containers.

The only requirement is Docker Desktop. No Node.js, no PostgreSQL, no Redis, nothing else.

Installation

1

Download the server package

Go to seavesselmanager.com/downloads.html and download svm-server-package-latest.zip.

SeaVesselManager downloads page
2

Extract the ZIP

Right-click the downloaded ZIP and choose Extract All. Extract to a location like C:\SVM\Server.

3

Run the setup script

Open PowerShell in the extracted folder and run:

powershell -ExecutionPolicy Bypass -File setup.ps1

The script will ask you a few questions:

  • Server IP — your machine's local network IP (auto-detected, just press Enter)
  • Deployment mode — choose vessel (on-board ship), office, or cloud
  • Vessel/Server name — give it a recognisable name
  • Ports — defaults are fine (3000, 4001, 8080)
📸 Screenshot: Setup script asking configuration questions Add screenshot here
4

Wait for startup

The script pulls Docker images (~500 MB) and starts all containers. This takes 3–5 minutes on first run depending on your internet speed.

When done you'll see the server URLs printed:

✅ SeaVesselManager is running!

  Web app:   http://192.168.1.100:3000
  API:       http://192.168.1.100:4001
  Admin:     http://192.168.1.100:8080
5

Open the web app

Open your browser and go to http://<YOUR_SERVER_IP>:3000

Log in with: username superadmin / password SuperAdmin

⚠️
Change the password immediately after first login. Go to Settings → Profile to change it.
📸 Screenshot: Login screen Add screenshot here

Managing the server

Run these commands in the C:\SVM\Server folder:

# Check if everything is running
docker ps

# Stop the server
docker compose down

# Start the server
docker compose up -d

# View logs if something is wrong
docker logs svm-server-backend --tail 50

Install on Linux / VPS

Ubuntu 22.04 / 24.04 · Debian 12 · Any VPS or cloud server

Everything is included — you don't need to install anything else.
The setup script automatically installs: PostgreSQL database, Redis, the backend API, and the web application — all running inside Docker containers.

The only requirement is Docker Engine (installed in Step 1 below if you don't have it). No Node.js, no PostgreSQL, no Redis, nothing else.
1

Install Docker (if not already installed)

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
2

Download and run the setup

mkdir -p /opt/seavesselmanager
cd /opt/seavesselmanager
curl -fsSL -o pkg.zip https://seavesselmanager.com/downloads/svm-server-package-latest.zip
unzip pkg.zip
mv svm-server-package/* .
rm -rf svm-server-package pkg.zip
chmod +x setup.sh
./setup.sh
3

Answer the setup questions

Same as Windows — the script asks for your server IP, deployment mode, server name, and ports.

For a VPS: set the Server IP to your server's public IP address and choose cloud as the deployment mode.

4

Verify it's running

docker ps
curl http://localhost:4001/api/v1/health

You should see: {"status":"ok","version":"..."}

5

Open the firewall ports (if needed)

sudo ufw allow 3000/tcp
sudo ufw allow 4001/tcp
sudo ufw allow 8080/tcp

If you plan to use NGINX with a domain name (recommended for cloud), see the Cloud Setup section — in that case you only need ports 80 and 443 open.

Docker Hub Images

Official images — automatically used by the server package

SeaVesselManager publishes production Docker images to Docker Hub on every release. The server package's docker-compose.yml pulls these automatically — you don't need to do anything manually.

Available images

ImageDocker Hub
sin92gh/seavesselmanager-backend hub.docker.com/r/sin92gh/seavesselmanager-backend
sin92gh/seavesselmanager-frontend hub.docker.com/r/sin92gh/seavesselmanager-frontend

Pull images manually

# Always latest stable
docker pull sin92gh/seavesselmanager-backend:latest
docker pull sin92gh/seavesselmanager-frontend:latest

# Pin to a specific version
docker pull sin92gh/seavesselmanager-backend:v4.42
docker pull sin92gh/seavesselmanager-frontend:v4.42

Update to the latest release

From your server install folder (/opt/seavesselmanager on Linux or C:\SVM\Server on Windows):

# Pull latest images from Docker Hub
docker compose pull

# Restart with the new images
docker compose up -d

# Confirm everything is running
docker ps
💡
New images are published automatically when a new version tag is pushed. Subscribe to releases on GitHub Releases to be notified.

Using images directly (advanced)

If you want to run the containers directly without the server package:

docker run -d \
  --name svm-backend \
  -p 4001:4001 \
  -e DB_HOST=your-db-host \
  -e DB_USER=svm \
  -e DB_PASSWORD=yourpassword \
  -e DB_NAME=seavesselmanager \
  -e JWT_SECRET=your-secret \
  sin92gh/seavesselmanager-backend:latest
⚠️
For production use, always use the server package with docker-compose.yml — it includes PostgreSQL, Redis, and the admin panel pre-configured.

Desktop Client

Native app for Windows, macOS, and Linux

The SeaVesselManager Desktop Client is a native application that connects to your SVM server and gives you a fast, offline-capable interface — no browser required. It works alongside the web app; both connect to the same server.

🪟

Windows

Installer (.msi) or standalone .exe. Works with Windows 10 and 11.

🍎

macOS

Universal .dmg — runs on both Intel and Apple Silicon.

🐧

Linux

.AppImage or .deb package. Tested on Ubuntu 22.04+.

⛓️

No server needed on device

The desktop app is just a client — your server runs on Docker elsewhere.

Download

Get the latest version from the Downloads page or directly from GitHub Releases.

PlatformFileNotes
🪟 WindowsSeaVesselManager_x64.msiRecommended — installs to Program Files
🪟 WindowsSeaVesselManager_x64-setup.exeStandalone NSIS installer
🍎 macOSSeaVesselManager_universal.dmgIntel + Apple Silicon
🐧 Linuxsea-vessel-manager_amd64.AppImageNo install needed — just run it
🐧 Linuxsea-vessel-manager_amd64.debDebian/Ubuntu package

First-run setup

When you open the desktop app for the first time, a setup wizard appears asking for your server URL:

1

Enter your server URL

Type the address of your SVM server, e.g. http://192.168.1.50:3000 or https://fleet.yourdomain.com

2

Log in

Enter your SeaVesselManager username and password. Your session is saved — you won't need to log in again unless you sign out.

3

Done

The app connects and loads your fleet. You can add multiple server profiles under Settings if you manage more than one installation.

💡
The desktop app and web browser can be used simultaneously — they share the same server and data.

Updates

The desktop app checks for updates automatically on startup. When a new version is available you'll see an update prompt inside the app. You can also update manually by downloading the latest installer from the downloads page.

Cloud Setup — NGINX + SSL

For cloud/VPS deployments with a domain name and HTTPS

After the Linux install, set up NGINX as a reverse proxy so users access your app at https://yourdomain.com instead of http://IP:3000.

1

Install NGINX and Certbot

sudo apt-get install -y nginx certbot python3-certbot-nginx
2

Create the NGINX config

sudo nano /etc/nginx/sites-available/seavesselmanager

Paste this (replace yourdomain.com with your actual domain):

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.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;
    }

    location /api/ {
        proxy_pass http://localhost:4001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        client_max_body_size 50M;
    }
}
sudo ln -s /etc/nginx/sites-available/seavesselmanager /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
3

Enable HTTPS (free SSL certificate)

sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

Certbot will configure HTTPS automatically and set up auto-renewal.

4

Lock down the firewall

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
🔒
Do not expose ports 3000, 4001, or 5432 directly to the internet. All traffic should go through NGINX on port 443.

First Steps After Install

Do these right after your first successful login

1

Change the default password

Log in with superadmin / SuperAdmin, then go to Settings → Profile and set a strong password.

⚠️
Do this before adding any real data or letting anyone else access the system.
📸 Screenshot: Settings → Profile page with password change form Add screenshot here
2

Add your first vessel

  1. Click Fleet in the left sidebar
  2. Click Add Vessel
  3. Fill in the vessel name, IMO number, flag state, and type
  4. Save
📸 Screenshot: Add Vessel form Add screenshot here
3

Create users

Go to Admin → Users → New User. Set a name, username, password and role.

RoleWhat they can do
superadminFull access to everything including admin settings
adminManage vessels, users, and most data
userDay-to-day operations on their assigned vessels
📸 Screenshot: Create User form Add screenshot here
4

Try the onboarding QR code

Open the admin panel at http://<SERVER_IP>:8080. It shows a QR code users can scan with the mobile/desktop client to connect instantly — no manual URL typing needed.

📸 Screenshot: Admin panel showing server status and QR code Add screenshot here

Updating SeaVesselManager

How to get the latest version

Updates are delivered as new Docker images. To update, just pull the latest images and restart:

# Pull latest images from Docker Hub
docker compose pull

# Restart with the new images
docker compose up -d

# Confirm everything is running
docker ps
⚠️
Always use docker compose up -d after pulling — a plain docker compose restart does not pick up new images.

Check the current version

curl http://localhost:4001/api/v1/health

The response shows the current version: {"status":"ok","version":"4.42",...}

Backup & Restore

Keep your data safe

Create a backup

Run the included backup script from your installation folder:

# Linux / cloud
cd /opt/seavesselmanager
./backup.sh

# Windows (from C:\SVM\Server in PowerShell)
docker exec svm-server-postgres pg_dump -U svm seavesselmanager > backup.sql

Backups are saved as backups/svm-backup-TIMESTAMP.sql.gz and old ones are cleaned up automatically (keeps last 30).

Schedule automatic daily backups (Linux)

crontab -e
# Add this line to run backup every day at 2am:
0 2 * * * /opt/seavesselmanager/backup.sh

Restore from a backup

# Using the restore script
./restore.sh backups/svm-backup-20260501-020000.sql.gz

# Manual restore
gunzip -c backup.sql.gz | docker exec -i svm-server-postgres psql -U svm seavesselmanager
⚠️
Restoring overwrites the current database. Take a fresh backup first if there is any data you want to keep.

Troubleshooting

Solutions to common problems

The app won't open in my browser
  1. Make sure all containers are running: docker ps — you should see 5 containers
  2. Check you're using the right IP — it should be the server's local network IP, not localhost (unless you're on the same machine)
  3. Check the firewall isn't blocking ports 3000 and 4001
  4. View logs: docker logs svm-server-backend --tail 50
"Cannot connect to database" error in logs

The backend started before the database was ready. Wait 30 seconds and restart the backend:

docker restart svm-server-backend

If it keeps failing, check your .env file has the correct DB_PASSWORD.

Page loads but shows a blank white screen

The frontend can't reach the backend. Check that NEXT_PUBLIC_API_URL in your .env points to the correct server IP and port (4001). After changing .env, always rebuild:

docker compose up -d --build frontend
Can't connect from another device on the network
  • Make sure SERVER_IP in your .env is the machine's LAN IP address (like 192.168.1.100), not 127.0.0.1
  • On Windows: check Windows Defender Firewall allows inbound on ports 3000 and 4001
  • On Linux: run sudo ufw allow 3000/tcp && sudo ufw allow 4001/tcp
Running out of disk space

Docker build cache builds up over time. Clean it monthly:

docker builder prune -af
docker image prune -af
Reset everything and start fresh (⚠️ deletes all data)
⚠️
This deletes all data permanently. Back up first if needed.
docker compose down -v
docker compose up -d

Quick Reference

URLs

AddressWhat it is
http://<IP>:3000Web application (main app)
http://<IP>:4001/api/v1REST API
http://<IP>:4001/api/docsAPI documentation (Swagger)
http://<IP>:4001/api/v1/healthHealth check
http://<IP>:8080Admin panel / QR code

Default login

FieldValue
Usernamesuperadmin
PasswordSuperAdmin — change immediately after first login

Common commands

# Check all containers are running
docker ps

# View backend logs
docker logs svm-server-backend --tail 50

# Stop everything
docker compose down

# Start everything
docker compose up -d

# Update to latest version
docker compose pull && docker compose up -d

# Clean up disk space
docker builder prune -af && docker image prune -af

Key files

FileWhat it does
.envAll your configuration and secrets — generated by setup
docker-compose.ymlDefines all the containers
backup.sh / restore.shDatabase backup and restore
setup.ps1 / setup.shInitial setup wizard
Need more help? Contact support@seavesselmanager.com  ·  Back to Wiki  ·  seavesselmanager.com