Server Requirements
A standard LAMP or LEMP server is enough for a launch-stage platform. The exact PHP version and extension list for your build are in the package README; the list below is the baseline to prepare.
Server
| Resource | Minimum | Comfortable |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 2 GB | 4–8 GB |
| Disk | 20 GB SSD | 40 GB SSD or more |
| OS | Ubuntu 22.04 / Debian 12 / AlmaLinux 9 | Any current LTS Linux |
| Web server | Nginx, Apache or LiteSpeed | Nginx or LiteSpeed |
Image uploads, logs and database growth are the usual reasons a small server runs out of disk. Plan backups separately from the live disk.
PHP
Use a current PHP 8.x release supported by your build. The following extensions are normally required:
| Extension | Why |
|---|---|
| BCMath | Money and commission calculations |
| Ctype, JSON, Mbstring, Tokenizer, XML | Framework and request handling |
| cURL, OpenSSL | Payment gateways, maps, push and SMTP APIs |
| PDO / pdo_mysql | Database connection |
| Fileinfo, ZIP | Uploads and package handling |
| GD or Imagick | Image resizing and thumbnails |
| Intl | Currency and locale formatting |
Set memory_limit to at least 256 MB, upload_max_filesize and post_max_size to at least 20 MB, and max_execution_time to 120 seconds for installs and imports.
Database
- MySQL 8.0+ or MariaDB 10.4+
- A dedicated database and user with full privileges on that database
utf8mb4character set and collation- Daily backups, stored off the server
Domain, SSL and email
- An A record for the root domain (and ideally
www) pointing at the server. - A valid SSL certificate active before the installer runs. Mixed content breaks logins, maps and payments.
- SMTP credentials or a transactional email provider. Test order and password-reset mail before launch.
- If you use push notifications, a Firebase project and the matching app configuration.
Cron and queues
Most Foodomaa builds use a scheduler for expiring orders, settlements and notifications. Add the scheduler entry for the web user and confirm it runs every minute. If your build uses queued jobs, run a queue worker under Supervisor or systemd and restart it after every deploy.
Payment gateways
Gateway support depends on your build and region. You need a merchant account, the correct currency and a public HTTPS callback URL. Test in sandbox before switching to live keys. See Payments.