Sign inSign up

reloopsh/be-upload

By reloopsh

•Updated about 9 hours ago

File upload & asset management service for Reloop — S3-compatible storage for images and media.

Image
Web servers
0

3.0K

reloopsh/be-upload repository overview

⁠📤 Reloop — Upload Service

The Upload Service handles all file and asset uploads in the Reloop⁠ platform. It provides a secure, S3-compatible upload pipeline supporting images and media files with size validation, MIME type enforcement, and organization-scoped storage.

Built on Bun⁠ + Elysia⁠, backed by PostgreSQL and S3-compatible object storage.


⁠🚀 Features

  • S3-Compatible Storage — Works with AWS S3, MinIO, and any S3-compatible provider
  • File Validation — Enforces max 10MB file size and allowed MIME types
  • Supported Formats — JPEG, PNG, GIF, WebP, SVG
  • Organization-scoped — Uploads are isolated per org
  • API Key Auth — Secured via x-api-key header
  • OpenAPI Docs — Auto-generated spec at /api/upload/openapi
  • NATS Bus — Event-driven integration via the Reloop message bus

ResourceLink
📚 Documentationreloop.sh/docs/setup/backend/upload⁠
🌐 Production APIapi.reloop.sh/api/upload⁠
📜 OpenAPI Specreloop.sh/api/upload/openapi⁠
🐙 Source Codegithub.com/reloop-labs/reloop⁠
💬 Discorddiscord.gg/reloop⁠
🐦 Twitter / X@reloophq⁠
🆘 Supportreloop.sh/support⁠

⁠⚡ Quick Start

docker pull reloopsh/be-upload:latest

docker run -d \
  -p 8018:8018 \
  -e PG_URL=postgresql://user:password@host:5432/reloop \
  -e REDIS_URL=redis://:password@host:6379 \
  -e NATS_URL=nats://host:4222 \
  -e BASE_URL=https://your-domain.com \
  -e S3_ENDPOINT=https://s3.amazonaws.com \
  -e S3_ACCESS_KEY=your-access-key \
  -e S3_SECRET_KEY=your-secret-key \
  -e S3_BUCKET=reloop-uploads \
  -e S3_REGION=us-east-1 \
  reloopsh/be-upload:latest

The service will be available at http://localhost:8018/api/upload.


⁠🔧 Environment Variables

VariableDefaultDescription
PORT8018Port the server listens on
PG_URL—PostgreSQL connection string
REDIS_URL—Redis connection string
NATS_URL—NATS messaging server URL
BASE_URL—Public base URL of the platform
S3_ENDPOINT—S3-compatible storage endpoint
S3_ACCESS_KEY—S3 access key
S3_SECRET_KEY—S3 secret key
S3_BUCKETreloop-uploadsS3 bucket name
S3_REGIONus-east-1S3 region
S3_FORCE_PATH_STYLEtrueUse path-style URLs (required for MinIO)
NODE_ENVproductionRuntime environment

⁠🛠 Tech Stack

  • Runtime: Bun⁠
  • Framework: Elysia⁠
  • Storage: S3-compatible (AWS S3 / MinIO)
  • Database: PostgreSQL via Drizzle ORM⁠
  • Cache: Redis
  • Messaging: NATS

⁠📦 Part of the Reloop Platform

This image is one of several microservices that make up the Reloop backend. See the full list at hub.docker.com/u/reloopsh⁠.

Tag summary

Content type

Image

Digest

sha256:265ef1bcb…

Size

422 MB

Last updated

about 9 hours ago

docker pull reloopsh/be-upload