This commit is contained in:
2025-08-11 14:52:34 +00:00
parent ac28efee75
commit d41fec8d41

View File

@@ -18,9 +18,9 @@ MAINJS="startapx"
URLBACKUP="https://app1.smatchit.io"
# Logging
mkdir -p /var/log
exec > >(tee -i /var/log/apxtri_install.log)
exec 2>&1
sudo mkdir -p /var/log
sudo exec > >(tee -i /var/log/apxtri_install.log)
sudo exec 2>&1
# ==== ERROR HANDLER ====
err_handler() {
@@ -49,19 +49,19 @@ cleaning() {
# Retire user du groupe
if id -nG "$CURRENT_USER" | grep -qw "$APXTRI_USER"; then
gpasswd -d "$CURRENT_USER" "$APXTRI_USER" || true
sudo gpasswd -d "$CURRENT_USER" "$APXTRI_USER" || true
fi
# Supprime utilisateur
if id "$APXTRI_USER" &>/dev/null; then
userdel -r "$APXTRI_USER" 2>/dev/null || true
sudo userdel -r "$APXTRI_USER" 2>/dev/null || true
fi
# Supprime répertoires
rm -rf "$DATAPATH" "$NODEPATH" "$LOGPATH" /etc/apxtowns
sudo rm -rf "$DATAPATH" "$NODEPATH" "$LOGPATH" /etc/apxtowns
# Supprime ligne hosts
sed -i "/admin.apxtri.$TOWN.$NATION/d" /etc/hosts || true
sudo sed -i "/admin.apxtri.$TOWN.$NATION/d" /etc/hosts || true
echo "[CLEAN] Nettoyage terminé."
}
@@ -77,29 +77,29 @@ while true; do
done
# ==== INSTALL TOOLS ====
apt update --fix-missing
apt install -y curl git gnupg jq build-essential locales vim libcap2-bin p7zip-full p7zip-rar unzip
sudo apt update --fix-missing
sudo apt install -y curl git gnupg jq build-essential locales vim libcap2-bin p7zip-full p7zip-rar unzip
locale-gen en_US.UTF-8 fr_FR.UTF-8
update-locale LANG=en_US.UTF-8
sudo locale-gen en_US.UTF-8 fr_FR.UTF-8
sudo update-locale LANG=en_US.UTF-8
# ==== CHECK CADDY ====
if ! command -v caddy &>/dev/null; then
echo "Installation de Caddy..."
mkdir -p /usr/share/keyrings
curl -fsSL https://dl.cloudsmith.io/public/caddy/stable/gpg.key \
sudo mkdir -p /usr/share/keyrings
sudo curl -fsSL https://dl.cloudsmith.io/public/caddy/stable/gpg.key \
| gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/caddy-stable-archive-keyring.gpg] \
sudo echo "deb [signed-by=/usr/share/keyrings/caddy-stable-archive-keyring.gpg] \
https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main" \
| tee /etc/apt/sources.list.d/caddy-stable.list
apt update && apt install -y caddy
| sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install -y caddy
else
echo "Caddy déjà installé."
fi
# ==== HOSTS ====
if ! grep -q "admin.apxtri.$TOWN.$NATION" /etc/hosts; then
echo "127.0.0.1 admin.apxtri.$TOWN.$NATION" | tee -a /etc/hosts
sudo echo "127.0.0.1 admin.apxtri.$TOWN.$NATION" | sudo tee -a /etc/hosts
else
echo "admin.apxtri déjà présent dans /etc/hosts"
fi
@@ -107,19 +107,19 @@ fi
# ==== CREATE USER ====
if ! id "$APXTRI_USER" &>/dev/null; then
echo "Création de l'utilisateur $APXTRI_USER..."
useradd --system --no-create-home --shell /usr/sbin/nologin "$APXTRI_USER"
echo "$APXTRI_USER:malayme42" | chpasswd
sudo useradd --system --no-create-home --shell /usr/sbin/nologin "$APXTRI_USER"
echo "$APXTRI_USER:malayme42" | sudo chpasswd
else
echo "Utilisateur $APXTRI_USER déjà existant."
fi
# ==== ADD CURRENT USER TO GROUP ====
CURRENT_USER=${SUDO_USER:-$(whoami)}
usermod -aG "$APXTRI_USER" "$CURRENT_USER"
sudo usermod -aG "$APXTRI_USER" "$CURRENT_USER"
# ==== DIRECTORIES ====
mkdir -p "$APP_DIR" "$DATAPATH/data/apxtri" "$LOGPATH" "$DATAPATH/data/apxtri/logs" "$DATAPATH/data/apxtri/tmp"
chown -R "$APXTRI_USER:$APXTRI_USER" "$DATAPATH" "$NODEPATH" "$LOGPATH"
sudo mkdir -p "$APP_DIR" "$DATAPATH/data/apxtri" "$LOGPATH" "$DATAPATH/data/apxtri/logs" "$DATAPATH/data/apxtri/tmp"
sudo chown -R "$APXTRI_USER:$APXTRI_USER" "$DATAPATH" "$NODEPATH" "$LOGPATH"
# ==== CLONE OR UPDATE OBJECTS ====
OBJ_DIR="$DATAPATH/data/apxtri/objects"
@@ -128,24 +128,24 @@ if [ -d "$OBJ_DIR/.git" ]; then
git -C "$OBJ_DIR" pull
else
echo "Clonage du dépôt objects..."
rm -rf "$OBJ_DIR"
sudo rm -rf "$OBJ_DIR"
git clone "$REPO_OBJECTS" "$OBJ_DIR"
fi
git config --global --add safe.directory "$OBJ_DIR"
sudo git config --global --add safe.directory "$OBJ_DIR"
# ==== DOWNLOAD AND UNZIP EXTRA OBJECTS ====
ZIP_URL="https://gitea.ndda.fr/apxtri/apxtri/raw/branch/main/setup/apxtri.objects.setup.zip"
ZIP_FILE="$OBJ_DIR/apxtri.objects.setup.zip"
echo "Téléchargement des objets supplémentaires depuis $ZIP_URL ..."
mkdir -p "$OBJ_DIR"
sudo mkdir -p "$OBJ_DIR"
wget -O "$ZIP_FILE" "$ZIP_URL"
echo "Décompression dans $OBJ_DIR ..."
unzip -q -o "$ZIP_FILE" -d "$OBJ_DIR"
rm -f "$ZIP_FILE"
sudo rm -f "$ZIP_FILE"
echo "Objets supplémentaires ajoutés dans $OBJ_DIR"
# ==== CLONE OR UPDATE MAIN REPO ====
@@ -155,14 +155,14 @@ if [ -d "$MAIN_DIR/.git" ]; then
git -C "$MAIN_DIR" pull
else
echo "Clonage du dépôt apxtri..."
rm -rf "$MAIN_DIR"
sudo rm -rf "$MAIN_DIR"
git clone "$REPO_APXTRI" "$MAIN_DIR"
fi
git config --global --add safe.directory "$MAIN_DIR"
sudo git config --global --add safe.directory "$MAIN_DIR"
echo 'Generating .env file...'
cat > "$APP_DIR/apxtri/.env" <<EOL
sudo cat > "$APP_DIR/apxtri/.env" <<EOL
TOWN="$TOWN"
NATION="$NATION"
UBUNTU="server"
@@ -178,12 +178,12 @@ BACKENDURL="localhost"
CADDYAPIURL="http://localhost:2019/"
EOL
chown -R $APXTRI_USER:$APXTRI_USER "$APP_DIR/"
sudo chown -R $APXTRI_USER:$APXTRI_USER "$APP_DIR/"
export APXTRI_USER DATAPATH NODEPATH LOGPATH TOWN NATION MAIN_DIR MAINJS NODE_VERSION
npm_config_cache="${DATAPATH:-/tmp}/.npm"
mkdir -p "$npm_config_cache"
chown -R "$APXTRI_USER:$APXTRI_USER" "$npm_config_cache"
sudo mkdir -p "$npm_config_cache"
sudo chown -R "$APXTRI_USER:$APXTRI_USER" "$npm_config_cache"
export npm_config_cache
NVM_DIR="$MAIN_DIR/.nvm"
export NVM_DIR