Install your own bank
You can host your own Banque de papa et maman, for your family and friends, on a free Cloudflare account. Allow five minutes. If someone already hosts one for you, ask for an invitation instead.
What you need
- A Cloudflare account (free). The free plan is more than enough: a family makes a few dozen requests a day, out of 100,000 allowed.
- A GitHub account (free): the button copies the app’s code into it.
- A password manager, for your admin password.
The steps
1. The “Deploy to Cloudflare” button
Open Deploy to Cloudflare (the same button is at the top of the README). Connect your Cloudflare and GitHub accounts, then keep the suggested name or choose one: it becomes part of your bank’s address.
2. The admin password (ADMIN_TOKEN)
The form asks for ADMIN_TOKEN. Choose a long random password, 32 characters or more, generated by your password manager, and keep it there. On a computer, openssl rand -base64 32 makes one.
This password only creates invitations. It gives access to no bank, not even yours.
3. Let Cloudflare work
Cloudflare copies the code into your GitHub, creates the database, builds the app and publishes it. It takes a minute or two. At the end you get an address like https://banque-papa-maman.your-account.workers.dev.
4. Create your bank
Open https://…workers.dev/admin, paste your ADMIN_TOKEN, then tap Créer ma banque (create my bank). Continue with Create your child’s bank.
For friends: on the same page, Créer une invitation (create an invitation), then send the link (see Invitation).
What you see, and what you don’t
From the Cloudflare dashboard you can read no bank, not even yours: the database only holds encrypted files, random identifiers, version numbers and the month of the last change. Logs and analytics are turned off in the configuration (wrangler.jsonc). Cloudflare carries the traffic and so sees IP addresses in transit, like any host. The details are on your bank’s /confidentialite (privacy) page.
Optional settings
- A contact on the privacy page: in Cloudflare, open your Worker → Settings → Variables and Secrets, and add
INSTANCE_CONTACT(an e-mail address, for example). - Your own domain name: in your Worker → Settings → Domains & Routes → add a domain managed by Cloudflare. Careful: a new address also changes the links. Do it before creating banks.
- Lost admin password: replace the value of
ADMIN_TOKENin Variables and Secrets. Banks are not affected.
Updating
The button created a copy of the code in your GitHub. It does not update itself. To get the latest version, on a computer:
git clone https://github.com/your-account/your-copy.git
cd your-copy
./scripts/update-from-upstream.sh
git push
Cloudflare rebuilds and republishes on its own after the git push. A new version always reads existing banks.
Never delete the database_id line in your copy’s wrangler.jsonc. It ties the app to your database; without it, a deploy could create an empty one. The update script keeps it for you.
Shutting everything down
Deleting the Worker and the D1 database in Cloudflare erases every bank on your server. Tell the families you invited, so they download a backup first.