Skip to main content
Wintertrace
Browse the documentation

Self-hosting & operations

System requirements

What Wintertrace needs to run on your own web hosting: PHP version, database, required extensions, and the one scheduled task that drives everything.

Wintertrace is built to run on ordinary shared web hosting — the same hosting a business already uses for its company website. This page lists the technical requirements so you can check whether your hosting qualifies before starting the installation.

Minimum requirements

RequirementValue
PHP8.2 or higher
DatabaseMySQL 5.7+ or MariaDB 10.3+
PHP extensionscurl, mbstring, pdo_mysql, gd
Background tasksCron job support (one job, every minute)
Disk space~200 MB for the application; photo storage grows over time
Outbound networkHTTPS to weather providers and the update server
File accessFTP access or a file manager

Most shared hosting providers satisfy these requirements as standard. Mainstream providers such as Hostinger, SiteGround, Bluehost, or DreamHost include the necessary PHP and database configuration at reasonable monthly rates.

pdo_mysql provides the database connection; gd handles image processing for service-job photos; curl and mbstring are standard requirements of the underlying Laravel framework. All four are active on typical PHP hosting without any manual configuration.

The values above are the minimum. Newer versions work equally well and are the base on which Wintertrace is actively developed:

  • Database: MySQL 8.0 or MariaDB 10.6
  • PHP: a currently maintained 8.x release

Where you have the choice, newer versions are preferable — they receive security updates for longer.

What is explicitly not required

Wintertrace is deliberately designed to run without server administration:

  • No SSH access. The installation runs through a browser assistant.
  • No Docker, no dedicated server, no VPS. Ordinary shared web hosting is enough.
  • No root access. No system packages are installed.
  • No permanently running background process. Instead of a queue:work daemon — which a shared host would terminate after a few minutes — Wintertrace processes all pending tasks on each cron run and then exits cleanly.

A root server or VPS can of course be used if you already have one, but it is not a requirement.

The one cron job

The only ongoing requirement beyond the hosting itself is a single cron job. Wintertrace uses one cron entry that runs every minute; all background tasks are scheduled from it:

  • Fetch weather data — automatically at the start and end of each service job
  • Send email notifications — asynchronously after a job is completed
  • Data retention — aggregate and remove expired job records after the configured retention period
  • Update check — daily check for available new versions
  • Cron heartbeat — status check to confirm the cron is running correctly

The cron command to add:

* * * * * cd /path/to/wintertrace && php artisan schedule:run >> /dev/null 2>&1

Most hosting panels provide a graphical cron editor where the same entry can be added through a form. The admin dashboard inside Wintertrace shows whether the cron is running.

When the cron job misses a run

If the cron job is temporarily unavailable — for example because the hosting was briefly unreachable — no data is lost. Service jobs continue to be recorded correctly; weather data and notifications are processed on the next successful run. The dashboard indicates whether the cron job is operating normally, making a persistent outage visible.

What’s next

Once the requirements are met, a browser assistant guides you through the initial setup; installation typically takes about ten minutes. The step-by-step walkthrough is on the Installation page. For background on why Wintertrace runs on self-hosted infrastructure and what that means in practice, see the Self-hosted page.

Not a substitute for legal advice. Requirements and compatibility are provided for informational purposes only.