SeaweedFS
Distributed file store with S3, WebDAV and filer interfaces.
- Replaces
-
Paid object storage services, such as Amazon S3.
All open-source alternatives to Amazon S3
- Difficulty
-
Difficulty: Medium
6 services, 1 volume mount, no env values to set, no elevated host access. Heuristic score 3 of 11: medium.
- Stack
Go (language)
- Deployment
docker_compose
- Requirements
Not stated.
- License
-
Apache-2.0(OSI-approved open source)Read from github.com/seaweedfs/seaweedfs/blob/82f0a82/LICENSE
- Business model
-
Unknown
The README at the pinned commit does not state a business model, so it stays unknown.
Source: github.com/seaweedfs/seaweedfs/blob/82f0a82/README.md, read on .
- Repository
GitHub stats
- Stars
- 35,668
- Forks
- 3,085
- Open issues and pull requests
- 729
- Last push
- 2026-10-22
- Latest release
- 4.48
- Released
- 2026-09-28
From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as Apache-2.0.
Compose file
version: '3.9'
services:
master:
image: chrislusf/seaweedfs # use a remote image
ports:
- 9333:9333
- 19333:19333
- 9324:9324
command: 'master -ip=master -ip.bind=0.0.0.0 -metricsPort=9324'
volume:
image: chrislusf/seaweedfs # use a remote image
ports:
- 8080:8080
- 18080:18080
- 9325:9325
command: 'volume -ip=volume -master="master:9333" -ip.bind=0.0.0.0 -port=8080 -metricsPort=9325'
depends_on:
- master
filer:
image: chrislusf/seaweedfs # use a remote image
ports:
- 8888:8888
- 18888:18888
- 9326:9326
command: 'filer -ip=filer -master="master:9333" -ip.bind=0.0.0.0 -metricsPort=9326'
tty: true
stdin_open: true
depends_on:
- master
- volume
s3:
image: chrislusf/seaweedfs # use a remote image
ports:
- 8333:8333
- 9327:9327
command: 's3 -filer="filer:8888" -ip.bind=0.0.0.0 -metricsPort=9327'
depends_on:
- master
- volume
- filer
webdav:
image: chrislusf/seaweedfs # use a remote image
ports:
- 7333:7333
command: 'webdav -filer="filer:8888"'
depends_on:
- master
- volume
- filer
prometheus:
image: prom/prometheus:v2.21.0
ports:
- 9000:9090
volumes:
- ./prometheus:/etc/prometheus
command: '--web.enable-lifecycle --config.file=/etc/prometheus/prometheus.yml'
depends_on:
- s3
From the app's own repository: github.com/seaweedfs/seaweedfs/blob/82f0a82/docker/seaweedfs-compose.yml.
Compose file from the app repository.
Install
- Docker with the Compose plugin (github.com/seaweedfs/seaweedfs/blob/82f0a82/docker/seaweedfs-compose.yml)
A host with Docker and the Docker Compose plugin. This entry runs from a compose file.
- Save the compose file as compose.yaml (github.com/seaweedfs/seaweedfs/blob/82f0a82/docker/seaweedfs-compose.yml)
Use the compose file shown above.
- Start it (github.com/seaweedfs/seaweedfs/blob/82f0a82/docker/seaweedfs-compose.yml)
docker compose up -d - Open the app (github.com/seaweedfs/seaweedfs/blob/82f0a82/docker/seaweedfs-compose.yml)
Open http://localhost:8888. The compose file publishes host port 8888 for the filer service.
Compose file check: config_ok on 2026-10-22.
Gotchas and maintenance
Gotchas
- Some images use the latest tag or no tag. Images without a pinned version: master: chrislusf/seaweedfs (no tag), volume: chrislusf/seaweedfs (no tag), filer: chrislusf/seaweedfs (no tag), s3: chrislusf/seaweedfs (no tag), webdav: chrislusf/seaweedfs (no tag). A later pull can get a different version. (github.com/seaweedfs/seaweedfs/blob/82f0a82/docker/seaweedfs-compose.yml, checked 2026-10-22)
- The compose file publishes host ports. Host ports: 9333 (master), 19333 (master), 9324 (master), 8080 (volume), 18080 (volume), 9325 (volume), 8888 (filer), 18888 (filer) and 5 more. A port without a host address listens on all host network interfaces. (github.com/seaweedfs/seaweedfs/blob/82f0a82/docker/seaweedfs-compose.yml, checked 2026-10-22)
- The compose file mounts host folders. Host paths mounted into containers: ./prometheus at /etc/prometheus (prometheus). (github.com/seaweedfs/seaweedfs/blob/82f0a82/docker/seaweedfs-compose.yml, checked 2026-10-22)
Signals
- Open issues and pull requests: 729
- Last push: 2026-10-22 (0 days before this page was built)
- Latest release: 4.48 on 2026-09-28 (23 days before this page was built)