RamblerRambler
All posts
Engineering

Self-hosting Rambler with Docker and MinIO

One compose file brings up the server, the database, and object storage for uploads. Here's the tour.

The Rambler teamJune 12, 20266 min read

Rambler is meant to be run by the people who use it. The whole stack comes up from a single Docker Compose file, so you can host it on a spare box or a small VPS in minutes.

What's in the box

Compose brings up four things: the .NET server that speaks the WebSocket protocol, a PostgreSQL database for users and message history, MinIO for file uploads, and the Next.js web front end. The server runs its database migrations automatically on startup, so there's no manual step to get the schema in place.

Storage for uploads

Uploaded images and documents go to MinIO, an S3-compatible object store. Because it speaks the S3 API, the same code path works whether you point it at MinIO locally or a cloud bucket in production. The bucket gets a public-read policy for shared media, and everything is addressed by a stable URL.

Configuration

Almost everything is driven by environment variables in a single .env file: database credentials, the storage endpoint and public URL, and a switch to allow cross-origin access when you're developing against the server locally. Sensible defaults mean the happy path is short.

The goal is that standing up your own instance is boring - in the best possible way.

Comments

Loading comments…