Skip to content

Instantly share code, notes, and snippets.

@NotYusta
Last active March 18, 2025 14:23
Show Gist options
  • Save NotYusta/77c998832676310b53761adb0c3546c7 to your computer and use it in GitHub Desktop.
Save NotYusta/77c998832676310b53761adb0c3546c7 to your computer and use it in GitHub Desktop.
Install Pterodactyl Wings & Docker
#!/bin/sh
WINGS_SYSTEMD_FILE="/etc/systemd/system/wings.service"
WINGS_SYSTEMD="\
[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service
[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]
WantedBy=multi-user.target"
install_docker_centos() {
# Install required packages
sudo dnf install -y dnf-utils device-mapper-persistent-data lvm2
# Add Docker repository (Enterprise Linux 8)
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
}
install_docker_debian_ubuntu() {
# Detect OS and set variables
source /etc/os-release
if [[ "$ID" == "ubuntu" || "$ID" == "debian" ]]; then
CODENAME="$VERSION_CODENAME"
else
echo "Unsupported OS: $ID"
return 1
fi
# Update package list and install dependencies
sudo apt-get update
sudo apt-get install -y ca-certificates curl
# Add Docker's official GPG key
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/$ID/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the Docker repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/$ID $CODENAME stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Update package list and install Docker
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
}
# Detect OS and install Docker
if [ -f /etc/redhat-release ]; then
install_docker_centos
elif [ -f /etc/debian_version ]; then
install_docker_debian_ubuntu
else
echo "Unsupported OS"
exit 1
fi
# Install Wings
sudo mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
sudo chmod u+x /usr/local/bin/wings
# Create systemd service
if [ -f "$WINGS_SYSTEMD_FILE" ]; then
sudo rm -rf "$WINGS_SYSTEMD_FILE"
fi
echo "$WINGS_SYSTEMD" | sudo tee "$WINGS_SYSTEMD_FILE" > /dev/null
# Enable and start services
sudo systemctl daemon-reload
sudo systemctl enable wings docker --now
sudo systemctl restart wings
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment