For the complete documentation index, see llms-docs.txt or the site index llms.txt. Full docs corpus: llms-full-docs.txt. Prefer the markdown version of this page at /docs/setup/backend/upload.md. Product capabilities: skill.md. Docs MCP: /docs/mcp. Site MCP: /mcp.

Upload

Set up, configure, and run the Reloop upload microservice locally.

File uploads — logos, attachments, and assets stored in MinIO/S3.

Run bun setup once so MinIO is up (bun docker:up). Env files come from bun setup / bun env:setup. Console: http://localhost:9001 (reloop / reloop123).

Overview

PropertyValue
Directoryapps/backend/upload
Port8018
Local URLhttps://local.reloop.sh/api/upload
Swagger UIhttps://local.reloop.sh/api/upload/openapi
StackElysiaJS · PostgreSQL · MinIO/S3 · NATS

Quick start

bun be:upload:dev

Or bun backend:dev / bun dev.

Environment

apps/backend/upload/.env — from bun setup / bun env:setup.

PG_URL=postgresql://reloop:reloop123@localhost:5432/reloop
REDIS_URL=redis://:reloop123@localhost:6379
PORT=8018
BASE_URL="https://local.reloop.sh"
S3_ENDPOINT=http://localhost:9010
S3_ACCESS_KEY=reloop
S3_SECRET_KEY=reloop123
S3_BUCKET=reloop-uploads
S3_REGION=us-east-1
S3_FORCE_PATH_STYLE=true
NATS_URL=nats://localhost:4222
NODE_ENV=development
VariableRequiredDefault
PG_URLYESpostgresql://...
S3_ENDPOINTYEShttp://localhost:9010
S3_ACCESS_KEYYESreloop
S3_SECRET_KEYYESreloop123
S3_BUCKETYESreloop-uploads
PORTYES8018

Commands

CommandDescription
bun be:upload:devStart dev server with hot reloading
bun run --filter=be-upload buildCompile production bundle
bun run --filter=be-upload startRun compiled production build
bun run --filter=be-upload check-typesTypeScript type-check

Architecture

LayerDetail
StorageFiles uploaded to MinIO locally (localhost:9010), S3 in production
MetadataFile index stored in Postgres (upload table)
Signed URLsGenerates presigned upload/download URLs for the dashboard

Next

Was this page helpful?

Edit this page