Quick start
From an empty machine to the first uploaded file in five steps. All you need is Docker.
Try it
No volume — everything disappears together with the container. Good for a look around.
docker run -d --name s5w -p 9090:9090 -p 9091:9091 \
-e ADMIN_LOGIN=admin -e ADMIN_PASSWORD=change-me \
flytachi/s5w:latestRecommended start
- Start the container with a volume
bash docker run -d --name s5w -p 9090:9090 -p 9091:9091 \ -e ADMIN_LOGIN=admin -e ADMIN_PASSWORD=change-me \ -v s5w_data:/var/lib/s5w \ --stop-timeout 45 \ --restart unless-stopped \ flytachi/s5w:latestThe
s5w_datavolume holds the database, the files and the session key.--stop-timeout 45lets the database stop cleanly instead of recovering after aSIGKILL. - Sign in to the panel
Open
http://<host>:9091/and sign in asadmin/change-me. - Create a bucket and issue a token
In the panel click New bucket, open it, and on the Tokens tab click Issue with the “full access” level (
FULL). The token is shown once — save it. - Check the token
bash curl -H "Authorization: Bearer <token>" http://<host>:9090/v1/checkThe answer shows the bucket, the token’s access level and the free space.
- Upload a file
bash curl -H "Authorization: Bearer <token>" \ -F file=@photo.jpg \ http://<host>:9090/v1/filesThe answer holds
privateUrl(download with the token) andpublicUrlif the file is public.
docker compose down -v
The -v flag deletes volumes, and with them the database and every file. A normal stop does
not need it.
A different port outside
The ports inside the container are fixed: 9090 — API and delivery, 9091 — the panel. For a
different port outside, change only the publishing:
-p 8080:9090What next
- Configuration — compose, environment variables, the volume.
- Admin panel — panel modes and access to the admin API.
- Behind a reverse proxy — two domains, no open ports.
- Client API — everything a token can do.