Getting Started with SynaptikCMS


Installation

The installation is hassle-free.

  1. Extract the ZIP archive
  2. Upload the files to your server
  3. Visit yourdomain.com/install.php to complete the initial setup (site name, language, admin password, admin folder name).

It is recommended to change your website's /admin folder name for added security.


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 PHP process (www-data or apache):

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: 755 for directories, 644 for files.


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/