Sign inSign up

iemperor/tribubudget

By iemperor

•Updated about 1 hour ago

Image
0

119

iemperor/tribubudget repository overview

⁠TribuBudget

Le budget de toute la famille.

TribuBudget réunit parents, ados et enfants autour du budget du foyer, dans un espace privé, auto-hébergé, en français :

  • Trois profils : les parents voient et gèrent tout ; les ados tiennent leurs propres comptes, sous l’œil des parents, et demandent le remboursement de leurs dépenses ; les enfants voient leur tirelire, notent leurs dépenses et demandent une avance ou un achat
  • Comptes et opérations par catégorie, virements entre comptes, pointage sur le relevé
  • Opérations récurrentes (loyer, abonnements, salaire) enregistrées seules à leur date
  • Budgets mensuels par catégorie, dépassements signalés
  • Projets d’épargne financés par ordre de priorité, au-dessus d’un plancher
  • Argent de poche automatique, avances remboursées sur les versements suivants
  • Tableau de bord : solde, mois en cours, reste prévu fin du mois, six derniers mois, projets réalisables, prochaines échéances
  • Interface pensée pour le téléphone, jusqu’à l’écran large ; thème clair ou sombre selon le système

L’image contient tout : l’interface Angular et l’API Symfony servies par FrankenPHP⁠ sur le port 80, leur base PostgreSQL 16 et le planificateur des échéances. Aucun réglage : les secrets et la base sont créés au premier lancement.

⁠Tags

TagContenu
latestDernière version publiée
0.3.0Profil ado avec ses propres comptes et demandes de remboursement, pointage des opérations, reste prévu fin du mois
0.2.0Image tout-en-un (base intégrée, secrets créés au premier lancement), page d’installation avec code
0.1.0Première version (base PostgreSQL séparée)

Plateforme : linux/amd64.

⁠Installation

⁠En une commande
docker run -d --name tribubudget --restart unless-stopped -p 8080:80 -v tribubudget:/data iemperor/tribubudget
⁠Ou avec Docker Compose / Portainer
services:
  tribubudget:
    image: iemperor/tribubudget:latest
    container_name: tribubudget
    restart: unless-stopped
    ports:
      - "8080:80"
    environment:
      APP_TIMEZONE: Europe/Paris
    volumes:
      - tribubudget_data:/data
    # Laisse à la base le temps de s’arrêter proprement
    stop_grace_period: 30s

volumes:
  tribubudget_data:
docker compose up -d
⁠Premier lancement
  1. Le conteneur crée ses secrets, sa base et ses clés dans le volume /data (une minute au plus).
  2. Récupérez le code d’installation dans ses journaux :
    docker logs tribubudget
    
    (ou docker exec tribubudget console app:setup:code)
  3. Ouvrez http://<serveur>:8080 : la page d’installation demande ce code, puis crée votre famille et votre compte de parent. Ajoutez ensuite l’autre parent, les ados et les enfants depuis la page Famille.

Le code empêche quelqu’un d’autre d’installer TribuBudget à votre place s’il atteint la page avant vous. Une instance accueille une famille : il n’y a pas d’inscription libre.

⁠Variables (toutes facultatives)

VariableRôle
APP_TIMEZONEFuseau de « aujourd’hui » : dates de l’argent de poche et des échéances (Europe/Paris)
SCHEDULER_INTERVALSecondes entre deux passages du planificateur (3600)
APP_SECRET, JWT_PASSPHRASEPour imposer vos secrets ; sinon créés au premier lancement dans /data/secrets
DATABASE_URLPour utiliser votre propre PostgreSQL au lieu de la base intégrée

⁠Le volume /data

DossierContenu
postgres/La base de données
secrets/Secrets créés au premier lancement (lisibles par root seulement)
jwt/Clés de signature des sessions

Sauvegardez ce volume. Pour un export de la base :

docker exec tribubudget su-exec postgres pg_dump tribubudget > tribubudget.sql

⁠HTTPS

L’image sert en HTTP sur le port 80. Pour un accès depuis Internet, placez-la derrière un reverse proxy qui fournit le HTTPS (Caddy, Traefik, Nginx Proxy Manager…).

⁠Mise à jour

docker pull iemperor/tribubudget && docker rm -f tribubudget   # puis la commande docker run ci-dessus
# ou : docker compose pull && docker compose up -d

Les migrations de la base sont jouées au démarrage.

⁠Depuis 0.1.0 (base PostgreSQL séparée)

Gardez votre compose de la 0.1.0 et ses variables (DATABASE_URL, APP_SECRET, JWT_PASSPHRASE) : avec DATABASE_URL, l’image utilise votre base et ne démarre pas la sienne. Le service scheduler devient facultatif (le planificateur tourne aussi dans le conteneur principal).

Tag summary

Content type

Image

Digest

sha256:c3d8b30b1…

Size

121.7 MB

Last updated

about 1 hour ago

docker pull iemperor/tribubudget