Requisitos previos
Antes de empezar comprueba que tienes lo siguiente:En Linux, si ejecutas LEFA en una sesión SSH sin entorno gráfico (headless), el módulo
keyring puede fallar al no encontrar el demonio D-Bus de sesión. Para uso normal en escritorio no se requiere ninguna configuración adicional.Inicio rápido (recomendado)
El scriptrun_app.py automatiza todo el proceso: comprueba si existe el entorno virtual .venv, lo crea si no existe, instala las dependencias desde requirements.txt y arranca la aplicación. Es la forma más sencilla de poner LEFA en marcha sin pasos adicionales.
Instalación manual
Si prefieres controlar cada paso o integrar LEFA en un flujo de trabajo propio, puedes instalar y ejecutar la aplicación manualmente:1
Clona o descarga el proyecto
Descarga el repositorio desde github.com/entreunosyceros/lefa y accede a la carpeta raíz:
2
Crea el entorno virtual
3
Activa el entorno virtual
4
Instala las dependencias
5
Arranca la aplicación
main.py inicializa la base de datos SQLite en ~/.lefa/lefa.db y abre la ventana principal de LEFA.Primera ejecución
Al arrancar por primera vez, LEFA comprueba si la base de datos está vacía. Si es así, crea automáticamente tres clientes de ejemplo para que puedas explorar la interfaz sin necesidad de introducir datos manualmente. Verás un diálogo de bienvenida que te orienta sobre los pasos iniciales recomendados: configurar tus datos de empresa en Herramientas → Preferencias y, opcionalmente, configurar el correo SMTP en Herramientas → Configurar correo electrónico. Puedes cerrar este diálogo en cualquier momento; todas estas opciones siguen accesibles desde el menú superior.Configura tus datos
Antes de emitir facturas reales debes rellenar los datos de tu empresa emisora. Ve a Herramientas → Preferencias… y completa la sección Empresa emisora:
También puedes configurar en esta misma pantalla los valores por defecto de IVA e IRPF, el formato y las series de numeración de facturas, la carpeta donde se guardarán los PDFs y el logotipo que aparecerá en los documentos generados.
Emite tu primera factura
Con los datos de emisor guardados ya puedes crear y emitir tu primera factura:1
Abre la pestaña Nueva Factura
En la barra de pestañas de la ventana principal, haz clic en Nueva Factura. LEFA recordará el último cliente utilizado si ya existe alguno en la base de datos.
2
Selecciona el cliente
Elige al destinatario de la factura en el desplegable Cliente. Si el cliente aún no existe, ve a Clientes → Nuevo cliente… en el menú superior para crearlo con nombre, NIF y, opcionalmente, dirección de correo electrónico.
3
Elige la serie y el vencimiento
Selecciona la serie de facturación (por defecto
FACT) y el vencimiento en días desde la fecha de emisión. LEFA asignará el número correlativo automáticamente al emitir.4
Añade las líneas de la factura
Haz clic en Añadir línea para introducir una descripción, cantidad y precio manualmente. También puedes usar:
- Añadir servicio — selecciona un concepto del catálogo de servicios con precio e IVA predefinidos.
- Añadir plantilla — rellena la línea desde una plantilla reutilizable (Herramientas → Plantillas de líneas…).
5
Emite la factura
Haz clic en Emitir Factura. LEFA realizará de forma automática y simultánea:
- Asignación del número oficial correlativo dentro de la serie elegida.
- Generación del PDF en la carpeta configurada en Preferencias (por defecto
~/.lefa/facturas_pdf/). - Generación del XML Facturae en
~/.lefa/facturas_xml/. - Cálculo y encadenamiento del registro VeriFactu (hash SHA-256) e impresión del QR tributario en el PDF.
6
Envía la factura por correo (opcional)
Si has configurado tu cuenta SMTP en Herramientas → Configurar correo electrónico…, pulsa Enviar por email para remitir el PDF directamente al cliente desde LEFA. El estado de envío quedará registrado en el Listado con fecha y destinatario.
Variables de entorno (opcionales)
LEFA respeta dos variables de entorno que permiten personalizar las rutas del proyecto y del entorno virtual, útiles en instalaciones empaquetadas o configuraciones no estándar:
Ejemplo de uso en Linux: