Добавить скрипт установки для развертывания HTML с использованием NGINX и Certbot
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# sites-auth
|
||||
|
||||
Коллекция статических HTML-страниц, стилизованных под экраны авторизации разных сервисов.
|
||||
|
||||
## Что внутри
|
||||
|
||||
Проект содержит готовые HTML-файлы (по одному экрану на сервис) и скрипт автоматического деплоя:
|
||||
|
||||
- `affine.html`
|
||||
- `auth0.html`
|
||||
- `clerk.html`
|
||||
- `coolify.html`
|
||||
- `gitea.html`
|
||||
- `google.html`
|
||||
- `habr.html`
|
||||
- `okta.html`
|
||||
- `supabase.html`
|
||||
- `vaultwarden.html`
|
||||
- `wiki.html`
|
||||
- `zipline.html`
|
||||
- `install.sh` — деплой выбранного случайно HTML на домен
|
||||
|
||||
## Локальный просмотр
|
||||
|
||||
Откройте любой HTML-файл напрямую в браузере или поднимите простой локальный сервер:
|
||||
|
||||
```bash
|
||||
cd /path/to/sites-auth
|
||||
python3 -m http.server 8080
|
||||
```
|
||||
|
||||
После этого откройте:
|
||||
|
||||
- http://localhost:8080/zipline.html
|
||||
- http://localhost:8080/google.html
|
||||
- и т.д.
|
||||
|
||||
## Деплой на сервер (Nginx + Let's Encrypt)
|
||||
|
||||
Скрипт `install.sh`:
|
||||
|
||||
1. Устанавливает зависимости (`git`, `nginx`, `certbot`, `python3-certbot-nginx`)
|
||||
2. Клонирует репозиторий во временную директорию
|
||||
3. Выбирает случайный `.html` файл
|
||||
4. Копирует его как `index.html` в `/var/www/<domain>`
|
||||
5. Создает конфиг Nginx для домена
|
||||
6. Выпускает SSL-сертификат через Certbot
|
||||
|
||||
### Требования
|
||||
|
||||
- Ubuntu/Debian-сервер с `apt`
|
||||
- Права `root` или `sudo`
|
||||
- Домен, уже направленный на IP сервера
|
||||
- Открытые порты `80` и `443`
|
||||
|
||||
### Запуск
|
||||
|
||||
```bash
|
||||
sudo bash install.sh --domain example.com
|
||||
```
|
||||
|
||||
По завершении выбранная случайная страница будет доступна по:
|
||||
|
||||
- https://example.com
|
||||
|
||||
## Примечания
|
||||
|
||||
- Скрипт предполагает сетевой доступ к репозиторию, указанному внутри `install.sh`.
|
||||
- При повторном запуске для того же домена конфигурация Nginx будет обновлена.
|
||||
- Временная директория после деплоя удаляется автоматически.
|
||||
|
||||
## Лицензия
|
||||
|
||||
Добавьте файл лицензии (`LICENSE`) при необходимости использования в публичных или коммерческих проектах.
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Usage: sudo ./deploy_random_html.sh --domain example.com
|
||||
|
||||
set -e
|
||||
|
||||
# --- ПАРСИНГ ПАРАМЕТРОВ ---
|
||||
if [[ "$1" != "--domain" || -z "$2" ]]; then
|
||||
echo "Usage: $0 --domain example.com"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DOMAIN="$2"
|
||||
REPO_URL="https://gitea.creative-tg1.ru/CREATIVE_tg1/sites-auth.git"
|
||||
DEPLOY_DIR="/var/www/$DOMAIN"
|
||||
|
||||
# --- УСТАНОВКА ЗАВИСИМОСТЕЙ ---
|
||||
apt update
|
||||
apt install -y git nginx certbot python3-certbot-nginx
|
||||
|
||||
# --- КЛОНИРОВАНИЕ РЕПО ---
|
||||
TMP_DIR=$(mktemp -d)
|
||||
git clone "$REPO_URL" "$TMP_DIR"
|
||||
|
||||
# --- ВЫБОР СЛУЧАЙНОГО HTML ФАЙЛА ---
|
||||
HTML_FILE=$(find "$TMP_DIR" -type f -name "*.html" | shuf -n 1)
|
||||
|
||||
if [[ -z "$HTML_FILE" ]]; then
|
||||
echo "Нет HTML файлов в репозитории!"
|
||||
rm -rf "$TMP_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# --- ПОДГОТОВКА ПАПКИ ДЛЯ ДОСТУПА ---
|
||||
mkdir -p "$DEPLOY_DIR"
|
||||
cp "$HTML_FILE" "$DEPLOY_DIR/index.html"
|
||||
|
||||
# --- НАСТРОЙКА NGINX ---
|
||||
NGINX_CONF="/etc/nginx/sites-available/$DOMAIN"
|
||||
cat > "$NGINX_CONF" <<EOL
|
||||
server {
|
||||
listen 80;
|
||||
server_name $DOMAIN;
|
||||
|
||||
root $DEPLOY_DIR;
|
||||
index index.html;
|
||||
|
||||
location / {
|
||||
try_files \$uri \$uri/ =404;
|
||||
}
|
||||
}
|
||||
EOL
|
||||
|
||||
ln -sf "$NGINX_CONF" /etc/nginx/sites-enabled/
|
||||
nginx -t
|
||||
systemctl reload nginx
|
||||
|
||||
# --- SSL через Certbot ---
|
||||
certbot --nginx -d "$DOMAIN" --non-interactive --agree-tos -m admin@$DOMAIN
|
||||
|
||||
# --- УДАЛЕНИЕ ВРЕМЕННОГО РЕПО ---
|
||||
rm -rf "$TMP_DIR"
|
||||
|
||||
echo "Готово! $DOMAIN развернут с файлом $(basename "$HTML_FILE") и временные файлы удалены."
|
||||
Reference in New Issue
Block a user