Modern Billing & Invoicing Platform for Hosting Companies with Spanish Tax Compliance (Verifactu)
Larafactu es una plataforma completa de facturaciΓ³n y billing diseΓ±ada especΓficamente para empresas de hosting en EspaΓ±a con cumplimiento fiscal automΓ‘tico (Verifactu AEAT).
- π§Ύ FacturaciΓ³n Completa - Facturas, presupuestos, notas de crΓ©dito
- πͺπΊ ROI/OSS - Operador intracomunitario (B2B reverse charge)
- ποΈ Verifactu AEAT - IntegraciΓ³n nativa con el sistema espaΓ±ol
- π° Base 100 - CΓ‘lculos monetarios precisos sin errores de float
- π« Soporte Integrado - Sistema de tickets incorporado
- π Panel Admin - Livewire + DaisyUI para gestion completa
- π UUID v7 - Seguridad contra ataques de descubrimiento
| Aspecto | DescripciΓ³n |
|---|---|
| Industria | Hosting (dominios, VPS, servidores dedicados) |
| RegiΓ³n | EspaΓ±a + UE (operadores intracomunitarios) |
| Fiscal | Verifactu, IVA 21%, IGIC, IPSI, ROI |
| MigraciΓ³n | Compatible con WHMCS |
Larafactu estΓ‘ construido sobre paquetes Laravel independientes y reutilizables:
aichadigital/larabill β Core de facturaciΓ³n y billing
aichadigital/lararoi β LΓ³gica fiscal ROI/OSS
aichadigital/lara-verifactu β IntegraciΓ³n AEAT Verifactu
aichadigital/laratickets β Sistema de tickets
aichadigital/lara100 β Valores monetarios base 100
- PHP 8.4+
- MySQL 8.0+ / PostgreSQL 15+
- Composer 2.x
- Node.js 20+
El proyecto incluye un instalador bash que configura todo automΓ‘ticamente desde cero:
# 1. Clonar repositorio
git clone https://github.com/AichaDigital/larafactu.git
cd larafactu
# 2. Configurar base de datos en .env.example (o crear .env)
# DB_DATABASE=larafactu
# DB_USERNAME=root
# DB_PASSWORD=
# 3. Ejecutar instalador local (hace TODO automΓ‘ticamente)
./bin/local-install.shEl script local-install.sh realiza automΓ‘ticamente:
- β Detecta paquetes de desarrollo en rutas comunes
- β Pregunta quΓ© BD usar (SQLite o MySQL)
- β
Configura
.envcon los datos de conexiΓ³n - β Crea symlinks a paquetes locales
- β Configura path repositories en composer.json
- β
Ejecuta
composer install - β Genera APP_KEY
- β Ejecuta migraciones y seeders
- β Compila assets (npm install && build)
# InstalaciΓ³n rΓ‘pida con SQLite (sin preguntas de BD)
./bin/local-install.sh --sqlite
# InstalaciΓ³n con MySQL (interactivo)
./bin/local-install.sh --mysql
# MySQL no interactivo (CI/scripts)
./bin/local-install.sh --mysql --db-database=larafactu --db-username=root --db-password=secret
# Especificar ruta a paquetes
./bin/local-install.sh --packages-path=/ruta/a/paquetes
# Sin compilar assets
./bin/local-install.sh --skip-npm
# Reset completo preservando IDE config (para reinstalar)
bin/fresh-install.sh && ./bin/local-install.sh# Reinstalar limpio (si ya tienes el proyecto funcionando)
php artisan larafactu:install --local --freshEl composer.json del repositorio usa paths locales para los paquetes de desarrollo. El instalador aplica git skip-worktree para evitar commits accidentales.
Si necesitas modificar composer.json legΓtimamente (aΓ±adir dependencias, etc.):
# 1. Quitar protecciΓ³n
git update-index --no-skip-worktree composer.json
# 2. Restaurar versiΓ³n original del repo
git checkout composer.json
# 3. Hacer tus cambios (aΓ±adir dependencias, etc.)
composer require nuevo/paquete
# 4. Commitear
git add composer.json && git commit -m "feat: Add nuevo/paquete"
# 5. Volver a aplicar paths locales y protecciΓ³n
php artisan larafactu:install --local --skip-migrations- Frontend: http://larafactu.test
- Admin: http://larafactu.test/admin
- Credenciales:
admin@example.com/password
Pasos detallados para instalaciΓ³n en servidor:
# Clonar repositorio
git clone https://github.com/AichaDigital/larafactu.git
cd larafactu
# Convertir repositorios de paquetes (path β GitHub)
php scripts/post-deploy.php# Composer (sin dev dependencies)
composer install --no-dev --optimize-autoloader --no-interaction
# Si pide GitHub token (rate limit), crearlo en:
# https://github.com/settings/tokens (read:packages)# Crear .env desde example
cp .env.example .env
# Editar con tus datos reales
nano .env # o vim, vi, etc.| Variable | π Local | π ProducciΓ³n | Nota |
|---|---|---|---|
APP_ENV |
local |
production |
|
APP_DEBUG |
true |
false |
|
APP_URL |
.test |
.com real |
URLs absolutas |
LOG_LEVEL |
debug |
error |
Menos ruido |
MAIL_MAILER |
log |
smtp |
Email real |
ADMIN_EMAILS |
(todos) | REQUERIDO | Sin esto: 403 |
ADMIN_DOMAINS |
(todos) | REQUERIDO | Sin esto: 403 |
Variables CRΓTICAS en .env:
APP_NAME=Larafactu
APP_ENV=production # β οΈ Cambia comportamiento de admin access
APP_DEBUG=false # β οΈ NUNCA true en producciΓ³n
APP_URL=https://tudominio.com
# Admin Panel Access Control (IMPORTANTE)
# Sin esto, NADIE podrΓ‘ acceder al panel (excepto en local)
ADMIN_EMAILS=admin@tuempresa.com,manager@tuempresa.com
ADMIN_DOMAINS=@tuempresa.com
# Database
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=larafactu_db
DB_USERNAME=tu_usuario
DB_PASSWORD=tu_password
# Redis (si usas socket Unix)
REDIS_CLIENT=phpredis
REDIS_HOST=/path/to/redis.sock
REDIS_PORT=0
# Mail, Queue, Cache segΓΊn tu setup...php artisan key:generate --force# IMPORTANTE: Migrar PRIMERO las tablas base de Laravel
# (users, password_resets, sessions, etc.)
php artisan migrate --forceTablas creadas en este paso:
users(requerida por larabill:install)password_reset_tokenssessionscache,jobs(si usas queue/cache en DB)
# Publica migraciones y configuraciones del paquete
php artisan larabill:install --no-interactionQuΓ© hace larabill:install:
- β Publica 30+ migraciones adicionales de facturaciΓ³n
- β Publica configuraciones del paquete
- β
Verifica que la tabla
usersexista (paso anterior) - β En producciΓ³n: NO intenta migrar automΓ‘ticamente (solo publica)
Output esperado:
π Installing Larabill...
β User ID type: uuid_binary
π Publishing configurations...
π Publishing migrations in correct order...
β Published 30 migrations
β Migrations published successfully
π Next step:
Run migrations: php artisan migrate --force
# Crear todas las tablas de facturaciΓ³n
php artisan migrate --forceTablas creadas en este paso:
invoices,invoice_items,fiscal_settingscustomers,tax_rates,tax_categoriesarticles,commissions,vat_verifications- Y 20+ tablas mΓ‘s para el sistema completo
# Limpiar cache
php artisan config:clear
php artisan cache:clear
# Cachear para producciΓ³n
php artisan config:cache
php artisan route:cache
php artisan view:cachenpm install
npm run buildPara actualizaciones futuras, usa el script:
./scripts/deploy.shEl script automΓ‘ticamente:
- πΎ Hace backup (.env, composer.json, BD)
- π Entra en modo mantenimiento
- π₯ Pull del ΓΊltimo cΓ³digo (git reset hard)
- π§ Convierte repositories (post-deploy.php)
- π¦ Actualiza dependencias (composer install)
- ποΈ Corre migraciones (con confirmaciΓ³n)
- π§Ή Limpia y cachea
- π Sale de modo mantenimiento
MΓ‘s detalles: docs/UPDATE_MANAGEMENT.md
IMPORTANTE PARA DESARROLLO Y PRODUCCIΓN
Laravel Boost es una herramienta MCP para desarrollo asistido por IA, pero puede causar problemas graves si no se configura correctamente.
- Rendimiento degradado: PΓ‘ginas que tardan 30+ segundos, errores 502
- Seguridad en producciΓ³n: Expone credenciales, tokens, estructura de BD
- Procesos mΓΊltiples: AcumulaciΓ³n de instancias
php artisan boost:mcp
1. Variables de entorno (.env)
# CRITICAL: MUST be false in production
BOOST_ENABLED=true
BOOST_BROWSER_LOGS_WATCHER=false # Desactivado (causa problemas de rendimiento)2. ProducciΓ³n
APP_ENV=production
BOOST_ENABLED=false # OBLIGATORIO en producciΓ³nNUNCA dejes Laravel Boost activo en producciΓ³n. Expone informaciΓ³n sensible.
Si experimentas lentitud o errores 502:
# Detener procesos de Boost
pkill -f "boost:mcp"
# Limpiar cache
php artisan optimize:clear
# Reiniciar servicios
herd restart # o tu servidor webπ DocumentaciΓ³n completa: Laravel Boost - Problemas de Rendimiento y Seguridad
- docs/PRODUCTION_WEB_INSTALL.md - GuΓa de instalaciΓ³n web (producciΓ³n) β
- docs/DEVELOPMENT_WIZARD_TESTING.md - Testing del wizard de instalaciΓ³n (desarrollo)
- STAGING_SETUP.md - ConfiguraciΓ³n completa de staging/pre-producciΓ³n
- docs/DEVELOPMENT_COMMANDS.md - Comandos ΓΊtiles de desarrollo
- docs/wizard/TODO_WIZARD.md - Roadmap del wizard
- docs/wizard/ADR-WZ-001_ARCHITECTURE.md - Arquitectura del wizard (sin framework)
# Tests completos
php artisan test
# Con cobertura
composer test-coverage
# Solo Invoice tests
php artisan test --filter=InvoiceCobertura objetivo:
- Paquetes: 80-95%
- App staging: 60-70%
| Componente | TecnologΓa | VersiΓ³n |
|---|---|---|
| Framework | Laravel | 12.x |
| PHP | PHP | 8.4+ |
| Admin Panel | Livewire + DaisyUI | 3.x + 5.x |
| Testing | Pest | 3.x |
| Frontend | TailwindCSS + Alpine.js | 4.x + 3.x |
| Database | MySQL / PostgreSQL | 8.0+ / 15+ |
- Sistema de facturaciΓ³n completo
- IntegraciΓ³n Verifactu AEAT
- ROI/OSS para intracomunitario
- Panel admin Livewire + DaisyUI
- UUID v7 nativo
- Portal de clientes
- Herramienta migraciΓ³n WHMCS
- Pasarelas de pago
- Multi-tenant SaaS
- MΓ‘s jurisdicciones fiscales
- API pΓΊblica
- Integraciones (Stripe, PayPal, etc.)
Este proyecto es staging/pre-producciΓ³n para validar paquetes. Para contribuir:
- Reporta issues en los paquetes individuales
- Pull requests en GitHub
- DocumentaciΓ³n siempre bienvenida
- larabill - Sistema de facturaciΓ³n
- lararoi - LΓ³gica fiscal ROI
- lara-verifactu - AEAT Verifactu
AGPL-3.0 License - Consulta LICENSE para mΓ‘s detalles.
Desarrollado con β€οΈ por Aicha Digital
Larafactu is a complete billing and invoicing platform designed specifically for hosting companies in Spain with automatic tax compliance (Verifactu AEAT).
- π§Ύ Complete Invoicing - Invoices, quotes, credit notes
- πͺπΊ ROI/OSS - Intra-community operator (B2B reverse charge)
- ποΈ Verifactu AEAT - Native integration with Spanish tax system
- π° Base 100 - Precise monetary calculations without float errors
- π« Integrated Support - Built-in ticket system
- π Admin Panel - Livewire + DaisyUI for complete management
- π UUID v7 - Security against discovery attacks
| Aspect | Description |
|---|---|
| Industry | Hosting (domains, VPS, dedicated servers) |
| Region | Spain + EU (intra-community operators) |
| Tax | Verifactu, VAT 21%, IGIC, IPSI, ROI |
| Migration | WHMCS compatible |
Larafactu is built on independent and reusable Laravel packages:
aichadigital/larabill β Billing & invoicing core
aichadigital/lararoi β ROI/OSS tax logic
aichadigital/lara-verifactu β AEAT Verifactu integration
aichadigital/laratickets β Ticket system
aichadigital/lara100 β Base-100 monetary values
- PHP 8.4+
- MySQL 8.0+ / PostgreSQL 15+
- Composer 2.x
- Node.js 20+
# 1. Clone repository
git clone https://github.com/yourorg/larafactu.git
cd larafactu
# 2. Install dependencies
composer install
npm install && npm run build
# 3. Setup environment
cp .env.example .env
php artisan key:generate
# 4. Configure database
# Edit .env with your DB credentials
# 5. Migrate and seed
php artisan migrate:fresh --seed
# 6. Serve (development)
php artisan serve- Frontend: http://localhost:8000
- Admin: http://localhost:8000/admin
- Credentials:
admin@example.com/password
IMPORTANT FOR DEVELOPMENT AND PRODUCTION
Laravel Boost is an MCP tool for AI-assisted development, but can cause serious issues if not configured correctly.
- Performance degradation: Pages taking 30+ seconds, 502 errors
- Production security: Exposes credentials, tokens, DB structure
- Multiple processes: Accumulation of
php artisan boost:mcpinstances
1. Environment variables (.env)
# CRITICAL: MUST be false in production
BOOST_ENABLED=true
BOOST_BROWSER_LOGS_WATCHER=false # Disabled (causes performance issues)2. Production
APP_ENV=production
BOOST_ENABLED=false # MANDATORY in productionNEVER leave Laravel Boost active in production. It exposes sensitive information.
If experiencing slowness or 502 errors:
# Stop Boost processes
pkill -f "boost:mcp"
# Clear cache
php artisan optimize:clear
# Restart services
herd restart # or your web serverπ Full documentation: Laravel Boost - Performance and Security Issues
- docs/PRODUCTION_WEB_INSTALL.md - Web installation guide (production) β
- docs/DEVELOPMENT_WIZARD_TESTING.md - Installation wizard testing (development)
- STAGING_SETUP.md - Complete staging/pre-production setup
- docs/DEVELOPMENT_COMMANDS.md - Useful development commands
- docs/wizard/TODO_WIZARD.md - Wizard roadmap
- docs/wizard/ADR-WZ-001_ARCHITECTURE.md - Wizard architecture (framework-less)
# Full test suite
php artisan test
# With coverage
composer test-coverage
# Invoice tests only
php artisan test --filter=InvoiceCoverage targets:
- Packages: 80-95%
- Staging app: 60-70%
| Component | Technology | Version |
|---|---|---|
| Framework | Laravel | 12.x |
| PHP | PHP | 8.4+ |
| Admin Panel | Livewire + DaisyUI | 3.x + 5.x |
| Testing | Pest | 3.x |
| Frontend | TailwindCSS + Alpine.js | 4.x + 3.x |
| Database | MySQL / PostgreSQL | 8.0+ / 15+ |
- Complete invoicing system
- Verifactu AEAT integration
- ROI/OSS for intra-community
- Livewire + DaisyUI admin panel
- Native UUID v7
- Customer portal
- WHMCS migration tool
- Payment gateways
- Multi-tenant SaaS
- More tax jurisdictions
- Public API
- Integrations (Stripe, PayPal, etc.)
This project is staging/pre-production for package validation. To contribute:
- Report issues in individual packages
- Pull requests on GitHub
- Documentation always welcome
- larabill - Billing system
- lararoi - ROI tax logic
- lara-verifactu - AEAT Verifactu
AGPL-3.0 License - See LICENSE for details.
Built with β€οΈ by Aicha Digital
Last updated: November 28, 2025
Version: 1.0.0-staging
Target v1.0 stable: December 15, 2025