Skip to content

Requirements for Server-Mode

General Information

Notice

This is the requirement area to install suitefish on server-level. Please read the instructions carefully if you choose this method.

You can install the CMS in two ways: Root-Level Installation gives you full server control and access to advanced features, but requires a dedicated VPS or root server. Website Mode runs the CMS as a standard website, making it easy to deploy on shared or managed hosting without root access. Choose the method that best fits your hosting environment and needs.

For root-level installation, you’ll set up the CMS as a server backend with full administrative control. This approach is ideal for managing the entire server, running background services, or using advanced features like Docker management. It requires a dedicated VPS or root server and unlocks system-level modules not available in standard installs. Choose this method if you need maximum flexibility and control over your server and CMS deployment.


Requirements Checklist

This checklist helps you verify that all requirements are met for installing suitefish-cms as a root-level instance.

  • The root-level version of this software is only supported on Ubuntu 22 or later.
  • Apache2 version 2.4 or higher is required.
    • Nginx untested, NOT expected to work, but can be used as reverse proxy.
  • MySQL Version 5.7 or higher required. MySQL 8.0+ recommended for optimal performance.
  • PHP version 8.4 or 8.3 required.
    • Do not use versions outside this range, as they are not supported.
    • The software is primarily developed and tested for PHP 8.4, and official support is focused on this version.
    • If you are using PHP 8.3, ensure you substitute package names accordingly (e.g., use php8.3- instead of php8.4-).
  • A minimum of 5 GB web space is required; at least 10 GB is recommended, depending on your use case.
  • You must be able to configure cron jobs on your web server or through your hosting provider.
  • Confirm that the required Linux Packages are available as outlined in the "Linux Packages" section.
  • Verify that the necessary Apache2 modules are installed as described in the "Apache2 Modules" section.
  • Confirm that the required PHP modules are available as outlined in the "PHP Modules" section.
  • Root access to the server is required to install suitefish-cms.

Linux Packages

You should have the following packages installed to your system.

Package Name Purpose (Short Description)
apache2 Web server for serving websites and web content.
software-properties-common Manage software sources and repositories.
git Distributed version control system for code management.
gcc GNU Compiler Collection for compiling source code.
make Build automation tool for compiling and managing projects.
autoconf Tool for generating configuration scripts for building code.
pkg-config Manage and query installed libraries for compiling software.
imagemagick Toolset for image manipulation and conversion.
openssl Toolkit for SSL/TLS encryption and cryptography.
redis In-memory data structure store, often used as a cache.
curl Command-line tool for transferring data via URLs.
cron Time-based job scheduler for running tasks automatically.
tzdata Time zone and daylight-saving time data.
supervisor Process control system for managing processes.
zip Compression and archiving utility.
htop Interactive process viewer and system monitor.
unzip Tool for extracting compressed zip archives.
tmux Terminal multiplexer for managing multiple terminal sessions.
redis-server Redis server daemon.
redis-tools Command-line tools for interacting with Redis.
mariadb-server Open-source relational database server (MySQL-compatible).
mariadb-client Client utilities for MariaDB database.
wget Command-line tool for downloading files from the web.
iputils-ping Utility for testing network connectivity (ping command).
apache2-suexec-custom Apache module for executing CGI scripts as different users.
jq Command-line JSON processor for parsing and filtering JSON.
fail2ban Recommended for security purposes.
libc-dev Standard C library development files (headers, etc.).
libonig-dev Oniguruma regular expressions library development files.
libpng-dev Development files for PNG image support.
zlib1g-dev Compression library development files (zlib).
libcurl4-openssl-dev cURL library development files with OpenSSL support.
libicu-dev International Components for Unicode (i18n support) development.
libxml2-dev XML parsing library development files.
libzip-dev Library for reading, creating, and modifying zip archives (dev).
libsodium-dev Modern, easy-to-use crypto library development files.
libmemcached-dev Development files for Memcached client library.
libssl-dev SSL/TLS cryptography library development files.
libtidy-dev HTML syntax checker and reformatter library (dev files).
libkrb5-dev Kerberos authentication protocol development files.
libssh2-1-dev SSH2 protocol library development files.
libc-client2007e-dev IMAP client library development files.
libbz2-dev bzip2 compression library development files.
libmagickwand-dev MagickWand API for ImageMagick (image processing, dev files).
libldap2-dev LDAP directory access library development files.
libfreetype-dev FreeType font rendering library development files.
libfreetype6-dev (Same as above; alternate package name/version).
libjpeg-dev JPEG image library development files.
jailkit Jailkit Package.
php8.4 PHP8.4 Package.

Apache2 Modules

The following Apache2 modules should be installed and enabled to ensure full compatibility with suitefish-cms. These modules are recommended for optimal operation at the server level, especially if you plan to use features such as Docker integration or reverse proxy extensions. If you do not require these advanced features, some modules may not be strictly necessary, but having as many as possible available will help ensure all suitefish-cms functionalities work as intended.

Module Name Purpose (Short Description) Action
ssl Enables HTTPS (SSL/TLS) support (optional) Enable
rewrite URL rewriting and redirection Enable
headers Manipulate HTTP headers (optional) Enable
cgi Support for running CGI scripts (optional) Enable
cgid CGI support using a daemon (for threaded MPMs) (optional) Enable
remoteip Replace client IP with value from proxy/load balancer (optional) Enable
deflate Compress content before sending to clients (gzip) (optional) Enable
http2 HTTP/2 protocol support (optional) Enable
proxy Core proxy module (enables basic proxy functionality) (optional) Enable
proxy_http Support for proxying HTTP requests (optional) Enable
proxy_ftp Support for proxying FTP requests (optional) Enable
proxy_fcgi Support for proxying FastCGI requests (e.g., PHP-FPM) (optional) Enable
proxy_balancer Load balancing for proxied connections (optional) Enable
suexec Run CGI scripts as different users (optional) Enable
php8.4 PHP 8.4 module for Apache (mod_php) (optional) Disable
mpm_prefork Non-threaded, pre-forking web server mode (optional) Disable
mpm_event Event-driven, threaded web server mode (optional) Enable

PHP Modules

You should have the following PHP Modules installed and activated.

Package Name Purpose (Short Description) Included in PHP 8.4 Core?
php8.4-cli Command-line interface for PHP scripts Yes
php8.4-mysql MySQL database driver (mysql_* functions), this package may be an alias of php8.4_mysqli. No
php8.4-mysqli Improved MySQL driver (mysqli_* functions), this package may be included in php8.4-mysql. No
php8.4-xml XML parsing support Yes
php8.4-mbstring Multibyte string support Yes
php8.4-curl cURL library support No
php8.4-zip ZIP archive support Yes
php8.4-intl Internationalization functions Yes
php8.4-common Common PHP files Yes
php8.4-soap SOAP protocol support (optional) No
php8.4-opcache Opcode caching for performance (optional) Yes
php8.4-gd Image processing (GD library) No
php8.4-bcmath Arbitrary precision math Yes
php8.4-bz2 bzip2 compression support (optional) No
php8.4-imap IMAP email protocol support (optional) No
php8.4-tidy HTML tidy library support (optional) No
php8.4-ssh2 SSH2 protocol support (optional) No
php8.4-imagick ImageMagick image processing (optional) No
php8.4-sqlite3 SQLite3 database support (optional) Yes
php8.4-ldap LDAP protocol support (optional) No
php8.4-memcached Memcached caching support (optional) No
php8.4-redis Redis caching support (optional) No
php8.4-fpm FastCGI Process Manager (optional) Yes

Dependency Script

You can use the install dependencies script in the repositories _scripts folder!

The script will execute the following operations:

  • Install required Linux Packages
  • Install PHP8.4
  • Install required PHP Packages
curl -o ./suitefish.sh https://raw.githubusercontent.com/bugfishtm/suitefish-cms/refs/heads/main/_scripts/suitefish.sh
chmod u+x ./suitefish.sh  
sh ./suitefish.sh install-dependencies