"""Генерирует .env со случайными учётными данными (не перезаписывает существующий).""" import base64 import os import pathlib import secrets env = pathlib.Path(__file__).resolve().parent.parent / ".env" if env.exists(): print(f"{env} уже существует — пропускаю") else: env.write_text( "POSTGRES_DB=ipam\n" "POSTGRES_USER=ipam\n" f"POSTGRES_PASSWORD={secrets.token_urlsafe(24)}\n" f"JWT_SECRET={secrets.token_urlsafe(48)}\n" "ADMIN_USERNAME=admin\n" f"ADMIN_PASSWORD={secrets.token_urlsafe(18)}\n" "APP_PORT=8088\n" "DB_HOST_PORT=55432\n" # изменение 037: ключ шифрования секретов TOTP (Fernet). Потеря ключа означает сброс 2FA всем пользователям. f"TOTP_ENC_KEY={base64.urlsafe_b64encode(os.urandom(32)).decode()}\n" ) env.chmod(0o600) print(f"создан {env}")