Installation Guide
Get SovereignCMS up and running in minutes. Choose the installation method that works best for you.
Quick Install (npx)
One command to download, configure, and set up everything. Perfect for most users.
Jump to guideManual Install (Git)
Clone the repository and configure manually. For developers who want full control.
Jump to guideHosting Providers
Deploy on popular hosting platforms with one-click options coming soon.
Learn moreRequirements
Before installing SovereignCMS, make sure your system meets these requirements:
For production sites with high traffic, Redis is recommended for session storage and caching. SovereignCMS works without it, using MySQL for sessions by default.
Setting Up MySQL (It's Easier Than You Think!)
MySQL might sound technical, but it's included free with most hosting and takes just a few clicks to set up locally.
On Shared Hosting (Hostinger, Bluehost, SiteGround, etc.)
Good news: MySQL is already installed and free! Just create a database:
-
Log into cPanel
Find "MySQL Databases" in your hosting control panel.
-
Create a Database
Enter a name like "mysite_cms" and click Create.
-
Create a User
Create a database user with a strong password.
-
Assign User to Database
Give the user "All Privileges" on your database. Done!
That's it - no terminal commands needed. Your host handles all the server setup.
On Your Computer (Local Development)
These free tools bundle MySQL with a one-click installer - no configuration needed:
Just download, install, and click "Start" - MySQL runs automatically. Default credentials are usually:
# Local development defaults (Laragon/MAMP/XAMPP)
Host: localhost
User: root
Password: (empty or 'root')
On a VPS (DigitalOcean, Vultr, Linode, etc.)
One command installs MySQL:
# Ubuntu/Debian
sudo apt update && sudo apt install mysql-server -y
sudo mysql_secure_installation
The secure installation script will guide you through setting a root password and securing your database.
MySQL is the industry standard for web applications. It's battle-tested, well-documented, and included free with virtually every hosting provider. Your data is stored securely and can handle millions of users.
Quick Install with npx
The fastest way to get started. This single command downloads SovereignCMS, prompts you for configuration, and sets everything up.
SovereignCMS is currently in early access. During this period, use the --branch testing flag to get the latest version. Once we reach stable release, the master branch will become the default and you won't need the flag anymore.
Basic Installation
npx create-sovereigncms my-site --branch testing
my-site is the folder name that will be created in the directory you run the command from. You can name it anything you like (e.g., blog, community, my-website). The installer will guide you through:
-
Database Configuration
Enter your MySQL host, port, username, password, and database name.
-
Server Port
Choose which port the CMS should run on (default: 3000).
-
Automatic Setup
Dependencies are installed and configuration files are created.
Installation with Options
You can skip the prompts by providing options directly:
npx create-sovereigncms my-site --branch testing --port 3001 --db-name mysite_db
Available Options
| Option | Description | Default |
|---|---|---|
-p, --port |
Port for the CMS server | 3000 |
-b, --branch |
Git branch to install from (use testing during early access) |
master |
--db-host |
MySQL server hostname | localhost |
--db-port |
MySQL server port | 3306 |
--db-user |
MySQL username | root |
--db-pass |
MySQL password | (prompted) |
--db-name |
Database name to create/use | (project name) |
--skip-install |
Skip npm install step | false |
--skip-start |
Don't start server after setup | false |
-y, --yes |
Skip all prompts, use defaults | false |
After Stable Release
Once SovereignCMS reaches stable release, you can install without the branch flag:
npx create-sovereigncms my-site
This will automatically use the stable master branch. We'll update this documentation when stable release is available.
Manual Installation
For developers who prefer full control over the installation process, or when npx isn't available.
Step 1: Clone the Repository
git clone -b testing https://github.com/SovereignCMS-stack/SovereignCMS.git my-site
cd my-site
During early access, use the testing branch. After stable release, you can omit -b testing.
Step 2: Install Dependencies
npm install
Step 3: Create Configuration File
Copy the example environment file and edit it with your settings:
cp .env.example .env
nano .env # or use your preferred editor
Step 4: Configure Environment Variables
Edit the .env file with your database credentials and other settings:
# Server Configuration
PORT=3000
NODE_ENV=production
# Database Configuration
DB_HOST=localhost
DB_PORT=3306
DB_USER=your_mysql_user
DB_PASSWORD=your_mysql_password
DB_NAME=sovereigncms
# Session Secret (generate a random string)
SESSION_SECRET=your-random-secret-key-here
# JWT Secret (for API tokens)
JWT_SECRET=another-random-secret-key
JWT_EXPIRES_IN=7d
Use this command to generate secure random strings for SESSION_SECRET and JWT_SECRET:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
Step 5: Start the Server
npm start
Step 6: Complete Browser Setup
Open your browser and navigate to http://localhost:3000 (or your configured port). The setup wizard will guide you through:
- Creating your admin account
- Configuring site name and URL
- Setting up email delivery
- Running database migrations
Hosting Options
SovereignCMS can be deployed on any hosting platform that supports Node.js 18+ and MySQL.
Recommended Hosting Providers
Running Multiple Sites
You can run multiple SovereignCMS instances on the same server by:
- Installing each site in a different directory
- Configuring each site to use a different port (3000, 3001, 3002, etc.)
- Using Nginx as a reverse proxy to route domains to the correct port
Each domain points to a different internal port, allowing multiple CMS instances on one server.
After Installation
Once installed, here's what you can do: