Yes, just use the restic REST server.
Yes, this is possible. Note that the server would have to add a key to each repository. The passphrase can be the same, but the key would be different.
The server cannot enforce this or otherwise command clients to back up.1 The clients would have to be configured to do this, for example using cron on *nixes or the task scheduler on Windows.
Yes, the server can do this since it has a key in each repository. Note that the prune/check schedule needs to be coordinated with the clients’ backup schedule, since prune and check both require an exclusive lock on the repository. If the server has the repository locked when a backup starts, the backup will fail. (Hmm, @fd0, would it be possible for
restic backup to retry locking with backoff so that backups are delayed instead of aborted?)
1 Technically, this can be done, but it’s not supported as a native restic feature. For example, you could have the backup server command a client to run a backup script over SSH.