Rental Manager
Application de gestion comptable de biens locatifs — Go + SvelteKit + SQLite.
Interface web embarquée, exécutable unique, sans dépendances externes.
Fonctionnalités
- Biens immobiliers — gestion multi-biens (longue durée & Airbnb)
- Transactions — revenus & dépenses par bien, catégories fiscales
- Import QIF/QFX depuis votre banque
- Ventilation sur plusieurs biens (split)
- Ventilation mixte revenu/dépense
- Fusion de prélèvements scindés en deux par la banque
- Prêts immobiliers — tableaux d'amortissement, split automatique intérêts/capital
- Calendrier — grille mensuelle avec sync iCal Airbnb automatique (toutes les heures)
- Documents — pièces jointes classées par année/catégorie, export ZIP
- Export fiscal — CSV annuel par bien (revenus, charges déductibles)
- Catégories — personnalisables, avec indicateur déductibilité fiscale
- Multi-utilisateurs — authentification par session
Stack
| Composant | Technologie |
|---|---|
| Backend | Go 1.25, gorilla/mux, modernc.org/sqlite |
| Frontend | SvelteKit + TailwindCSS + Chart.js + lucide-svelte |
| Base de données | SQLite (mode WAL) |
| Build Windows | go build -ldflags="-H windowsgui" |
| Déploiement | Docker Compose |
Développement
# Backend (port 9000)
go mod tidy
go run ./cmd/server
# Frontend (autre terminal, port 5173)
cd frontend
npm install
npm run dev
Le frontend dev proxy les appels /api/* vers :9000.
Build production (Windows)
build.bat
Génère RentalManager.exe — interface web embarquée dans le binaire, sans console visible.
Déploiement Docker (ESXi / NAS)
docker compose up -d --build
Application accessible sur http://<IP>:8080.
Structure
cmd/server/main.go Point d'entrée — routes, middlewares, démarrage
internal/
auth/ Authentification, sessions cookie, middleware
property/ Biens immobiliers (CRUD, URL iCal)
transaction/ Revenus & dépenses, split, ventilation mixte
calendar/ Événements d'occupation (CRUD)
ical/ Sync flux iCal Airbnb — goroutine horaire
document/ Upload pièces jointes, export ZIP année/catégorie
fiscal/ Export CSV annuel
loan/ Prêts immobiliers, tableaux d'amortissement, split auto
category/ Catégories de transactions
importer/ Import QIF/QFX bancaire
db/ SQLite init + migrations
web/ Frontend SvelteKit embarqué (embed.FS)
frontend/src/
routes/
+page.svelte Tableau de bord (graphiques, KPI)
transactions/ Liste & création de transactions
import/ Import bancaire QIF
calendar/ Calendrier mensuel
documents/ Gestion des pièces jointes
loans/ Prêts & amortissement
properties/ Gestion des biens
categories/ Catégories
fiscal/ Export fiscal
profile/ Profil & mot de passe
lib/stores/api.js Client HTTP centralisé
data/
rental.db Base SQLite (créée au premier démarrage)
documents/ Fichiers uploadés
Variables d'environnement
| Variable | Défaut | Description |
|---|---|---|
PORT |
9000 |
Port d'écoute |
TZ |
Europe/Paris |
Timezone |
Premiers pas
- Lancer l'application — un compte
admin@rental.local/admin1234est créé automatiquement - Changer le mot de passe dans Profil
- Créer vos biens dans Biens
- Pour les biens Airbnb : coller l'URL iCal dans la fiche bien
(Airbnb → Annonce → Paramètres → Calendrier → Exporter le calendrier) - Configurer vos Catégories si besoin
- Importer vos relevés bancaires via Import
Sync iCal Airbnb
La goroutine ical.Service synchronise automatiquement toutes les heures.
Un bouton Synchroniser dans le calendrier force la sync immédiate.
Les résultats sont loggués dans la table ical_sync_log.
À chaque sync, les anciens événements Airbnb de la propriété sont supprimés et remplacés (ce qui gère aussi les annulations de réservations).
Import bancaire
Formats supportés : QIF, QFX
(Espace client → Mes comptes → Télécharger → Format QIF)
Fonctionnalités :
- Détection automatique des lignes déjà importées
- Ventilation sur plusieurs biens
- Ventilation mixte revenu + dépense (ex: loyer reçu + appel de fonds)
- Fusion de deux prélèvements scindés par la banque → split intérêts/capital via tableau d'amortissement