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 / arm64Choose 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 instructionsUbuntu 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 instructionsUbuntu 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 instructionsUbuntu 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 instructionsCentOS
amd64 / arm64Choose 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 instructionsCentOS 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 instructionsDebian
amd64 / arm64Choose 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 instructionsDebian 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 instructionsRaspberry Pi OS
arm64Use 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 instructionsRaspberry 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 instructionsFedora
amd64 / arm64Choose 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 instructionsFedora 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 instructionsRHEL
amd64 / arm64Use 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 instructionsRHEL 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 instructionsRHEL 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 instructions02 / 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 -d03 / 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 app04 / 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
