Tutoriel

Héberger Maybe sur un VPS : finances personnelles sous contrôle

Self-hosting8 min de lecture7 étapes

En janvier 2024, Maybe a publié son code source sous licence AGPLv3 après avoir fonctionné comme SaaS commercial pendant plusieurs années. Cette décision intervient dans un contexte où plusieurs applications de finances personnelles ont augmenté leurs tarifs ou supprimé leurs offres gratuites, poussant de nombreux utilisateurs à chercher des alternatives auto-hébergées. Maybe permet de suivre ses transactions, ses investissements et son patrimoine net depuis une interface propre et claire, hébergée sur l'infrastructure que l'on contrôle. Ce guide détaille comment installer Maybe sur un VPS ServOrbit avec Docker Compose, de la configuration initiale jusqu'à la stratégie de sauvegarde.

Sommaire· Pourquoi héberger ses finances sur son propre serveur1/9
  1. 01Pourquoi héberger ses finances sur son propre serveur
  2. 02Ce que Maybe propose
  3. 03Prérequis chiffrés
  4. 04Installer Maybe sur un VPS avec Docker Compose
  5. 05Connexion des comptes bancaires
  6. 06Sauvegarde PostgreSQL et chiffrement
  7. 07Dépannage : erreurs fréquentes
  8. 08Comparatif : Maybe auto-hébergé, YNAB et Monarch Money
  9. 09Pour aller plus loin

Pourquoi héberger ses finances sur son propre serveur

Confier ses données financières à un service tiers implique d'accepter ses conditions de stockage, ses pratiques de partage de données et sa pérennité commerciale. Plusieurs services populaires ont augmenté leurs tarifs de 30 à 60 % entre 2023 et 2025, ou ont simplement fermé. YNAB est passé d'un achat unique à 15 $ à un abonnement annuel de 109 $. Monarch Money a supprimé son tier gratuit. Copilot Money reste limité aux utilisateurs américains. L'auto-hébergement répond à une objection légitime : « mes données financières sont trop sensibles pour un serveur que je gère moi-même. » En pratique, un VPS correctement configuré offre chiffrement en transit (TLS), chiffrement du volume PostgreSQL au niveau du disque, sauvegardes automatisées et accès restreint à votre seule adresse IP ou réseau privé. C'est une surface d'attaque plus petite qu'un SaaS qui agrège les données de dizaines de milliers d'utilisateurs. Surtout, vous n'êtes pas dépendant des décisions commerciales d'une entreprise tierce : Maybe est sous licence AGPLv3, ce qui garantit que le code reste ouvert même si le projet change de mains.

Ce que Maybe propose

Maybe réunit la gestion de budget, le suivi des investissements et le calcul du bilan patrimonial dans une seule interface auto-hébergeable.

  • Tableau de bord du patrimoine net (actifs, passifs, évolution dans le temps)
  • Suivi des transactions avec catégorisation automatique et règles personnalisables
  • Connexion aux comptes bancaires via Plaid (États-Unis et Canada) ou saisie manuelle
  • Suivi des investissements et des portefeuilles boursiers avec prix en temps réel via Synth Finance
  • Budgets et objectifs d'épargne par catégorie
  • Rapports mensuels et annuels exportables
  • Assistant IA optionnel (nécessite une clé OpenAI) pour l'analyse des dépenses
  • Interface multi-comptes : partenaire, membres du foyer ou clients

Prérequis chiffrés

Maybe est une application Ruby on Rails qui tourne avec quatre services Docker : le serveur web (web), un worker Sidekiq pour les tâches asynchrones (worker), PostgreSQL 16 (db) et Redis (redis). Le worker traite les jobs en arrière-plan : synchronisation des soldes via Plaid, récupération des cours boursiers, génération des rapports PDF. Pour une utilisation personnelle ou une petite équipe, un VPS avec 2 vCPU et 2 Go de RAM est suffisant. Pour un usage professionnel avec plusieurs utilisateurs et synchronisation bancaire active, préférez 4 Go de RAM. Le port 3000 doit être accessible (ou redirigé depuis le port 443 via un reverse proxy). Comptez 5 Go de stockage pour les données applicatives et la base de données, plus l'espace pour vos sauvegardes. Un nom de domaine avec un enregistrement DNS pointant vers votre VPS est nécessaire pour le certificat TLS.

Installer Maybe sur un VPS avec Docker Compose

L'installation repose sur Docker Compose et un fichier .env. Les étapes suivantes partent d'un VPS Debian 12 vierge.

  1. Installer Docker Engine

    Sur Debian/Ubuntu : curl -fsSL https://get.docker.com | sh. Vérifiez l'installation avec docker run hello-world. Docker Compose v2 est inclus depuis Docker Engine 23.

  2. Créer le répertoire de travail

    Exécutez mkdir -p /opt/maybe && cd /opt/maybe. Ce répertoire contiendra le fichier compose.yml et le fichier .env.

  3. Télécharger le fichier Compose officiel

    Récupérez l'exemple fourni par le projet : curl -o compose.yml https://raw.githubusercontent.com/maybe-finance/maybe/main/compose.example.yml. Ce fichier définit les quatre services (web, worker, db, redis) et les volumes nommés.

  4. Créer le fichier .env

    Créez /opt/maybe/.env avec le contenu suivant : SECRET_KEY_BASE=$(openssl rand -hex 64), POSTGRES_PASSWORD=un_mot_de_passe_fort, SELF_HOSTED=true, APP_DOMAIN=finances.votre-domaine.com. Générez une clé secrète robuste avec la commande openssl rand -hex 64.

  5. Démarrer les services

    Depuis /opt/maybe, exécutez docker compose up -d. Docker télécharge les images ghcr.io/maybe-finance/maybe:stable, PostgreSQL 16 et Redis, puis démarre les conteneurs. L'initialisation de la base de données prend une à deux minutes.

  6. Configurer un reverse proxy

    Placez Nginx ou Caddy devant le port 3000 pour servir Maybe en HTTPS. Avec Caddy : ajoutez finances.votre-domaine.com { reverse_proxy localhost:3000 } dans votre Caddyfile. Caddy gère automatiquement le certificat Let's Encrypt.

  7. Créer le premier compte

    Accédez à https://finances.votre-domaine.com. Maybe affiche un formulaire d'inscription au premier lancement. En mode SELF_HOSTED=true, le premier compte créé devient administrateur. Désactivez ensuite les inscriptions publiques depuis les paramètres si l'instance est personnelle.

Connexion des comptes bancaires

Maybe supporte deux méthodes de liaison des comptes. La connexion automatique via Plaid couvre les banques américaines et canadiennes : vous ajoutez vos identifiants Plaid API (PLAID_CLIENT_ID et PLAID_SECRET) dans le fichier .env, puis liez vos comptes depuis l'interface. Plaid permet une synchronisation des transactions en quelques heures sans intervention manuelle. Pour les banques européennes, marocaines ou asiatiques, la saisie manuelle des transactions reste la méthode principale. Maybe accepte l'import de fichiers CSV selon un format standard, ce qui permet de migrer depuis un tableur existant ou d'exporter depuis votre espace client bancaire. L'application propose un assistant de mappage pour faire correspondre les colonnes de votre fichier au format attendu. Le suivi des investissements s'appuie sur l'API Synth Finance pour les cours boursiers et les taux de change : ajoutez une clé SYNTH_API_KEY dans .env ou directement dans les paramètres de l'interface pour activer la valorisation automatique des portefeuilles. Sans cette clé, vous pouvez toujours saisir manuellement les quantités et prix d'acquisition.

Sauvegarde PostgreSQL et chiffrement

La base de données PostgreSQL est stockée dans le volume Docker maybe_postgres-data. Pour sauvegarder régulièrement, créez un script /opt/maybe/backup.sh qui exécute docker exec maybe-db-1 pg_dump -U maybe_user maybe_production | gzip > /backups/maybe-$(date +%Y%m%d).sql.gz, puis rendez-le exécutable avec chmod +x /opt/maybe/backup.sh et planifiez-le avec un timer systemd ou une ligne cron (0 3 * * * /opt/maybe/backup.sh). Conservez au minimum sept jours de rétention locale. Pour une stratégie 3-2-1 complète, envoyez ces dumps chiffrés vers un stockage objet S3 compatible avec Restic ou rclone — l'article dédié sur ce site couvre ce montage en détail. Maybe supporte aussi le stockage des fichiers applicatifs (pièces jointes, exports) sur Amazon S3 ou Cloudflare R2 via les variables ACTIVE_STORAGE_SERVICE, S3_ACCESS_KEY_ID et les clés associées. Le chiffrement des données sensibles en base (clés API, tokens Plaid, identifiants SMTP) repose sur les clés ACTIVE_RECORD_ENCRYPTION_* — si vous ne les définissez pas explicitement, elles sont dérivées de votre SECRET_KEY_BASE. Une rotation de SECRET_KEY_BASE sans régénérer ces clés rend les données chiffrées illisibles : conservez votre .env comme une sauvegarde critique.

Restreignez l'accès à votre instance Maybe en la plaçant derrière un VPN (Tailscale, Headscale) ou en filtrant les accès par IP dans Nginx avec allow 203.0.113.10; deny all;. Une instance financière personnelle n'a pas vocation à être exposée publiquement : l'accès privé réduit drastiquement la surface d'attaque sans compromettre l'utilisabilité.

Dépannage : erreurs fréquentes

Les erreurs les plus courantes après l'installation de Maybe sur VPS, et leurs solutions.

  • web exited with code 1 au démarrage : la base de données n'est pas encore prête. Vérifiez avec docker compose logs db que PostgreSQL a bien démarré, puis relancez docker compose restart web worker.
  • Page blanche ou erreur 500 après l'inscription : vérifiez que SECRET_KEY_BASE est bien défini et non vide dans .env. Une clé manquante empêche Rails de déchiffrer la session.
  • PG::ConnectionBad dans les logs web : la variable DB_HOST doit valoir db (le nom du service Docker), pas localhost. Vérifiez votre .env.
  • Les tâches asynchrones (synchronisation bancaire, rapports) ne s'exécutent pas : le service worker n'est pas démarré. Vérifiez avec docker compose ps que les quatre services sont en état running.
  • Mise à jour qui régresse : après docker compose pull, exécutez docker compose up --no-deps -d web worker plutôt que docker compose up -d pour éviter de recréer inutilement les conteneurs de base de données.

Comparatif : Maybe auto-hébergé, YNAB et Monarch Money

Ce tableau compare Maybe en auto-hébergement avec les principales applications SaaS de gestion de finances personnelles.

Faites défiler le tableau

CritèreMaybe (auto-hébergé)YNABMonarch Money
Coût annuelCoût VPS (~5-10 €/mois)109 $/an99,99 $/an
Contrôle des donnéesTotal — données sur votre serveurAucun — données chez YNABAucun — données chez Monarch
Connexion bancairePlaid (US/CA) ou manuellePlaid (US/CA/EU partiel)Plaid (US/CA)
Suivi des investissementsOui (via Synth Finance)Non natifOui
Bilan patrimonial netOuiNonOui
Assistant IAOptionnel (clé OpenAI requise)NonOui (inclus)
Maintenance requiseOui — mises à jour manuellesNonNon
LicenceAGPLv3 (open source)PropriétairePropriétaire

Pour aller plus loin

L'article sur l'hébergement de PostgreSQL sur VPS détaille la configuration fine du moteur de base de données pour des charges de travail de production. La stratégie de sauvegarde 3-2-1 avec Restic et S3 couvre la mise en place d'une rétention chiffrée et versionnée. Pour sécuriser l'accès à votre instance Maybe sans VPN complet, l'article sur Nextcloud donne un exemple de configuration Nginx avec authentification de base.

Un VPS pour héberger vos finances avec Maybe

ServOrbit propose des VPS sous Debian ou Ubuntu, prêts à recevoir Docker. Déployez Maybe en quelques minutes sur une infrastructure dont vous gardez le contrôle.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet