App · s5w

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.

bash
docker run -d --name s5w -p 9090:9090 -p 9091:9091 \
  -e ADMIN_LOGIN=admin -e ADMIN_PASSWORD=change-me \
  flytachi/s5w:latest
  1. 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:latest

    The s5w_data volume holds the database, the files and the session key. --stop-timeout 45 lets the database stop cleanly instead of recovering after a SIGKILL.

  2. Sign in to the panel

    Open http://<host>:9091/ and sign in as admin / change-me.

  3. 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.

  4. Check the token
    bash
    curl -H "Authorization: Bearer <token>" http://<host>:9090/v1/check

    The answer shows the bucket, the token’s access level and the free space.

  5. Upload a file
    bash
    curl -H "Authorization: Bearer <token>" \
      -F file=@photo.jpg \
      http://<host>:9090/v1/files

    The answer holds privateUrl (download with the token) and publicUrl if 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:

bash
-p 8080:9090

What next