No access to repositories on the server

I am creating a restic backup server.
I planned to do it this way. There is a server on which a repository storage is deployed. Each user has their own repository. Users create snapshots in append mode. Once a day, the storage is serviced using
restic forget --prune
Initially, I tried docker. I ran it with the command
sudo docker run -d --restart always -p 8000:8000 -v /opt/restic-repos:/data -e OPTONS="--private-repos --append-only" --name rest_server restic/rest-server
But when creating the first copy, there were many errors with disk access. Therefore, I installed Minio as a server. Snapshots were created normally. Information about repositories and snapshots is available from clients, but I cannot get access to the repositories on the server.
Displays the following information:

Load(<key/72db6b70fd>, 0, 0) returned error, retrying after 437.963166ms: read cserver/keys/72db6b70fd19dcf1522a240de6b8de4a3412118fe4e79f5a6395cbec1504da2c: is a directory
Load(<key/72db6b70fd>, 0, 0) returned error, retrying after 779.568935ms: read cserver/keys/72db6b70fd19dcf1522a240de6b8de4a3412118fe4e79f5a6395cbec1504da2c: is a directory
Load(<key/72db6b70fd>, 0, 0) returned error, retrying after 1.245886445s: read cserver/keys/72db6b70fd19dcf1522a240de6b8de4a3412118fe4e79f5a6395cbec1504da2c: is a directory
Load(<key/72db6b70fd>, 0, 0) returned error, retrying after 1.809126703s: read cserver/keys/72db6b70fd19dcf1522a240de6b8de4a3412118fe4e79f5a6395cbec1504da2c: is a directory
Load(<key/72db6b70fd>, 0, 0) returned error, retrying after 1.310306359s: read cserver/keys/72db6b70fd19dcf1522a240de6b8de4a3412118fe4e79f5a6395cbec1504da2c: is a directory
Load(<key/72db6b70fd>, 0, 0) returned error, retrying after 4.229488803s: read cserver/keys/72db6b70fd19dcf1522a240de6b8de4a3412118fe4e79f5a6395cbec1504da2c: is a directory
Load(<key/72db6b70fd>, 0, 0) returned error, retrying after 2.888102189s: read cserver/keys/72db6b70fd19dcf1522a240de6b8de4a3412118fe4e79f5a6395cbec1504da2c: is a directory
Load(<key/72db6b70fd>, 0, 0) returned error, retrying after 12.692129102s: read cserver/keys/72db6b70fd19dcf1522a240de6b8de4a3412118fe4e79f5a6395cbec1504da2c: is a directory

Minio server version: 2025-01-18T00:31:37Z
restic on the server:
restic 0.16.4 compiled with go1.22.2 on linux/amd64
restic on clients:
restic 0.16.2 compiled with go1.21.3 on windows/386

1 Like

My advice is not to use docker. Especially if you are not an “docker expert”.

It does not bring any benefits for single server deployment and leaves you with additional things to configure (or misconfigure) and maintain.

1 Like

At the moment, the Minio server is installed as a regular service. I tried restic-server in docker before.

Thanks for the advice, I’ll take it into account in the future.

1 Like

Files in the S3 API of Minio do not directly correspond to a file in Minio’s data folder. In fact, you should NEVER try to modify anything in Minio’s data folder (unless you know exactly what you’re doing) and always use the S3 API instead. Bypassing the API can leads to all sorts of data corruption.

Those versions are quite old, please upgrade to either 0.16.5 or 0.17.3. Please use the windows/amd64 binary, unless you really still have 32bit clients (which is hopefully no longer the case at this point).

Yes, I already understood it. I put Minio on another server, the situation there is the same. Therefore, I will return with the option of using the Restik server and figure out why errors arise.

The version of the rest on the server is installed from the Ubuntu repository. After completing the work with the server, I will put the last from the github. But on the customers of Windows, it will not work to raise the version, there is the last one that works according to Windows server 2008 in Windows 8.

Since I’m new to Linux, and docker was advised not to use it, I ask you to see if there are any errors in the instructions for installing the server in service mode, at the following link
[Backup with restic]
I don’t see any mistakes in it myself, but maybe I don’t have enough experience for that.

What exactly is your issue?

Before you configure it as a service make it work from command line. Make it as simple as possible. Do you need minio? As it is one more thing to configure and worry about. I would start with simple repo in local folder first.

I agree, I didn’t think about it.
But I would like to use it as a service anyway, so that the server boots automatically when the system starts.

Which is perfectly understandable:) But do not try to configure everything in one step - as it means that you have to deal with potentially multiple issues at the same time.

So I won’t rush and take it step by step)

I think I’m having problems with the hardware.
The following lines appear periodically in the system log:

янв 24 10:41:26 srv-sad-bk-01 udisksd[145656]: Error probing device: Error sending ATA command IDENTIFY DEVICE to '/dev/sda': Unexpected sense data returned:
                                                  0000: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00    ................
                                                  0010: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00    ................
                                                   (g-io-error-quark, 0)
янв 24 10:41:26 srv-sad-bk-01 udisksd[145656]: Error probing device: Error sending ATA command IDENTIFY DEVICE to '/dev/sdc': Unexpected sense data returned:
                                                  0000: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00    ................
                                                  0010: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00    ................
                                                   (g-io-error-quark, 0)
янв 24 10:41:26 srv-sad-bk-01 udisksd[145656]: Error probing device: Error sending ATA command IDENTIFY DEVICE to '/dev/sdb': Unexpected sense data returned:
                                                  0000: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00    ................
                                                  0010: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00    ................
                                                   (g-io-error-quark, 0)

So I will try to build on another hardware and raise the service on it.

yeap. It looks like hardware problem.

The reason for the error was Webmin.
I installed Ubuntu from scratch, launched the rest-server with the command:

 sudo /usr/local/bin/restic-server --path /opt/restic-repos --private-repos --append-only --log /var/log/restic-server-sessions.log

No errors.
Now it is necessary to organize the server autostart after reboot. Set up periodic cleaning and checking of repositories. Well, I would also really like to set up monitoring of repositories: a list of snapshots, how long they take, the date of the last backup and the state of the repository.

So I ask again, can I use the information from the article:
[Backup with restic](Backup with restic. Install#install)
And configure the launch in service mode according to it?

Using a systemd service with a dedicated user as described in the article is the standard way to deploy a service on Linux nowadays. Just make sure to use the latest rest-server version. The rest-server repository also contains a systemd service file with additional hardening options applied. You might want to use that instead (just change the User= and Group= according to the article).

1 Like

Thank you for your help.
Everything is installed and working.
The only thing is that you have to maintain repositories on the server on behalf of the same user as the service running from the rest server, otherwise I get the error “500 Internal Server Error” on the clients.