Requirements
Fountain is built on Kirby CMS 5 and adds Python-based font processing capabilities. This page details all system requirements for running Fountain in production or development environments.
Kirby CMS 5 Requirements
PHP Version
Fountain requires one of the following PHP versions:
- PHP 8.4 (used in Docker setup)
- PHP 8.3 (recommended by Kirby)
- PHP 8.2 (minimum)
Check your PHP version:
php -v
Required PHP Extensions
Core extensions (typically included by default):
ctype
- Character type checkingcurl
- URL transfer librarydom
- DOM document handlingfilter
- Data filteringhash
- Hashing functionsiconv
- Character set conversionjson
- JSON processinglibxml
- XML librarymbstring
- Multibyte string handlingopenssl
- SSL/TLS supportSimpleXML
- XML parsing
Image processing (choose one):
gd
- GD Graphics Library (used in Docker setup)imagick
- ImageMagick extension (also included in Docker setup)
Additional required extensions:
zip
- ZIP archive handling (for font file processing)sqlite3
- SQLite database support (for font metadata storage)
Check installed extensions:
php -m
Recommended PHP Extensions
exif
- Read EXIF metadata from imagesfileinfo
- MIME type detectionintl
- Internationalization support
Fountain-Specific Requirements
Python Environment
- Python 3.8 or higher (Python 3.x included in Docker)
- pip - Python package installer
Check your Python version:
python3 --version
pip3 --version
Python Packages
- python-fontbro 0.25.0 - Font metadata extraction and processing
The Docker setup installs this in a Python virtual environment at /opt/venv
.
Install manually:
pip install python-fontbro==0.25.0
Or for the latest version:
pip install python-fontbro
Web Server Requirements
Apache (Recommended)
The Dockerfile uses PHP 8.4-Apache with the following modules enabled:
mod_rewrite
- URL rewriting (required for Kirby)mod_headers
- HTTP header controlmod_mime
- MIME type handling
Apache configuration must support:
.htaccess
filesAllowOverride All
directive
Nginx
Nginx requires manual configuration for URL rewriting. See Kirby's Nginx cookbook recipe for configuration examples.
Other Servers
Caddy and other POSIX-compatible servers work with proper URL rewriting configuration.
Docker Environment Specifications
The included Dockerfile (/Users/andnym/Git/kirby-fountain/Dockerfile
) provides a complete environment with:
Base Image
php:8.4-apache
(Debian-based)
System Packages
sqlite3
- SQLite command-line toolslibfreetype6-dev
,libjpeg62-turbo-dev
,libpng-dev
- Image processing librariespython3
,python3-venv
,python3-pip
,python3-dev
- Python environmentbuild-essential
,libc-dev
- Build tools for Python packageslibmagickwand-dev
- ImageMagick development fileslibzip-dev
,zip
- ZIP supportlibglib2.0-dev
- GLib development files
PHP Configuration
- GD extension configured with FreeType and JPEG support
- Zip extension enabled
- ImageMagick (imagick) extension installed via PECL
- Custom PHP settings via
custom-php.ini
Python Configuration
- Virtual environment at
/opt/venv
- python-fontbro 0.25.0 installed in venv
- PATH configured to use venv binaries
Directory Structure
/var/www/html/storage
- Storage directory/var/www/html/content
- Content directory/var/www/html/media
- Media directory- Proper permissions (755) and ownership (www-data)
Browser Requirements (for Panel)
Desktop Browsers
- Firefox 110+
- Chrome 106+
- Safari 16+
- Edge 106+
- Opera 94+
Mobile Browsers
- Mobile Safari 16+
- Android Browser 126+
- Chrome for Android 126+
Development vs. Production
Development Environment
- PHP built-in server acceptable:
php -S localhost:8000
- Docker with OrbStack or Docker Desktop
- Local Python installation
Production Environment
- Dedicated Apache or Nginx server
- PHP-FPM recommended for Nginx
- Proper SSL/TLS configuration
- Python virtual environment recommended
- Sufficient disk space for font storage
- Regular database backups (SQLite)
Checking Your Environment
Verify PHP Requirements
# Check PHP version
php -v
# List installed extensions
php -m
# Check for specific extensions
php -m | grep -E 'gd|zip|sqlite3'
Verify Python Requirements
# Check Python version
python3 --version
# Check if fontbro is installed
pip list | grep fontbro
# Test fontbro import
python3 -c "import fontbro; print(fontbro.__version__)"
Verify Web Server
# Apache: Check if mod_rewrite is enabled
apache2ctl -M | grep rewrite
# Check Apache version
apache2 -v
Troubleshooting
PHP version incompatible:
- Kirby 5 requires PHP 8.2+. Update your PHP installation or use the Docker setup.
Missing PHP extensions:
- Install via package manager:
apt-get install php-{extension}
(Debian/Ubuntu) - Or:
yum install php-{extension}
(RHEL/CentOS) - Enable in php.ini if installed but not active
Python fontbro import fails:
- Ensure Python development headers are installed
- Install build tools:
apt-get install python3-dev build-essential
- Try installing in a virtual environment
Docker build fails:
- Ensure Docker is up to date
- Check available disk space
- Review Dockerfile for any custom modifications