#!/bin/bash prog="$(basename "$0")" usage() { cat >&2 <<-EOF usage: $prog [-h] [-Z POOL] installs nasbeery onto your raspberry pi os -Z POOL Name of the zpool to create (default: tank) --------------------------------------------------------------------------- (C) 2022 nasbeery installer by bashclub (https://github.com/bashclub) --------------------------------------------------------------------------- EOF exit $1 } ZPOOL=tank while getopts "hZ:" opt; do case $opt in h) usage 0 ;; Z) ZPOOL=$OPTARG ;; *) usage 1 ;; esac done shift $((OPTIND-1)) # create zfs filesystems if [ ! $(zfs list $ZPOOL/docker) ]; then zfs create -o com.sun:auto-snapshot=false -o mountpoint=/var/lib/docker $ZPOOL/docker fi if [ ! $(zfs list $ZPOOL/portainer) ]; then zfs create -o com.sun:auto-snapshot=true -o mountpoint=/portainer $ZPOOL/portainer fi # add docker repository apt-key adv --fetch-keys https://download.docker.com/linux/debian/gpg echo "deb 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 docker-compose # install portainer cd /portainer mkdir -p 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