Skip to content

Team-Arcadia/Cron-Manager-Azuriom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Cron Manager

License: MIT Azuriom PHP Lint

Secure execution of Azuriom scheduled tasks and queue worker through free external HTTP cron services (cron-job.org and similar), including automatic dispatch of the official Plugin-Shop expiration commands so VIP role revocations actually fire on shared hosting.

Features

  • Cron endpoint/cron/execute calls schedule:run plus the official shop:subscriptions / shop:payments commands so configured "After expiration" hooks (LuckPerms removal, etc.) are dispatched through AzLink
  • Queue endpoint/cron/queue/execute runs queue:work --stop-when-empty and also triggers shop expiration commands every minute
  • Force-shop endpoint/cron/force-shop lets you catch up after a cron outage by running shop expiration commands on demand
  • Secure URLs — All endpoints are gated by a unique, regenerable Bearer token; timing-safe comparison; HTTP 403 on mismatch
  • Admin dashboard — Online/offline status, last execution timestamps, copy-to-clipboard URLs and tokens, inline tutorial
  • Maintenance-mode compatible — Endpoints still respond when the site is in maintenance, so cron keeps running
  • Bilingual UI — Translations shipped for English, French, Spanish, and German (cron/resources/lang/)
  • No direct state manipulation — The plugin never edits users, roles, or shop tables itself; it only triggers Azuriom's own commands

Endpoints

Method URL Purpose
POST /cron/execute Run Laravel scheduler + shop expiration (throttled every 10 min)
POST /cron/queue/execute Run queue worker + shop expiration
POST /cron/force-shop Manual one-shot trigger of shop:subscriptions and shop:payments

All endpoints require an Authorization: Bearer <token> header. For force-shop, the token may alternatively be sent as a key field in the POST body — never as a query string parameter, so the secret stays out of server access logs.

Requirements

Dependency Version
Azuriom 1.2.0+
PHP 8.0+
Hosting Shared, VPS, or dedicated
External cron service cron-job.org or equivalent (any HTTP scheduler)

Installation

  1. Download the latest release zip from the Releases page
  2. Extract into plugins/cron/ of your Azuriom install
  3. In the admin panel: Extensions → Plugins → Enable "Cron Manager"
  4. Open Extensions → Cron Manager, copy the URL and Bearer token
  5. On cron-job.org (or your preferred scheduler), create two HTTP jobs:
    • POST https://your-site.tld/cron/execute — every minute, with Authorization: Bearer <token> header
    • POST https://your-site.tld/cron/queue/execute — every minute, same header
  6. Verify both lines in the admin panel turn green ("Online")

Configuration

The plugin auto-generates a 32-char random Bearer token on first load. To regenerate:

Admin → Extensions → Cron Manager → "Regenerate key" (red button)

After regeneration, update the Authorization header in your external scheduler.

Documentation

License

MIT — see LICENSE.

Credits

Author: vyrriox (initial contributor: Brice6) Organization: Team Arcadia Discord: discord.gg/xjF8Rtzyd4 Website: arcadia-echoes-of-power.fr


Cron Manager (Version Francaise)

Execution securisee des taches planifiees et du queue worker Azuriom depuis un service de cron HTTP externe gratuit (cron-job.org ou equivalent), avec declenchement automatique des commandes officielles d'expiration du Plugin-Shop pour que la revocation des roles VIP fonctionne vraiment sur hebergement mutualise.

Caracteristiques

  • Endpoint Cron/cron/execute appelle schedule:run plus les commandes officielles shop:subscriptions / shop:payments pour que les hooks "Apres expiration" (retrait LuckPerms, etc.) soient effectivement dispatches vers AzLink
  • Endpoint Queue/cron/queue/execute execute queue:work --stop-when-empty et declenche aussi les commandes d'expiration boutique a chaque minute
  • Endpoint Force-shop/cron/force-shop permet de rattraper une panne de cron en relancant manuellement les commandes d'expiration boutique
  • URLs securisees — Tous les endpoints sont proteges par un Bearer token unique et regenerable, comparaison en temps constant, HTTP 403 si invalide
  • Tableau de bord admin — Statut en ligne/hors ligne, timestamps de derniere execution, copie en un clic, tutoriel integre
  • Compatible mode maintenance — Les endpoints repondent meme quand le site est en maintenance, le cron continue
  • UI multilingue — Traductions fournies en anglais, francais, espagnol et allemand (cron/resources/lang/)
  • Aucune manipulation directe — Le plugin ne modifie jamais lui-meme les utilisateurs, roles ou tables boutique : il declenche uniquement les commandes officielles d'Azuriom

Endpoints

Methode URL Role
POST /cron/execute Lance le scheduler Laravel + expiration boutique (throttle 10 min)
POST /cron/queue/execute Lance le queue worker + expiration boutique
POST /cron/force-shop Declenchement manuel one-shot de shop:subscriptions et shop:payments

Tous les endpoints requierent un en-tete Authorization: Bearer <token>. Pour force-shop, le token peut aussi etre transmis dans un champ key du corps POST — jamais en parametre de query string, afin que le secret reste hors des journaux d'acces du serveur.

Prerequis

Dependance Version
Azuriom 1.2.0+
PHP 8.0+
Hebergement Mutualise, VPS ou dedie
Service de cron externe cron-job.org ou equivalent (n'importe quel scheduler HTTP)

Installation

  1. Telechargez la derniere release zip depuis la page Releases
  2. Extrayez le contenu dans plugins/cron/ de votre installation Azuriom
  3. Dans le panneau admin : Extensions → Plugins → Activer "Cron Manager"
  4. Ouvrez Extensions → Cron Manager, copiez l'URL et le Bearer token
  5. Sur cron-job.org (ou votre scheduler prefere), creez deux taches HTTP :
    • POST https://votre-site.tld/cron/execute — toutes les minutes, en-tete Authorization: Bearer <token>
    • POST https://votre-site.tld/cron/queue/execute — toutes les minutes, meme en-tete
  6. Verifiez que les deux lignes du panneau admin passent au vert ("En Ligne")

Configuration

Le plugin genere automatiquement un Bearer token aleatoire de 32 caracteres a la premiere ouverture. Pour le regenerer :

Admin → Extensions → Cron Manager → "Regenerer la cle" (bouton rouge)

Apres regeneration, mettez a jour l'en-tete Authorization dans votre scheduler externe.

Documentation

Licence

MIT — voir LICENSE.

Credits

Auteur : vyrriox (contributeur initial : Brice6) Organisation : Team Arcadia Discord : discord.gg/xjF8Rtzyd4 Site web : arcadia-echoes-of-power.fr