S3 minIO (Optional)
1. Introduction
minIO is a scalable, object-based storage solution with high performance.
In Relution, the resource
table can grow very large (e.g., due to stored native apps).
To relieve the database, it is recommended to outsource these app files into an S3 bucket.
The minIO image
is a compact, easily configurable Docker container.
⚠️ Important: Include the minIO directory in your backup routine. Without its contents, the operation of the server and device management cannot be ensured.
2. Preparing the docker-compose.yml
Add a minIO container to your docker-compose.yml
:
services:
minio:
image: "quay.io/minio/minio:latest"
restart: always
ports:
- "9001:9001"
expose:
- 9000
environment:
- MINIO_ROOT_USER=%USERNAME%
- MINIO_ROOT_PASSWORD=%PASSWORD%
command: server --console-address ":9001" /data
networks:
relution-network:
aliases:
- minio
volumes:
- ./volumes/minio/data:/data
- Replace
MINIO_ROOT_USER
andMINIO_ROOT_PASSWORD
with your own values. - Data will be stored locally under
./volumes/minio/data
.
3. Initial minIO Setup
Start the container and open the minIO web interface: 👉 http://localhost:9001
Log in with your configured credentials.
Perform the following steps:
- Create a new bucket named
relution
.
- Create a new bucket named
4. Configure Relution
Relution must be informed that data will now be stored in the S3 bucket.
Option A: in docker-compose.yml
Add these environment variables to the relution
service:
services:
relution:
environment:
- S3_ENDPOINT=http://minio:9000
- STORAGE_TYPE=S3
- STORAGE_S3_ACCESS_KEY=%ACCESS-KEY-ID%
- STORAGE_S3_SECRET_KEY=%SECRET-KEY%
- STORAGE_S3_BUCKET_NAME=relution
- Replace
%ACCESS-KEY-ID%
and%SECRET-KEY%
with the previously set valuesMINIO_ROOT_USER=%USERNAME%
andMINIO_ROOT_PASSWORD=%PASSWORD%
.
Option B: in application.yml
Alternatively, add this configuration there:
relution:
storage:
resourceStorageType: S3
s3:
customEndpoint: http://minio:9000
accessKey: %ACCESS-KEY-ID%
secretKey: %SECRET-KEY%
bucketName: relution
- Replace
%ACCESS-KEY-ID%
and%SECRET-KEY%
with the previously set valuesMINIO_ROOT_USER=%USERNAME%
andMINIO_ROOT_PASSWORD=%PASSWORD%
.
5. Start the Containers
Pull the images:
docker compose pull
Start the containers:
docker compose up -d
- minIO will be ready within a few seconds.
- Relution will automatically start moving content from the
resource
table into the S3 bucket.
6. Monitor Progress
You can monitor the copying process with the following command:
docker logs -f docker_relution
7. Note
⚠️ This process is not reversible (as of Relution 5.31.2).