Skip to content

Installation ​

Server deployment and software installation guide.

System Requirements ​

Server Requirements ​

ComponentMinimumRecommended
CPU4 cores8+ cores
RAM8 GB16+ GB
Storage50 GB100+ GB SSD
OSWindows Server 2019+ or LinuxUbuntu 22.04+ or Windows Server 2022

Software Prerequisites ​

The following software must be installed before proceeding:

SoftwareVersionPurpose
Go1.24+Backend API server
PostgreSQL15+Primary database
Valkey or Redis7+Session storage and caching
Node.js18+Frontend build toolchain
npm9+Frontend package management

Optional Software ​

SoftwarePurpose
AirHot reload for Go during development (go install github.com/air-verse/air@latest)
MailpitLocal email testing server for development
Caddy or NginxReverse proxy for production

Network Requirements ​

  • HTTPS certificate (required for production)
  • Firewall rules for web (443) and database (5432) ports
  • DNS configuration for your institution's domain

Backend Installation ​

Installation Steps ​

  1. Clone or extract the application

    bash
    cd /opt/sis
    git clone <repository-url> .
  2. Install Go dependencies

    bash
    cd sis_backendgo
    go mod download
  3. Configure environment

  4. Set up Valkey/Redis

    Valkey (or Redis) is required for session management. Install and start the service:

    bash
    # Ubuntu/Debian (Valkey)
    sudo apt install valkey-server
    sudo systemctl enable valkey-server
    sudo systemctl start valkey-server
    
    # Or using Redis
    sudo apt install redis-server
    sudo systemctl enable redis-server
    sudo systemctl start redis-server

    On Windows, use the official Redis/Valkey installer or run via Docker:

    bash
    docker run -d --name valkey -p 6379:6379 valkey/valkey:latest
  5. Initialize the database

  6. Build the application

    bash
    cd sis_backendgo
    go build -o api ./cmd/api/main.go
  7. Test the installation

    bash
    ./api
    # Check http://localhost:8000/health

Frontend Installation ​

Installation Steps ​

  1. Navigate to the frontend directory

    bash
    cd sis_frontend
  2. Install dependencies

    bash
    npm install
  3. Build for production

    bash
    npm run build
  4. Deploy build files

    • Copy dist/ contents to your web server
    • Configure your reverse proxy (Nginx, Caddy, or Apache)

Web Server Configuration ​

Nginx Example ​

nginx
server {
    listen 443 ssl;
    server_name sis.youruniversity.edu;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    # Frontend
    location / {
        root /var/www/sis/dist;
        try_files $uri $uri/ /index.html;
    }

    # API proxy
    location /api/ {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # Photo uploads
    location /photos/ {
        alias /opt/sis/sis_backendgo/photos/;
    }
}

Caddy Example ​

sis.youruniversity.edu {
    handle /api/* {
        reverse_proxy localhost:8000
    }

    handle /photos/* {
        file_server
        root * /opt/sis/sis_backendgo
    }

    handle {
        root * /var/www/sis/dist
        try_files {path} /index.html
        file_server
    }
}

Running as a Service ​

Linux (systemd) ​

Create /etc/systemd/system/sis-api.service:

ini
[Unit]
Description=SIS API Server
After=network.target postgresql.service valkey-server.service

[Service]
Type=simple
User=sis
WorkingDirectory=/opt/sis/sis_backendgo
ExecStart=/opt/sis/sis_backendgo/api
Restart=always
EnvironmentFile=/opt/sis/sis_backendgo/.env

[Install]
WantedBy=multi-user.target

Enable and start:

bash
systemctl enable sis-api
systemctl start sis-api

Windows Service ​

Use NSSM or similar to run the Go binary as a Windows service.

Verification ​

After installation, verify each component:

  1. Valkey/Redis - Confirm the session store is running: valkey-cli ping (should return PONG)
  2. PostgreSQL - Confirm the database is accessible: pg_isready -h localhost -p 5432
  3. Backend API - Check the health endpoint: GET http://localhost:8000/health
  4. Frontend - Access the application URL and confirm the login page loads
  5. Login - Log in with admin credentials and verify all sections load correctly

Next Steps ​

Student Information System Documentation