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
.
- Contrib Packages required for extension
- 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
- Download/Copy
synaccess-cloud_<version>_x86_64.rpm
to your RHEL 9 server. - 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.
-
Install PostgreSQL 14 (ensure it’s running).
- For instance, via the PGDG repo on RHEL or your distro’s package manager elsewhere.
-
Install Contrib Extensions (Required for UUID):
- RHEL:
sudo dnf install -y postgresql14-contrib
- Adjust the command for your distribution if needed.
- RHEL:
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
)
.env.example
)- Go to
/opt/synaccess-cloud
:cd /opt/synaccess-cloud
- Copy
.env.example
to.env
:cp .env.example .env
- Edit
.env
(using nano/vi):nano .env
- Set DB connection string:
Adjust accordingly.
DB_CONNECTION_STRING="postgresql://synuser:synpassword:5432/syn1"
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.
- Ensure firewalld is running:
sudo systemctl enable --now firewalld
- Open HTTP (port 80):
sudo firewall-cmd --permanent --add-service=http
- Open HTTPS (port 443):
sudo firewall-cmd --permanent --add-service=https
- (Optional) Open custom ports:
Replace
sudo firewall-cmd --permanent --add-port=3000/tcp
3000
with your desired port. - Reload the firewall:
sudo firewall-cmd --reload
- Verify ports are open:
You should see
sudo firewall-cmd --list-all
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
- Configure your Synaccess PDUs to point to this server.
- (Optional) Set up SMTP for password reset emails.
- (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
- Install
.rpm
& set up PostgreSQL 14+ (plus-contrib
ifuuid-ossp
is needed). - Edit
.env
, then restart to load changes. - Open
http://<server-ip>:3000
to finish setup. - 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:
- Optional Backup:
pg_dump
or similar. - Install new
.rpm
:sudo dnf localinstall synaccess-cloud_<new_version>_x86_64.rpm
- Check Logs:
journalctl -u syn-cloud -f
- Validate via
http://<server-ip>:3000
.
Your .env
and database persist through upgrades.
Updated 15 days ago