fbpx

Before reading this document you must read:

  1. Setup MINIO Block Storage Server.
  2. Configure MINIO Node.

By the time you read this document, I assume that you have already setup MINIO Block Storage Server and Configured it in Cloud Platform.


Step 1: Create Backup Plan

Backup plans are starting point for your backups to MINIO Block Storge Server. Backup plan define following things:

  1. Frequency: How often this backup should run (Daily | Weekly)
  2. Retention Days: How many days a backup should be kept.
  3. Domain: Websites on your CyberPanel that should be included in this backup plan.

To create backup plan visit:

https://platform.cyberpanel.net/s3/<Server Name>/manage/createBackupPlancreateBackupPlanMINIO

Replace server name with name of your server in Cloud Platform. Configure your plan and click Create Plan. Now depending upon your backup frequency backups will be scheduled to send to MINIO Object Storage Server. You can also force run backup at any point in time.


Force Run Backups

Backups are usually scheduled to run daily or weekly, but you can force run them at any point in time. To force run a backup visit:

https://platform.cyberpanel.net/s3/<Server Name>/manage/listBackupPlansMINIO

From there you can force backup to run at current point in time.


Backup Logs

Backup job runs in background, for any backup plan you can view logs at:

https://platform.cyberpanel.net/s3/<Server Name>/plansMINIO/<Plan Name>

Replace Server and Plan name with Server and Backup plan name respectively.

MINIO Node can be configured from Cloud Platform. Register your self on cloud platform if you haven’t already, once registered you need to connect your server from here (Make sure you are on version 1.7.5 or above, you can visit upgrade instructions)


Add MINIO Node

Once your server is connected to Cloud Platform, you need to add at least one MINIO node. Go go https://platform.cyberpanel.net/s3/"Server Name"/minioBackups.  To add servers 3 parameters are required. (Replace Server Name with name of your server within Cloud Platform)

You can get all these parameters by reading Setup MINIO Block Storage Server.

 

If added successfully it should appear in the Current Servers table.

Next: Configure Backups

 

MINIO is an opensource object storage server with AWS S3 compatible APIs. We've already implemented AWS S3 and DigitalOcean Spaces Backups. With MINIO you can self host a block storage server for automated backups.


Create MINIO Configuration File

This guide works on Centos 7.x and Ubuntu 18.xx. We need to create Systemd service for minio so that it can run in background.

First create new file at /etc/default/minio and paste following in it:

# Volume to be used for Minio server.
MINIO_VOLUMES="/tmp/minio/"
# Use if you want to run Minio on a custom port.
MINIO_OPTS="--address :9000"
# Access Key of the server.
MINIO_ACCESS_KEY=Server-Access-Key
# Secret key of the server.
MINIO_SECRET_KEY=Server-Secret-Key

Create Systemd service for MINIO

Download MINIO binary and make it executable.

wget https://dl.minio.io/server/minio/release/linux-amd64/minio
cp minio /usr/local/bin/
chmod +x /usr/local/bin/minio

 

Create new file at /etc/systemd/system/minio.service and paste:

[Unit]
Description=Minio
Documentation=https://docs.minio.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local/

User=minio-user
Group=minio-user

EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"

ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

# Built for ${project.name}-${project.version} (${project.name})

 

Replace User=minio-user and Group=minio-user as required. (Make sure that this user have write access to your volume path)

Generate SSL for MINIO:

openssl req -newkey rsa:1024 -new -nodes -x509 -days 3650 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout ~/.minio/certs/private.key -out ~/.minio/certs/public.crt

Enable and start MINIO:

systemctl enale minio.service
systemctl start minio

Now you should be able to access MINIO at https:// IP Address :9000/. You can login using your MINIO_ACCESS_KEY and MINIO_SECRET_KEY that you set above in configuration file.

Next: Configure MINIO Node

chevron-down