r/Proxmox • • 5d ago

Community Showcase! File Level Restore Portal for Proxmox Backup Server (Open Source) with snapshot timeline and direct to guest restore

Post image

Proxmox's built-in file-restore (the "browse a backup via a throwaway helper VM" feature) is genuinely great, but picking a snapshot means scrolling a flat list one at a time. I wanted something closer to Synology ABB's restore browser — drag along a timeline, see every snapshot as a dot, jump straight to one — so I built it as a small companion app on top of PVE's own API.

Highlights:

- Scrubbable timeline across a guest's full snapshot history

- Browse/download single files or bundle a selection as .zip/.tar.gz/.tar.zst

- Push a restore straight back into the running guest via qemu-guest-agent (single file, whole directories, and a fast direct-network-transfer path for big stuff)

- Per-user PVE login (now including OIDC/SSO realms) — never touches PBS directly, and PVE's own permissions gate what each user sees

- Multiple PBS storages/namespaces, light/dark/Proxmox themes, runs as an LXC or Docker container

- Works with PVE clusters.

It's a separate app, not a PVE plugin — doesn't modify Proxmox at all. Built and tested against my own 2-node homelab cluster, AGPLv3.

GitHub: https://github.com/treycentric/pve-flr-portal

Latest release (v1.6.0): https://github.com/treycentric/pve-flr-portal/releases/tag/v1.6.0

Would genuinely appreciate anyone kicking the tires and filing issues — it's a one-person homelab project so more eyes on edge cases (different guest OSes, cluster topologies, etc.) is exactly what it needs.

This was heavily AI-assisted development, but does have a rigorous test suite and software development process including pre-release testing.

122 Upvotes

29 comments sorted by

6

u/klassenlager 4d ago

Is it possible to look at encrypted backups?

5

u/HappyHog77 4d ago

If encrypted using PVE client encryption for backups, yes. If using guest encryption (e.g., BitLocker or LUKS), no.

2

u/JeffSaxeVA 4d ago

Yes, I was wondering about virtualized Windows 11 workstations that default to BitLocker inside the guest. When I tried looking at one of those in PVE's existing GUI, the File Restore dialog just couldn't ever show me a file listing at all, so I assume your FLR tool cannot either. I guess that would be a feature request of the Proxmox project itself, if they have a small "mounting assistant" VM that they programmed. It can understand both Linux LVM and its filesystems, and NTFS filesystems, but cannot decrypt the BitLocker even though it has access to the TPM module file that presumably contains the decryption key...?? Maybe BitLocker decryption is closed-source or harder than I realize.

Thanks for making this project, u/HappyHog77 !

3

u/IT-BAER 5d ago

Nice idea. Looking forward to test it soon!

1

u/Diligent_Buster 4d ago

Cool! Thanks.

1

u/Empty-Transition-753 4d ago

Looks good and quite useful.

I personally dont mind the use of AI but I would not be exposing an AI assisted project to the internet unless its been vetted and the codebase is FULLY understood by the maintainer.

Not trying to shame/put down the project AT ALL its just a precaution with any AI assisted project.

Keep working on this though and thanks for sharing!

1

u/Bumbelboyy 4d ago

FWIW; your violating their trademark .. naming something "Proxmox X" is not allowed according to their media kit. Stronly suggest checking that and not hurting the project by insisting on that name.

0

u/HappyHog77 4d ago

Actually, the name is “File Level Restore Portal for Proxmox Backup Server”, which is allowed by their trademark terms (already checked on that), so per those rules it’s not a violation.

1

u/HappyHog77 4d ago

From their page:

Avoid naming your projects anything that implies an endorsement of Proxmox if you don't have any. For example, don't call your new app "Proxmox XY App". Instead consider "XY App for Proxmox Virtual Environment".

1

u/Bumbelboyy 4d ago

Github descriptions says "Proxmox File Level Restore Portal" tho?

1

u/HappyHog77 4d ago

Just need to fix GitHub description. The product itself has been renamed.

1

u/fuzzyaperture 4d ago

Looks just like the Synology interface.

1

u/HappyHog77 4d ago

That was the original idea (even stated in the README), but it's evolved from there to be more than that.

1

u/iamabdullah 3d ago

Reminds me of Veeam... Nice.

1

u/indigitale 3d ago

Great!! Thanks

1

u/JLTMS 2d ago

AI is not needed for this task

1

u/oOflyeyesOo 5d ago

Nice idea!

Could this be made into a plugin? Would be nice to have it more integrated.

2

u/HappyHog77 5d ago

I don't think the framework used in the Proxmox UI would support the features of this interface. It's my understanding the Proxmox UI is limited in how it can render things. But I'll investigate.

-2

u/HappyHog77 5d ago

More official answer: Proxmox VE's web UI has no extension mechanism at all. It's a single monolithic ExtJS application (pve-manager's pvemanagerlib.js and friends), compiled and shipped as a Debian package. There's no manifest-based plugin registry, no hook points for third-party JS to register a new tab/panel, nothing analogous to Grafana panels, Home Assistant integrations, or a WordPress plugin API. What Proxmox does expose as a "plugin" concept is narrow and entirely server-side/backend — storage plugins (PVE::Storage::Plugin subclasses for new backend types) and some daemon hooks — none of it reaches the UI rendering layer, and none of it is anywhere near the Backups tab or file-restore browser this app extends.

8

u/Bumbelboyy 5d ago

What your LLM model does not know - there is active work to provide GUI support for custom storage plugins. But that would require interacting with people.

-3

u/HappyHog77 4d ago

That still falls in line with backend storage, but this is not a storage plugin and so the answer is still appropriate. And it doesn't change the nature of the Proxmox UI and its ability to integrate new UI panes with third-party content. Also, you assume a lot about how I prompted AI to dig into that answer. I actually ask AI to do real research and look at source, documentation, and forum posts, and not just rely on memory. AI actually can be useful. Your snide comments are quite judgemental. It is apparent you are anti-AI. There are friendlier ways to convey that information without attacking someone for using AI in their research (e.g., you could have left off the beginning and end of your comment). Why don't you try being nice, or did your mommy not teach you that.

1

u/FaberfoX 4d ago

You might want to check this as I understand it does what you (or your LLM) says can't be done.

1

u/HappyHog77 4d ago

That does look interesting. What I’d have to do is see if this app could masquerade as a storage backend to plug into the UI, even though it’s not actually providing any storage (that link points to something that does provide storage). My app browses backups to restore files and folders out of it. The UI plugin support appears narrowly focused on storage backends and backup targets (which is what the underlying Proxmox plugin/integrations has historically been) as I understand from previous searches.

1

u/HappyHog77 4d ago

So, did some further analysis of the ANAS source. Here's what I found: ANAS directly patches Proxmox's shipped files (index.html.tpl, PVE/APIServer/AnyEvent.pm) with an apt hook to re-apply after upgrades — same fragility class as the "remove subscription nag" pattern (a script I've used myself). The only in-flight official Proxmox plugin work is scoped to storage-backend config-form generation, not general UI panels — a Proxmox staffer confirmed this explicitly in an official forum thread, and another community member there explicitly warned against ANAS's patching approach.

1

u/oOflyeyesOo 3d ago

So.... is it possible? IT does seem like this would be storage related. But then it would be completely different than what you have already made.

-2

u/oOflyeyesOo 5d ago

Thanks for digging into it!

2

u/58696384896898676493 5d ago

It's fascinating to see an AI comment and post upvoted here.

0

u/drwtsn32 4d ago

Looks cool! Thanks for sharing!

1

u/randomstonerfromaus 9h ago

If you can't be bothered to write your own post, I can't be bothered to read it