OpenLMNP

Software de contabilidade de código aberto (AGPLv3) para o regime fiscal LMNP francês, com um servidor MCP integrado para escrituração contábil e declarações fiscais orientadas por IA.

Documentação

OpenLMNP

Software de contabilidade LMNP (Aluguel Mobiliado Não Profissional) de código aberto

Gerencie seus imóveis de aluguel mobiliado, calcule suas depreciações e produza sua declaração fiscal no regime real — sem assinatura, na sua casa.

Tests Release Licence PHP Laravel Filament Docker Pulls

🚀 Demonstração ao vivo · 📦 Instalação · 📚 Documentação · 🇬🇧 English

Démonstration d'OpenLMNP : tableau de bord, simulateur, projection et télédéclaration

🎯 Experimente sem instalar nada — a demonstração online cria um ambiente de testes efêmero e isolado para cada visitante, pré-preenchido com 4 anos de contabilidade fictícia. Conexão: demo@openlmnp.fr / demo2026.

Sumário

Por que OpenLMNP?

O regime real LMNP é quase sempre mais vantajoso que o micro-BIC para um imóvel mobiliado, mas exige depreciações por componente, uma declaração fiscal (2031, 2033) e um FEC conforme. As opções habituais têm cada uma seu defeito:

OpenLMNPPlanilha caseiraSaaS contábilContador
CustoGratuito (AGPLv3)GratuitoAssinatura anualHonorários anuais
Seus dadosNa sua casa (auto-hospedado)Na sua casaNuvem de terceirosCom terceiros
Depreciações por componente✅ Automáticas⚠️ Fórmulas para manter✅✅
Declaração fiscal + FEC✅ Gerados❌✅✅
Cálculos ao centavo (bcmath)✅⚠️ Arredondamentos flutuantes✅✅

OpenLMNP automatiza o regime real de ponta a ponta e continua sendo uma ferramenta de apoio: para situações complexas (condomínio, TVA para-hoteleira, transição para LMP…), um contador continua sendo recomendado.

Funcionalidades

🏠 Contabilidade e depreciações

  • Depreciação por componente — estrutura, telhado, encanamento, acabamentos (prazos padrão)
  • Obras e mobiliário — depreciação dedicada ou proporcional, gestão de novo/usado
  • Empréstimos — tabela de amortização automática, juros dedutíveis
  • Lançamentos contábeis — geração automática conforme o plano de contas LMNP
  • Multi-imóveis — endereço, áreas, cota-parte da residência principal, valor venal

📋 Fiscal e declarações

  • Exercícios encadeados — saldos N−1, depreciações diferidas, teto
  • Simulador micro-BIC vs regime real — com veredito numérico
  • Projeção plurianual — tabela de 5 a 20 anos, ano de mudança de regime
  • Declaração interativa — linhas Cerfa 2031, 2033-A/B/C/D, 2042-C-PRO com botões « Copiar »
  • Declaração fiscal em PDF — geração completa
  • FEC conforme — artigo A.47 A-1 do LPF, 18 colunas, formato legal

🔌 Importação e integrações

  • Importação CSV Airbnb / Booking — formatos FR/EN, detecção de duplicatas
  • Exportação CSV — receitas, despesas, declaração
  • API MCP (45 ferramentas) — controle sua contabilidade por um assistente de IA (Claude, etc.)
  • Atualizações automáticas — notificação e implantação a partir do GitHub

🛡️ Conforto e segurança

  • Multi-usuários — cada proprietário vê apenas seus dados
  • Assistentes guiados — onboarding, criação de imóvel, fechamento fiscal, empréstimo, importação anual
  • Comprovantes — arquivos enviados para despesas, obras e mobiliário
  • Guia integrado e selos de progresso — início, acompanhamento regular, declaração anual
  • Modo escuro — nativo Filament
  • 234 testes automatizados — Pest PHP, 629 asserções (detalhe)

Capturas de tela

SimuladorProjeçãoDeclaração
Simulateur micro-BIC vs réelProjection pluriannuelleAide à la télédéclaration

Outras capturas: painel de controle · despesas

Documentação

DocumentoConteúdo
InstalaçãoAuto-hospedagem via Docker: build, run, volumes de persistência, variáveis de ambiente, atualização e backup
FuncionalidadesDepreciação por componente, FEC, declaração fiscal 2031/2033, importação CSV, simulador, multi-imóveis, empréstimos, comprovantes
Modo demonstraçãoAtivar e usar o modo demo multi-usuários (sandbox efêmero isolado por visitante)
FAQPerguntas frequentes: gratuidade, privacidade dos dados, regime real vs micro-BIC, backups…
Guia fiscal LMNP / AirbnbRegras fiscais do regime real: depreciações, abatimentos, tetos, reforma 2026
Cobertura de testesDetalhe dos 234 testes automatizados, suíte por suíte
Guia de design de UIEscolhas de design da interface Filament

Para contribuir com o projeto, veja CONTRIBUTING.md.

Stack técnica

ComponenteTecnologia
FrameworkLaravel 13
Admin UIFilament 5
InteratividadeLivewire 4
Banco de dadosSQLite (PostgreSQL opcional)
PDFDomPDF
Cálculos financeirosPHP bcmath (precisão decimal)
TestesPest PHP
ImplantaçãoDocker

Instalação rápida (Docker)

Com a imagem oficial manganate06/openlmnp:

docker run -d --name openlmnp -p 8090:8000 \
  -v openlmnp-database:/var/www/html/database \
  -v openlmnp-storage:/var/www/html/storage \
  --restart unless-stopped manganate06/openlmnp:latest

Ou construindo a imagem a partir das fontes:

git clone https://github.com/manganate006/openlmnp.git
cd openlmnp
docker build -t openlmnp .
docker run -d --name openlmnp -p 8090:8000 --restart unless-stopped openlmnp

Acesso: http://localhost:8090 Primeira conexão: crie sua conta em /register — a primeira conta vira administrador, e o cadastro se fecha sozinho em seguida.

Implantação em um PaaS (Coolify, Dokploy, Easypanel)

Em um PaaS auto-hospedado, o arquivo docker-compose.coolify.yml fornece uma implantação pronta para uso: domínio, certificado TLS e reverse proxy são configurados pela plataforma. No Coolify: New Resource → Docker Compose (Empty), cole o arquivo, Deploy. Detalhes e pontos de atenção em docs/INSTALLATION.md.

Instalação LXC Proxmox (script comunitário)

Em um host Proxmox VE, cria um contêiner LXC pronto para uso em um único comando:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/manganate006/openlmnp/main/community-scripts/ct/openlmnp.sh)"

Debian 13 · nginx + PHP 8.4-FPM · SQLite. Uma senha de administrador aleatória é gerada na instalação e salva em /opt/openlmnp/admin_credentials.txt.

ℹ️ Requer um repositório público com uma release publicada (o script busca a última release do GitHub).

Instalação para desenvolvimento

git clone https://github.com/manganate006/openlmnp.git
cd openlmnp
composer install
cp .env.docker .env
php artisan key:generate
touch database/database.sqlite
php artisan migrate:fresh --seed
php artisan serve

Configuração

Na primeira visita, crie sua conta em /register: ela vira administrador, e a página de cadastro se fecha automaticamente (instância pessoal por padrão — ajustável via ALLOW_REGISTRATION). Adicione então seu SIREN no seu perfil para os documentos fiscais.

VariávelDescriçãoPadrão
DB_CONNECTIONBanco de dadossqlite
DB_DATABASECaminho SQLitedatabase/database.sqlite
APP_LOCALEIdiomafr
ALLOW_REGISTRATIONCadastro: auto (até a primeira conta), true (sempre), false (nunca)auto
FEEDBACK_ENABLEDConvite pontual para dar sua opinião sobre o software (veja abaixo)true

Dar sua opinião (e como desativar)

Após um tempo de uso real, o aplicativo propõe uma vez que você diga o que acha do software: um polegar e, se quiser, uma palavra. É o único retorno que recebe um projeto desenvolvido no tempo livre.

Nada sai da sua instância. Sem FEEDBACK_FORWARD_EMAIL, seu retorno é simplesmente salvo no seu próprio banco; a tela de confirmação então propõe enviá-lo você mesmo, pelo seu cliente de e-mail, se quiser. Nenhum envio automático, nenhuma chamada de saída.

Para desativar completamente:

FEEDBACK_ENABLED=false

Os limites são ajustáveis sem tocar no código: FEEDBACK_MIN_SECONDS (240), FEEDBACK_MIN_ACTIONS (1), FEEDBACK_COOLDOWN_DAYS (30), FEEDBACK_AUDIENCES.

E-mails (opcional)

Nenhum e-mail é enviado por padrão (MAIL_MAILER=log) — o aplicativo funciona muito bem sem. Para ativar o link « Esqueci minha senha », conecte o SMTP de sua escolha via as variáveis MAIL_* (o remetente é seu próprio endereço; SPF/DKIM são gerenciados pelo seu provedor). E em caso de esquecimento sem SMTP, a partir do servidor:

php artisan openlmnp:reset-password vous@exemple.fr

📖 Referência completa — todas as variáveis, volumes de persistência, contas, SMTP passo a passo, backup: docs/INSTALLATION.md

Testes

Tests

234 testes Pest PHP, 629 asserções — serviços de cálculo, páginas Filament, isolamento multi-usuários, modo demo. Detalhe suíte por suíte: docs/TESTS.md.

# Lancer tous les tests
vendor/bin/pest

# Par catégorie
vendor/bin/pest --filter="Depreciation"
vendor/bin/pest --filter="FiscalYear"
vendor/bin/pest --filter="Filament"

Contribuição

Contribuições são bem-vindas! Por favor, abra uma issue antes de enviar um PR.

# Fork + clone
git checkout -b feature/ma-fonctionnalite
# ... modifier ...
vendor/bin/pest  # vérifier que les tests passent
git commit -m "feat: description"
git push origin feature/ma-fonctionnalite
# Ouvrir une PR

💛 Como nos apoiar?

OpenLMNP é desenvolvido no meu tempo livre. Se a ferramenta é útil para você, veja como me ajudar a continuar:

  • ⭐ Dê uma estrela no repositório — isso ajuda outros locadores mobiliados a descobrir o projeto
  • 💛 Torne-se patrocinador via GitHub Sponsors — alguns euros por mês financiam o tempo de desenvolvimento
  • 🐛 Reporte um bug ou proponha uma funcionalidade via as issues
  • 🔧 Contribua com código — veja CONTRIBUTING.md

Obrigado a todos que apoiam o projeto!

Agradecimentos

OpenLMNP deve muito àqueles que o instalaram, confrontaram com seu próprio caso e nos disseram o que não estava certo: @cocool97, @ptitzgeg-on-git, @ovrtn e @DamienFr. O detalhe de suas contribuições (correções, relatos, segurança) está na página Agradecimentos.

Licença

AGPLv3 — Software livre. Você pode usá-lo, modificá-lo e redistribuí-lo desde que compartilhe as modificações sob a mesma licença.

Créditos


OpenLMNP é uma ferramenta de apoio à contabilidade. Ela não substitui um contador para casos complexos.