We need a controller which will detect them, format them, expand them and also move apps between them. Probably app should use Hetzner API to expand volume automatically.
## Server control is lost when losing app's storage
Solution implemented on API side as recovery tokens in [[changelog#authorization_tokens branch|1.2.0]]. We need to implement this on app side.
Can't use anything but [a-zA-Z0-9]. Problem is in the way we pass variables to nixos-infect script from the app side. String escaping is needed, but it turned out to be not trivial. Use base64 in transit instead? Would have to keep compatability with the old app versions.
## Ability to change user passwords
Has to be implemented on both server and app side.
## Server restoration from backup
There are several problems
### We don't backup current userdata from nixos-config
So settings and users are not restored.
### App don't check for the current users list
But we already have an endpoint for that.
### Services are not stopped during restoration
Leads to files corruption?
### User is not notified that they may have to add a credit card to b2
Free limits are pretty small and restoration may easily spend them all, and after that, everything is broken.
## Disk storage is not monitored
Which leads to big problems for the server. API has to control available space, and how each app uses it. App should alert user and give options on storage management.
If DNSSEC is set up incorrectly, app won't tell user why server can't be set up.
## Email can only use [a-z]
Some users wanted emails in format name.surname@domain.tld, but couldn't. As we create unix users, we have to use `r"^[a-z_][a-z0-9_]+$"`. User documentation needs explanations on this?
## Jitsi
Not working. when fix?
## Problems with international domains
I can't determine the scope of the problems it causes, without having one. But it surely creates a lot of problems on many stages, starting at server creation.