SeaweedFS Setup

Introduction

SeaweedFS is an Apache-licensed open-source object storage backend with an S3-compatible API. It offers good performance, scalability, and an easy setup process. It can be deployed via Kubernetes, Docker, or directly on Linux, FreeBSD, macOS, or Windows.

This guide explains how to deploy SeaweedFS alongside Relution using Docker Compose on Linux.

While we have thoroughly tested it, SeaweedFS is third-party software and we cannot make security or reliability guarantees for it.
For managed hosting, please contact our Sales Team.
More info: Relution Cloud →

This guide uses SeaweedFS in mini mode, which bundles all components with defaults appropriate for single-node deployments of moderate size.
For more information: SeaweedFS Wiki.

Prerequisites

  • A working Relution installation with Docker Compose
  • Access to edit your compose.yml file

Step 1: Prepare Your compose.yml

Generate a 24-character alphanumeric password using a password manager, or from the Linux command line:

pwgen -snc 24 1

In your Relution compose.yml (on older installations: docker-compose.yml), add the following service under services::

services:
  seaweedfs:
    image: chrislusf/seaweedfs:4.05 # Check for newer versions: https://github.com/seaweedfs/seaweedfs/releases
    restart: unless-stopped
    ports:
      - 23646:23646
      - 8333:8333
    entrypoint: weed
    command: "mini -dir=/data/s3 -admin.dataDir=/data/admin -admin.password=%YOUR-GENERATED-PASSWORD%"
    networks:           # Optional: for network segmentation, add `object-storage` network
      - object-storage  # here and in the `networks` block of the `relution` service
    volumes:
      - seaweedfs-s3:/data/s3
      - seaweedfs-admin:/data/admin

Add two volumes under the volumes: section:

volumes:
  postgresql: {}
  seaweedfs-s3: {}
  seaweedfs-admin: {}

⚠️ Important: Include the SeaweedFS volumes in your backup routine. Without this data, server operation and device management cannot be ensured.

Step 2: Start SeaweedFS

Pull the image and start the service:

docker compose pull
docker compose up -d seaweedfs

SeaweedFS will be ready within a few seconds.

Step 3: Create User and Bucket

SeaweedFS provides a web UI for administration.

  1. Navigate to http://localhost:23646/ in your browser
  2. Log in with the password you generated earlier
  3. In the sidebar, go to Object Store > Users
  4. Click Create User (top-right), enter relution as the username, and confirm
  5. Note down the Access Key and Secret Key shown (you can retrieve them later via the 🔑 icon under Actions)
  6. In the sidebar, go to Object Store > Buckets
  7. Click Create Bucket, enter relution as the name, select relution as the bucket owner, and confirm

Step 4: Note Your Configuration Values

You’ll need these values to configure Relution:

SettingValue
Endpointhttp://seaweedfs:8333
Access Key(from Step 3)
Secret Key(from Step 3)
Bucket Namerelution

Next Steps

Now configure Relution to use your new object storage:

Configure Relution for Object Storage →