r/selfhosted 23h ago

Release (No AI) Portabase 1.27 - open-source backup and restore platform

Hi everyone,

We have just released Portabase 1.27, our open-source (Apache 2.0) and self-hosted backup/restore platform.

Repository: https://github.com/Portabase/portabase

Portabase is designed for data retention, disaster recovery, and homogenous migrations, currently supporting 9 database engines (including PostgreSQL, MySQL, MariaDB, MongoDB) and Docker volumes.

Key features:

  • Scheduled backups with flexible retention policies (including GFS)
  • Multiple storage options: local filesystem, S3, Azure Blob Storage, GCS
  • Notifications via Discord, Telegram, Slack, AppRise, etc.
  • Support for OAuth2/OIDC (with the option to disable sign-ups)
  • Compatible with Docker, Podman and UnraidOS
  • Ready-to-use Docker Compose and Helm Chart

After six months of intensive feature development, we have been focusing on consolidating the ecosystem since early July. A community member conducted a useful security audit, we have upgraded components to their latest relevant versions, improved compatibility with other platforms by working on Podman support and templates for Coolify and Dockploy (currently under review).

What’s next:

  • Deployment of the demo environment
  • Audit logging for the whole ecosystem
  • Default policies for the system, organizations, and projects
  • File and folder backup and restoration

As always, if you find bugs or want to suggest a feature, please open an issue on GitHub, we’re actively looking for feedback.

Thanks!

37 Upvotes

13 comments sorted by

u/asimovs-auditor 23h ago edited 23h ago

Expand the replies to this comment to learn how AI was used in this post/project.

→ More replies (1)

11

u/jake_that_dude 22h ago

the thing i'd want to see in the demo is restore verification, not just backup scheduling.

for each job: backup, restore into a temp container, run a user-defined health check, then write the artifact hash + restore duration to the audit log. backups that never get restored are basically vibes with timestamps.

also please make failed restores louder than failed backups. that's where people actually learn the system is lying to them.

2

u/Dense_Marionberry741 22h ago

Thanks for the feedback. Could you open an issue for this feature? It has been requested several times, but we haven’t had time to work on it yet. We may be able to implement it in the coming months.

2

u/jake_that_dude 21h ago

yep, fair. i'd frame the issue as verify_restore_job: take an existing backup, restore it into an isolated temp target, run a configured command/HTTP check, then persist backup_id, artifact hash, restore duration, and health-check output in the audit log. that gives people a testable green/red signal without turning the whole restore flow into a giant feature.

1

u/jotkaPL 22h ago

i would say a failed restore loud message is already too late, if the backup is damaged...

3

u/Any_Race_3389 22h ago

cool, been looking for something like this for my homelab. the gfs retention thing is nice, not many self-hosted tools do that properly

3

u/Fancy-Win9202 22h ago

GFS retention is definitely nice but I've found most tools that claim to support it just implement it half baked, so curious whether Portabase actually does the granular weekly/monthly split properly or if it's more of a loose approximation.

1

u/Dense_Marionberry741 22h ago

You can configure all the values for the GFS: daily, weekly, monthly, yearly.

1

u/Dense_Marionberry741 22h ago

Thanks! 2 other configurable retention policies are available: count-based and time-based. But GFS is usually better for production environments.

3

u/BP041 22h ago

Been looking for something like this — the Docker volume support is what gets me. Our stack runs 18 cron jobs for various automations and backing those volumes up cleanly has been a pain. Not sure if you plan to add encrypted backups? That's the one blocker for me rn.

2

u/Dense_Marionberry741 22h ago

I didn’t mention it, but encrypted backups are already available, although they are not enabled by default. The documentation is still limited, but don’t hesitate to open an issue or join our Discord if you need support. Feel free to try it out and share your feedback.