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