Self-hosted S3-compatible object storage, automated backups, and an elegant web panel — in one install.
Production-ready object storage with batteries included. No vendor lock-in, no hidden costs.
Powered by Garage. Works with any AWS SDK, CLI, or S3 client out of the box.
A single script sets up Garage, Caddy with Let's Encrypt TLS, rclone, and cron jobs.
Nightly sync of every bucket to remote servers with configurable retention policies.
Laravel-based dashboard for buckets, objects, and API keys with a clean interface.
TOTP 2FA and password reset via SMTP keep your storage management secure.
Nightly cron pulls the latest release, runs migrations, and refreshes the panel.
A push-based model. Orchestration runs only on your primary VPS. Backup servers just need SSH and disk space.
Johnny wraps Garage with everything you need to run object storage in production: automatic TLS, nightly SFTP backups with retention, a CLI, and an optional web panel with 2FA.
Clone the repo, run the installer, and start storing objects. That's it.
Clone outside /root so the Laravel panel can run as www-data.
The interactive wizard installs dependencies, configures Garage, Caddy, rclone, and cron.
Your S3 credentials are ready. Use any AWS SDK or S3 client to start working.
Manage storage, keys, and backups with simple commands.
| johnny version | Print installed version |
| johnny status | Garage cluster status |
| johnny update | Update installation |
| johnny bucket list | List all buckets |
| johnny bucket create | Create a new bucket |
| johnny key list | List API keys |
| johnny key create | Create an API key |
| johnny backup list | List targets & retention |
| johnny backup create | Add a backup target |
| johnny backup delete | Remove a target |
| johnny backup run | Run backup now |
| install-panel.sh | Install the panel |
| johnny:admin | Create admin user |
| config:cache | Rebuild config cache |
Deploy Johnny on your VPS in minutes. Free, open source, forever.