#!/bin/bash # create zfs filesystems zfs create -o com.sun:auto-snapshot=false -o mountpoint=/var/lib/docker rpool/docker zfs create -o com.sun:auto-snapshot=true -o mountpoint=/portainer rpool/portainer # add docker repository curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # update package lists and install docker engine + docker-compose apt update DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt install -y -qq --no-install-recommends docker-ce docker-ce-cli containerd.io dc_version=$(wget -O - -q https://api.github.com/repos/docker/compose/releases/latest | grep -m1 "\"name\":" | cut -d'"' -f4) wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/${dc_version}/docker-compose-linux-x86_64 chmod +x /usr/local/bin/docker-compose # install portainer cd /portainer mkdir data cat << EOF > /portainer/docker-compose.yml version: '3.2' services: portainer: image: portainer/portainer-ce ports: - "9443:9443" - "8000:8000" volumes: - /portainer/data:/data - /var/run/docker.sock:/var/run/docker.sock restart: always EOF # start portainer docker-compose up -d