Linux
Install Docker Engine and Docker Compose on a 64-bit Linux host, then start Vyline.
Prerequisites
Vyline publishes container images for linux/amd64 and linux/arm64. Once Docker Engine and Compose v2 work, the Vyline startup procedure is the same across distributions.
uname -m
docker version
docker compose version
Installing Docker
| Environment | Docker source | Service manager |
|---|---|---|
| Debian / Ubuntu | Official Docker APT repository | systemd |
| Fedora / RHEL / CentOS family | Official Docker RPM repository | systemd |
| Arch Linux | Distribution packages | systemd |
| openSUSE | Distribution packages | systemd |
| Alpine Linux | apk packages | OpenRC |
| NAS / appliance | Use the product's container feature | Product-specific |
The following sections install Docker Engine, Buildx, and Compose v2 for each environment. If Docker is already in production on the host, do not remove its existing data-root or packages; first inspect docker version and docker compose version.
Start Vyline
docker version
docker compose version
docker run --rm hello-world
mkdir -p ~/vyline && cd ~/vyline
curl -LO https://raw.githubusercontent.com/tqmane/vyline/main/docker-compose.yml
docker compose pull
docker compose up -d
Debian / Ubuntu
Register Docker CE's APT repository. Ubuntu and Debian use slightly different repository paths and codenames, so determine them from /etc/os-release.
. /etc/os-release
case "$ID" in
ubuntu) DOCKER_DISTRO=ubuntu; DOCKER_SUITE="${UBUNTU_CODENAME:-$VERSION_CODENAME}" ;;
debian) DOCKER_DISTRO=debian; DOCKER_SUITE="$VERSION_CODENAME" ;;
*) echo "This procedure supports Ubuntu/Debian: $ID"; exit 1 ;;
esac
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL "https://download.docker.com/linux/$DOCKER_DISTRO/gpg" \
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
printf 'Types: deb\nURIs: https://download.docker.com/linux/%s\nSuites: %s\nComponents: stable\nArchitectures: %s\nSigned-By: /etc/apt/keyrings/docker.asc\n' \
"$DOCKER_DISTRO" "$DOCKER_SUITE" "$(dpkg --print-architecture)" \
| sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose versionUbuntu/Debian derivatives can use different codenames or repository compatibility rules. If the distribution does not match the ID cases above, do not force an Ubuntu/Debian repository onto it; use that distribution's own Docker packaging guidance.
Fedora / RHEL / CentOS Stream / Rocky / Alma
Fedora
Docker's current Fedora repository can be registered with dnf config-manager addrepo --from-repofile.
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose version
RHEL
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose version
CentOS Stream
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose version
Rocky Linux / AlmaLinux
These are separate distributions from RHEL itself, which Docker validates directly. Check the distribution/vendor container policy first. If you choose Docker CE, use the repository compatible with the corresponding RHEL-compatible release and verify an actual container after installation.
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose versionDo not disable SELinux as part of the installation. If denials occur, inspect audit logs and volume labels only for the affected operation.
Arch Linux family
sudo pacman -Syu docker docker-compose
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose versionArch's rolling updates can change the kernel, containerd, and runc together. After major upgrades, check systemctl status docker, docker info, and Vyline health.
openSUSE
sudo zypper install docker docker-compose
sudo systemctl enable --now docker
sudo docker run --rm hello-world
sudo docker compose versionThe Compose package name and version vary by release. If docker compose version does not work, use zypper search docker-compose to find the Compose v2 package available in the currently enabled repositories.
Alpine Linux
Install docker and docker-cli-compose from the community repository. If community is disabled, enable the community repository for the same release branch first.
sudo apk add docker docker-cli-compose
sudo rc-update add docker default
sudo service docker startsudo docker run --rm hello-world
sudo docker compose version
rc-statusVyline's Bun runtime is included in the container image. The host only needs to satisfy Docker daemon and kernel requirements.
Firewall / SELinux / AppArmor
- UFW / firewalld: Allow only the required scope if LAN clients must reach 3000/tcp.
- SELinux: Disabling it is not a Vyline requirement.
- AppArmor: Inspect profiles only when deny logs related to Docker or Vyline appear.
- Vyline:
VYLINE_LAN_ACCESS=falseis the default. An open port does not grant unauthenticated remote access.
Rootless Docker
The repository does not contain rootless-specific configuration or validation. These docs assume conventional Docker Engine. If you run rootless Docker, separately verify bind-mount ownership, port publishing, and daemon startup.