Docs Installation

Installation Guide

Step-by-step guides for every deployment method.

Option 1: Docker Deployment (Recommended)

Best for VPS and dedicated servers. Uses PostgreSQL for maximum performance.

Prerequisites

  • Docker Engine 20+ and Docker Compose
  • 2 GB RAM minimum
  • 1 GB disk space
  • Linux VPS (Ubuntu 20.04+, Debian 11+, CentOS 8+)

Steps

# 1. Clone the release repository
git clone https://github.com/nullsam/swiftpos-release.git
cd swiftpos-release

# 2. Download swiftpos-latest.tar.gz from GitHub Releases
# https://github.com/nullsam/swiftpos-release/releases
# Place it in the swiftpos-release directory

# 3. Run the setup script
chmod +x setup.sh
./setup.sh

# 4. Open in browser
# http://your-server-ip:3000

The setup script will check Docker, load the image, start PostgreSQL and SwiftPOS, and display connection instructions.

Manual setup (alternative)

# Load the Docker image manually
docker load -i swiftpos-latest.tar.gz
docker tag ghcr.io/nullsam/swiftpos:latest swiftpos:latest

# Start the system
docker compose up -d

Option 2: Standalone with SQLite

For shared hosting, local installations, or environments without Docker.

Prerequisites

  • Node.js 18+ (20 recommended)
  • 512 MB RAM minimum

Steps

# 1. Download the latest release
# Visit: /download for the latest version

# 2. Extract and configure
cd swiftpos
cp .env.example .env

# 3. Edit .env for SQLite
# Set: DATABASE_URL="file:./swiftpos.db"

# 4. Initialize the database
npm run db:setup:sqlite

# 5. Start the server
npm start

# App runs on http://localhost:3000

Option 3: Shared Hosting (cPanel)

If your hosting provider supports Node.js applications.

  1. Upload the SwiftPOS files to your hosting account
  2. Set up a Node.js application in cPanel (Node.js 18+)
  3. Set the application root to the SwiftPOS directory
  4. Set the startup file to node_modules/.bin/next start
  5. Add environment variables in the Node.js app config
  6. Run npm run db:setup:sqlite via SSH or terminal
  7. Start the application

Environment Variables

Configure these in your .env file or docker-compose.yml.

VariableRequiredDescription
DATABASE_URLYesPostgreSQL or SQLite connection string
JWT_SECRETYesSecret key for JWT tokens (change for production)
LICENSE_SECRETNoHMAC secret for license verification
LICENSE_API_ENDPOINTNoLicense server URL for activation
PORTNoServer port (default: 3000)