Railway

Deploy S3-ObjectDeck

This is a client compatible with different S3-compatible providers.

Deploy S3-ObjectDeck

Just deployed

S3-ObjectDeck

A lightweight S3-compatible storage browser. Navigate, preview, upload, and delete files directly from your browser — no database, no extra configuration required.

What does it do?

  • File Explorer — browse folders and files just like Windows Explorer
  • Image Gallery — preview images with lazy loading and real thumbnails
  • Viewer — open images full screen, PDFs in a new tab
  • Fuzzy Search — find files by name, key, or extension in real time
  • File Management — upload, replace, and delete files directly
  • Dashboard — bucket metrics: total files, storage used, breakdown by type
  • Multi-connection — save multiple S3 connections and switch between them from the header

What can it connect to?

Works with any S3-compatible provider:

ProviderEndpoint
Amazon S3https://s3.{region}.amazonaws.com
Cloudflare R2https://{account_id}.r2.cloudflarestorage.com
Railway S3Your Railway Object Storage endpoint
MinIOhttps://your-minio-instance.com
Backblaze B2https://s3.{region}.backblazeb2.com
DigitalOcean Spaceshttps://{region}.digitaloceanspaces.com
Supabase Storagehttps://{ref}.supabase.co/storage/v1/s3

Configuration

Open the app and go to Settings, then fill in:

FieldDescriptionExample
Endpoint URLYour S3 provider URLhttps://s3.us-east-1.amazonaws.com
Bucket NameName of the bucketmy-invoices
RegionBucket regionus-east-1
PrefixFolder inside the bucket (optional)bills
Access Key IDYour access keyAKIAIOSFODNN7EXAMPLE
Secret Access KeyYour secret keywJalrXUtnFEMI/...
Force Path StyleEnable for most non-AWS providers

Click Test connection to validate before connecting. Credentials are stored in the browser's localStorage — never on the server.

Privacy & Security

  • Credentials are never stored on the server — only in the user's browser localStorage.
  • Each request includes credentials and creates a temporary S3 client on the fly.
  • The server acts as a secure proxy so credentials are never exposed in the frontend.

Deploy and Host

About Hosting

S3-ObjectDeck is a Go application that serves both the API and the compiled React frontend from a single binary. It requires no database, no cache, and no additional services — just a container with port 8080 exposed.

The final Docker image weighs approximately 25 MB (Alpine + Go binary + compiled Vite assets). Cold start time is under 100 ms.

Why Deploy

  • Zero external dependencies — single container, no Postgres, no Redis, nothing else.
  • Ultra-lightweight image — ~25 MB, starts in under 100 ms.
  • Stateless — scales horizontally with no additional configuration.
  • Secure by design — S3 credentials are never persisted on the server.
  • Universal — connects to any S3-compatible provider without changing a line of code.

Common Use Cases

  • Review and manage invoices or receipts stored in S3.
  • Browse bucket contents without needing the AWS console or CLI.
  • Preview images and PDFs directly from cloud storage.
  • Manage files in Railway, Cloudflare R2, or MinIO buckets from a clean web UI.
  • Replace or delete files in development and staging environments.

Dependencies for

This template has no dependencies on other services — it can be deployed completely standalone.

To connect it to Railway S3 (Object Storage), create that service in the same Railway project and use the credentials Railway generates automatically in the app's Settings screen.

Deployment Dependencies

DependencyRequiredDescription
Port 8080✅ YesHTTP server port (configurable via PORT)
S3-compatible bucket✅ YesAny external S3 provider (not included in this template)
Database❌ NoNot used
Cache (Redis, etc.)❌ NoNot used
Persistent storage❌ NoNot used

Environment Variables

VariableDefaultDescription
PORT8080HTTP server port
MAX_UPLOAD_MB100Maximum upload file size in MB
LOG_LEVELinfoLog level: debug · info · warn · error

Template Content

More templates in this category

View Template
Garage S3 Storage
Ultra-light S3 server: fast, open-source, plug-and-play 🚀

PROJETOS
View Template
Postgres Backup to Cloudflare R2 (S3-Compatible)
Automated PostgreSQL backups to S3-compatible storage with encryption

Artour
View Template
ReadySet
A lightweight caching engine for Postgres

Milo