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.
- Cron endpoint —
/cron/executecallsschedule:runplus the officialshop:subscriptions/shop:paymentscommands so configured "After expiration" hooks (LuckPerms removal, etc.) are dispatched through AzLink - Queue endpoint —
/cron/queue/executerunsqueue:work --stop-when-emptyand also triggers shop expiration commands every minute - Force-shop endpoint —
/cron/force-shoplets 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
| 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.
| 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) |
- Download the latest release zip from the Releases page
- Extract into
plugins/cron/of your Azuriom install - In the admin panel: Extensions → Plugins → Enable "Cron Manager"
- Open Extensions → Cron Manager, copy the URL and Bearer token
- On cron-job.org (or your preferred scheduler), create two HTTP jobs:
POST https://your-site.tld/cron/execute— every minute, withAuthorization: Bearer <token>headerPOST https://your-site.tld/cron/queue/execute— every minute, same header
- Verify both lines in the admin panel turn green ("Online")
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.
- CHANGELOG.md — Release history (EN + FR)
- RULES.md — Project conventions and AI assistant rules
- .github/CONTRIBUTING.md — How to contribute
- .github/SECURITY.md — Vulnerability reporting
- .github/COMMUNICATION.md — Channels and response times
MIT — see LICENSE.
Author: vyrriox (initial contributor: Brice6) Organization: Team Arcadia Discord: discord.gg/xjF8Rtzyd4 Website: arcadia-echoes-of-power.fr
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.
- Endpoint Cron —
/cron/executeappelleschedule:runplus les commandes officiellesshop:subscriptions/shop:paymentspour que les hooks "Apres expiration" (retrait LuckPerms, etc.) soient effectivement dispatches vers AzLink - Endpoint Queue —
/cron/queue/executeexecutequeue:work --stop-when-emptyet declenche aussi les commandes d'expiration boutique a chaque minute - Endpoint Force-shop —
/cron/force-shoppermet 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
| 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.
| 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) |
- Telechargez la derniere release zip depuis la page Releases
- Extrayez le contenu dans
plugins/cron/de votre installation Azuriom - Dans le panneau admin : Extensions → Plugins → Activer "Cron Manager"
- Ouvrez Extensions → Cron Manager, copiez l'URL et le Bearer token
- Sur cron-job.org (ou votre scheduler prefere), creez deux taches HTTP :
POST https://votre-site.tld/cron/execute— toutes les minutes, en-teteAuthorization: Bearer <token>POST https://votre-site.tld/cron/queue/execute— toutes les minutes, meme en-tete
- Verifiez que les deux lignes du panneau admin passent au vert ("En Ligne")
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.
- CHANGELOG.md — Historique des versions (EN + FR)
- RULES.md — Conventions du projet et regles pour assistant IA
- .github/CONTRIBUTING.md — Comment contribuer
- .github/SECURITY.md — Signalement de vulnerabilites
- .github/COMMUNICATION.md — Canaux et delais de reponse
MIT — voir LICENSE.
Auteur : vyrriox (contributeur initial : Brice6) Organisation : Team Arcadia Discord : discord.gg/xjF8Rtzyd4 Site web : arcadia-echoes-of-power.fr