HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
josephernest
nfreezer
Python2020–2021
josephernest / nfreezer

nfreezer

nFreezer is an encrypted-at-rest backup tool.

5Distinct people
12Mentions
0Explicit recommenders
300GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

nFreezer is an encrypted-at-rest backup tool.

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, 3:56:07 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 month12 dated mentions

Observed mentions: 2020-11-27 18:55:05 UTC to 2021-11-13 14:35:38 UTC.

02462020-11-01 00:00:00 UTC to 2020-12-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 commentsNov 20202020-12-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2021-02-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2021-02-01 00:00:00 UTC to 2021-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-03-01 00:00:00 UTC to 2021-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-04-01 00:00:00 UTC to 2021-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-05-01 00:00:00 UTC to 2021-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsMay 20212021-06-01 00:00:00 UTC to 2021-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-07-01 00:00:00 UTC to 2021-08-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-08-01 00:00:00 UTC to 2021-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-09-01 00:00:00 UTC to 2021-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-10-01 00:00:00 UTC to 2021-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-11-01 00:00:00 UTC to 2021-12-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsNov 2021

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
Nov 20202020-11-01 00:00:00 UTC2020-12-01 00:00:00 UTC716
Dec 20202020-12-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
Jan 20212021-01-01 00:00:00 UTC2021-02-01 00:00:00 UTC202
Feb 20212021-02-01 00:00:00 UTC2021-03-01 00:00:00 UTC000
Mar 20212021-03-01 00:00:00 UTC2021-04-01 00:00:00 UTC000
Apr 20212021-04-01 00:00:00 UTC2021-05-01 00:00:00 UTC000
May 20212021-05-01 00:00:00 UTC2021-06-01 00:00:00 UTC000
Jun 20212021-06-01 00:00:00 UTC2021-07-01 00:00:00 UTC000
Jul 20212021-07-01 00:00:00 UTC2021-08-01 00:00:00 UTC101
Aug 20212021-08-01 00:00:00 UTC2021-09-01 00:00:00 UTC000
Sep 20212021-09-01 00:00:00 UTC2021-10-01 00:00:00 UTC000
Oct 20212021-10-01 00:00:00 UTC2021-11-01 00:00:00 UTC000
Nov 20212021-11-01 00:00:00 UTC2021-12-01 00:00:00 UTC101

What Hacker News says

12 sources
Read the rest
ly use restic while technology wise (speed, only restore needs password) i would prefer rdedup which is an impressive piece of software but unfortunately without file iterator... :-)
In Restic – Backups Done Right
Read the rest
ly use restic while technology wise (speed, only restore needs password) i would prefer rdedup which is an impressive piece of software but unfortunately without file iterator... :-)
In Deduplicating Archiver with Compression and Encryption
Read the rest
le technology wise (speed, only restore needs password) i would prefer rdedup which is an impressive piece of software but unfortunately without file iterator... :-)
In Encrypted Backup Shootout
I created nFreezer ("encrypted freezer") for this purpose at the end of 2020: https://github.com/josephernest/nfreezer. Main features: * encrypted at rest locally (the data is never decrypted on the remote server) * handles file renames / moves (no data is re-sent, it can save GB of transfer!) * single Python file of ~ 250 lines of code. It is quick to read the code and decide if you like/trust it or not.
In Encrypted Backup Shootout
If your provider uses SFTP, you can use nFreezer (http://github.com/josephernest/nfreezer) which I built exactly for the same purpose than you. (I first thought about 7z too but having to reupload the whole archive even if only a few files are modified made me look for another solution). In short, you can do nfreezer backup my_documents/ user@11.22.33.44:/backup/ and the backup will be done or updated (if only 1MB have changed since last backup, only 1MB will be uploaded and not 100 GB). Everything is encrypted locally (including the filenames), and never decrypted on remote. You can't use the files on the remote server, it's only cold storage - the only thing you can do with it is: restore to your local computer (if one day you need it), and decrypt it locally. It's 250 lines of code in one single source file, so you can read it qu
Read the rest
ickly to see if it's ok or not for your use case.
In Ask HN: Cloud providers as personal cold backups
From https://github.com/josephernest/nfreezer/blob/master/nfreeze..., this is how you decrypt files: [...] with open(f2, 'wb') as f, src_cm.open(chunkid.hex(), 'rb') as g: decrypt(g, pwd=encryptionpwd, out=f) [...] def decrypt(f=None, s=None, pwd=None, out=None): [...] while True: block = f.read(BLOCKSIZE) if not block: break out.write(cipher.decrypt(block)) try: cipher.verify(tag) except ValueError: print('Incorrect key or file corrupted.') So, basically, you decrypt the whole file and write the result before checking the tag. You're using a block cipher in a streaming fashion, and as has already been said before (see https://www.imperialviolet.org/2015/05/16/aeads.html, "AEADs with large plaintexts") this is dangerous if you don't do it corre
Read the rest
ctly. Your data may be garbage, but it's too late it's already written on the disk before you know it's bad, it's not deleted and you won't know which file it was. As some HN crypto celebrity said some time ago, if you write "AES" in your code then you're wrong. You MUST use misuse-resistant libraries unless you know exactly what you're doing. TL;DR: your crypto is broken, use NaCl instead of doing it yourself.
In Show HN: NFreezer – Encrypted-at-rest remote backup tool
"But still there is one thing (at least) that can be of interest to some people with nFreezer: it is very simple, it does the job in only 249 lines of code. You can then read the FULL source code in a few hours, to see if you trust it or not. See here: https://github.com/josephernest/nfreezer/blob/master/nfreeze..." I really appreciate this and find this very interesting. I would be happy to give you a free dev/test account at rsync.net if that would help you continue this development.
In Show HN: NFreezer – Encrypted-at-rest remote backup tool
As I discover it, borg seems to be pretty good for this use case indeed. But still there is one thing (at least) that can be of interest to some people with nFreezer: it is very simple, it does the job in only 249 lines of code. You can then read the FULL source code in a few hours, to see if you trust it or not. See here: https://github.com/josephernest/nfreezer/blob/master/nfreeze... If I want to do this with the source code of the tool you mentioned, I would have to spend at least one full week. (this is normal: this program has 100 times more features). The key point is: if you're looking for a solution for which you don't want to trust a remote server, then you probably don't want to trust the backup tool of a random internet person either. And you probably want to read the source code of the program. So having only < 300 lines of c
Read the rest
ode to read in a single .py can be an advantage.
In Show HN: NFreezer – Encrypted-at-rest remote backup tool
Thanks for asking the question, it's right, there are thousands of backup programs already. The "key thing" that lead me to code my own is that with nearly all the solutions I tried, data was resent over network when a big file is moved to another dir+renamed, WHEN used in encrypted-at-rest mode. It's the case for rsync (the --fuzzy only helps when renamed but stays in same dir), duplicity, and even rclone when in encrypted mode (see https://forum.rclone.org/t/can-not-use-track-renames-when-sy...: "Can not use –track-renames when syncing to and from Crypt remotes"). So I wanted to solve this problem, and it works. See point #3 of https://github.com/josephernest/nfreezer#features.
In Show HN: NFreezer – Encrypted-at-rest remote backup tool
nFreezer is different to RClone and Duplicity on a very important point (for me because I often move big multimedia projects): if you move `/path/to/10GB_file` to `/anotherpath/subdir/10GB_file_renamed`, no data will be re-transferred over the network, thus saving 10 GB of data transfer. Indeed, Rclone does not handle renames when in encrypted mode, see https://forum.rclone.org/t/can-not-use-track-renames-when-sy... Idem for duplicity (tests done). TL;DR: see 3rd point of https://github.com/josephernest/nfreezer#features ___ Another interesting feature is that you can read/audit the full source code of nFreezer quickly: it's only 249 source lines of code, as of today.
In Show HN: NFreezer – Encrypted-at-rest remote backup tool

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.