[{"data":1,"prerenderedAt":117},["ShallowReactive",2],{"seo-verification":3,"blog-heberger-minio-vps-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":20,"featuredImage":22,"bgImage":23,"posterImage":24,"relatedSolution":25,"intro":27,"sections":28,"ctaTitle":71,"ctaBody":72,"ctaButton":73,"ctaUrl":74,"relatedPosts":75},70,"heberger-minio-vps","Hosting MinIO on a VPS","Set up your own S3-compatible object storage with MinIO on a VPS: buckets, web console, SSL and controlled backups.",6,390,false,"2026-04-11T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},"Databases","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[21],{"id":11,"name":16,"slug":17,"color":18,"icon":19},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-minio-vps-poster.svg",{"categorySlug":17,"appSlug":26},"minio","MinIO turns your VPS into high-performance object storage compatible with Amazon's S3 API. Ideal for hosting files, backups, assets and artifacts without depending on a public cloud. Here is how to deploy it cleanly with console, TLS and encryption.",[29,33,43,46,68],{"type":30,"title":31,"body":32},"h2","Why self-host MinIO on a VPS","MinIO exposes a 100% S3-compatible API: all your SDKs, tools (`aws s3`, `rclone`, `mc`) and frameworks that speak S3 work without modification. Instead of paying for storage, requests and especially the egress of a public cloud, you get local object storage at the fixed price of your VPS. It is perfect for serving application assets, storing user uploads, receiving database snapshots, or building a backup target for your other servers, all on infrastructure you control.",{"type":34,"title":35,"items":36},"ul","The strengths of in-house object storage",[37,38,39,40,41,42],"A native S3 API: immediate compatibility with `aws-cli`, `rclone`, existing SDKs and frameworks","No egress fees or per-request GET\u002FPUT billing","A built-in web console to manage buckets, policies and users","Server-side encryption and object versioning enabled per bucket","An ideal backup target for your VPS, databases and containers","Granular access policies and presigned links to share files securely",{"type":30,"title":44,"body":45},"Realistic prerequisites","MinIO is light on CPU\u002FRAM: a 2 vCPU \u002F 2 GB RAM VPS is enough to get started. The determining factor is the disk: plan for an SSD volume sized according to your target capacity, with headroom for versioning. Docker + Compose installed, a subdomain for the API (`s3.yourdomain.com`) and another for the console (`console.yourdomain.com`). A TLS certificate is essential because MinIO carries credentials.",{"type":47,"title":48,"steps":49},"steps","Step-by-step deployment",[50,53,56,59,62,65],{"title":51,"body":52},"Prepare storage on the VPS","Create the data directory on your SSD: `mkdir -p \u002Fopt\u002Fminio\u002Fdata`. If you have several volumes, MinIO can aggregate them in erasure-coding mode for resilience.",{"title":54,"body":55},"Define the service with strong credentials","In `docker-compose.yml`, use the `minio\u002Fminio` image, the `server \u002Fdata --console-address \":9001\"` command, and set `MINIO_ROOT_USER` \u002F `MINIO_ROOT_PASSWORD` with randomly generated values. Mount `\u002Fopt\u002Fminio\u002Fdata:\u002Fdata`.",{"title":57,"body":58},"Start and bind the ports locally","Run `docker compose up -d`. Expose API port 9000 and console port 9001 only on `127.0.0.1`: they will be published exclusively via the reverse proxy.",{"title":60,"body":61},"Set up the TLS reverse proxy","Configure two HTTPS virtual hosts: `s3.yourdomain.com` to port 9000 and `console.yourdomain.com` to 9001. Remember to allow large uploads with `client_max_body_size 0;` (Nginx) on the API host.",{"title":63,"body":64},"Create a bucket and an application user","With the `mc` client: `mc alias set local https:\u002F\u002Fs3.yourdomain.com ...`, then `mc mb local\u002Fmon-bucket` and create a dedicated user with a `readwrite` policy limited to that bucket rather than using the root account.",{"title":66,"body":67},"Enable versioning and encryption","Enable versioning (`mc version enable`) to protect against accidental deletions and configure server-side encryption (SSE) on sensitive buckets.",{"type":69,"body":70},"tip","Use the bucket replication feature (`mc replicate`) between your MinIO and a second remote VPS: you get a near real-time copy of your objects in another location, which constitutes a robust disaster-recovery strategy without depending on a third-party cloud. Combine it with lifecycle rules to automatically expire old versions and keep disk space in check.","Your S3 storage, on your VPS","With the ServOrbit Cloud VPS and its expandable SSD volumes, MinIO gives you S3-compatible object storage at a fixed cost. Docker template ready to deploy.","Start my Cloud VPS","\u002Fvps-cloud",[76,90,104],{"id":77,"slug":78,"title":79,"excerpt":80,"readTime":81,"views":82,"isPinned":13,"publishedAt":83,"category":84,"categories":85,"featuredImage":22,"bgImage":23,"posterImage":87,"relatedSolution":88},56,"heberger-postgresql-vps","PostgreSQL on a VPS: a reliable and controlled database","Host PostgreSQL on a VPS: volumes, backups, restricted network access and sound configuration for your applications.",8,2240,"2026-04-25T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},[86],{"id":11,"name":16,"slug":17,"color":18,"icon":19},"\u002Fblog\u002Fcovers\u002Fheberger-postgresql-vps-poster.svg",{"categorySlug":17,"appSlug":89},"postgresql",{"id":91,"slug":92,"title":93,"excerpt":94,"readTime":95,"views":96,"isPinned":13,"publishedAt":97,"category":98,"categories":99,"featuredImage":22,"bgImage":23,"posterImage":101,"relatedSolution":102},57,"heberger-mysql-vps","Hosting MySQL on a VPS","Host MySQL on your Cloud VPS: Docker deployment, hardening, InnoDB tuning, and automated backups, step by step.",7,509,"2026-04-24T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},[100],{"id":11,"name":16,"slug":17,"color":18,"icon":19},"\u002Fblog\u002Fcovers\u002Fheberger-mysql-vps-poster.svg",{"categorySlug":17,"appSlug":103},"mysql",{"id":105,"slug":106,"title":107,"excerpt":108,"readTime":95,"views":109,"isPinned":13,"publishedAt":110,"category":111,"categories":112,"featuredImage":22,"bgImage":23,"posterImage":114,"relatedSolution":115},58,"heberger-redis-vps","Hosting Redis on a VPS","Deploy Redis on your Cloud VPS: ultra-fast cache, sessions, and queues, with persistence, security, and memory tuning.",546,"2026-04-23T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},[113],{"id":11,"name":16,"slug":17,"color":18,"icon":19},"\u002Fblog\u002Fcovers\u002Fheberger-redis-vps-poster.svg",{"categorySlug":17,"appSlug":116},"redis",1785628441803]