Files
Remote-Control-Center/guacamole_test_11_26/docs/DEPLOYMENT_CHECKLIST.md
2025-11-25 09:58:37 +03:00

6.2 KiB
Executable File
Raw Blame History

Deployment Checklist

🎯 ДА, ТЕПЕРЬ всё работает через .env!

Что нужно сделать:

  1. Скопируйте example файл
  2. Заполните ВСЕ пароли
  3. Запустите deploy скрипт
  4. Готово!

📝 Быстрый старт (3 минуты):

cd GuacamoleRemoteAccess

# 1. Создайте .env из примера
cp production.env .env

# 2. Сгенерируйте безопасные пароли
echo "REDIS_PASSWORD=$(openssl rand -base64 32)"
echo "POSTGRES_PASSWORD=$(openssl rand -base64 32)"
echo "SYSTEM_ADMIN_PASSWORD=$(openssl rand -base64 32)"

# 3. Вставьте пароли в .env
nano .env
# Замените все CHANGE_ME_* на сгенерированные пароли

# 4. Запустите автоматический деплой
chmod +x deploy.sh
./deploy.sh

Скрипт автоматически:

  • Проверит ВСЕ пароли
  • Сгенерирует SQL с вашими credentials
  • Запустит контейнеры безопасно

🔐 Обязательные переменные в .env:

# 🔒 ЭТИ 3 ПАРОЛЯ ОБЯЗАТЕЛЬНЫ!

REDIS_PASSWORD=ваш_безопасный_пароль_1
POSTGRES_PASSWORD=ваш_безопасный_пароль_2
SYSTEM_ADMIN_PASSWORD=ваш_безопасный_пароль_3

# 📝 Логин можно менять!
SYSTEM_ADMIN_USERNAME=guacadmin  # Или любое другое имя

Нигде больше НЕТ привязки к дефолтным паролям!

Проверено и исправлено:

Компонент Статус
guacamole_auth.py Нет fallback
redis_storage.py Нет fallback
ecdh_session.py Нет fallback
csrf_protection.py Нет fallback
saved_machines_db.py Нет fallback
docker-compose.yml (redis) Нет fallback
docker-compose.yml (postgres) Нет fallback
docker-compose.yml (api) Нет fallback
deploy.sh Проверяет пароли

ИТОГО: 0 захардкоженных паролей в коде! 🎉


🚨 Что произойдет если НЕ установить пароли:

1. Deploy скрипт НЕ ЗАПУСТИТСЯ:

./deploy.sh

[ERROR] REDIS_PASSWORD is not set or using default value!
[ERROR] POSTGRES_PASSWORD is not set or using default value!
[ERROR] SYSTEM_ADMIN_PASSWORD must be set!
[ERROR]
[ERROR] Critical passwords are missing or insecure!
Exit 1

2. Docker Compose УПАДЕТ:

docker compose up -d

ERROR: The Compose file is invalid because:
services.redis.command contains an invalid type

3. Python приложение УПАДЕТ:

# Redis connection attempt
password=os.getenv("REDIS_PASSWORD")  # Returns None
redis.Redis(password=None)  # Redis AUTH error → crash

Три уровня защиты = невозможно запустить без паролей!


📊 Примеры .env (правильные):

ПРАВИЛЬНО:

# Все пароли установлены
REDIS_PASSWORD=Xk7N9pQ2vT8mL5wR3jH6yU4aF1sD0eG9
POSTGRES_PASSWORD=aB3cD4eF5gH6iJ7kL8mN9oP0qR1sT2u
SYSTEM_ADMIN_USERNAME=admin  # Можно менять!
SYSTEM_ADMIN_PASSWORD=uV3wX4yZ5aB6cD7eF8gH9iJ0kL1mN2o

НЕПРАВИЛЬНО:

# Дефолтные пароли
REDIS_PASSWORD=redis_pass  # ← Deploy скрипт НЕ ЗАПУСТИТСЯ
POSTGRES_PASSWORD=guacamole_pass  # ← Deploy скрипт НЕ ЗАПУСТИТСЯ
SYSTEM_ADMIN_PASSWORD=guacadmin  # ← Предупреждение + подтверждение

НЕПРАВИЛЬНО:

# Пароли не установлены
# REDIS_PASSWORD=  # ← Deploy скрипт НЕ ЗАПУСТИТСЯ
# POSTGRES_PASSWORD=  # ← Deploy скрипт НЕ ЗАПУСТИТСЯ
SYSTEM_ADMIN_PASSWORD=SecurePass123!

🔄 Процесс деплоя:

1. Проверка requirements ✅
2. Загрузка .env ✅
3. Проверка REDIS_PASSWORD ✅
4. Проверка POSTGRES_PASSWORD ✅
5. Проверка SYSTEM_ADMIN credentials ✅
6. Генерация SQL с вашими credentials ✅
7. Запуск контейнеров ✅
8. Проверка что всё работает ✅

Если любая проверка провалится → деплой остановится!


🎯 FAQ:

Q: Можно ли использовать любой логин для админа?

ДА! Установите SYSTEM_ADMIN_USERNAME=любое_имя

Q: Нужно ли менять пароль в Guacamole UI после деплоя?

НЕТ! Deploy скрипт автоматически создаст пользователя с вашим паролем.

Q: Что если я забуду установить пароль?

Deploy скрипт не запустится и покажет что именно нужно исправить.

Q: Можно ли использовать docker compose up напрямую?

⚠️ Можно, НО без проверок deploy скрипта. Лучше использовать ./deploy.sh.

Q: Где хранить пароли?

💾 В password manager (1Password, LastPass, Bitwarden) или secrets vault (HashiCorp Vault).


📚 Дополнительные ресурсы:

  • AUTO_DEPLOY_GUIDE.md - подробное руководство по deploy
  • HARDCODED_PASSWORDS_FIX.md - что было исправлено
  • QUICK_START_CUSTOM_ADMIN.md - быстрый старт
  • production.env - template с комментариями

Готово! Теперь система полностью безопасна и настраивается через .env! 🚀