Logistack Requirements: Difference between revisions
Lee Miller (talk | contribs) |
Lee Miller (talk | contribs) |
||
| Line 104: | Line 104: | ||
* Emails not sending: verify SMTP credentials and connectivity; try port 587 with TLS. | * Emails not sending: verify SMTP credentials and connectivity; try port 587 with TLS. | ||
* Thumbnails not generating: confirm gd | * Thumbnails not generating: confirm gd | ||
See [[Troubleshooting]] for more detailed info | |||
Latest revision as of 16:03, 16 October 2025
LogiStack Pro — Server Requirements
This page lists supported environments and sizing guidance for running LogiStack Pro (web app, customer portal, admin).
Don't be cheap with hosting!!!
Hostinger (who I use and are brilliant), provide full VPS server hosting from between £120 (4 CPU cores) and £228 (8 CPU cores), use my referral code for 20% off and a free .co.uk domain name - subscribe using this link.
I also provide fully managed hosting, it's more than Hostinger, but you do nothing, I manage the hosting on your behalf, install Logistack, create the domain name, again a free .co.uk and create domain related email addresses e.g. info@your-domain.co.uk or jim@your-domain.co.uk
My server has 16 CPU Cores, and enough space for 1000s of websites, though I'm not planning to host more than 20.
Summary
- Application stack: PHP + MySQL or MariaDB on Apache or Nginx
- Operating system: Linux preferred (Ubuntu/Debian/Alma/Rocky); Windows Server possible
- Access: HTTPS required; SMTP needed for outbound mail
- Storage: Local disk for POD images and invoice PDFs; delivery videos are hosted externally and linked
Minimum (single site)
- Web server: Apache 2.4+ or Nginx 1.18+
- PHP: 8.1+ (8.2/8.3 recommended)
- Database: MySQL 8.0+ or MariaDB 10.5+
- CPU and RAM: 1 vCPU, 1–2 GB RAM
- Disk: 10–20 GB
- TLS: Valid HTTPS certificate
- Mail: Authenticated SMTP account
Recommended (production)
- OS: Ubuntu LTS (22.04 or 24.04) or equivalent
- Web server: Nginx with PHP-FPM, or Apache 2.4 with PHP-FPM
- PHP: 8.2+ with OPcache enabled
- Database: MySQL 8.0.34+ or MariaDB 10.6+ (local or managed)
- CPU and RAM: 2–4 vCPU, 4–8 GB RAM (scale with drivers and customers)
- Disk: 50–100 GB SSD (separate volume for /uploads)
- Backups: Daily database dumps and file snapshots (retain 30 days)
- Monitoring: Uptime, disk usage, and error log alerts
API Keys
- OpenAI API Key
- Google Maps API key
Required PHP extensions
- pdo_mysql
- mbstring
- intl
- openssl
- curl
- json
- fileinfo
- zip
- gd or imagick
- opcache
Suggested php.ini settings
memory_limit = 512M upload_max_filesize = 256M post_max_size = 32M max_execution_time = 300 max_input_time = 300 expose_php = Off date.timezone = Europe/London session.cookie_httponly = 1 session.cookie_secure = 1 opcache.enable = 1
Database settings
- Engine: MySQL 8.0+ or MariaDB 10.5+
- Charset and collation: utf8mb4 / utf8mb4_unicode_ci
- Grant a least-privilege application user to the app database.
Email (SMTP)
- Required for sending invoice PDFs and notifications.
- Needs host, port, username, password, and TLS (typically port 587 or 465).
HTTPS and security
- Enforce HTTPS (TLS 1.2+).
- Keep OS, web server, PHP, database, and extensions up to date.
Cron jobs (recommended)
- Nightly database backup
- Log rotation
- Optional: mail retry queue and temporary file cleanup
Example crontab line (02:15)
15 2 * * * /usr/bin/mysqldump -ulogistack -p'***' logistack | gzip > /backups/logistack-$(date +\%F).sql.gz
Firewall and ports
- Inbound: 80 (HTTP) and 443 (HTTPS)
- Outbound: 443 for SMTP/API endpoints and video embeds
- Restrict SSH (22) to admin IPs only
Sizing notes
- POD images: approx. 0.3–1.5 MB each
- Invoice PDFs: approx. 30–300 KB each
- Start with 50–100 GB for /uploads; review quarterly
Troubleshooting
- Blank page or 500: check web server and PHP error logs; confirm required PHP extensions.
- Upload failures: increase upload_max_filesize and post_max_size; verify folder permissions.
- Emails not sending: verify SMTP credentials and connectivity; try port 587 with TLS.
- Thumbnails not generating: confirm gd
See Troubleshooting for more detailed info