95 lines
4.4 KiB
Markdown
95 lines
4.4 KiB
Markdown
---
|
|
title: Invio
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, accounting, dépenses, freelance, python, flask]
|
|
confidence: medium
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Accounting, https://github.com/PythonicCoder/invio]
|
|
---
|
|
|
|
# Invio 🧾
|
|
|
|
> Outil léger de **suivi de dépenses** et de facturation minimaliste pour freelances, écrit en Python (Flask) — orienté saisie rapide et rapports mensuels.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | https://github.com/PythonicCoder/invio |
|
|
| **GitHub** | https://github.com/PythonicCoder/invio |
|
|
| **License** | MIT |
|
|
| **Langage** | Python (Flask) + SQLite/PostgreSQL |
|
|
| **Étoiles** | ⭐73 |
|
|
| **Dernière MAJ** | 2024-08 |
|
|
| **Catégorie** | [[cat-accounting]] |
|
|
|
|
## Description
|
|
|
|
**Invio** est une application web simple écrite en **Python avec le micro-framework Flask**, conçue pour aider les **freelances et travailleurs indépendants** à suivre leurs dépenses professionnelles et à générer des **factures** sans la complexité d'outils plus lourds comme [[app-invoice-ninja]] ou [[app-akaunting]]. Le parti pris est la **simplicité radicale** : une interface épurée, peu de menus, et un workflow centré sur la saisie quotidienne de dépenses (avec catégories, montants, dates et notes).
|
|
|
|
L'application permet de créer et de gérer des **clients**, d'enregistrer des **dépenses** (avec TVA, devise, justificatif textuel), puis de générer des **factures PDF** à partir des prestations ou dépenses accumulées. Des **tableaux de bord mensuels/annuels** restituent les totaux par catégorie et par client, ce qui aide à la déclaration URSSAF, à la facturation rétroactive et au suivi de trésorerie. L'export CSV des dépenses est supporté pour réimport dans un logiciel comptable (Sage, Indy, etc.).
|
|
|
|
Le projet se distingue par sa **faible empreinte** : SQLite suffit en mono-utilisateur, PostgreSQL est recommandé en multi-utilisateurs. L'absence de frontend JavaScript lourd le rend utilisable sur de petits serveurs (Raspberry Pi, VPS 1 Go de RAM). La roadmap communautaire inclut un module de **devis** et un **scan OCR de tickets** via Tesseract. Idéal pour un usage personnel ou une **TPE de 1 à 3 personnes**.
|
|
|
|
## Installation
|
|
|
|
### Via Docker (placeholder à adapter)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
invio:
|
|
image: ghcr.io/pythoniccoder/invio:latest
|
|
container_name: invio
|
|
restart: unless-stopped
|
|
ports:
|
|
- "5080:5000"
|
|
environment:
|
|
SECRET_KEY: changez-moi
|
|
DATABASE_URL: sqlite:///data/invio.db
|
|
volumes:
|
|
- ./data:/app/data
|
|
```
|
|
|
|
### Manuelle (Python ≥ 3.10)
|
|
|
|
```bash
|
|
git clone https://github.com/PythonicCoder/invio.git
|
|
cd invio
|
|
python -m venv .venv && source .venv/bin/activate
|
|
pip install -r requirements.txt
|
|
export FLASK_APP=invio.py
|
|
flask run --host 0.0.0.0 --port 5000
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Les principaux paramètres se règlent par **variables d'environnement** : `SECRET_KEY` (obligatoire, jeton aléatoire long), `DATABASE_URL` (chemin SQLite ou URL PostgreSQL `postgresql://user:pwd@host/db`), `DEFAULT_CURRENCY` (par défaut `EUR`), `COMPANY_NAME` (affiché sur les PDF). Le fichier `config.py` permet d'ajuster les modèles de facture (logo, mentions légales, taux de TVA par défaut).
|
|
|
|
## Alternatives
|
|
|
|
- **Open Source** : [[app-akaunting]] (complet, mais plus lourd), [[app-frescom]] (suivi de frais), [[app-invoiceplane]] (PHP), [[app-firefly-iii]] (PFM personnel)
|
|
- **Propriétaire** : **Indy** (freelance FR), **Henrri** (auto-entrepreneur), **FreshBooks**, **QuickBooks Self-Employed**
|
|
|
|
## Sécurité
|
|
|
|
- Changer impérativement le `SECRET_KEY` par défaut avant toute exposition réseau
|
|
- Mettre le service **derrière un reverse proxy HTTPS** (Traefik, Caddy, Nginx + Let's Encrypt) — voir [[recettes-docker-compose]]
|
|
- Sauvegarder régulièrement le fichier SQLite ou le dump PostgreSQL
|
|
- Activer les **mises à jour automatiques** de l'image (Watchtower ou Diun)
|
|
- En multi-utilisateurs, créer un compte admin avec **mot de passe long + 2FA** si un reverse-proxy type Authelia est en place
|
|
|
|
## Ressources
|
|
|
|
- Code source : https://github.com/PythonicCoder/invio
|
|
- Suivi des dépenses freelance (URSSAF) : https://www.autoentrepreneur.urssaf.fr
|
|
- Tesseract OCR (scan tickets) : https://github.com/tesseract-ocr/tesseract
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-accounting]]
|
|
- [[recettes-docker-compose]]
|
|
- [[app-invoice-ninja]]
|
|
- [[app-akaunting]]
|
|
- [[app-firefly-iii]]
|