Digitally manage pocket money in your family.
- Manage cash and track your expenses
- Join groups to transfer money with other members
- Schedule payment plans for recurring payments
- View all transactions in the transaction log
- Light and dark themes
- Languages: English, German
- One parent creates a group for the family by hitting the + icon on the dashboard view
- Invite all other family members by hitting the + icon next to Members on the group view
- Make your husband/wife an admin too by clicking on the up arrow in the members list
- Second parent: Click on the settings symbol on the group page and hit leave next to the Member: yes label to leave the group but remain in charge of the bank
Parent:
- Hit the + symbol next to Payment plans
- Fill out the fields according to your needs. If you wanted to pay your child Ben 30$ on the 1st of every month starting in August 2022, you would enter the following values
- To: Ben
- Amount: 30$
- First payment: 01.08.2022
- Every 1 months
- Name: Pocket money
- Hit Create
Child:
- Hit the + symbol next to Transactions
- Choose Bank as a target
- Enter the desired amount
- Give the transaction a meaningful title
- Hit Transfer
H-Bank is looking for configuration in the following locations in order of decreasing precedence: <working dir>/config.json, XDG_CONFIG_HOME/h-bank/config.json.
Note: The first config file to be found is used and all others are discarded.
You can self-host H-Bank with Docker. Example docker-compose.yml:
version: "3.5"
services:
hbank:
image: ghcr.io/juho05/h-bank
restart: unless-stopped
ports:
- "80:80"
volumes:
- ~/h-bank/data:/data
- ~/h-bank/config.json:/config.jsonCreate your config in ~/h-bank/config.json (make sure to set dbPath to /data/database.sqlite) and run the service with docker compose up -d.
You should now be able to reach H-Bank on http://localhost (or HTTPS if configured).
Copyright © 2021-2023 Julian Hofmann
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.






{ "debug": false, // !!DO NOT USE IN PRODUCTION!! Disables SameSite for cookies. Returns error messages on HTTP-500 responses. "dbVerbose": false, // Prints all SQL queries to stdout "dbEngine": "", // DB engine to use (either 'sqlite' or 'postgres') // sqlite "dbPath": "database.sqlite", // path to DB file //postgres "dbHost": "", // DB host "dbPort": 0, // DB port "dbUser": "", // DB user "dbPassword": "", // DB password "dbName": "", // DB name "serverPort": 80, // The port to use for the webserver (if ssl: default = 443) "ssl": false, // Enable TLS "sslCertPath": "", // Path to TLS cert file "sslKeyPath": "", // Path to TLS key file "baseURL": "https://hbank.example", // The URL the application is located at "emailEnabled": false, // Necessary for email notifications "emailHost": "", // SMTP host to use for sending emails "emailPort": 0, // SMTP port to use for sending emails "emailUsername": "", // Username for SMTP email account "emailPassword": "", // Password for SMTP email account "minNameLength": 3, // Min length of names like usernames, group names, transaction names, payment plan names, etc. "maxNameLength": 30, // Max length of names like usernames, group names, transaction names, payment plan names, etc. "minDescriptionLength": 0, // Min length of descriptions like group descriptions, transaction descriptions, payment plan descriptions, etc. "maxDescriptionLength": 256, // Max length of names like group descriptions, transaction descriptions, payment plan descriptions, etc. "maxProfilePictureFileSize": 10000000, // Max size of uploaded group pictures in bytes "maxPageSize": 100, // Max allowed page size for lists "idProvider": "", // URL pointing to an OpenID Connect identity provider (must match the issuer value of the provider) "internalIDProvider": "", // URL to use for internal requests to the identity provider "clientID": "", // OpenID Connect client ID "clientSecret": "", // OpenID Connect client secret "devFrontend": "", // URL pointing to frontend dev server (frontend requests will be proxied) "frontendDir": "" // Path to static frontend which should be used instead of the default embedded files }