side menu

SeaweedFS

In this article, we’ll see how to install SeaweedFS as an S3 object storage solution for BRIX. The article covers installing SeaweedFS in a single-node, single-disk (SNSD) configuration. This configuration does not provide additional reliability or availability beyond that provided by the basic storage volume (RAID, LVM, ZFS, etc.).

 

Before installation, please review the following information:

 

 

The installation consists of several steps:

 

  1. Install Docker and Docker Compose.
  2. Install SeaweedFS.
  3. Install the MC Client.
  4. Start the SeaweedFS service.
  5. Configure a connection to SeaweedFS.
  6. Create a bucket.
  7. Connect to SeaweedFS.

 

Step 1: Install Docker and Docker Compose

 

To install SeaweedFS, you will need the following tools:

 

  • Docker. Install according to the instructions for your operating system on the official website.
  • Docker Compose. Install according to the instructions for your operating system on the official website.

 

Step 2: Install SeaweedFS

 

  1. Create a directory to mount the disk:

mkdir -p /opt/seaweedfs/data/

  1. Create a docker-compose.yml file:

version: "3.9"
services:
 seaweedfs:
   image: chrislusf/seaweedfs:4.06
   command: >
       server
       -ip.bind=0.0.0.0
       -s3
       -s3.config=/etc/seaweedfs/s3.json
       -s3.port=8333
   ports:
     - "8333:8333"
   volumes:
     - /opt/seaweedfs/data/:/data
     - /opt/seaweedfs/s3.json:/etc/seaweedfs/s3.json:ro
   restart: unless-stopped
   healthcheck:
     test: ["CMD", "curl", "-f", "http://localhost:9333/cluster/status"]
     interval: 30s
     timeout: 10s
     retries: 3

  1. Create the /opt/seaweedfs/s3.json file:

{
 "identities": [
   {
     "name": "admin",
     "credentials": [
       {
         "accessKey": "elma365user",
         "secretKey": "SecretPassword"
       }
     ],
     "actions": ["Admin", "Read", "Write"]
   }
 ]
}

 

Configuring TLS/SSL in SeaweedFS

 

Step 3: Install the MC Client

 

Download the latest stable SeaweedFS Client binary and install it on your system:

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

 

Step 4: Start the SeaweedFS service

 

Run the manifest:

docker-compose -f docker-compose.yml up -d

 

Step 5: Configure a connection to SeaweedFS

 

Create an alias for SeaweedFS:

/usr/local/bin/mc alias set seaweedfs http://SeaweedFS.your_domain:8333 elma365user SecretPassword

 

Step 6: Create a bucket

 

Important: Bucket names in S3 must follow the format s3elma365*. In the example of this article, the bucket name is s3elma365, the user is elma365user, and the password is SecretPassword. When setting this up, configure this information according to your organization's security policy.

 

Examples of bucket names: s3elma365; s3elma365-dev; s3elma365-prod.

 

For BRIX operation create a bucket named s3elma365 using the command:

/usr/local/bin/mc mb -p seaweedfs/s3elma365 --region=eu-central-1

 

Step 7: Connect to SeaweedFS

 

Parameters for connecting to SeaweedFS:

  • address: seaweedfs.your_domain:8333.
  • bucket: s3elma365.
  • region: eu-central-1.
  • access key ID: elma365user.
  • secret access key: SecretPassword.
  • upload method: PUT.
  • enable SSL: No.

 

If SeaweedFS is waiting for a TLS/SSL connection, set the enable SSL parameter to Yes.