Repository navigation
Releases: ByHandi/ostra
Releases · ByHandi/ostra
Release list
v0.4.0
Added
- Access keys with expiration dates: set key expiration during creation (preset or custom date)
or modify expiration on existing keys, backed byPUT /api/keys/{id}/expirationand updated
POST /api/keys. Visual status badges show active, expiring soon, and expired states across
the dashboard. - Search and sort in the object browser: filter folders and files by case-insensitive substring
match, and sort by name, size, or last modified date in ascending or descending order, backed
bysearch,sortBy, andorderquery parameters onGET /api/buckets/{id}/objects. - View and edit object HTTP metadata (
Content-Type,Cache-Control, and
Content-Disposition) in the object browser and preview modal, backed by
GETandPUT /api/buckets/{id}/objects/metadata. - Rename, move, and duplicate actions for files and folders in the object browser, backed by
newPOST /api/buckets/{id}/objects/copyandPOST /api/buckets/{id}/objects/moveendpoints.
v0.3.0
Added
- Per-bucket CORS configuration editor on the bucket page to allow cross-origin browser
uploads and S3 requests. - Connection snippets modal on the Access Keys and key detail pages with ready-to-copy
configurations and code for AWS CLI, rclone, Node.js (AWS SDK v3), Python (boto3),
and environment variables. - Configurable
S3_PUBLIC_URLenvironment variable andGET /api/configendpoint to
provide the authoritative S3 endpoint and region for dashboard connection snippets when
using custom domains or external proxies (e.g.cdn.example.com). - Custom static website configuration per bucket with editable index and error documents
(e.g. for SPAs), accessible from the bucket settings tab. - Per-bucket lifecycle rules configuration on the bucket settings page to automate object
expiration and cleanup of incomplete multipart uploads.
v0.2.0 - Storage Quotas, Share Links, File Previews & Background Uploads
Ostra v0.2.0 brings essential bucket governance, enhanced file operations, and improved dashboard UX for managing your self-hosted object storage.
What's New in v0.2.0
📊 Per-Bucket Storage & Object Quotas (#68)
- Set maximum storage capacity (MB/GB/TB) and maximum object counts per bucket.
- Enforced natively at the Garage v2 engine level via
PUT /api/buckets/{id}/quotas. - Visual progress bars in the dashboard with dynamic color indicators (normal, warning at 75%, danger at 90%).
- Real-time quota visibility across both desktop tables and mobile lists.
🔗 Shareable Download Links (#62)
- Generate secure public download links with custom time-to-live (1 hour, 1 day, or 7 days).
- Files can be downloaded safely without exposing your bucket credentials or making the whole bucket public.
👁️ In-Browser Object Previews (#64)
- Preview files directly inside the dashboard object browser.
- Supports inline rendering for images, video, PDF, and plain text/code files using short-lived signed preview tokens.
🚀 Global Floating Upload Manager (#66)
- File uploads now persist across page navigation in the dashboard.
- Floating bottom-corner progress widget with cancel support and browser reload/close protection warnings while transfers are in flight.
Docker Images
The multi-arch images (linux/amd64 and linux/arm64) are published to GitHub Container Registry:
docker pull ghcr.io/byhandi/ostra:0.2.0
docker pull ghcr.io/byhandi/ostra:latestv0.1.0 — Initial Release
Ostra v0.1.0 is the first public release: self-hosted S3-compatible object storage built on Garage v2, with Caddy-managed TLS and a Go control-plane with a React dashboard.
Highlights
- S3-compatible, single-node object storage powered by Garage v2.
- Bucket management with usage statistics, creation, and safe deletion.
- Per-bucket custom domains with on-demand TLS and DNS ownership verification.
- Access-key management with per-bucket read, write, and owner permissions.
- Dashboard for storage overview, buckets, domains, access keys, and account settings.
- Built-in object browser: browse folders, drag-and-drop upload with progress, download files, copy public URLs, and delete files or folders.
- Configurable dashboard upload limit via
MAX_UPLOAD_SIZE_MB(default: 5120 MB). - Secure admin authentication: Argon2id passwords, short-lived JWTs, rotating httpOnly refresh cookies, session revocation, and login rate limiting.
- Bootstrap the first admin with
ADMIN_EMAIL,ADMIN_PASSWORD, and optionalADMIN_NAME. - Production-ready Docker Compose deployment, health checks, cold backup/restore scripts, and upgrade/rollback documentation.
- Supports bundled Caddy or an external proxy deployment, including guidance for Coolify and Cloudflare Tunnel.
- Multi-architecture container images for
linux/amd64andlinux/arm64.
Security
- The control-plane refuses unsafe development settings (
DNS_VERIFY=offorCOOKIE_SECURE=false) outside.localhostand.testdomains. - Client IP forwarding is restricted through
TRUSTED_PROXIES.
Fixed
- Dashboard page transitions skipped by the browser no longer log an uncaught
InvalidStateError.
License
Ostra is licensed under the Apache License 2.0. Garage remains separately licensed under AGPL-3.0 and is used as an independent service through its API.
See the README for deployment instructions, and the CHANGELOG for the complete release history.