Home

Self Hosted Central Management Setup (Red Hat)

Synaccess Cloud Installation & Setup (RHEL 9)

System Requirements

  • Operating System: Red Had Enterprise Linux 9.4 x64 Gen2
  • Hardware: At least 1 vCPU / 2GB RAM (supports up to ~1000 devices)
  • Database: PostgreSQL v14.11 (or compatible)
    • Contrib Packages required for extension uuid-ossp.
  • Networking:
    • Application Ports: 80/443 recommended (or custom HTTP/HTTPS).
    • TLS: Strongly recommended (HTTPS).
    • Device Connectivity: Ensure PDUs can reach this server.
    • IP Whitelisting: If using a firewall, allow inbound from your PDUs.
    • SMTP (Optional): For password reset emails and notifications.

1. Install the Synaccess Cloud RPM

  1. Download/Copy synaccess-cloud_<version>_x86_64.rpm to your RHEL 9 server.
  2. Install:
    sudo rpm -i synaccess-cloud_<version>_x86_64.rpm
    

    Replace <version> with the actual version number (e.g. 1.2.3).

What this does:

  • Places the executable in /opt/synaccess-cloud/syn-cloud
  • Installs a systemd service named syn-cloud
  • Automatically starts the service on port 3000 at http://localhost:3000

You should see it running. If you haven’t configured .env yet, logs may show DB connection errors—this is normal initially.



2. Prepare PostgreSQL 14.11 on RHEL 9.4

Synaccess Cloud requires PostgreSQL 14 (or newer 14.x releases). You can either install PostgreSQL on the same server or use an external PostgreSQL host.

  1. Install PostgreSQL 14 (ensure it’s running).

    • For instance, via the PGDG repo on RHEL or your distro’s package manager elsewhere.
  2. Install Contrib Extensions (Required for UUID):

    • RHEL:
      sudo dnf install -y postgresql14-contrib
      
    • Adjust the command for your distribution if needed.

Create a Database & User

CREATE DATABASE syn1;
CREATE USER synuser WITH ENCRYPTED PASSWORD 'synpassword';
GRANT ALL PRIVILEGES ON DATABASE syn1 TO synuser;

Connection String

You’ll reference this database from Syn Cloud using a connection string. For the above example, it looks like:

postgresql://synuser:synpassword:5432/syn1
  • Username: synuser
  • Password: synpassword
  • Host: localhost (or the IP/hostname if remote)
  • Port: 5432 (default PostgreSQL port)
  • Database: syn1

Set this DB_CONNECTION_STRING in your .env file (/opt/synaccess-cloud/.env)


3. Edit Your Configuration (.env.example)

  1. Go to /opt/synaccess-cloud:
    cd /opt/synaccess-cloud
    
  2. Copy .env.example to .env:
    cp .env.example .env
    
  3. Edit .env (using nano/vi):
    nano .env
    
  4. Set DB connection string:
    DB_CONNECTION_STRING="postgresql://synuser:synpassword:5432/syn1"
    
    Adjust accordingly.

Optional Variables

  • PORT: Defaults to 3000
  • TLS_CERT/TLS_KEY: Preconfigure TLS cert and key for HTTPS (configurable in the GUI as well)
  • CONNECTION_SECURITY: Enforce TLS (HTTPS) by setting this variable to: tls

IMPORTANT: Variables set in the .env will override the values set in the deployment settings in the Synaccess Cloud GUI. Changing any values in .env will require restarting the syn-cloud process. Users are encouraged to set these settings via the portal GUI.


4. Enable HTTP/HTTPS ports

Typically, HTTP uses port 80 and HTTPS uses port 443; if you plan to use different ports, make sure to open them in the firewall. We strongly recommend using HTTPS for secure communication. NOTE By default, Synaccess Cloud runs on port 3000.

  1. Ensure firewalld is running:
    sudo systemctl enable --now firewalld
    
  2. Open HTTP (port 80):
    sudo firewall-cmd --permanent --add-service=http
    
  3. Open HTTPS (port 443):
    sudo firewall-cmd --permanent --add-service=https
    
  4. (Optional) Open custom ports:
    sudo firewall-cmd --permanent --add-port=3000/tcp
    
    Replace 3000 with your desired port.
  5. Reload the firewall:
    sudo firewall-cmd --reload
    
  6. Verify ports are open:
    sudo firewall-cmd --list-all
    
    You should see services: http https in the output.

5. Restart Syn Cloud

After editing .env or other deployment settings on the portal GUI:

sudo systemctl restart syn-cloud

6. Access the Web App

  • Browse to http://<server-ip>:3000.
  • You’ll be guided through initial setup, including migrations and creating a super admin.
  • The super admin can manage users, configure SMTP, SSL, etc.

If you tweak port/TLS in .env, restart the syn-cloud process for changes to apply.


6. Next Steps & Common Commands

  1. Configure your Synaccess PDUs to point to this server.
  2. (Optional) Set up SMTP for password reset emails.
  3. (Optional) Add SSL/TLS (see below).

Service Management (systemd):

sudo systemctl stop syn-cloud
sudo systemctl start syn-cloud
sudo journalctl -u syn-cloud -f

Managing the Super Admin & Deployment Settings

After first run, you’ll create a super admin user:

  • Manages additional users
  • Adjusts webserver settings (port, SSL, SMTP)

Restart (systemctl restart syn-cloud) after any major config change.


Summary

  1. Install .rpm & set up PostgreSQL 14+ (plus -contrib if uuid-ossp is needed).
  2. Edit .env, then restart to load changes.
  3. Open http://<server-ip>:3000 to finish setup.
  4. Restart after any major changes.

You now have a functioning Synaccess Cloud on RHEL 9, with the uuid-ossp extension available if needed.


Optional: Docker Compose for PostgreSQL

version: "3.8"
services:
  db:
    image: postgres:14.11-alpine
    container_name: syn-cloud-db
    restart: unless-stopped
    environment:
      - POSTGRES_USER=synuser
      - POSTGRES_PASSWORD=synpassword
      - POSTGRES_DB=syn1
    volumes:
      - pgdata:/var/lib/postgresql/data
    ports:
      - "5432:5432"

volumes:
  pgdata:
docker-compose up -d

Then .env:

DB_CONNECTION_STRING="postgresql://synuser:[email protected]:5432/syn1"

Restart Syn Cloud.


Optional: SSL Certs

Install Certbot:

sudo dnf install certbot

Obtain cert:

sudo certbot certonly --standalone -d your-domain.com

Then either embed in .env or set up a reverse proxy like Nginx.


Version Upgrades

When a new RPM is released:

  1. Optional Backup: pg_dump or similar.
  2. Install new .rpm:
    sudo dnf localinstall synaccess-cloud_<new_version>_x86_64.rpm
    
  3. Check Logs:
    journalctl -u syn-cloud -f
    
  4. Validate via http://<server-ip>:3000.

Your .env and database persist through upgrades.