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.
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…