QUAPE Website

How to Setup MinIO for CDN Storage on Ubuntu 24.04

Setup MinIO CDN Storage Ubuntu 24.04

Setup MinIO CDN storage Ubuntu 24.04 to create high-performance object storage for your content delivery needs. MinIO provides S3-compatible storage for images, videos, and static files that works seamlessly with CDN providers like Cloudflare, BunnyCDN, or KeyCDN.

This guide covers complete MinIO installation on Ubuntu 24.04, from server preparation to bucket creation and CDN integration. MinIO serves as your origin storage while CDN providers cache and distribute content globally, reducing latency and bandwidth costs. The setup works perfectly for websites, e-commerce platforms, streaming services, and any application requiring fast, reliable content delivery.

Your server needs Ubuntu 24.04 LTS with minimum 4GB RAM, 4 CPU cores, and 100GB storage. Choose VPS with NVMe SSD for best performance. Good network bandwidth is essential since MinIO will serve content to CDN providers and handle upload operations.

Preparing Your Server

Update system packages and create dedicated user for MinIO.

sudo apt update && sudo apt upgrade -y
sudo useradd -r -s /sbin/nologin miniocdn

Installing MinIO

Download and install MinIO server binary.

wget https://dl.min.io/server/minio/release/linux-amd64/minio
sudo mv minio /usr/local/bin/
sudo chmod +x /usr/local/bin/minio
minio --version

Configure Storage

Create storage directory and set permissions.

sudo mkdir -p /data/miniocdn
sudo chown -R miniocdn:miniocdn /data/miniocdn

Create configuration file.

sudo nano /etc/default/miniocdn

Add this configuration.

MINIO_ROOT_USER="cdnadmin"
MINIO_ROOT_PASSWORD="SecureCDNPass"
MINIO_VOLUMES="/data/miniocdn"
MINIO_OPTS="--console-address :9001 --address :9000"

Replace credentials with your own strong password.

Create SystemD Service

Create service file.

sudo nano /etc/systemd/system/miniocdn.service

Add service configuration.

[Unit]
Description=MinIO CDN Storage Server
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local/
User=miniocdn
Group=miniocdn
EnvironmentFile=/etc/default/miniocdn
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
LimitNOFILE=65536
TasksMax=infinity
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

Start MinIO service.

sudo systemctl daemon-reload
sudo systemctl enable miniocdn
sudo systemctl start miniocdn
sudo systemctl status miniocdn

Configure Firewall

Allow MinIO ports through firewall.

sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 9000/tcp comment 'MinIO API'
sudo ufw allow 9001/tcp comment 'MinIO Console'
sudo ufw enable
sudo ufw status numbered

Install MinIO Client

Download and install MinIO Client for bucket management.

wget https://dl.min.io/client/mc/release/linux-amd64/mc
sudo mv mc /usr/local/bin/
sudo chmod +x /usr/local/bin/mc
mc --version

Configure client connection.

mc alias set mycdn http://localhost:9000 cdnadmin SecureCDNPass2024!
mc admin info mycdn

Create Buckets

Create buckets for organizing your CDN content.

mc mb mycdn/images
mc mb mycdn/static
mc ls mycdn

Set Public Access

Enable public read access for CDN content.

mc policy set download mycdn/images
mc policy set download mycdn/static
mc policy get mycdn/images

Upload Content

Upload files to MinIO storage.

mc cp /path/to/image.jpg mycdn/images/
mc cp /path/to/photos/*.jpg mycdn/images/
mc cp --recursive /path/to/website/assets/ mycdn/static/

Access your content via URLs.

http://your-server-ip:9000/images/image.jpg
http://your-server-ip:9000/static/style.css

CDN Integration

Integrate MinIO with popular CDN providers for global content delivery.

Cloudflare CDN  Add MinIO server IP as custom origin in Cloudflare dashboard and configure cache rules for static content.

BunnyCDN  Create pull zone with MinIO server as origin URL for automatic content distribution across their global network.

KeyCDN  Set up pull zone pointing to MinIO server for edge caching across global locations.

Amazon CloudFront  Configure MinIO as custom origin with S3-compatible settings for enterprise-grade CDN delivery.

Configure long cache expiration times for static content to maximize CDN efficiency and reduce origin requests. Most CDN providers support cache purging for updating content without waiting for TTL expiration.

Powered by QUAPE

Quape VPS delivers enterprise-grade NVMe storage and high-bandwidth connectivity perfect for MinIO CDN operations. Deploy in our strategically located data centers with expert support available 24/7.

Visit Quape VPS Hosting to explore VPS plans optimized for CDN storage workloads.

Your MinIO CDN storage is ready to serve content globally. Start with direct URLs or integrate with your preferred CDN provider for edge caching. As traffic grows, MinIO scales seamlessly without architectural changes.

Build your content infrastructure on Quape VPS for reliable, high-performance storage hosting.

Athif Quape
Latest posts by Athif Quape (see all)
Athif Quape
Latest posts by Athif Quape (see all)

Leave a Reply

Your email address will not be published. Required fields are marked *

Let's Get in Touch!

Dream big and start your journey with us. We’re all about innovation and making things happen.