diff --git a/README.md b/README.md new file mode 100644 index 0000000..fbcccb5 --- /dev/null +++ b/README.md @@ -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/` +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`) при необходимости использования в публичных или коммерческих проектах. diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..3a1b6db --- /dev/null +++ b/install.sh @@ -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" <