Tablifyx

Instalación y despliegue

Requisitos

  • PHP 8.3+ con pdo_mysql, pdo_sqlite, intl, zip, gd, mbstring, fileinfo
  • MySQL 8 / MariaDB 10.6+ (base central) — cada empresa usa además su propio SQLite
  • Composer 2 y Node 20+

Local con Laragon

cd C:\laragon\www
git clone https://github.com/valerito/Tablifyx.git tablifyx
cd tablifyx
composer install
cp .env.example .env
php artisan key:generate
# crea la base de datos "tablifyx" en MySQL
php artisan migrate --seed
php artisan storage:link
npm install && npm run build

Con Auto virtual hosts de Laragon el proyecto queda en http://tablifyx.localhost (pulsa Reload en Laragon tras clonar).

Usuarios de prueba (contraseña password):

  • Superadmin: admin@tablifyx.test → /admin
  • Demo: demo@tablifyx.test → /app/demo

Variables de entorno

Variable Descripción
STRIPE_KEY, STRIPE_SECRET, STRIPE_WEBHOOK_SECRET Claves de Stripe para Cashier.
CASHIER_CURRENCY eur por defecto.
TABLIFYX_TRIAL_DAYS Días de prueba de las empresas nuevas (14).
TABLIFYX_TENANT_STORAGE Carpeta de los SQLite de empresas (storage/app/private/tenants).
TABLIFYX_AI_TIMEOUT Segundos máximos por petición de IA (120).
ANTHROPIC_API_KEY, OPENAI_API_KEY… Opcional: activan el proveedor al sembrar.
MAIL_* SMTP para avisos e invitaciones.

Stripe

  1. Crea un producto por plan con un precio mensual y otro anual recurrentes.
  2. Pega los price_... en /admin → Tarifas.
  3. Webhook: https://tu-dominio/stripe/webhook con los eventos customer.subscription.*, customer.updated, customer.deleted, invoice.payment_action_required y invoice.payment_succeeded. En local: stripe listen --forward-to tablifyx.localhost/stripe/webhook.

Tareas programadas y colas

* * * * * php /ruta/artisan schedule:run >> /dev/null 2>&1

Ejecuta: sincronización de APIs (cada 5 min), automatizaciones horarias y avisos/automatizaciones diarias (07:30). En local: php artisan schedule:work.

En local QUEUE_CONNECTION=sync. En producción usa database o redis con php artisan queue:work.

Copias de seguridad

Haz copia de la base MySQL y de la carpeta storage/app/private/tenants (un data.sqlite por empresa).

Comandos útiles

Comando Uso
php artisan tablifyx:demo --fresh Regenera la empresa demo.
php artisan tablifyx:sync --all Sincroniza todos los endpoints ahora.
php artisan tablifyx:rules daily Ejecuta las reglas diarias.