HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
restic
rest-server
Go2018–2025
restic / rest-server

rest-server

Rest Server is a high performance HTTP server that implements restic's REST backend API.

7Distinct people
9Mentions
0Explicit recommenders
1.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Rest Server is a high performance HTTP server that implements restic's REST backend API.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year9 dated mentions

Observed mentions: 2018-09-16 19:58:39 UTC to 2025-07-20 05:44:25 UTC.

01232018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC202
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC303

What Hacker News says

9 sources
For anyone looking to migrate off borg because of this, append-only is available in restic, but only with the rest-server backend: https://github.com/restic/restic https://github.com/restic/rest-server which has to be started with --append-only. I use this systemd unit: [Unit] After=network-online.target [Install] WantedBy=multi-user.target [Service] ExecStart=/usr/local/bin/rest-server --path /mnt/backups --append-only --private-repos WorkingDirectory=/mnt/backups User=restic Restart=on-failure ProtectSystem=strict ReadWritePaths=/mnt/backups I also use nginx with HTTPS + HTTP authentication in front of it, with a separate username/password combination for each server. This makes rest-server completely inaccessible to the rest of the internet and you don't have to trust it to be properly protected against being h
Read the rest
ammered by malicious traffic. Been using this for about five years, it saved my bacon a few times, no problems so far.
In BorgBackup 2 has no server-side append-only anymore
Similar here. Termux with restic, so it does deduplication and encryption and such (also compression since a few months but haven't turned it on yet). I also enjoy having the same backup mechanism for my phone, laptop, and server. On local laptop: run https://github.com/restic/rest-server/ to accept the incoming data, then (if 1234 is the port that rest-server runs on): user@laptop:~$ ssh -R 1234:localhost:1234 root@phone root@phone:~# restic backup /data/ -r rest:http://user:password@localhost:1234 -x --exclude /data/media/0/Android/data/com.spotify.music/ Can also do this without root and just sync pictures, but this way you actually get all your data. Or set up a rest-server on a remote system somewhere, since it's encrypted it doesn't matter where you run it so long as you trust the remote end not to delete your files on the
Read the rest
same day as your phone crashes. Rsync is simpler if you don't need features like encryption (at least to get started: any backup mechanism today is better than a perfect backup mechanism tomorrow).
In Ask HN: Has anyone successfully recovered photos from a broken Android phone?
This point hides a lot of goodness in something that I didn't even understand on the first read: > - We have added checksums for various backends so data uploaded to a backend can be checked there. All data is already stored in files with as filename the sha256sum of the contents, so clearly it's all already checksummed and can be verified right? Looking into the changelog entry[1], this is about verifying the integrity upon uploading: > The verification works by informing the backend about the expected hash of the uploaded file. The backend then verifies the upload and thereby rules out any data corruption during upload. \n\n [...] besides integrity checking for uploads [this] also means that restic can now be used to store backups in S3 buckets which have Object Lock enabled. Object lock is mentioned in passing somewhere down the change
Read the rest
log, but it's a big feature. S3 docs: > Object Lock can help prevent objects from being deleted or overwritten for a fixed amount of time or indefinitely. i.e. ransomware protection. Good luck wiping backups if your file hoster refuses to overwrite or delete the files. And you know Amazon didn't mess with the files because they're authenticated. Extortion is still a thing, but if people would use this, it more-or-less wipes out the attack vector of ransomware. The only risk is if the attacker is in your systems long enough to outlast your retention period and creates useless backups in the meantime so you're not tipped off. Did anyone say "test your backups"? For self-hosting, restic has a custom back-end called rest-server[2] which supports a so-called "append-only mode" (no overwriting or deleting). I worked on the docs for this[3] together with rawtaz and MichaelEischer to make this more secure, because eventually, of course, your disks are full or you want to stop paying for outdated snapshots on S3, and an attacker could have added dummy backups to fool your automatic removal script into thinking it needs to leave only the dummy backups. Using the right retention options, this attack cannot happen. Others are doing some pretty cool stuff in the backup sphere as well, e.g. bupstash[4] has public key encryption so you don't need to have the decryption keys as a backup client. [1] https://github.com/restic/restic/releases/v0.13.0 [2] https://github.com/restic/rest-server/ [3] https://restic.readthedocs.io/en/latest/060_forget.html#secu... [4] https://github.com/andrewchambers/bupstash/
In Restic 0.13.0
> What does this even mean? You can compile Go or Rust programs on any Linux machine with the build tools. I can't build github.com/restic/rest-server because my golang compiler is too old. Admittedly I'm running something relatively old (but still supported) at the moment but this isn't the first time. Such errors are my experience every time I try to build go/js code. If you're actually using a stable distribution you're simply out of luck and need to find another system to contribute to those projects. > Why is GitHub a less-secure repository medium than SourceForge + random website downloads + various Linux package managers? I'd trust GitHub a lot more than SourceForge, but GitHub is where everyone hosts everything these days so I meant it to mean: random repositories from the internet. When trying to build the aforementioned project,
Read the rest
I saw a it pull from a ton of domains, but also a lot form GitHub (many different authors). That's the crux: I may trust github itself and the author of this one repository (in this case, the author is actually a friend of a friend, in other cases it might just be a well-known person like cperciva or sircmpwn), and if my OS is compromised then I'm screwed anyway so the repositories are also considered mostly trusted, but I don't for a minute believe that the author of the code I'm trying to build managed to vet the 600 repositories it's pulling. Also, six hundred repositories. All this thing does is spawn an http server and handle a few API calls, acting as a dummy storage server (implementing things like 'get me this file' or 'put this file here'). > Go programs absolutely don't run arbitrary code at compile/install time I didn't actually know that, that's nice. I mean, still if I can't trust the binary then it's of little use to me personally, but any malicious code would presumably have to be called into and build servers will have an easier time serving binaries, so that's a good thing.
In This shouldn't have happened: A vulnerability postmortem

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.