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
- Crea un producto por plan con un precio mensual y otro anual recurrentes.
- Pega los
price_...en /admin → Tarifas. - Webhook:
https://tu-dominio/stripe/webhookcon los eventoscustomer.subscription.*,customer.updated,customer.deleted,invoice.payment_action_requiredyinvoice.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. |