From source to your server

A familiar way to get started.

These steps install the Sprutio file manager from its current source checkout. You need a Linux server, Docker Engine, the Compose plugin and administrator access.

01 / Prepare the server.

Choose your operating system and its version to install Docker Engine and the Compose plugin. Obtain the current Sprutio source from your project maintainer, then open its root directory. Docker Desktop does not provide access to macOS or Windows system accounts.

Choose your operating system

Choose your operating system, then its version to see the installation commands.

Ubuntu

amd64 / arm64

Choose a version

Ubuntu 26.10 · Stonking

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'ubuntu' ] && [ "$sprutio_os_version" = '26.10' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(dpkg --print-architecture)" in
  amd64|arm64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
cat > /etc/apt/sources.list.d/docker.sources <<DOCKER_REPOSITORY
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: stonking
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
DOCKER_REPOSITORY
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

Ubuntu 26.04 LTS · Resolute

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'ubuntu' ] && [ "$sprutio_os_version" = '26.04' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(dpkg --print-architecture)" in
  amd64|arm64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
cat > /etc/apt/sources.list.d/docker.sources <<DOCKER_REPOSITORY
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: resolute
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
DOCKER_REPOSITORY
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

Ubuntu 24.04 LTS · Noble

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'ubuntu' ] && [ "$sprutio_os_version" = '24.04' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(dpkg --print-architecture)" in
  amd64|arm64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
cat > /etc/apt/sources.list.d/docker.sources <<DOCKER_REPOSITORY
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: noble
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
DOCKER_REPOSITORY
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

Ubuntu 22.04 LTS · Jammy

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'ubuntu' ] && [ "$sprutio_os_version" = '22.04' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(dpkg --print-architecture)" in
  amd64|arm64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
cat > /etc/apt/sources.list.d/docker.sources <<DOCKER_REPOSITORY
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: jammy
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
DOCKER_REPOSITORY
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

CentOS

amd64 / arm64

Choose a version

CentOS Stream 10

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'centos' ] && [ "${sprutio_os_version%%.*}" = '10' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(uname -m)" in
  x86_64|aarch64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

dnf install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

CentOS Stream 9

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'centos' ] && [ "${sprutio_os_version%%.*}" = '9' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(uname -m)" in
  x86_64|aarch64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

dnf install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

Debian

amd64 / arm64

Choose a version

Debian 13 · Trixie

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'debian' ] && [ "$sprutio_os_version" = '13' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(dpkg --print-architecture)" in
  amd64|arm64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
cat > /etc/apt/sources.list.d/docker.sources <<DOCKER_REPOSITORY
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: trixie
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
DOCKER_REPOSITORY
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

Debian 12 · Bookworm

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'debian' ] && [ "$sprutio_os_version" = '12' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(dpkg --print-architecture)" in
  amd64|arm64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
cat > /etc/apt/sources.list.d/docker.sources <<DOCKER_REPOSITORY
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: bookworm
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
DOCKER_REPOSITORY
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

Raspberry Pi OS

arm64

Use the 64-bit edition of Raspberry Pi OS. These commands use the official Docker repository for Debian arm64; the 32-bit edition is not covered.

Choose a version

Raspberry Pi OS Trixie · arm64

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'debian' ] && [ "$sprutio_os_version" = '13' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(dpkg --print-architecture)" in
  arm64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
cat > /etc/apt/sources.list.d/docker.sources <<DOCKER_REPOSITORY
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: trixie
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
DOCKER_REPOSITORY
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

Raspberry Pi OS Bookworm · arm64

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'debian' ] && [ "$sprutio_os_version" = '12' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(dpkg --print-architecture)" in
  arm64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
cat > /etc/apt/sources.list.d/docker.sources <<DOCKER_REPOSITORY
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: bookworm
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
DOCKER_REPOSITORY
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

Fedora

amd64 / arm64

Choose a version

Fedora 44

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'fedora' ] && [ "$sprutio_os_version" = '44' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(uname -m)" in
  x86_64|aarch64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

dnf install dnf5-plugins
dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

Fedora 43

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'fedora' ] && [ "$sprutio_os_version" = '43' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(uname -m)" in
  x86_64|aarch64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

dnf install dnf5-plugins
dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

RHEL

amd64 / arm64

Use a registered RHEL system with access to its standard package repositories.

Choose a version

RHEL 10

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'rhel' ] && [ "${sprutio_os_version%%.*}" = '10' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(uname -m)" in
  x86_64|aarch64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

dnf install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

RHEL 9

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'rhel' ] && [ "${sprutio_os_version%%.*}" = '9' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(uname -m)" in
  x86_64|aarch64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

dnf install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

RHEL 8

Run these commands as root on a server with no existing container engine. They install Docker Engine, Buildx and the Docker Compose plugin, start Docker and check the installed versions.

(
set -eu
[ "$(id -u)" = 0 ] || { printf '%s\n' 'Run these commands as root.' >&2; exit 1; }
. /etc/os-release
sprutio_os_version=${VERSION_ID:-}
[ "${ID:-}" = 'rhel' ] && [ "${sprutio_os_version%%.*}" = '8' ] || {
  printf '%s\n' 'OS/version does not match the selected instructions.' >&2
  exit 1
}
case "$(uname -m)" in
  x86_64|aarch64) ;;
  *) printf '%s\n' 'Unsupported architecture for these instructions.' >&2; exit 1 ;;
esac

dnf install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker
docker version
docker compose version
)

If Docker, containerd or Podman is already installed, follow the official migration instructions before continuing.

Official Docker instructions

02 / Build and start.

Run these commands as root from the Sprutio source directory containing compose.yaml. The application builds from source and starts as the app service.

docker compose build
docker compose up -d

03 / Check the application.

Check the service state and recent logs. The default endpoint is http://SERVER_IP:8080. Restrict access to a trusted network or use a protected access path before entering credentials.

docker compose ps
docker compose logs --tail=100 app

04 / Sign in with a Linux account.

Use the username and password of an account on the Linux host. The account must have a password and an enabled shell; locked accounts and empty passwords are rejected. Root login gives root privileges. Host files are mounted at /host and operations use the authenticated user’s permissions.

Plan protected remote access.

The default application endpoint uses plain HTTP. Passwords and sessions need a protected network path. Use a trusted network or an SSH tunnel; for a public deployment, configure and verify HTTPS in front of the application. HTTPS on this website does not configure HTTPS for your file manager.

Keep your settings across restarts.

The app_data volume stores user preferences and saved connections. Back it up together with your configuration; host files need their own backup. Stop and start the service with the commands below. To update, obtain a reviewed source revision, rebuild and start again. Avoid removing the data volume unless you intend to erase its contents.

docker compose stop
docker compose start