Cette application web permet de gérer la comptabilité LMNP (Location Meublée Non Professionnelle) et aide à préparer la déclaration fiscale 2044-SPE.
- Gestion des comptes utilisateurs (inscription, connexion, déconnexion)
- Gestion des logements (ajout, modification, suppression)
- Gestion des recettes (loyers, charges récupérables)
- Gestion des dépenses (intérêts d'emprunt, frais de gestion, travaux, etc.)
- Calcul automatique des amortissements (immobilier, mobilier, frais de notaire)
- Calcul du résultat fiscal
- Export CSV des écritures comptables
- Génération de PDF récapitulatif pour la déclaration 2044-SPE
- Python 3.8 ou supérieur
- pip (gestionnaire de paquets Python)
- Un serveur web (pour la production)
git clone <url-du-depot>
cd lmnp_app
python3 -m venv venv
source venv/bin/activate # Sur Windows: venv\Scripts\activate
pip install -r requirements.txt
Créez un fichier .env
à la racine du projet en vous basant sur le fichier .env.example
:
cp .env.example .env
Puis modifiez le fichier .env
avec vos propres paramètres.
Assurez-vous que votre terminal est à la racine du projet (le dossier contenant run.py
et le dossier lmnp_app
).
export FLASK_APP=run.py # Ou utilisez le fichier .flaskenv
flask db init # Seulement la première fois
flask db migrate -m "Initial migration"
flask db upgrade
Assurez-vous que votre terminal est à la racine du projet.
export FLASK_APP=run.py # Ou utilisez le fichier .flaskenv
flask run
L'application sera accessible à l'adresse http://localhost:5000
Pour un déploiement en production sur un VPS, nous recommandons d'utiliser Gunicorn comme serveur WSGI et Nginx comme proxy inverse.
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:8000 run:app
Créez un fichier de configuration dans /etc/nginx/sites-available/lmnp_app
:
server {
listen 80;
server_name votre-domaine.com;
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Puis activez le site et redémarrez Nginx :
ln -s /etc/nginx/sites-available/lmnp_app /etc/nginx/sites-enabled/
systemctl restart nginx
L'application utilise SQLite par défaut, mais peut facilement être migrée vers PostgreSQL pour une utilisation plus intensive.
sudo apt update
sudo apt install postgresql postgresql-contrib
sudo -u postgres psql
Dans l'invite PostgreSQL :
CREATE DATABASE lmnp_db;
CREATE USER lmnp_user WITH PASSWORD 'votre_mot_de_passe';
GRANT ALL PRIVILEGES ON DATABASE lmnp_db TO lmnp_user;
\q
Dans votre fichier .env
, modifiez la variable DATABASE_URL
:
DATABASE_URL=postgresql://lmnp_user:votre_mot_de_passe@localhost/lmnp_db
flask db upgrade
Pour sauvegarder la base de données SQLite :
cp app.db app.db.backup
Pour PostgreSQL :
pg_dump -U lmnp_user -W -F t lmnp_db > lmnp_backup.tar
- Vérifiez régulièrement les mises à jour des dépendances
- Effectuez des sauvegardes régulières de la base de données
- Surveillez les logs pour détecter d'éventuels problèmes
Ce projet est sous licence MIT.