Last active
July 11, 2025 08:05
-
-
Save NotYusta/bc9d45b0c2f9db2588f464b164b607b0 to your computer and use it in GitHub Desktop.
Generate Wings Config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Example usage: | |
# ./generate_wings_config.sh \ | |
# --uuid "1046d1d1-b8ef-4771-82b1-2b5946d33397" \ # Node UUID from panel | |
# --token_id "iAcosCn1KCAgVjVO" \ # Token ID from panel | |
# --token "FanPzLCptUxkGow3vi7Z" \ # Token secret from panel | |
# --ssl_cert "/etc/letsencrypt/live/pterodactyl.file.properties/fullchain.pem" \ # Path to SSL cert | |
# --ssl_key "/etc/letsencrypt/live/pterodactyl.file.properties/privkey.pem" \ # Path to SSL key | |
# --remote_url "https://pterodactyl.file.properties" \ # Panel URL | |
# --pid_limit 512 # PID limit (0 = unlimited) | |
# --ssl_enabled true # Enable or disable SSL (true/false) | |
# Default configuration values | |
DEBUG=false | |
UUID="" | |
TOKEN_ID="" | |
TOKEN="" | |
HOST="0.0.0.0" # Wings API listening address | |
PORT=8080 # Wings API port | |
UPLOAD_LIMIT=100 # Upload size limit in MiB | |
SSL_ENABLED="true" # Enable or disable SSL (as string) | |
SSL_CERT_PATH="/etc/letsencrypt/live/YOUR_DOMAIN/fullchain.pem" # SSL cert path | |
SSL_KEY_PATH="/etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem" # SSL key path | |
DATA_PATH="/var/lib/pterodactyl" # Location for daemon data | |
SFTP_PORT=2022 # SFTP bind port | |
PID_LIMIT=512 # Default PID limit for Docker containers | |
REMOTE_URL="https://YOUR_PANEL_DOMAIN" # URL of the panel (frontend) | |
# Parse command-line arguments | |
while [[ "$#" -gt 0 ]]; do | |
case $1 in | |
--uuid) UUID="$2"; shift ;; | |
--token_id) TOKEN_ID="$2"; shift ;; | |
--token) TOKEN="$2"; shift ;; | |
--host) HOST="$2"; shift ;; | |
--port) PORT="$2"; shift ;; | |
--upload_limit) UPLOAD_LIMIT="$2"; shift ;; | |
--ssl_cert) SSL_CERT_PATH="$2"; shift ;; | |
--ssl_key) SSL_KEY_PATH="$2"; shift ;; | |
--ssl_enabled) SSL_ENABLED=$(echo "$2" | tr '[:upper:]' '[:lower:]'); shift ;; | |
--data_path) DATA_PATH="$2"; shift ;; | |
--sftp_port) SFTP_PORT="$2"; shift ;; | |
--pid_limit) PID_LIMIT="$2"; shift ;; | |
--remote_url) REMOTE_URL="$2"; shift ;; | |
*) echo "Unknown parameter: $1"; exit 1 ;; | |
esac | |
shift | |
done | |
# Validate required values | |
if [[ -z "$UUID" || -z "$TOKEN_ID" || -z "$TOKEN" ]]; then | |
echo "Error: --uuid, --token_id, and --token are required." | |
exit 1 | |
fi | |
# Define output path | |
CONFIG_PATH="/etc/pterodactyl/config.yml" | |
mkdir -p "$(dirname "$CONFIG_PATH")" | |
# Generate config.yml | |
cat > "$CONFIG_PATH" <<EOF | |
debug: $DEBUG | |
uuid: $UUID | |
token_id: $TOKEN_ID | |
token: $TOKEN | |
api: | |
host: $HOST | |
port: $PORT | |
ssl: | |
enabled: $SSL_ENABLED | |
cert: $SSL_CERT_PATH | |
key: $SSL_KEY_PATH | |
upload_limit: $UPLOAD_LIMIT | |
system: | |
data: $DATA_PATH | |
sftp: | |
bind_port: $SFTP_PORT | |
docker: | |
container_pid_limit: $PID_LIMIT | |
remote: $REMOTE_URL | |
EOF | |
echo "✅ Wings config generated at $CONFIG_PATH" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment