SeaweedFS

SeaweedFS

Docker app from junkerderprovinz's Repository

Overview

SeaweedFS is a fast, S3-API-compatible object store - a genuinely maintained, actively developed alternative now that MinIO's open-source Community Edition has been archived (Apr 2026) and its Docker images stopped receiving security updates in Sep 2025. This is a plug-and-play Unraid Community Applications template wrapping the OFFICIAL chrislusf/seaweedfs image. Runs the "mini" single-process mode by default: master, volume, filer, S3 API and admin UI all in one container, all data under one persistent /data mount. This is SeaweedFS's own documented single-node setup, not a cut-down mode - the same binary scales out to a real cluster later by adding volume servers elsewhere if you ever need that. S3 CLIENTS (rclone, mc, aws-cli, restic, most S3 SDKs) point at http://SERVER_IP:8333 with the access key / secret key set below - no other setup needed, a bucket is pre-created if you set one. SECURITY: leaving the Access Key / Secret Key EMPTY starts S3 in unauthenticated "Allow All" mode - fine for a quick local test, not for anything holding real data. Set both before pointing anything real at this. File ownership inside /data is handled automatically by the image's own entrypoint (fixed internal user, chowned on start) - there is no PUID/PGID to set.
SeaweedFS

Validate  Upstream SeaweedFS  Image  Unraid  License

A plug-and-play Unraid Community Applications template for SeaweedFS - a fast, S3-API-compatible object store, actively maintained (weekly releases), wrapping the official chrislusf/seaweedfs image.

Maintained solo, in whatever spare time there is. Questions via the support thread, bugs, ideas and feature requests via GitHub issues. If it's useful to you, a coffee is always welcome.

Buy me a coffee   PayPal   Donate with crypto


Table of Contents

  1. Why this instead of MinIO?
  2. What is this?
  3. Quick Start on Unraid
  4. Connecting a client
  5. Coming from MinIO
  6. Configuration
  7. Backup
  8. How AI is used here
  9. Support this project

1. Why this instead of MinIO?

MinIO's open-source Community Edition is done: the minio/minio repo was archived in April 2026, its last Docker Hub image (September 2025) has a known unpatched high-severity CVE, and the last source release ever cut (October 2025, source-only, never packaged as an image) was the final one. MinIO now pushes AIStor instead - a free tier exists, but it is closed-source, not a continuation of the open MinIO you used to run.

SeaweedFS is a genuine, actively-developed alternative: Apache-2.0, near-weekly releases, an official multi-arch image actually being maintained, and a documented single-node S3 mode that isn't a cut-down fallback - it's the same binary a real cluster uses, just running every role in one process.

2. What is this?

SeaweedFS's own "mini" mode runs master, volume server, filer, S3 API and admin UI together in a single process, all data under one directory. This template wraps the official image running exactly that mode, with the data directory mapped to Unraid appdata so it survives recreation and updates - nothing more added, nothing hidden.

File ownership inside the data volume is fixed automatically by the image's own entrypoint (a built-in seaweed user, chowned on start) - there's no PUID/PGID to configure.

3. Quick Start on Unraid

  1. Install from Community Applications, or add this template's URL directly: https://raw.githubusercontent.com/junkerderprovinz/unraid-apps/main/seaweedfs/seaweedfs.xml
  2. Set Access Key and Secret Key (see Security note below) - anything reasonably random works, e.g. generate a secret with openssl rand -hex 24.
  3. Optionally set Pre-create Bucket to a name (or comma-separated names) you want to exist immediately.
  4. Start the container. The S3 endpoint is http://SERVER_IP:8333; the admin UI (bucket/volume/topology browser) is at http://SERVER_IP:23646.

Security: leaving both keys empty starts the S3 API in unauthenticated "Allow All" mode. That's fine for a five-minute local test, not for anything you actually care about - set both before storing real data, and don't expose port 8333 to the internet without a reverse proxy and TLS in front of it.

4. Connecting a client

Any S3-compatible tool works. A few common ones:

rclone (rclone config, or a config file entry):

[seaweedfs]
type = s3
provider = Other
access_key_id = YOUR_ACCESS_KEY
secret_access_key = YOUR_SECRET_KEY
endpoint = http://SERVER_IP:8333

MinIO Client (mc) - yes, the CLI tool still works fine against SeaweedFS:

mc alias set seaweedfs http://SERVER_IP:8333 YOUR_ACCESS_KEY YOUR_SECRET_KEY
mc mb seaweedfs/my-bucket
mc cp somefile.txt seaweedfs/my-bucket/

restic (repository URL):

export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY
export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY
restic -r s3:http://SERVER_IP:8333/my-restic-repo init

5. Coming from MinIO

There is no automatic import - copy your data across with any S3-to-S3 tool. rclone is the simplest:

rclone config   # add both the old MinIO and this SeaweedFS instance as remotes
rclone sync minio-remote:my-bucket seaweedfs-remote:my-bucket --progress

mc mirror works the same way if you'd rather stay in the MinIO Client tool (it talks to any S3-compatible endpoint, including SeaweedFS, on both sides).

Point whatever was using the old endpoint (backup tools, apps, scripts) at the new http://SERVER_IP:8333 and the new Access/Secret Key once the copy is verified.

6. Configuration

Setting Container Variable Default Notes
S3 API Port (port) 8333 The functional endpoint every client connects to.
Admin UI Port (port) 23646 Browser UI: buckets, volume/cluster status.
Master UI Port (port) 9333 Advanced. Master node status page.
Filer UI Port (port) 8888 Advanced. Browsable file listing (filer view, not S3 buckets).
Data (path) /mnt/user/appdata/seaweedfs/data Everything lives here - volumes, filer metadata, admin config. Must be mapped.
Access Key AWS_ACCESS_KEY_ID (empty) S3 access key. Empty + empty secret = unauthenticated mode.
Secret Key AWS_SECRET_ACCESS_KEY (empty) S3 secret key.
Pre-create Bucket S3_BUCKET (empty) Comma-separated bucket name(s) to create on first start.

7. Backup

Everything lives under the single Data mount (/mnt/user/appdata/seaweedfs/data by default) - back that up the same way you back up any other appdata folder (e.g. with a container-aware backup tool). There's no separate database or config store to remember.

8. How AI is used here

One knight builds this, and AI is one of the tools I work with, the same way I work with an editor or a compiler. It helps me write code and documentation and it checks my work, and that saves me a good many evenings. It does not make the decisions, though. I read and understand everything before it ships, and if something here breaks, that is on me and not on the tool.

You do not have to take my word for it. The code is open and every release note is written by hand. The issue tracker shows how problems actually get handled, including the ones I got wrong the first time. If you find something that is not right, open an issue and I will look at it.


9. Support this project

Questions? Check the support thread. Bugs, ideas or feature requests? Please open a GitHub issue.

This is a one-person project. I put a lot of time and effort into building and maintaining it, in whatever free time I have. If it's helped you, I'd genuinely appreciate the support: you're welcome to buy me a coffee.

Buy me a coffee   PayPal   Donate with crypto

Install SeaweedFS on Unraid in a few clicks.

Find SeaweedFS in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for SeaweedFS Review the template variables and paths Click Install

Requirements

Set an Access Key + Secret Key below before storing anything real - without them the S3 API runs unauthenticated. See the README for client setup (rclone, mc, restic, ...) and how to move from MinIO.

Download Statistics

23,524,788
Total Downloads

Related apps

Details

Repository
chrislusf/seaweedfs:latest
Last Updated2026-09-11
First Seen2026-08-13

Runtime arguments

Web UI
http://[IP]:[PORT:23646]
Network
bridge
Shell
sh
Privileged
false

Template configuration

S3 API PortPorttcp

The S3-compatible endpoint every client (rclone, mc, aws-cli, restic, ...) connects to. This is the port that matters functionally.

Target
8333
Default
8333
Value
8333
Admin UI PortPorttcp

Browser-based cluster admin UI (buckets, volumes, topology). This is what WebUI opens.

Target
23646
Default
23646
Value
23646
Master UI PortPorttcp

Master node status page (volume/cluster health). Optional to expose, useful for monitoring.

Target
9333
Default
9333
Value
9333
Filer UI PortPorttcp

Browsable file-listing UI over the same data, in filer terms rather than S3 buckets. Optional.

Target
8888
Default
8888
Value
8888
DataPathrw

Where every volume, filer metadata and admin config lives - this MUST be mapped or everything is lost on recreate. The image's entrypoint fixes ownership automatically on start (no PUID/PGID needed).

Target
/data
Default
/mnt/user/appdata/seaweedfs/data
Value
/mnt/user/appdata/seaweedfs/data
Access KeyVariable

S3 access key. Leave BOTH this and Secret Key empty only for a throwaway local test - S3 then runs unauthenticated ('Allow All'). Set both before storing real data.

Target
AWS_ACCESS_KEY_ID
Secret KeyVariable

S3 secret key, paired with Access Key above. Use a real generated secret (e.g. openssl rand -hex 24), not a short password - this is what protects your data over the network.

Target
AWS_SECRET_ACCESS_KEY
Pre-create BucketVariable

Optional. Name of a bucket to create automatically on first start (comma-separated for more than one, e.g. backups,media). Leave empty to create buckets yourself later via any S3 client.

Target
S3_BUCKET