#!/usr/bin/env bash # ------------------------------------------------------------------ # Portainer CE # Source: https://server-installer.de/scripts/portainer # Version: v1.0.4 # Last updated: 2026-09-15 # Target OS: Linux (with Docker) # ------------------------------------------------------------------ set -euo pipefail log() { printf '\033[36m==>\033[0m %s\n' "$*"; } if [[ $EUID -ne 0 ]]; then echo "Please run as root (sudo)." >&2 exit 1 fi command -v docker >/dev/null || { echo "Docker is required. Install it first:" >&2 echo " curl -fsSL server-installer.de/scripts/docker | bash" >&2 exit 1 } # Arguments PORT="9443" while [[ $# -gt 0 ]]; do case "$1" in --port) PORT="$2"; shift 2 ;; *) echo "Unknown argument: $1" >&2; exit 1 ;; esac done log "Creating volume portainer_data" docker volume create portainer_data >/dev/null log "Starting Portainer CE on port ${PORT}" docker run -d --name portainer --restart=always \ -p 8000:8000 -p "${PORT}:9443" \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:lts log "Portainer: https://$(hostname -I | awk '{print $1}'):${PORT}" log "Done."