Scheduled Tasks (Cron Job)

Votlie requires a cron job to run background tasks. This is a one-time setup that keeps your board running smoothly.


Why You Need a Cron Job

A cron job runs a command on your server at regular intervals. Votlie uses it to handle tasks that need to run in the background without manual intervention.


Setting Up

In cPanel

  1. Log in to cPanel
  2. Go to Cron Jobs
  3. Set the interval to Once Per Minute (* * * * *)
  4. Enter this command:
cd /path-to-your-votlie && php artisan schedule:run >> /dev/null 2>&1

Replace /path-to-your-votlie with the actual path to your Votlie installation directory (e.g., /home/username/public_html).

  1. Click Add New Cron Job

Via SSH

If you have SSH access, add the cron entry:

crontab -e

Add this line:

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

What It Handles

The cron job manages these tasks:

TaskDescription
Scheduled announcementsPublishes announcements at the specified time
Stuck update recoveryDetects and recovers updates that failed mid-process
Weekly digestSends periodic notification emails (if enabled)

Verifying

To check if your cron job is working:

  1. Create a scheduled announcement set for a few minutes in the future
  2. Wait for the scheduled time to pass
  3. Check if the announcement was published automatically

If it wasn't published, try these steps:

  • SSH into your server and run the command manually to check for errors:
cd /path-to-your-votlie && php artisan schedule:run
  • Check your cron path - Make sure the path in the cron entry matches your actual Votlie installation directory
  • Check PHP is accessible - Run php -v via SSH to confirm PHP works from the command line
  • Use the full PHP path - Some hosting providers require the full path to the PHP binary (e.g., /usr/local/bin/php or /usr/bin/php) instead of just php

SaaS Mode Tasks

If you're running the Extended License (SaaS mode), the cron job also handles these additional tasks:

TaskFrequencyDescription
Enforce subscriptionsDailySuspends accounts with expired subscriptions
Send trial expiring remindersDailySends warning emails at 7, 3, and 1 day before trial expiry
Expire trialsHourlyExpires trials that have passed their end date
Cleanup pending tenantsDailyRemoves abandoned or incomplete signups
Purge deleted tenantsDailyPermanently removes tenants deleted more than 7 days ago (grace period)
Verify domains DNSEvery 5 minutesChecks DNS records for custom domain configurations
Process domain pipelineEvery 15 minutesProcesses pending custom domain setup and provisioning
Check SSL expiryDailyMonitors SSL certificate status and warns before expiry

Troubleshooting

ProblemSolution
Cron not runningVerify the path is correct. Test by running the command manually via SSH.
PHP not foundUse the full PHP path (e.g., /usr/local/bin/php) instead of just php
Permission deniedEnsure the cron user has read/execute permissions on the Votlie directory

Next Steps

Was this page helpful?