mirror of
https://github.com/Ground-Zerro/DomainMapper.git
synced 2025-12-10 01:47:18 +07:00
Update web_install.sh
This commit is contained in:
@@ -13,7 +13,7 @@ if ! id "$USERNAME" &>/dev/null; then
|
||||
echo "Пользователь $USERNAME не существует."
|
||||
read -p "Хотите создать пользователя? (y/n): " CREATE_USER
|
||||
if [[ "$CREATE_USER" =~ ^[Yy]$ ]]; then
|
||||
sudo useradd -m -s /bin/bash "$USERNAME"
|
||||
useradd -m -s /bin/bash "$USERNAME"
|
||||
echo "Пользователь $USERNAME успешно создан."
|
||||
else
|
||||
echo "Скрипт завершён, так как пользователь не существует."
|
||||
@@ -23,28 +23,32 @@ fi
|
||||
|
||||
# Обновление системы и установка зависимостей
|
||||
echo "Обновляем систему и устанавливаем зависимости..."
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
sudo apt install python3 python3-pip python3-venv gunicorn nginx certbot python3-certbot-nginx -y
|
||||
apt update && apt upgrade -y
|
||||
apt install python3 python3-pip python3-venv gunicorn nginx certbot python3-certbot-nginx -y
|
||||
|
||||
# Создание директории приложения
|
||||
echo "Создаем директорию приложения..."
|
||||
sudo -u $USERNAME mkdir -p $APP_DIR
|
||||
mkdir -p $APP_DIR
|
||||
|
||||
# Настройка прав доступа
|
||||
echo "Настроим права доступа для директории приложения..."
|
||||
chown -R $USERNAME:$USERNAME $APP_DIR
|
||||
chmod -R 755 $APP_DIR
|
||||
|
||||
# Перемещение в директорию приложения
|
||||
cd $APP_DIR
|
||||
|
||||
# Создание виртуального окружения
|
||||
echo "Создаем виртуальное окружение..."
|
||||
sudo -u $USERNAME python3 -m venv venv
|
||||
|
||||
# Активация виртуального окружения и установка библиотек
|
||||
echo "Устанавливаем зависимости Python..."
|
||||
su - $USERNAME -c "python3 -m venv $APP_DIR/venv"
|
||||
|
||||
# Загрузка файла requirements.txt
|
||||
echo "Загружаем файл requirements.txt..."
|
||||
curl -o $APP_DIR/requirements.txt https://raw.githubusercontent.com/Ground-Zerro/DomainMapper/refs/heads/main/requirements.txt
|
||||
|
||||
# Установка зависимостей из requirements.txt и добавление необходимых библиотек
|
||||
sudo -u $USERNAME bash -c "source $APP_DIR/venv/bin/activate && pip install -r $APP_DIR/requirements.txt fastapi uvicorn pydantic"
|
||||
echo "Устанавливаем зависимости Python..."
|
||||
su - $USERNAME -c "source $APP_DIR/venv/bin/activate && pip install -r $APP_DIR/requirements.txt fastapi uvicorn pydantic gunicorn"
|
||||
|
||||
# Загрузка файлов приложения
|
||||
echo "Загружаем файлы приложения..."
|
||||
@@ -56,7 +60,7 @@ chown "$USERNAME":"$USERNAME" "$APP_DIR/main.py"
|
||||
|
||||
# Создание системного сервиса
|
||||
echo "Создаем системный сервис..."
|
||||
sudo tee $SERVICE_FILE > /dev/null <<EOF
|
||||
tee $SERVICE_FILE > /dev/null <<EOF
|
||||
[Unit]
|
||||
Description=DNS Resolver Web App
|
||||
After=network.target
|
||||
@@ -73,15 +77,15 @@ EOF
|
||||
|
||||
# Активация и запуск сервиса
|
||||
echo "Активируем и запускаем сервис..."
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl start dns_resolver
|
||||
sudo systemctl enable dns_resolver
|
||||
systemctl daemon-reload
|
||||
systemctl start dns_resolver
|
||||
systemctl enable dns_resolver
|
||||
|
||||
# Настройка Nginx
|
||||
echo "Настраиваем Nginx..."
|
||||
sudo rm -f /etc/nginx/sites-enabled/default # Удаляем стандартный конфиг
|
||||
rm -f /etc/nginx/sites-enabled/default # Удаляем стандартный конфиг
|
||||
|
||||
sudo tee $NGINX_CONF > /dev/null <<EOF
|
||||
tee $NGINX_CONF > /dev/null <<EOF
|
||||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
@@ -89,44 +93,54 @@ server {
|
||||
root $APP_DIR;
|
||||
index index.html;
|
||||
|
||||
# Статические файлы
|
||||
location / {
|
||||
try_files \$uri /index.html;
|
||||
}
|
||||
|
||||
# Прокси для FastAPI
|
||||
location /run {
|
||||
proxy_pass http://127.0.0.1:5000; # Прокси на сервер FastAPI, если он работает на localhost и порту 5000
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto \$scheme;
|
||||
}
|
||||
|
||||
error_page 404 /index.html;
|
||||
}
|
||||
EOF
|
||||
|
||||
# Создаем символическую ссылку для конфигурации
|
||||
sudo ln -sf $NGINX_CONF /etc/nginx/sites-enabled/
|
||||
ln -sf $NGINX_CONF /etc/nginx/sites-enabled/
|
||||
|
||||
# Проверяем конфигурацию Nginx
|
||||
sudo nginx -t
|
||||
nginx -t
|
||||
|
||||
# Перезапускаем Nginx
|
||||
sudo systemctl restart nginx
|
||||
systemctl restart nginx
|
||||
|
||||
# Настройка прав доступа к директории приложения
|
||||
echo "Настраиваем права доступа для Nginx..."
|
||||
sudo chown -R www-data:www-data $APP_DIR
|
||||
sudo chmod -R 755 $APP_DIR
|
||||
chown -R www-data:www-data $APP_DIR
|
||||
chmod -R 755 $APP_DIR
|
||||
|
||||
# Настраиваем доступ к домашней директории пользователя, если это требуется
|
||||
HOME_DIR=$(dirname "$APP_DIR")
|
||||
sudo chmod 755 $HOME_DIR
|
||||
chmod 755 $HOME_DIR
|
||||
|
||||
echo "Права доступа к директории приложения настроены."
|
||||
|
||||
# Открытие портов для Nginx
|
||||
echo "Открываем порты для Nginx..."
|
||||
sudo ufw allow 'Nginx Full'
|
||||
sudo ufw reload
|
||||
ufw allow 'Nginx Full'
|
||||
ufw reload
|
||||
|
||||
echo "Конфигурация Nginx завершена."
|
||||
|
||||
# Настройка HTTPS с помощью Certbot
|
||||
echo "Настраиваем HTTPS с помощью Certbot..."
|
||||
sudo certbot --nginx -n --agree-tos --email $EMAIL_ADR -d $DOMAIN_NAME
|
||||
echo "Настроим HTTPS с помощью Certbot..."
|
||||
certbot --nginx -n --agree-tos --email $EMAIL_ADR -d $DOMAIN_NAME
|
||||
|
||||
# Завершение
|
||||
echo "Настройка завершена. Приложение доступно по адресу $DOMAIN_NAME"
|
||||
|
||||
Reference in New Issue
Block a user