2026-03-28 10:34:20 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
|
|
|
|
|
|
echo "=== Server Init ==="
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
read -p "Username [ubuntu]: " OLD_USER
|
|
|
|
|
OLD_USER="${OLD_USER:-ubuntu}"
|
|
|
|
|
read -p "Host: " HOST
|
|
|
|
|
read -p "SSH public key path [~/.ssh/id_ed25519.pub]: " PUBKEY_PATH
|
|
|
|
|
PUBKEY_PATH="${PUBKEY_PATH:-$HOME/.ssh/id_ed25519.pub}"
|
|
|
|
|
read -p "New username: " NEW_USER
|
|
|
|
|
|
|
|
|
|
SSH_TARGET="${OLD_USER}@pangolin.${HOST}"
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
echo "Set a password for '$NEW_USER' (used for sudo):"
|
|
|
|
|
read -s -p "Password: " USER_PASSWORD
|
|
|
|
|
echo
|
|
|
|
|
read -s -p "Confirm: " USER_PASSWORD_CONFIRM
|
|
|
|
|
echo
|
|
|
|
|
|
|
|
|
|
if [ "$USER_PASSWORD" != "$USER_PASSWORD_CONFIRM" ]; then
|
|
|
|
|
echo "Error: Passwords do not match"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ ! -f "$PUBKEY_PATH" ]; then
|
|
|
|
|
echo "Error: Public key file not found: $PUBKEY_PATH"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
PUBKEY=$(cat "$PUBKEY_PATH")
|
|
|
|
|
|
2026-04-25 03:38:29 +00:00
|
|
|
echo ""
|
|
|
|
|
echo "--- JuiceFS / Nextcloud Storage ---"
|
|
|
|
|
read -p "S3 endpoint (e.g. https://s3.amazonaws.com): " JUICEFS_S3_ENDPOINT
|
|
|
|
|
read -p "S3 bucket name: " JUICEFS_S3_BUCKET
|
|
|
|
|
read -p "S3 access key: " JUICEFS_S3_ACCESS_KEY
|
|
|
|
|
read -s -p "S3 secret key: " JUICEFS_S3_SECRET_KEY
|
|
|
|
|
echo
|
|
|
|
|
read -p "JuiceFS local cache size [50G]: " JUICEFS_CACHE_SIZE
|
|
|
|
|
JUICEFS_CACHE_SIZE="${JUICEFS_CACHE_SIZE:-50G}"
|
|
|
|
|
|
2026-03-28 10:34:20 +00:00
|
|
|
export SCRIPT_DIR HOST OLD_USER NEW_USER SSH_TARGET PUBKEY USER_PASSWORD
|
2026-04-25 03:38:29 +00:00
|
|
|
export JUICEFS_S3_ENDPOINT JUICEFS_S3_BUCKET JUICEFS_S3_ACCESS_KEY JUICEFS_S3_SECRET_KEY JUICEFS_CACHE_SIZE
|
2026-03-28 10:34:20 +00:00
|
|
|
|
|
|
|
|
source "$SCRIPT_DIR/scripts/01_create_user.sh"
|
|
|
|
|
source "$SCRIPT_DIR/scripts/02_remove_old_user.sh"
|
|
|
|
|
source "$SCRIPT_DIR/scripts/03_run_playbook.sh"
|
|
|
|
|
source "$SCRIPT_DIR/scripts/04_show_setup_info.sh"
|