mirror of
https://github.com/elAgala/server-initializer.git
synced 2026-02-14 05:06:18 +00:00
feat: make script autonomous (run without prompts)
This commit is contained in:
@@ -8,8 +8,9 @@ function create_deploy_user() {
|
||||
echo "[ USER ]: Starting user $username setup"
|
||||
mkdir -p $home_dir
|
||||
sudo useradd $username
|
||||
echo "[ USER ]: Set a password for user [$username]:"
|
||||
sudo passwd $username
|
||||
password="${DEPLOY_PASSWORD:-$(openssl rand -base64 16)}"
|
||||
echo "$username:$password" | sudo chpasswd
|
||||
echo "[ USER ]: Password set for $username (use DEPLOY_PASSWORD env var to specify)"
|
||||
echo "[ USER ]: User [deploy] created succesfully"
|
||||
|
||||
echo "[ USER ]: Adding user to groups"
|
||||
|
||||
@@ -8,8 +8,9 @@ function create_user() {
|
||||
echo "[ USER ]: Starting user $username setup"
|
||||
mkdir -p $home_dir
|
||||
sudo useradd $username
|
||||
echo "[ USER ]: Set a password for $username:"
|
||||
sudo passwd "$username"
|
||||
password="${ADMIN_PASSWORD:-$(openssl rand -base64 16)}"
|
||||
echo "$username:$password" | sudo chpasswd
|
||||
echo "[ USER ]: Password set for $username (use ADMIN_PASSWORD env var to specify)"
|
||||
echo "[ USER ]: User created succesfully"
|
||||
|
||||
echo "[ USER ]: Adding user to groups"
|
||||
|
||||
@@ -14,13 +14,18 @@ function config_ssh() {
|
||||
sudo chown -R "$username:$username" $ssh_dir
|
||||
echo "[ SSH ]: Created ~/.ssh/authorized_keys"
|
||||
|
||||
echo "[ SSH ]: Paste the public key for $username (leave empty to skip)"
|
||||
read -r public_key
|
||||
# Pick env var based on username: DEPLOY_SSH_KEY for deploy user, ADMIN_SSH_KEY for others
|
||||
if [ "$username" = "deploy" ]; then
|
||||
public_key="${DEPLOY_SSH_KEY:-}"
|
||||
else
|
||||
public_key="${ADMIN_SSH_KEY:-}"
|
||||
fi
|
||||
|
||||
if [ -n "$public_key" ]; then
|
||||
echo "$public_key" | sudo tee -a "$ssh_dir/authorized_keys" >/dev/null
|
||||
echo "[ SSH ]: Public key added to $ssh_dir/authorized_keys."
|
||||
else
|
||||
echo "[ SSH ]: No public key provided, skipping..."
|
||||
echo "[ SSH ]: WARNING: No SSH key provided for $username (set ADMIN_SSH_KEY / DEPLOY_SSH_KEY)"
|
||||
fi
|
||||
|
||||
# Create SSH configuration file instead of modifying main sshd_config
|
||||
|
||||
@@ -42,12 +42,8 @@ EOF
|
||||
sudo apt-get install -y apache2-utils
|
||||
|
||||
echo "[ WEB ]: Setting up authentication passwords..."
|
||||
echo -n "Enter password for Prometheus access: "
|
||||
read -s prometheus_plain_password
|
||||
echo
|
||||
echo -n "Enter password for Loki access: "
|
||||
read -s loki_plain_password
|
||||
echo
|
||||
prometheus_plain_password="${MONITORING_PROMETHEUS_PASSWORD:-$(openssl rand -base64 16)}"
|
||||
loki_plain_password="${MONITORING_LOKI_PASSWORD:-$(openssl rand -base64 16)}"
|
||||
|
||||
# Generate password hashes using htpasswd (no Caddy needed)
|
||||
echo "[ WEB ]: Hashing Prometheus password..."
|
||||
@@ -96,8 +92,10 @@ EOF
|
||||
|
||||
echo "[ WEB ]: Caddy setup completed successfully!"
|
||||
echo "[ WEB ]: Configuration location: $caddy_dir"
|
||||
echo "[ WEB ]: CrowdSec API key: $CROWDSEC_API_KEY"
|
||||
echo "[ WEB ]: Prometheus password: [ENCRYPTED AND STORED IN .env]"
|
||||
echo "[ WEB ]: Loki password: [ENCRYPTED AND STORED IN .env]"
|
||||
echo "[ WEB ]: ============================================"
|
||||
echo "[ WEB ]: SAVE THESE - Plaintext monitoring passwords:"
|
||||
echo "[ WEB ]: Prometheus: $prometheus_plain_password"
|
||||
echo "[ WEB ]: Loki: $loki_plain_password"
|
||||
echo "[ WEB ]: ============================================"
|
||||
echo "[ WEB ]: Add your site configurations to: $caddy_dir/caddy/sites-enabled/"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user