6.2 KiB
Executable File
6.2 KiB
Executable File
✅ Deployment Checklist
🎯 ДА, ТЕПЕРЬ всё работает через .env!
Что нужно сделать:
- ✅ Скопируйте example файл
- ✅ Заполните ВСЕ пароли
- ✅ Запустите deploy скрипт
- ✅ Готово!
📝 Быстрый старт (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- подробное руководство по deployHARDCODED_PASSWORDS_FIX.md- что было исправленоQUICK_START_CUSTOM_ADMIN.md- быстрый стартproduction.env- template с комментариями
Готово! Теперь система полностью безопасна и настраивается через .env! 🚀