Pluton - Open source backup solution with End-to-End encryption with replication & Nice UI
Posted by towfiqi@reddit | linux | View on Reddit | 56 comments
About 2 years ago, I decided to move a few of my servers that contain precious data to some great deal VPSs I picked up during Black Friday from LET. After migrating all the data, I set up Duplicati on one of the servers to handle backups.
While configuring it, I came across something pretty concerning. Duplicati can silently corrupt backups over time. So when I actually need to restore data after a disaster, the backups might not even work. Realizing this made me feel like the whole migration was a mistake because those servers were managed and came with backup service.
I wanted to move to Restic because it’s rock-solid, but as someone who prefers a UI over managing endless CLI scripts, it just wasn't clicking for me. I wanted a way to easily manage a 3-2-1 backup plan across different cloud providers without the headache. I then found Backrest and gave it a try, but the UI did not make much sense to me as I was not really aware of the restic terminologies back then(this was back in December 2024).
Since I’m a developer, I decided to build my own solution. I thought it would take a month or two, but it ended up taking 16 months to get everything perfect. This is quite a long time for me, as I have been building various apps for a long time now, and most took me 3-4 months.
Here are the key Features of Pluton:
- Automated backups with encryption, compression, and retention policies powered by Restic
- Backup Replication: Auto-backup your content to multiple cloud storage to create 3-2-1 backup plans.
- Flexible scheduling for automated backup jobs with fine-grained retention policies
- End-to-end encryption: Backups are totally encrypted from your local machine to your cloud storage.
- 70+ Storage Support: Store encrypted data to your favorite cloud storage (powered by rclone).
- Easy Restore & Download: Restore or download backed-up snapshot data easily with just a few clicks.
- Event Notifications: Receive email, slack & discord notifications for backup start, end, completion, or failure.
- Auto Retry Logic: Automatically retries backups if they fail with customization options.
- Intuitive UI: Manage everything from a single, clean interface.
- Real-time Progress Tracking: Track the progress of backups in real time.
- Extensive Logging: View app and backup logs right from the UI for better debugging.
- Run Scripts before/after: Ability to run scripts before and after running backups.
- 2FA: Secure your dashboard with built-in 2-factor authentication.
Pluton can be installed on Linux desktops (AppImage) and servers, and can also be deployed with Docker. Give it a try:
https://github.com/plutonhq/pluton
Feedbacks appreciated.
macromorgan@reddit
Pluton the name is already taken by a Microsoft/AMD security processor for servers. You might have some confusion there (when I clicked the story I was originally curious about the open source nature of the chips, turns out that’s not what this was about).
Linux_Account@reddit
It's weird how people don't check Google before choosing a band or product name.
towfiqi@reddit (OP)
oof! Almost had a heart attack thinking Microsoft had patented the word Pluton.
But yeah, you are right. This may cause confusion for some individuals.
spyingwind@reddit
"pluton backup" in google search, your project comes up first for me. The AI overview seems correct as well.
Personally, I wouldn't worry too much about name collisions just yet.
towfiqi@reddit (OP)
Thanks. That put my mind at ease a bit..
macromorgan@reddit
No problem. I just didn’t want you to get too married to the name and have to switch it.
BlokZNCR@reddit
looks promising but wanna be sure at least for a backup tool before to use, is it vibe coded?
towfiqi@reddit (OP)
No. I have been developing this for the last 16 months.
Alles_@reddit
then why is the folder ./llm in every .gitignore ?
towfiqi@reddit (OP)
In the past, I used Repomix a few times to bundle the codebases into XML files and then used Google AI Studio to review some features I implemented. This was not feasible after a while, as the codebase is now huge and eats up context pretty quickly, and their response degrades drastically. Those folders are not needed anymore and will be removed soon.
Alles_@reddit
Ok now respond to the part where you said 30% of the code is AI
towfiqi@reddit (OP)
sure. The test cases, e2e tests (not public), and some refactors in total, I would say 30%, but that number is a guess and might not be accurate, as most of the 2025 I've written the code myself, but at the end of the year, I have used AI to write the test cases, and made some refactors. You can say some AI assistance is used. But not vibe coded at all. So when I was asked if it was vibecoded, I replied no.
Bulky-Bad-9153@reddit
Okay so the verification that your program fundamentally works, which is of the utmost important given what it does, wasn't done by you. You simply can't do this.
towfiqi@reddit (OP)
Most of these are unit tests. I would say e2e tests are more important, and I tested them thoroughly, and everything works as they should.
Bulky-Bad-9153@reddit
I would say unit tests are also vital, and should be treated as such.
Isofruit@reddit
Unit tests are vital, but as a unit they are also small enough that you can reason about the... ~5-20 lines of code a single unit-test includes easily.
If you have a strong pattern that you force your LLM to adhere to, reviewing them becomes even easier. So I wouldn't bring out the pitch-forks for somebody generating and reviewing their unit-tests accordingly if I noticed it in a PR at work.
Bulky-Bad-9153@reddit
I would, we've had actual delays caused by a junior writing unit and integration tests with AI. My opinion is that if you delegate testing to AI then you introduce issues on a spectrum that goes from "these tests are garbage" to "these tests miss a whole subsection of behaviour that the AI was unaware of".
I'm not a purist, AI has uses, but I think test cases is literally the last place for it. Even the best coders are human and can get lazy; they trust the AI output is good and then the 1% of the time it isn't they've missed an edge case that ends up with every entry in a database being deleted because of an
if x in "str"instead ofif "str".startswith(x).coding_manic_01@reddit
What you are saying is valid, but it still feels like people are going to hard on the author. If what they say is correct and most of the AI generated stuff is unit tests, then I think he wrote this without significant AI contribution.
You may not like his tests, but go to any project pre-AI and look at their testing methodologies. I am fairly anti-ai from a trust perspective in that I think it's causing passionate people to lose their will to write code since anyone can slop their way into a similar result with a fraction of the real actual human value produced. But what the author did is fine.
Test code has many purposes, and one totally valid use of tests is to encode output today. If I don't know what another engineer did, I may write a test to make sure that my modifications don't change the output--even if I don't fully understand the reasoning. obviously you would want to fix the underlying reasoning and make it stable and logically consistent but at times you can't because of user-space.
I don't like 85% of what other programmers do at my work--they feel sloppy, uncaring, etc. But at some point you also gotta integrate some humility and accept that different people have different workflows that may also be valid.
CoreParad0x@reddit
I would add to this a bit further. If you use AI for unit tests you also need to ensure the AI didn’t write the test for what it sees the function currently does vs what it’s supposed to do. Making a test fit a broken function rather than making the test fail because the function is broken.
towfiqi@reddit (OP)
Thanks for your input. I will take your advice and try rewriting the test cases soon.
BlokZNCR@reddit
You did a great job, congratulations.
towfiqi@reddit (OP)
Thank you so much! :)
mikelwrnc@reddit
Does it support buddy backup?
spyingwind@reddit
Just point it to a storage and off you go. SMB and SFTP are supported.
towfiqi@reddit (OP)
Sorry, never heard of Buddy backup. Care to elaborate a bit?
pandamarshmallows@reddit
You have a NAS, your buddy has a NAS, and the two of you back up to each others' systems so that you can do off-site backups without relying on a cloud provider.
towfiqi@reddit (OP)
Sounds amazing. Is it still operational? I googled Buddy Backup and found this site, but it says"BuddyBackup is now closed."
_mb@reddit
Its more of a feature/concept than a product.
mikelwrnc@reddit
I intended “buddy backup” as a generic term; didn’t even know anyone was using the term as a brand
BigHeadTonyT@reddit
Imagine the Cloud being your buddy and his/her computer. You store your files at your buddies place and they store their files at your place. Encrypted. Neither can look at each others files. Off-site backup.
towfiqi@reddit (OP)
Thank You. That clears it a bit. But I still had to research a little to understand the concept better. I think this can be easily achieved with restic in general. You mount your friend's NAS using fuse and then use that as your backup destination. And your friend does the same with your NAS storage. Restic does the encryption and backup part. Please correct me if I am wrong.
If my understanding is correct, then you can just mount your friend's NAS using fuse or any other method and back up any source paths of your machine to your friend's NAS storage using Pluton.
mikelwrnc@reddit
This
Every_Box_8852@reddit
🔥
MysteriousLion01@reddit
Ça ressemble à plakar
https://plakar.io/
teressapanic@reddit
Why would we use it over https://rclone.org/ ?
towfiqi@reddit (OP)
rclone is a sync tool; this is a backup tool(snapshot-based). It uses rclone to connect to various storage providers to store the backups made using restic.
teressapanic@reddit
Yes you can use restic with rclone. What’s the difference?
towfiqi@reddit (OP)
the GUI, replication, backup notifications, to name a few.
General-Finish7312@reddit
although it seems there is Arm64 version but this is what i get
and your docker actually show targetarch=amd64 for arm64 branch
towfiqi@reddit (OP)
Should be fixed now. I wish I could test it out myself, but since I don't have an arm machine its not possible at the moment. Let me know.
daYMAN007@reddit
Justvrun it in qemu?
towfiqi@reddit (OP)
Thanks for pointing it out. It looks like I made a mistake in the Dockerfile. My understanding of how to set a default value in a Dockerfile was a little flawed. Will be fixing in a moment and will let you know when the build is complete.
dswhite85@reddit
DejaDup is all I ever need. this isn't for me.
BodyWarrior2007@reddit
Nice UI is great, but fwiw, I always stick
LiftingRecipient420@reddit
I think you're hurting your marketing by not making it clearer that this is a wrapper/extension to restic.
towfiqi@reddit (OP)
It's actually in the 2nd line of the intro paragraph :)
pabohoney1@reddit
I think he meant in the reddit post.
LiftingRecipient420@reddit
Yeah, this, thanks for clarifying.
thrustitus@reddit
Seems cool, and i really appreciate that you took the time to make it look great, too.
Bit complicated and likely more than i need for me, but still: I appreciate the work you've done.
towfiqi@reddit (OP)
Thank you much :)
Kazer67@reddit
Seem indeed really nice.
I'm using Kopia for my mother's desktop (with second HDD + Encrypted toward blackblaze) but this tool interest me.
Does it do a backup health check from time to time to verify it? I know testing a restore is the way to confirm the backup but that's not always practical (and if I recall, Kopia has some maintenance process built-in).
For my setup I have a TrueNAS with an encrypted backup toward Backblaze and I have the ZFS scrub to find data corruption and be able to restore if ZFS can't correct (had the case because of a faulty S-ATA cable).
aloobhujiyaay@reddit
This is the kind of thing I’ve been trying to simplify in general. I used to wire everything manually, backups, scripts, small tools. Lately I just use stuff like Runable for the outer layer of projects so I can focus on the core logic feels similar to what you’re doing here
tav_stuff@reddit
Hey this looks awesome! Definitely gonna check it out :)
towfiqi@reddit (OP)
Great! Let me know how it goes.
Just-Scholar4272@reddit
Does it have an android app? I really need one. I presently use round sync but it has not been maintained for over a year.
towfiqi@reddit (OP)
If your goal is to back up the data of your Android device, I am afraid that's not possible.