GMC FreeAI — documentation
GMC FreeAI · Joomla · Documentation
GMC FreeAI — documentation
GMC FreeAI (package pkg_gmcfreeai, component com_gmcfreeai) is a multi-provider AI assistant inside the Joomla administrator: a chat widget on every admin page, a scheduler that drafts articles, an approval workflow that publishes them as real Joomla articles, plus budget governance and an audit log. It is bring-your-own-key — it never proxies your prompts — and can run entirely on free-tier or self-hosted models, hence the name.
On this page — What it is · Requirements · Install · Where it lives · Providers & keys · Configuration · Privacy & data · Updates & licence · Troubleshooting · FAQ
What it is
GMC FreeAI is effectively administrator-only: front-end AJAX is rejected with a 403, and the bundled front-end view is an intentional noindex placeholder. The package installs three extensions: the component com_gmcfreeai (UI, logic, tables), the system plugin plg_system_gmcfreeai (injects the widget, encrypts keys on save) and the task plugin plg_task_gmcfreeai (Scheduled Tasks). The component ships eleven admin views:
- Chatbot — a full-page chat and an in-admin widget, with five built-in expert personalities (Joomla, YOOtheme, Copywriter, NLP, SEO) stored in the database, so you can duplicate, customise or reset them.
- AI Scheduler — recurring jobs that generate articles, social posts or newsletters daily/weekly/monthly, with per-job locking and retry.
- Content Review — approve / regenerate / reject, then publish into
#__contentas a Joomla article with category, tags, language and SEO meta. - AI Budget — token and USD caps per global / group / user / provider scope, alerts at 70 / 90 / 100% and a hard block at 100%.
- Template Library, Dashboard, AI Roles, Chat History, Audit Log, Health Check — 33 bundled templates with JSON import/export; KPIs; per-group permissions; an append-only audit trail with secret redaction; a synchronous health page.
Requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| Joomla | 5.4 | 6.x |
| PHP | 8.1 | 8.3+ |
| Database | MySQL 8 / MariaDB 10.6 with utf8mb4 | same |
| PHP extensions | curl, mbstring, json, openssl | same |
Install
- Download
pkg_gmcfreeaifrom your FuerteventuraTV account, then in Joomla open System → Install → Extensions and upload the package ZIP. One install adds all three extensions and creates the tables. - The package auto-enables the system plugin, so the widget appears immediately.
- For private updates, put your licence Download Key in System → Update → Update Sites (edit the GMC FreeAI update site). The same key can be saved in the component’s
download_keyoption.
Where it lives and how to use it
After install the component sits at Components → CMS Free AI (storefront name GMC FreeAI; admin menu “CMS Free AI”). First run: open the component Options (top-right), pick your ai_provider, paste its key (or set the Ollama URL), optionally choose a fallback, and fill in site_context. Use the Chatbot or floating widget for ad-hoc work, and AI Scheduler + Content Review for hands-off drafting — then check that Health Check is all green or grey.
Under System → Scheduled Tasks, create tasks from these routines:
| Task type | What it does | Cadence |
|---|---|---|
| GMCFreeAi: run due jobs | Runs due scheduler jobs; clears stale locks (older than 1800s). | every 5–10 min |
| GMCFreeAi: provider health check | Pings each provider and records latency (ok ≤ 8000ms, degraded above, down on error). | every 1–6 hours |
| GMCFreeAi: cleanup old data | Retention sweep of audit, usage, chat and job-run tables. | daily |
AI providers, models and key setup
GMC FreeAI talks to six providers. You bring your own key for each, and the component calls that provider API directly — traffic is never routed through a GMC/FuerteventuraTV server. Each has its own key field and model picker in Options:
Provider (ai_provider) | Key / URL field | Default model (ai_model_*) |
|---|---|---|
| Claude (Anthropic) | api_key_claude | claude-haiku-4-5-20251001 |
| OpenAI | api_key_openai | gpt-4o-mini |
| Gemini (Google) | api_key_gemini | gemini-1.5-flash |
| Groq | api_key_groq | llama-3.3-70b-versatile |
| NVIDIA NIM | api_key_nvidia | meta/llama-3.1-8b-instruct |
| Ollama (self-hosted) | ollama_url | llama3.3 — or any pulled model |
The free angle. “Free AI” is the running cost of the models, not the component (a paid licence). You can run at zero per-token cost on a free tier — Groq’s is 14.4k requests/day, prices apply only over quota — or on a local Ollama server (inference costed at 0). The budget_mode option can force only-free or only-Ollama use.
Configuration
All settings live in the component Options, in fieldsets. The real fields:
| Fieldset | Field(s) | Notes |
|---|---|---|
| Licence | download_key, license_key | Download Key mirrors the update site; licence key encrypted. |
| Base | site_name, site_context | Free-text context sent with each request. |
| Chatbot | chatbot_enabled, chatbot_mode, chatbot_position, chatbot_history_limit | chatbot_mode: floating / sidebar / page / all. History limit defaults to 20. |
| Provider | ai_provider, ai_fallback_provider, ai_default_language, the six api_key_* / ollama_url, the six ai_model_* | Primary + optional fallback; default language it-IT (also en/de/fr). |
| Budget | budget_mode, budget_free_fallback, budget_alert_users | budget_mode: full / free_only / ollama_only; free-only picks its provider via budget_free_fallback. |
AI Roles. Beyond core ACL, the AI Roles view maps eleven capabilities onto user groups so you can delegate without full component admin — can_generate, can_approve, can_manage_jobs, can_view_costs, can_manage_templates, can_manage_budget, can_publish, can_publish_to_joomla, can_manage_personalities, can_view_audit_log and can_manage_roles. Super Users, Administrators and core.admin always bypass them.
Privacy and data handling
- Keys encrypted at rest. Each
api_key_*value is AES-256-GCM encrypted before it is written to#__extensions, with the key derived (HKDF-SHA256) from your Joomla$secretplus a random per-install salt. Plaintext keys migrate to ciphertext on the next Options save. - No proxy. Prompts, site context and generated text go straight from your server to the provider; GMC never sees them. Cloud providers process that content under their own terms; use Ollama with
budget_mode = ollama_onlyto keep it all local. - HTTPS only, secrets redacted. The AI HTTP layer refuses any
http://endpoint. The append-only audit log redacts secrets by key name and by scanning every value, so a provider that echoes a key back in an error message is scrubbed before anything is persisted. - Retention. The cleanup task prunes old rows (defaults: audit/budget alerts 365 days, usage log 180, chat and job runs 90). Set a category to
0to keep it forever.
Updates and licence
- GMC FreeAI is a commercial extension licensed through FuerteventuraTV (EUR 49); the code is released under the GNU GPL v2 or later.
- With the Download Key set on the update site, updates arrive through the normal Extensions → Update flow — Check for Updates, select GMC FreeAI, run the update. Because you install the
pkg_gmcfreeaipackage, one update refreshes all three extensions. - If an update is not offered, confirm the Download Key and the update-site feed, then clear the update cache.
Troubleshooting
| Symptom | Likely cause / fix |
|---|---|
| Chatbot widget doesn’t appear | The System – CMS Free AI plugin is disabled, or chatbot_enabled is off. |
| Provider shows “down” / “degraded” in Health Check | Down = ping error (bad/missing key, blocked outbound HTTPS). Degraded = slower than 8000ms; expect higher latency for NVIDIA reasoning models. |
| Ollama connection refused | The URL must be https. Put Ollama behind a TLS reverse proxy (Caddy / nginx / Traefik) and point ollama_url at it — there is no plaintext-http escape hatch. |
| Scheduled articles never generate | The run due jobs task isn’t created or cron isn’t firing. Create it; stale job locks clear automatically after 1800s. |
FAQ
- Is it really free?
The component is a one-off paid licence (EUR 49). “Free AI” is about the models: you supply your own key and it calls the provider directly, so you can run at zero token cost on a free tier (Groq’s is 14.4k requests/day) or a self-hosted Ollama.
budget_modecan restrict it tofree_onlyorollama_onlyso it never touches a paid provider. - Which providers and models are supported?
Six — Claude, OpenAI, Gemini, Groq, NVIDIA NIM and Ollama — each with its own key field and model picker (Claude Haiku 4.5 / Sonnet 4 / Opus 4.1, GPT-4o / 4o-mini, Gemini 1.5/2.0, Llama and Mixtral on Groq/NVIDIA, any locally-pulled model on Ollama). You can set a primary and a fallback.
- Does it run on Joomla 5?
Yes — Joomla 5.4 and newer, including 6.x. Earlier builds were Joomla-6-only; the current line restored 5.4 after confirming no Joomla-6-exclusive APIs are used. Sites on 5.0–5.3 are not offered updates.
- Where are my API keys stored, and are they safe?
AES-256-GCM encrypted at rest in the extensions table, keyed from your site
$secretand a per-install salt. This protects DB dumps and backups, but not against someone with shell access, who can read both the secret and the salt. - What happens when a provider call fails?
Transient errors (timeouts, HTTP 429, 5xx) are retried automatically, and a configured fallback provider takes over when the primary keeps failing. Jobs that still fail move to a failed state with backoff, with the trace written to the audit log (leaked secrets redacted).


