SeaweedFS Setup

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 the compose.yml file

Prepare the compose.yml

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

pwgen -snc 24 1

In the 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 -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-data:/data

Add two volumes under the volumes: section:

volumes:
  postgresql: {}
  seaweedfs-data: {}

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.


Create User and Bucket

SeaweedFS provides a web UI for administration.

  1. Navigate to http://localhost:23646/ in a browser
  2. Log in with the password 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 (they can be retrieved 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

Note the Configuration Values

These values are needed 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 the new object storage:

Configure Relution for Object Storage β†’

Top