Cómo instalar Invoice Ninja en Docker - Plataforma de facturación autohospedada en Docker

InvoiceNinja | Billing | Docker

InvoiceNinja: Plataforma de facturación profesional autohospedada en Docker

Facturación completa. Gestión gastos. Tareas. Pagos online. Multi-empresa. Portal cliente/proveedor. Reportes. API REST. 40+ idiomas. Laravel + React. Open source.

¿Qué es InvoiceNinja?


InvoiceNinja es una plataforma completa de facturación y gestión de negocios profesional, open source y completamente autohospedable diseñada para freelancers, agencias, y pequeñas empresas que necesitan facturación, seguimiento de gastos, gestión de tareas, y pagos online bajo control total. A diferencia de FreshBooks ($15/mes), Wave (SaaS), o QuickBooks (caro), InvoiceNinja es gratuito, self-hosted, y con todas las features.

Stack enterprise: Laravel (backend), React (UI frontend), Flutter (app móvil). MySQL/PostgreSQL. Generación PDF con Chrome. Soporte 40+ idiomas. API REST completa. Pagos integrados: Stripe, PayPal, Square. Multi-empresa, multi-usuario con permisos granulares. Portal cliente 24/7. Reportes avanzados. Integraciones: Zapier, webhooks. Facturación recurrente. Presupuestos. Propuestas. Historial de pagos. Impuestos. Líneas de descuento.

Control financiero total: Tu datos de facturación en tu servidor. Sin cargos ocultos. Sin sorpresas SaaS. Escala sin pagar más. Open source, auditado por comunidad.

Características principales

Facturación profesional

Plantillas customizables. Logo, color, términos. PDF/email automático.

Estimaciones/Propuestas

Crea, envía, acepta estimas. Convierte a factura con 1 click.

Gestión de gastos

Registra gastos. Categorías. Recibos. Reportes por categoría.

Facturación recurrente

Crea series automáticas. Mensual, semanal, anual. Sin intervención.

Pagos online integrados

Stripe, PayPal, Square, Authorize.net. Clientes pagan directo en invoice.

Portal cliente

Los clientes ven invoices, pagan, descargan comprobantes 24/7.

Gestión de tareas

Crea tareas, asigna tiempo, factúralas. Time tracking integrado.

Multi-empresa

Gestiona múltiples negocios desde 1 dashboard. Datos aislados.

Reportes avanzados

Ingresos, gastos, impuestos, clientes, proyectos. Exporta PDF/CSV.

API REST completa

Integra con tu software. Webhooks. Automación sin límites.

40+ idiomas

Facturación global. Soporta múltiples monedas y localizaciones.

Soporte GDPR

Cumplimiento de privacidad. Datos locales bajo tu control.

Requisitos del sistema

  • Docker & Docker Compose
  • 2-4 GB RAM (Laravel + React + base de datos)
  • 2+ CPU cores
  • 20+ GB espacio disco (facturas, archivos, PDFs)
  • MySQL 8+ o PostgreSQL 12+ (incluido en docker-compose)
  • Puerto 80/443 (HTTP/HTTPS)
  • Chrome/Chromium para generación PDF (incluido)
Para producción: Mínimo 2GB RAM. 4GB+ recomendado si usas Stripe/PayPal con volumen alto.

Instalación con Docker Compose

Opción 1: Instalación rápida (Debian)

git clone https://github.com/invoiceninja/dockerfiles.git -b debian cd dockerfiles/debian cat .env # Edita con tu config docker compose up -d

Opción 2: Setup personalizado

version: '3.8' services: db: image: mysql:8 container_name: ninja_db restart: unless-stopped environment: - MYSQL_DATABASE=invoiceninja - MYSQL_USER=ninja - MYSQL_PASSWORD=tu-contraseña - MYSQL_ROOT_PASSWORD=root-password volumes: - mysql_data:/var/lib/mysql invoiceninja: image: invoiceninja/invoiceninja:latest container_name: invoiceninja restart: unless-stopped ports: - "80:80" environment: - APP_ENV=production - APP_DEBUG=0 - APP_URL=http://invoiceninja.tu-ip - APP_KEY=base64:XXXXXX # Genera con artisan - DB_HOST=db - DB_DATABASE=invoiceninja - DB_USERNAME=ninja - DB_PASSWORD=tu-contraseña depends_on: - db volumes: - ninja_storage:/var/app/storage - ninja_public:/var/app/public volumes: mysql_data: ninja_storage: ninja_public:

Generar APP_KEY

docker run --rm invoiceninja/invoiceninja php artisan key:generate --show

Iniciar

docker compose up -d

Acceder

http://localhost o http://tu-ip

Primeros pasos

1. Setup inicial

  1. Abre http://localhost
  2. Crea cuenta admin o usa default (admin@example.com / changeme)
  3. Setup wizard: nombre empresa, dirección, datos fiscales

2. Crear clientes

  1. Settings → Clients → New Client
  2. Nombre empresa, email, dirección, teléfono
  3. Guarda cliente. Ahora puedes facturarle.

3. Crear primera factura

  1. Invoices → New Invoice
  2. Selecciona cliente
  3. Agrega líneas: descripción, cantidad, precio
  4. Aplica impuestos si es necesario
  5. Mark as sent → Email a cliente

4. Activar pagos online

  1. Settings → Payment Methods
  2. Stripe: Connect con cuenta Stripe
  3. PayPal: Agrega API credentials
  4. Ahora invoices mostrarán botón "Pay Now"

5. Portal cliente

  1. Clientes reciben email con invoice
  2. Click link, ven portal cliente 24/7
  3. Pueden pagar, descargar PDF, ver historial

6. Reportes y análisis

  1. Reports → Ingresos, Gastos, Clientes, Proyectos
  2. Filtra por fecha, cliente, proyecto
  3. Exporta PDF o CSV para contable

Casos de uso

  • Freelancers: Factura clientes, recibe pagos online, impuestos
  • Agencias web/marketing: Múltiples proyectos, facturación recurrente, gestión de tareas
  • Consultores: Presupuestos, facturación por horas, reportes
  • PyME: Gestión financiera, clientes, gastos, multi-usuario
  • Contables/Asesores: Gestiona clientes, exporta reportes, cumple GDPR
  • SaaS: Facturación recurrente integrada con API

Integraciones y pagos

Pasarelas de pago

Stripe, PayPal, Square, Authorize.net, Mollie, Razorpay, WePay, más. Clientes pagan directo sin dejar invoice.

API REST

Automatiza completamente. Crea invoices desde tu app, webhooks para eventos, control total.

Email automático

Envía invoices, recordatorios de pago, recibos automáticamente en base a triggers.

Importar datos

CSV import para migrar desde otro software. Clientes, invoices, gastos.

Zapier

Conecta con 1000+ apps. Crea invoices desde Slack, Google Sheets, etc.

HTTPS con Caddy (producción)

Caddyfile

invoiceninja.tudominio.com { reverse_proxy localhost:80 }

Configurar en .env

APP_URL=https://invoiceninja.tudominio.com REQUIRE_HTTPS=true

Acceso remoto seguro

https://invoiceninja.tudominio.com con HTTPS automático. Clientes pagan seguramente.

Importante: En producción SIEMPRE usa HTTPS. Payments y datos financieros requieren SSL.

Gestión y mantenimiento

Ver logs

docker logs -f invoiceninja

Backup de base de datos

docker exec ninja_db mysqldump -u ninja -p invoiceninja > backup-$(date +%Y%m%d).sql

Backup de archivos (facturas, PDFs)

docker run --rm -v ninja_storage:/data -v $(pwd):/backup alpine tar czf /backup/ninja-storage-$(date +%Y%m%d).tar.gz -C /data .

Restore de backup

cat backup-20260522.sql | docker exec -i ninja_db mysql -u ninja -p invoiceninja

Reiniciar

docker compose restart

Actualizar a versión más reciente

docker compose pull docker compose up -d docker exec invoiceninja php artisan migrate

Crear super admin (recuperar acceso)

docker exec invoiceninja php artisan tinker >>> User::create(['first_name' => 'Admin', 'email' => 'admin@example.com', 'password' => Hash::make('password'), 'is_admin' => 1])

Limpiar cache

docker exec invoiceninja php artisan cache:clear

Comparativa con alternativas

vs FreshBooks ($15/mes)

InvoiceNinja gana: Gratuito, self-hosted, sin suscripción. FreshBooks gana: UI pulida, soporte enterprise.

vs Wave (SaaS free)

InvoiceNinja gana: Control total datos, sin publicidad. Wave gana: Más simple, cero configuración.

vs Stripe Billing

InvoiceNinja gana: Facturación recurrente local, más features. Stripe gana: Mejor integración pagos.

vs Zoho Invoice

InvoiceNinja gana: Self-hosted, gratuito, open source. Zoho gana: Más integraciones.

Mejor para: Freelancers, agencias, PyMEs que valoren privacidad, control de datos, y no quieran pagar suscripciones mensuales. Open source. Forever gratuito.

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.