Skip to content

Releases: ByHandi/ostra

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 08:03
19e973e

Added

  • Access keys with expiration dates: set key expiration during creation (preset or custom date)
    or modify expiration on existing keys, backed by PUT /api/keys/{id}/expiration and 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
    by search, sortBy, and order query parameters on GET /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
    GET and PUT /api/buckets/{id}/objects/metadata.
  • Rename, move, and duplicate actions for files and folders in the object browser, backed by
    new POST /api/buckets/{id}/objects/copy and POST /api/buckets/{id}/objects/move endpoints.

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 23:57
6fe96cb

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_URL environment variable and GET /api/config endpoint 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

Choose a tag to compare

@github-actions github-actions released this 22 Oct 10:12
4e4244f

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:latest

v0.1.0 — Initial Release

Choose a tag to compare

@handi7 handi7 released this 22 Oct 06:00
50e0313

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 optional ADMIN_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/amd64 and linux/arm64.

Security

  • The control-plane refuses unsafe development settings (DNS_VERIFY=off or COOKIE_SECURE=false) outside .localhost and .test domains.
  • 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.