⌘K

Getting Started

Install SynaptikCMS in 3 easy steps, less than one minute to set up your new site. No database, no complex configuration.

Installation

SynaptikCMS requires no database setup, no complex configuration, and no command-line expertise. Simply upload the files to your web server, and you're ready to go.

  1. Download the latest version and extract the ZIP archive
  2. Upload the files to your server
  3. Visit yourdomain.com/install.php and complete the setup wizard (site name, site description, site language, admin password, admin folder name)
  4. Go ahead and start creating your content!

⚠️

Always run the installer before using SynaptikCMS.

install.php does more than configure your site, it sets up critical security protections:

  • Writes .htaccess rules to block direct access to /data/, /bckps/, and /private/
  • Blocks PHP execution inside /files/ (your media folder)
  • Generates your admin credentials file

Skipping the installer leaves your data folders unprotected and your admin panel inaccessible. After installation, delete install.php from your server.


Server requirements

Web server

RequirementMinimumNotes
Web serverApache 2.2+Nginx works but requires manual config — see below
PHP7.4Arrow functions (fn() =>) used in the data layer
DatabaseNone required. Flat-file JSON architecture

Required PHP extensions

ExtensionUsed for
jsonAll read/write operations on .json data files
mbstringSearch engine, contact form validation, UTF-8 string ops
hashHMAC tokens (contact form CSRF, theme preview signing)
sessionAdmin authentication
pcreSlug sanitization, HTML purification, content parsing
filterEmail validation in the contact form
fileinfoMIME type detection on file uploads

Required for image features

ExtensionUsed for
gdImage resizing, thumbnails, JPEG/PNG/GIF optimisation
GD + JPEG support.jpg / .jpeg uploads
GD + PNG support.png uploads
GD + GIF support.gif uploads

ℹ️

GD is bundled with most PHP packages. Verify JPEG and PNG support are compiled in via phpinfo() → GD section.

Optional extensions

ExtensionUsed for
GD + WebP supportWebP conversion via imagewebp(). Gracefully disabled if absent
zip / ZipArchiveTheme upload via ZIP archive. The theme manager warns if missing

Browser (admin panel)

BrowserMinimum version
Chrome / Edge80+
Firefox75+
Safari13.1+

Internet Explorer is not supported.


Filesystem permissions

The following paths must be writable by the user under which your web server runs (typically www-data on Debian/Ubuntu, apache on CentOS, or your FTP account user on shared hosting):

PathRequired for
/ (root)Writing settings.json, install.lock during setup
/data/All content read/write
/data/articles/Article JSON files
/data/pages/Page JSON files
/data/projects/Project JSON files
/files/Media uploads
/bckps/Database backup exports, CSS edits backups
/private/Contact rate-limiting, CSRF secret
/admin/Credential file write, draft autosave
/admin/drafts/Autosave draft files
/theme/Theme upload (ZIP import)

Recommended:

  • Directories: 755
  • PHP files: 604 (recommended on shared hosting) or 644
  • Static assets (CSS, JS, images): 644
  • Data directories (/data/, /private/, /bckps/): 750

Apache configuration

Required modules

ModuleWhy
mod_rewriteAll front-end URLs (/article/my-slug/) route through index.php
mod_authz_core.htaccess access control on /data/ and /bckps/

Required directive

AllowOverride All

Must be set on the document root in your VirtualHost or httpd.conf. Without it, .htaccess files are silently ignored and URL rewriting stops working.

Root .htaccess rewrite block

RewriteEngine On

# If installed in a subdirectory, uncomment and set this:
# RewriteBase /your-subdir/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]

Nginx (not officially supported)

The CMS works on Nginx but .htaccess has no effect. Replicate the rules manually:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

location ~ ^/(data|bckps)/ {
    deny all;
}

location ~ (settings\.json|data\.json|admin-credentials\.php)$ {
    deny all;
}

Pre-flight checklist

[ ] Apache 2.2+ with mod_rewrite enabled
[ ] AllowOverride All set on the document root
[ ] PHP 7.4 or higher
[ ] PHP extensions: json, mbstring, hash, session, pcre, filter, fileinfo
[ ] PHP GD with JPEG and PNG support
[ ] ZipArchive (recommended — required for theme upload)
[ ] Root .htaccess in place and not overridden
[ ] Write permissions on: /, /data/, /files/, /bckps/, /admin/, /theme/