mirror of
https://github.com/elAgala/server-initializer.git
synced 2026-02-13 21:06:16 +00:00
feat: create log file and simplify current logging
This commit is contained in:
4
index.sh
4
index.sh
@@ -22,7 +22,3 @@ echo "[ INITIALIZER ]: Starting initialization"
|
|||||||
|
|
||||||
chmod +x ./install.sh
|
chmod +x ./install.sh
|
||||||
./install.sh "$ADMIN_USER"
|
./install.sh "$ADMIN_USER"
|
||||||
|
|
||||||
echo "[ INITIALIZER ]: Setup completed succesfully!"
|
|
||||||
|
|
||||||
echo "[ INITIALIZER ]: Success!"
|
|
||||||
|
|||||||
@@ -1,9 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo "[ INSTALL ]: Updating server packages"
|
|
||||||
sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y && sudo apt autoremove -y
|
|
||||||
echo "[ INSTALL ]: Server updated. Starting component installation"
|
|
||||||
|
|
||||||
source ./user/create_user.sh
|
source ./user/create_user.sh
|
||||||
source ./user/create_deploy_user.sh
|
source ./user/create_deploy_user.sh
|
||||||
source ./user/ssh_config.sh
|
source ./user/ssh_config.sh
|
||||||
@@ -33,38 +29,87 @@ fi
|
|||||||
DEVELOPMENT_MODE=false
|
DEVELOPMENT_MODE=false
|
||||||
if [ "$2" = "--development" ]; then
|
if [ "$2" = "--development" ]; then
|
||||||
DEVELOPMENT_MODE=true
|
DEVELOPMENT_MODE=true
|
||||||
echo "[ INSTALL ]: Running in development mode - Docker operations will be skipped"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get the repository directory (parent of src/)
|
# Get the repository directory (parent of src/)
|
||||||
REPO_DIR="$(dirname "$PWD")"
|
REPO_DIR="$(dirname "$PWD")"
|
||||||
|
|
||||||
|
# Log file for verbose output
|
||||||
|
LOG_FILE="/var/log/server-initializer.log"
|
||||||
|
> "$LOG_FILE"
|
||||||
|
|
||||||
|
run_step() {
|
||||||
|
local label="$1"
|
||||||
|
shift
|
||||||
|
printf " %-40s" "$label"
|
||||||
|
if "$@" >> "$LOG_FILE" 2>&1; then
|
||||||
|
echo "done"
|
||||||
|
else
|
||||||
|
echo "FAILED (see $LOG_FILE)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "============================================"
|
||||||
|
echo " SERVER INITIALIZATION"
|
||||||
|
echo "============================================"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
if [ "$DEVELOPMENT_MODE" = "true" ]; then
|
||||||
|
echo " Mode: development (Docker ops skipped)"
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update server packages
|
||||||
|
run_step "Updating server packages..." bash -c 'sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y && sudo apt autoremove -y'
|
||||||
|
|
||||||
# User
|
# User
|
||||||
create_user $1
|
run_step "Creating admin user..." create_user "$1"
|
||||||
config_ssh $1
|
run_step "Configuring SSH for $1..." config_ssh "$1"
|
||||||
|
|
||||||
# Deploy user
|
# Deploy user
|
||||||
create_deploy_user
|
run_step "Creating deploy user..." create_deploy_user
|
||||||
config_ssh "deploy"
|
run_step "Configuring SSH for deploy..." config_ssh "deploy"
|
||||||
|
|
||||||
# Docker
|
# Docker
|
||||||
install_docker
|
run_step "Installing Docker..." install_docker
|
||||||
create_networks
|
run_step "Creating Docker networks..." create_networks
|
||||||
|
|
||||||
# Add users to docker group (after Docker installation creates the group)
|
# Add users to docker group
|
||||||
echo "[ INSTALL ]: Adding users to docker group"
|
run_step "Adding users to Docker group..." bash -c "sudo usermod -aG docker $1 && sudo usermod -aG docker deploy"
|
||||||
sudo usermod -aG docker $1
|
|
||||||
sudo usermod -aG docker deploy
|
|
||||||
echo "[ INSTALL ]: Users $1 and deploy added to docker group"
|
|
||||||
|
|
||||||
# Web
|
# Web
|
||||||
install_caddy $1 "$REPO_DIR" "$DEVELOPMENT_MODE"
|
run_step "Installing Caddy..." install_caddy "$1" "$REPO_DIR" "$DEVELOPMENT_MODE"
|
||||||
setup_ufw
|
run_step "Setting up UFW..." setup_ufw
|
||||||
|
|
||||||
# Utils
|
# Utils
|
||||||
install_vim
|
run_step "Installing Vim..." install_vim
|
||||||
install_zsh $1
|
run_step "Installing Zsh..." install_zsh "$1"
|
||||||
install_make
|
run_step "Installing Make..." install_make
|
||||||
|
|
||||||
# Monitoring
|
# Monitoring
|
||||||
install_prometheus $1 "$REPO_DIR" "$DEVELOPMENT_MODE"
|
run_step "Installing monitoring stack..." install_prometheus "$1" "$REPO_DIR" "$DEVELOPMENT_MODE"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "============================================"
|
||||||
|
echo " INSTALLATION SUMMARY"
|
||||||
|
echo "============================================"
|
||||||
|
echo ""
|
||||||
|
echo "USERS"
|
||||||
|
echo " Admin: $1 / $ADMIN_USER_PASSWORD"
|
||||||
|
echo " Deploy: deploy / $DEPLOY_USER_PASSWORD"
|
||||||
|
echo ""
|
||||||
|
echo "WEB SERVER (Caddy)"
|
||||||
|
echo " Dir: /home/$1/web-server"
|
||||||
|
echo " Sites: /home/$1/web-server/caddy/sites-enabled/"
|
||||||
|
echo ""
|
||||||
|
echo "MONITORING"
|
||||||
|
echo " Dir: /home/$1/monitoring"
|
||||||
|
echo " Prometheus pass: $prometheus_plain_password"
|
||||||
|
echo " Loki pass: $loki_plain_password"
|
||||||
|
echo ""
|
||||||
|
echo "CROWDSEC"
|
||||||
|
echo " API Key: $CROWDSEC_API_KEY"
|
||||||
|
echo ""
|
||||||
|
echo "============================================"
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ function create_deploy_user() {
|
|||||||
|
|
||||||
echo "[ USER ]: Starting user $username setup"
|
echo "[ USER ]: Starting user $username setup"
|
||||||
sudo useradd -m -s /bin/bash $username
|
sudo useradd -m -s /bin/bash $username
|
||||||
password="${DEPLOY_PASSWORD:-$(openssl rand -base64 16)}"
|
DEPLOY_USER_PASSWORD="${DEPLOY_PASSWORD:-$(openssl rand -base64 16)}"
|
||||||
echo "$username:$password" | sudo chpasswd
|
echo "$username:$DEPLOY_USER_PASSWORD" | sudo chpasswd
|
||||||
echo "[ USER ]: Password set for $username (use DEPLOY_PASSWORD env var to specify)"
|
echo "[ USER ]: Password set for $username (use DEPLOY_PASSWORD env var to specify)"
|
||||||
echo "[ USER ]: User [deploy] created succesfully"
|
echo "[ USER ]: User [deploy] created succesfully"
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ function create_user() {
|
|||||||
|
|
||||||
echo "[ USER ]: Starting user $username setup"
|
echo "[ USER ]: Starting user $username setup"
|
||||||
sudo useradd -m -s /bin/bash $username
|
sudo useradd -m -s /bin/bash $username
|
||||||
password="${ADMIN_PASSWORD:-$(openssl rand -base64 16)}"
|
ADMIN_USER_PASSWORD="${ADMIN_PASSWORD:-$(openssl rand -base64 16)}"
|
||||||
echo "$username:$password" | sudo chpasswd
|
echo "$username:$ADMIN_USER_PASSWORD" | sudo chpasswd
|
||||||
echo "[ USER ]: Password set for $username (use ADMIN_PASSWORD env var to specify)"
|
echo "[ USER ]: Password set for $username (use ADMIN_PASSWORD env var to specify)"
|
||||||
echo "[ USER ]: User created succesfully"
|
echo "[ USER ]: User created succesfully"
|
||||||
|
|
||||||
|
|||||||
@@ -89,11 +89,6 @@ EOF
|
|||||||
echo "[ WEB ]: Starting all containers with generated keys..."
|
echo "[ WEB ]: Starting all containers with generated keys..."
|
||||||
sudo docker compose up -d
|
sudo docker compose up -d
|
||||||
|
|
||||||
echo "[ WEB ]: ============================================"
|
|
||||||
echo "[ WEB ]: SAVE THESE - Plaintext monitoring passwords:"
|
|
||||||
echo "[ WEB ]: Prometheus: $prometheus_plain_password"
|
|
||||||
echo "[ WEB ]: Loki: $loki_plain_password"
|
|
||||||
echo "[ WEB ]: ============================================"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "[ WEB ]: Caddy setup completed successfully!"
|
echo "[ WEB ]: Caddy setup completed successfully!"
|
||||||
|
|||||||
Reference in New Issue
Block a user