Requirements
This guide outlines all requirements for successfully running UNA CMS, including server specifications, software dependencies, and additional services needed for optimal operation.
Hosting Requirements
Server Requirements
- Operating System: Linux-based OS (Ubuntu 20.04 LTS or newer recommended)
- Processor: 2+ CPU cores (4+ recommended for medium to large communities)
- Memory: Minimum 2GB RAM (4GB+ recommended for medium to large communities)
- Storage: Minimum 20GB (SSD recommended for better performance)
- Bandwidth: Depends on expected traffic and media usage (minimum 1TB/month recommended)
PHP Requirements
- PHP Version: 8.1 or higher
- PHP Configuration:
memory_limit
: Set to at least 192MB for optimal performanceallow_url_fopen
: Must be enabled to allow PHP to access remote files through URLsallow_url_include
: Must be disabled to prevent security risks from including remote filesshort_open_tag
: Must be enabled for short PHP opening tagsdisable_functions
: Functions likeshell_exec
,eval
,assert
,phpinfo
,getenv
,ini_set
,fsockopen
,chmod
,parse_ini_file
,readfile
,escapeshellcmd
,fput
, andpopen
should not be disabled
Required PHP Modules
The following PHP modules must be enabled for UNA:
curl
gd
mbstring
json
fileinfo
zip
openssl
exif
Database Requirements
- MySQL: Version 5.5.3 or higher is required, with MySQL 8 supported
- Compatible Databases: MariaDB and other MySQL-compatible databases can be used
Web Server Requirements
- Recommended: Apache-compatible or Nginx web servers are recommended
- Other Web Servers: Other web servers may require special configurations for rewrite rules
- SSL Certificate: Required for secure connections (Let's Encrypt or commercial SSL)
Additional Server Requirements
- FFmpeg Binary: Essential for media processing, must be separately installed (on other than Linux OS) and allowed to run on the server
- Cron Jobs: The server must be capable of setting up cron jobs with a one-minute interval for scheduled tasks
- File Permissions: Proper file permissions must be set for UNA directories and files
Additional Services
Email Services
For reliable email delivery, a transactional email provider is recommended:
- Transactional Email Provider: Services like SendPulse are recommended over basic SMTP
- Setup Process:
- Create an account with a transactional email provider
- Obtain SMTP credentials (server address, port, username, password)
- Configure UNA settings (Studio > Settings > Email)
- Test email delivery to ensure proper configuration
Push Notification Services
To enable push notifications for real-time user engagement:
- Push Notification Provider: OneSignal is recommended
- Setup Process:
- Create a OneSignal account
- Create a new app in OneSignal
- Add a Web Platform in OneSignal settings
- Configure your Web Platform with your site URL
- Get the OneSignal App ID
- Configure UNA settings (Studio > Settings > PUSH Notifications)
- Choose default enabled notifications
Location Services
For maps, location search, and geolocation features:
- Map Provider: Google Maps or OpenStreetMaps
- Setup Process:
- Choose your preferred map provider
- For Google Maps: Obtain a Google Places API key from Google Cloud Platform
- Configure UNA settings (Studio > Settings > Location)
- Save settings and test functionality
Storage Solutions
For media storage, especially for sites with significant photo and video content:
- Local Storage: Sufficient for small communities with limited media
- Object Storage: Recommended for larger communities (AWS S3, Google Cloud Storage, etc.)
- Setup Process for AWS S3:
- Create an AWS account
- Set up an S3 bucket
- Configure bucket permissions
- Enable Remote Storage in UNA (Studio > Settings > Storage)
- Enter AWS S3 credentials (access key, secret key, bucket name)
Authentication Services
For secure user authentication and login options:
- Standard Authentication: Email/password (built-in)
- Two-Factor Authentication (2FA): Available via Twilio
- Mobile Phone Authentication: Available via Twilio
- Single Sign-On (SSO): Support for:
- Facebook Connect
- Google Connect
- LinkedIn Connect
- X (Twitter) Connect
- Custom OAuth or LDAP SSO
CAPTCHA Services
To prevent spam and bot registrations:
- CAPTCHA Provider: Google reCAPTCHA
- Setup Process:
- Obtain reCAPTCHA API keys from Google
- Configure UNA settings (Studio > Settings > CAPTCHA)
- Test on forms requiring CAPTCHA verification
Deployment Options
Virtual Private Server (VPS)
- Requirements: Full root access is essential
- Not Suitable: Shared hosting, web hosting, or managed hosting without root access
Dedicated Server
- Options: Managed dedicated, bare metal, or co-located dedicated servers
- Benefits: Best performance-per-dollar value for medium to large communities
- Considerations: Requires server management knowledge
Cloud Hosting
- Options: DigitalOcean, AWS, Google Cloud, etc.
- Benefits: Easy scalability, built-in backup solutions, complementary services
- Considerations: Most expensive option at scale, but offers flexibility
Docker Deployment
- Benefits: Containerized deployment for easier management and scaling
- Requirements: Docker and Docker Compose knowledge
Scaling Considerations
For growing communities with increasing user base and content:
- Database Scaling: MySQL cluster or replication for read-heavy operations
- Web Server Scaling: Load balancing across multiple web servers
- Media Storage: Object storage solutions (AWS S3, etc.) for media files
- CDN Integration: Content Delivery Network for static assets and media
- Caching: Redis or Memcached for performance optimization
Compliance and Security
- SSL/TLS: Required for secure connections and data protection
- Data Protection: Features for GDPR and other privacy regulations compliance
- Backup Strategy: Regular automated backups of database and files
- Security Updates: Regular system and UNA updates
- Firewall Configuration: Proper server-level security measures
Monitoring and Maintenance
- Performance Monitoring: Server resource usage, database performance
- Error Logging: PHP and application error monitoring
- Regular Updates: Core system and module updates
- Database Maintenance: Regular optimization and cleanup
- Backup Verification: Testing backup restoration periodically