Skip to content
Live $100 credit at signup, up to $300 total Offer ends December 31, 2026 Get started →

SeaweedFS

SeaweedFS is an open-source distributed file and object storage system built for billions of files and fast access. A single weed binary runs the master, volume, filer, and S3 components, and the S3 gateway exposes an S3-compatible API for application workloads.

ComponentVersion
SeaweedFS4.39
Ubuntu24.04 LTS
ssh ubuntu@<your-vm-ip>

On the first boot, a setup script generates the S3-compatible API credentials and starts the all-in-one weed mini service. Track progress:

sudo journalctl -u seaweedfs-first-boot.service -f

The login message (MOTD) confirms when SeaweedFS is ready. You can also verify the service directly:

systemctl status seaweedfs

3. Retrieve the S3-compatible API credentials

Section titled “3. Retrieve the S3-compatible API credentials”

The generated credentials and endpoints are stored in a root-only file:

sudo cat /etc/seaweedfs/credentials.txt
FieldValue
Access keyGenerated securely on first boot
Secret keyGenerated securely on first boot

The image starts these endpoints:

ComponentEndpoint
S3-compatible APIhttp://<your-vm-ip>:8333
Filer UIhttp://<your-vm-ip>:8888
Master UIhttp://<your-vm-ip>:9333
Volumehttp://<your-vm-ip>:9340
WebDAVhttp://<your-vm-ip>:7333
Admin UIhttp://<your-vm-ip>:23646
# Check service status
systemctl status seaweedfs
# Restart
sudo systemctl restart seaweedfs
# View logs
sudo journalctl -u seaweedfs -f
PathPurpose
/etc/seaweedfs/seaweedfs.envS3-compatible API credentials
/var/lib/seaweedfs/Persistent SeaweedFS data
/etc/seaweedfs/credentials.txtGenerated credentials and endpoints

SeaweedFS uses ports 8333, 8888, 9333, 9340, 7333, and 23646 for its S3, filer, master, volume, WebDAV, and admin endpoints. UFW is enabled and allows SSH (port 22) only by default. All SeaweedFS ports remain blocked until you allow trusted sources.

To allow the S3-compatible API and Filer UI from a specific IP:

sudo ufw allow from <trusted-ip> to any port 8333
sudo ufw allow from <trusted-ip> to any port 8888

To access those endpoints without opening the firewall, use an SSH tunnel:

# Run this on your local machine
ssh -L 8333:localhost:8333 -L 8888:localhost:8888 ubuntu@<your-vm-ip>
# Then use these local endpoints
http://localhost:8333
http://localhost:8888

For production use, keep SeaweedFS on a private network or place the required HTTP endpoints behind a reverse proxy so you can serve them over HTTPS with a trusted TLS certificate.

Last updated: