feat(instance): an instance says where it keeps people's data
All checks were successful
CI / check (push) Successful in 17m19s
CI / deploy (push) Has been skipped

Its operator sets DATA_LOCATION and BACKUP_LOCATION in deploy/.env (a
country's code or EU, the backups also none), and instance.info() hands
them on. The first start's tile and Switch account show the flag of
where the data is and the words, as labels ("Data: European Union",
"Backups: Switzerland"), the countries by the world map's CLDR names:
where the disks are, never which law governs. The flags come from the
flag package, which draws flag-icons; its MIT notice joins the licence
list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-18 20:35:21 +02:00
commit 642c1c7e9f
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
3 changed files with 867 additions and 63 deletions

View file

@ -81,6 +81,13 @@ SOURCE_URL=
# Jellyfin server answers there; `none`: no suggestion.
JELLYFIN_URL=
# Where this instance keeps people's data, and its backups, which the app shows as a flag
# and in words when someone chooses an instance: a country's code (ISO 3166-1 alpha-2,
# `CH`) or `EU`; for the backups also `none`. Where the disks are, not which law governs
# you as the operator: claim only that. Empty: the app says nothing.
DATA_LOCATION=
BACKUP_LOCATION=
# How much room people's images and sounds may take on this instance, in MiB. Empty: the
# defaults, 100 for an anonymous person (anonymous accounts are meant to become identified
# ones), 500 for one signed in with GitHub, and 15000 for everyone together (0: no limit

View file

@ -49,7 +49,9 @@ Once, in this order. The commands name who runs them, and where.
### 1. The Storage Box (you, in Hetzner Console)
1. Create a Storage Box (BX11, 1 TB, is plenty) in any location, with a password, which
1. Create a Storage Box (BX11, 1 TB, is plenty) in any location (Germany and Finland are
in the EU; the app shows where, from `BACKUP_LOCATION` in `deploy/.env`, so set it to
the box's: `EU` there), with a password, which
goes into your password manager. Turn on **SSH Support** (port 23, which restic uses)
and **External Reachability**: without it, the box only answers inside Hetzner's
network. Samba and WebDAV stay off; FTP and SFTP on port 22 can't be turned off.

View file

@ -82,6 +82,10 @@ services:
# The Jellyfin server suggested to people; empty: jellyfin. on the
# instance's own domain, if one answers there; `none`: none.
JELLYFIN_URL: ${JELLYFIN_URL:-}
# Where people's data and the backups are, which the app shows; empty:
# it says nothing.
DATA_LOCATION: ${DATA_LOCATION:-}
BACKUP_LOCATION: ${BACKUP_LOCATION:-}
# How much room people's files may take, in MiB; empty: the defaults.
FILE_LIMIT_ANONYMOUS_MB: ${FILE_LIMIT_ANONYMOUS_MB:-}
FILE_LIMIT_IDENTIFIED_MB: ${FILE_LIMIT_IDENTIFIED_MB:-}