Installation Guide
The WinnaCMS package ships with its runtime dependencies (vendor). Follow the steps below to deploy it on a Linux host.
1. Requirements
- PHP 8.4+ (tested on 8.4.27) with openssl, pdo_mysql, mbstring, fileinfo, curl, gd or imagick, zip.
- MySQL 8.0+ or MariaDB 10.6+.
- Nginx or Apache with URL rewriting; document root must point to
/public. - PHP limits: upload_max_filesize ≥ 20M, post_max_size ≥ 25M, memory_limit ≥ 256M.
- Disk: about 100MB for the app; 5GB+ recommended for media and backups.
2. Upload
- Extract the package to your site directory, e.g.
~/apps/wincms. - Point the domain document root to
~/apps/wincms/public. - Make
storageandbootstrap/cachewritable.
3. Environment file
cp deploy/env.production .env
php artisan key:generate
Fill in at least APP_URL, DB_HOST/DB_PORT/DB_DATABASE/DB_USERNAME/DB_PASSWORD, CRON_TOKEN and MAIL_*. Keep all secrets in the server .env only.
4. Run the installer
Open https://your-domain/install and complete the wizard: environment check → database → admin account → optional modules → confirm. Remove or rename /install afterwards.
5. Scheduler
Without system crontab, add a URL cron job in your hosting panel hitting https://your-domain/cron/{CRON_TOKEN} every 1–5 minutes. It drives scheduled publishing and the queue; an empty CRON_TOKEN disables the endpoint (404).
6. After installation
php artisan optimize
Change the admin password on first login. Updates are checked in the admin Update Center; packages are signature-verified and support version history and rollback.
7. GEO module (optional)
Install GEO Platform from the module market, then enter your license key under GEO settings. Licenses are bound to a domain; request a trial at sales@winna-group.com.
8. Installation registration
After installation WinnaCMS reports basic site information to the vendor once: domain, CMS version, PHP/database versions, server environment, admin email and install time. It is used only for licensing follow-up and update services, and never includes passwords, keys or content. Set INSTALL_REPORT_ENABLED=false in .env to opt out; failed reports are retried by the daily heartbeat.
9. Upgrades and backups
Core upgrades back up the database automatically. Module/theme upgrades run database migrations and the database is not rolled back automatically. Before upgrading, click “Back up database now” on the Update page, back up public/media and public/uploads yourself, and tick “I have backed up” before submitting.