What is ActHub

ActHub is a turnkey toolkit for EU AI Act compliance, designed for small businesses, agencies, and SaaS founders. It maps each obligation under Article 50 to a practical tool you can use today. ActHub is part of the SevinHub product family.

It is built in PHP 8 and MySQL. Frontend is Tailwind CSS plus Alpine.js. No build step is required at runtime. No mandatory external services.

Install

Requirements: PHP 8.1 or later, MySQL 5.7 or later (or MariaDB 10.4+), the pdo_mysql, zip, gd, curl, and mbstring extensions.

  1. Upload the ActHub folder to your web root, for example /var/www/acthub/ or public_html/acthub/.
  2. Create a MySQL database and user. Note the credentials.
  3. Edit config.local.php with your database credentials, app URL, and secrets. The installer generates these for you on a fresh install.
  4. Visit /acthub/install/install.php in your browser. The installer creates 11 tables, seeds 15 templates, creates the admin account, and creates a demo account with a fully populated example organisation.
  5. Log in at /acthub/login.php.

For nginx, copy the route block from the dual-deploy guide into your sites-enabled/default, then run nginx -t && systemctl reload nginx.

Accounts and roles

ActHub ships with three account types after install.

RoleNotes
adminFull access. The installer generates the admin password and shows it once at the end of the install. Change it after first login.
demoRead-only try-out account (demo@sevinhub.com / demo2026). Writes are intercepted with a friendly flash message.
userRegular accounts created through signup.

Demo mode

Any user with role=demo goes into demo mode. Auth::blockDemoWrites() intercepts every POST and shows a flash that says "Demo mode: your changes are not saved." The demo account is intended for prospects to try the product without committing.

AI Inventory

The Inventory is the heart of the product. Each AI system you use becomes one row.

Fields recorded per system: name, vendor, category, role (provider, deployer, distributor, importer, end user), purpose, triggers (interacts with humans, generates content, deepfake, emotion or biometric, public interest), data types, user count, risk tier, status, evidence URL, notes.

You can quick-add from a library of 35 preset vendors (ChatGPT, Claude, Gemini, Midjourney, Intercom, Notion AI, and so on). Each preset arrives with sensible defaults for category and role, which you can refine after.

Risk Wizard

Per system, six guided questions in three blocks.

  1. Article 5 prohibited uses. Any tick makes the system prohibited.
  2. Annex III high risk categories. Any tick makes the system high risk.
  3. Article 50 transparency triggers. Any tick makes the system at least limited risk.

Output is one of four tiers (prohibited, high, limited, minimal) plus a plain-language action list and the relevant deadline.

Article 50 Checklist

25 items across six categories: inventory, classification, transparency, governance, evidence, people. Each item can be marked pending, in progress, done, or not applicable. You can attach an evidence URL and notes per item. The dashboard shows your overall percentage.

Disclosure Widgets

Generate a JavaScript embed for any of the four Article 50 triggers: chatbot, voice, content, deepfake, emotion. The widget is one line of code that you paste in the footer of your site.

<script async src="https://sevinhub.com/acthub/embed/disclosure.js" data-acthub="YOUR_EMBED_KEY"></script>

It fetches the widget config from /api/widget-data.php?key=<key>, injects styles, renders a floating badge in the configured position, and counts shows.

You can change the message, position, language, theme, and status from the admin Widgets page without re-pasting the snippet.

Transparency Page

One public page per organisation, generated from your inventory. URL pattern: /acthub/t/<your-slug>. Customise the slug, the brand colour, and the contact emails. Toggle published on or off.

Compliance Dossier

The dossier is a print-ready HTML view containing your organisation overview, every AI system, every active disclosure, every checklist item with evidence and notes, plus a signature panel. Use your browser's Print menu and pick "Save as PDF" to export. The print stylesheet is optimised for A4 with 18mm margins.

Templates Library

15 templates across five EU languages. Categories: disclosure (chatbot, voice, content), policy (employee AI, training), vendor questionnaire, dossier (cover letter, incident report), page (transparency intro). Each template has a copy button and ASCII-clean placeholders you replace with your details.

BYOK AI Drafter

Bring your own key for OpenAI (gpt-4o-mini), Anthropic (Claude Haiku 4.5), or 1min.ai (Gemini Flash). Keys are stored AES-256-GCM encrypted at rest. Calls go server-to-provider with your bearer header. No content logged.

Useful prompts: "Write a chatbot disclosure for a Polish boutique in formal Polish.", "Draft an internal AI usage policy for an 8 person agency.", "Compose a customer notice about adding AI-drafted support replies."

Admin panel

Available to users with role=admin. Shows top-line KPIs, the latest 50 users with plan switcher, the global settings editor, recent leads from the free self-check, and the audit log.

Settings

Per-user: name, password. Per-org: display name, legal name, domain, country, industry, employees, role flags (provider, deployer, EU-offering).

Global settings: per-plan system limits, public_signups, maintenance, eu_deadline.

Audit log

Every meaningful action is logged: login, logout, password change, signup, system added, system updated, system deleted, risk classified, checklist updated, disclosure created, transparency updated, dossier saved, AI draft generated.

Updates

Visit /install/update.php?token=<your update_token>. The token is in config.local.php. The endpoint will, in a future release, fetch the next version from a remote channel, back up the install, extract preserving config + uploads + data, and run additive migrations.

URL routes

RouteWhat it serves
/acthub/Public landing page with countdown, features, FAQ.
/acthub/check.phpFree 10 question AI Act self-check.
/acthub/pricing.phpPlans and pricing.
/acthub/features.htmlSales/marketing feature page.
/acthub/learn/Long-form guides (5 articles).
/acthub/login.phpLogin form.
/acthub/signup.phpSignup form.
/acthub/app/dashboard.phpLogged-in dashboard.
/acthub/app/inventory.phpAI inventory list and quick-add.
/acthub/app/inventory_edit.phpAdd or edit a single system.
/acthub/app/wizard.phpRisk tier wizard.
/acthub/app/checklist.phpArticle 50 checklist.
/acthub/app/widgets.phpDisclosure widgets management.
/acthub/app/transparency.phpPublic page settings.
/acthub/app/dossier.phpPDF dossier viewer and snapshot.
/acthub/app/templates.phpTemplates library.
/acthub/app/ai_assistant.phpBYOK AI drafter.
/acthub/app/settings.phpUser and org settings.
/acthub/app/admin.phpAdmin panel (admin role only).
/acthub/api/widget-data.phpWidget configuration and event endpoint.
/acthub/embed/disclosure.jsPublic widget script for customer sites.
/acthub/t/<slug>Public transparency page per organisation.
/acthub/sitemap.xmlSitemap for search engines.
/acthub/robots.txtCrawler rules.
/acthub/llms.txtCompact summary for AI search engines.

Database tables

All tables use the ah_ prefix. InnoDB. utf8mb4.

File permissions

PathOwnerPerms
config.local.phpwww-data600
data/www-data755
install/installed.lockwww-data644

Troubleshooting

Page renders unstyled, only text shows

Tailwind CSS did not load. Check that assets/css/tailwind.css returns 200. If you changed the theme, rebuild with npm run build:css.

Login redirects back to login

Session cookies are not being set. Check that session.cookie_secure is not forcing HTTPS on a plain HTTP install. Inspect the cookie header in your browser's network panel.

Widget script is loaded but no banner appears

The widget config might be in draft or disabled status. Check the Widgets page and set it to Active.

Dossier print page is blank

The route /app/dossier.php?print=1 needs to render only the print body. Confirm the script tag with browser print fallback shows the print button.

FAQ

Is ActHub legal advice?

No. ActHub is a preparation tool. For binding legal opinions, especially on high risk systems, consult a qualified lawyer.

Do I need to deploy anywhere special?

Standard LAMP or LEMP works. The Hub ships dual-deploy notes for VPS plus cPanel in the SevinHub family.

Where is data stored?

Wherever you host. ActHub by SevinHub runs on European infrastructure by default.