Skip to content

AichaDigital/larafactu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

148 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Larafactu

Modern Billing & Invoicing Platform for Hosting Companies with Spanish Tax Compliance (Verifactu)

Laravel PHP TailwindCSS DaisyUI Pest License


🌍 Multi-Language


EspaΓ±ol

πŸ“‹ Sobre Larafactu

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).

✨ Características Principales

  • 🧾 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

🎯 Mercado Objetivo

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

πŸ“¦ Arquitectura Modular

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

πŸš€ InstalaciΓ³n RΓ‘pida

Requisitos

  • PHP 8.4+
  • MySQL 8.0+ / PostgreSQL 15+
  • Composer 2.x
  • Node.js 20+

🏠 Desarrollo Local

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.sh

El script local-install.sh realiza automΓ‘ticamente:

  • βœ… Detecta paquetes de desarrollo en rutas comunes
  • βœ… Pregunta quΓ© BD usar (SQLite o MySQL)
  • βœ… Configura .env con 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)

Opciones del Instalador

# 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

Comandos Post-InstalaciΓ³n

# Reinstalar limpio (si ya tienes el proyecto funcionando)
php artisan larafactu:install --local --fresh

Nota sobre composer.json en desarrollo

El 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

πŸŽ‰ Β‘Listo!


🌐 Producción / Pre-producción

Pasos detallados para instalaciΓ³n en servidor:

Paso 1: Clonar y Preparar

# Clonar repositorio
git clone https://github.com/AichaDigital/larafactu.git
cd larafactu

# Convertir repositorios de paquetes (path β†’ GitHub)
php scripts/post-deploy.php

Paso 2: Instalar Dependencias

# 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)

Paso 3: Configurar Entorno

# Crear .env desde example
cp .env.example .env

# Editar con tus datos reales
nano .env  # o vim, vi, etc.

⚠️ DIFERENCIAS: Local vs Producción

Variable 🏠 Local πŸš€ ProducciΓ³n Nota
APP_ENV local production ⚠️ Afecta acceso admin
APP_DEBUG true false ⚠️ NUNCA true en vivo
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...

Paso 4: Generate Key

php artisan key:generate --force

Paso 5: Migrar Tablas Base de Laravel

# IMPORTANTE: Migrar PRIMERO las tablas base de Laravel
# (users, password_resets, sessions, etc.)
php artisan migrate --force

Tablas creadas en este paso:

  • users (requerida por larabill:install)
  • password_reset_tokens
  • sessions
  • cache, jobs (si usas queue/cache en DB)

Paso 6: Instalar Larabill (CRÍTICO)

# Publica migraciones y configuraciones del paquete
php artisan larabill:install --no-interaction

QuΓ© hace larabill:install:

  • βœ… Publica 30+ migraciones adicionales de facturaciΓ³n
  • βœ… Publica configuraciones del paquete
  • βœ… Verifica que la tabla users exista (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

Paso 7: Migrar Tablas de Larabill

# Crear todas las tablas de facturaciΓ³n
php artisan migrate --force

Tablas creadas en este paso:

  • invoices, invoice_items, fiscal_settings
  • customers, tax_rates, tax_categories
  • articles, commissions, vat_verifications
  • Y 20+ tablas mΓ‘s para el sistema completo

Paso 8: Optimizar

# 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:cache

Paso 9 (Opcional): Compilar Assets Frontend

npm install
npm run build

πŸ”„ Script de Deploy AutomΓ‘tico

Para actualizaciones futuras, usa el script:

./scripts/deploy.sh

El script automΓ‘ticamente:

  1. πŸ’Ύ Hace backup (.env, composer.json, BD)
  2. πŸ”’ Entra en modo mantenimiento
  3. πŸ“₯ Pull del ΓΊltimo cΓ³digo (git reset hard)
  4. πŸ”§ Convierte repositories (post-deploy.php)
  5. πŸ“¦ Actualiza dependencias (composer install)
  6. πŸ—„οΈ Corre migraciones (con confirmaciΓ³n)
  7. 🧹 Limpia y cachea
  8. πŸ”“ Sale de modo mantenimiento

MΓ‘s detalles: docs/UPDATE_MANAGEMENT.md

⚠️ Laravel Boost - Configuración Crítica

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.

Problemas Conocidos

  • 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

ConfiguraciΓ³n Obligatoria

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Γ³n

NUNCA dejes Laravel Boost activo en producciΓ³n. Expone informaciΓ³n sensible.

DiagnΓ³stico RΓ‘pido

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


πŸ“š DocumentaciΓ³n

InstalaciΓ³n

ConfiguraciΓ³n

Wizard de InstalaciΓ³n

πŸ§ͺ Testing

# Tests completos
php artisan test

# Con cobertura
composer test-coverage

# Solo Invoice tests
php artisan test --filter=Invoice

Cobertura objetivo:

  • Paquetes: 80-95%
  • App staging: 60-70%

πŸ› οΈ Stack TecnolΓ³gico

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+

πŸ“‹ Roadmap

βœ… v1.0 (15 dic 2025)

  • 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

🚧 v2.0 (Q1 2026)

  • Multi-tenant SaaS
  • MΓ‘s jurisdicciones fiscales
  • API pΓΊblica
  • Integraciones (Stripe, PayPal, etc.)

🀝 Contribuir

Este proyecto es staging/pre-producciΓ³n para validar paquetes. Para contribuir:

  1. Reporta issues en los paquetes individuales
  2. Pull requests en GitHub
  3. DocumentaciΓ³n siempre bienvenida

Paquetes Principales

πŸ“„ Licencia

AGPL-3.0 License - Consulta LICENSE para mΓ‘s detalles.


πŸ™ CrΓ©ditos

Desarrollado con ❀️ por Aicha Digital


English

πŸ“‹ About Larafactu

Larafactu is a complete billing and invoicing platform designed specifically for hosting companies in Spain with automatic tax compliance (Verifactu AEAT).

✨ Key Features

  • 🧾 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

🎯 Target Market

Aspect Description
Industry Hosting (domains, VPS, dedicated servers)
Region Spain + EU (intra-community operators)
Tax Verifactu, VAT 21%, IGIC, IPSI, ROI
Migration WHMCS compatible

πŸ“¦ Modular Architecture

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

πŸš€ Quick Installation

Requirements

  • PHP 8.4+
  • MySQL 8.0+ / PostgreSQL 15+
  • Composer 2.x
  • Node.js 20+

Steps

# 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

πŸŽ‰ Done!

⚠️ Laravel Boost - Critical Configuration

IMPORTANT FOR DEVELOPMENT AND PRODUCTION

Laravel Boost is an MCP tool for AI-assisted development, but can cause serious issues if not configured correctly.

Known Issues

  • Performance degradation: Pages taking 30+ seconds, 502 errors
  • Production security: Exposes credentials, tokens, DB structure
  • Multiple processes: Accumulation of php artisan boost:mcp instances

Required Configuration

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 production

NEVER leave Laravel Boost active in production. It exposes sensitive information.

Quick Diagnosis

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


πŸ“š Documentation

Installation

Configuration

Installation Wizard

πŸ§ͺ Testing

# Full test suite
php artisan test

# With coverage
composer test-coverage

# Invoice tests only
php artisan test --filter=Invoice

Coverage targets:

  • Packages: 80-95%
  • Staging app: 60-70%

πŸ› οΈ Tech Stack

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+

πŸ“‹ Roadmap

βœ… v1.0 (Dec 15, 2025)

  • 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

🚧 v2.0 (Q1 2026)

  • Multi-tenant SaaS
  • More tax jurisdictions
  • Public API
  • Integrations (Stripe, PayPal, etc.)

🀝 Contributing

This project is staging/pre-production for package validation. To contribute:

  1. Report issues in individual packages
  2. Pull requests on GitHub
  3. Documentation always welcome

Main Packages

πŸ“„ License

AGPL-3.0 License - See LICENSE for details.


πŸ™ Credits

Built with ❀️ by Aicha Digital


Last updated: November 28, 2025
Version: 1.0.0-staging
Target v1.0 stable: December 15, 2025

About

Deploy for larafactu

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 2

  •  
  •