Redis DB, Username e Password, Ajuste no Env e Docker Compose

This commit is contained in:
DelBuiTechCorporation 2025-01-17 04:17:39 +00:00
parent 22217802a2
commit 35a75c5cbc
6 changed files with 87 additions and 16 deletions

View File

@ -10,3 +10,17 @@ MANAGER_PASSWORD=impacteai2024
FASTAPI_PORT=8005
STREAMLIT_PORT=8501
HOST=0.0.0.0
API_DOMAIN=seu.dominio.com #coloque seu subdominio da API apontado aqui
#Redis
REDIS_HOST=redis-transcrevezap
REDIS_PORT=6380 # Porta personalizada para o Redis do TranscreveZAP
REDIS_DB=0 # Opcional: pode ser removida para usar o valor padrão
REDIS_USERNAME=impacteai # Usuário Redis
REDIS_PASSWORD=trascrevezap # Senha Redis
#Env's Obrigatórios
GROQ_API_KEY=gsk_abc123... # Chave da API GROQ (deve começar com 'gsk_')
BUSINESS_MESSAGE=substitua_sua_mensagem_de_servico_aqui # Mensagem de rodapé após transcrição
PROCESS_GROUP_MESSAGES=false # Habilita processamento de mensagens em grupos - Padrão "false"
PROCESS_SELF_MESSAGES=true # Habilita processamento de mensagens enviadas por você - Padrão "true"

View File

@ -29,14 +29,28 @@ logger.addHandler(handler)
# Nível de log inicial (pode ser ajustado após o carregamento de configurações)
logger.setLevel(logging.INFO)
# Conexão com o Redis
# Conexão com o Redis usando username e password
redis_client = redis.Redis(
host=os.getenv('REDIS_HOST', 'localhost'),
port=int(os.getenv('REDIS_PORT', 6380)),
db=int(os.getenv('REDIS_DB', '0')),
port=int(os.getenv('REDIS_PORT', 6379)),
username=os.getenv('REDIS_USERNAME', 'default'), # Nome de usuário padrão
password=os.getenv('REDIS_PASSWORD', ''), # Senha padrão
db=int(os.getenv('REDIS_DB', 0)), # Banco de dados padrão
decode_responses=True
)
# Testar conexão com Redis
try:
redis_client.ping()
logger.info("Conexão com Redis estabelecida com sucesso!")
except redis.exceptions.AuthenticationError:
logger.critical("Falha de autenticação no Redis. Verifique as credenciais.")
raise
except Exception as e:
logger.critical(f"Erro ao conectar ao Redis: {e}")
raise
# Classe Settings para gerenciar configurações
class Settings:
"""Classe para gerenciar configurações do sistema."""
def __init__(self):
@ -110,4 +124,4 @@ def load_settings():
# Ajustar nível de log
log_level = getattr(logging, settings.LOG_LEVEL, logging.INFO)
logger.setLevel(log_level)
logger.info(f"Nível de log ajustado para: {logging.getLevelName(log_level)}")
logger.info(f"Nível de log ajustado para: {logging.getLevelName(log_level)}")

View File

@ -21,6 +21,12 @@ services:
- REDIS_HOST=redis-transcrevezap
- REDIS_PORT=6380 # Porta personalizada para o Redis do TranscreveZAP
- REDIS_DB=0 # Opcional: pode ser removida para usar o valor padrão
- REDIS_USERNAME=impacteai # Usuário Redis
- REDIS_PASSWORD=trascrevezap # Senha Redis
- GROQ_API_KEY=gsk_abc123... # Chave da API GROQ (deve começar com 'gsk_')
- BUSINESS_MESSAGE=substitua_sua_mensagem_de_servico_aqui # Mensagem de rodapé após transcrição
- PROCESS_GROUP_MESSAGES=false # Habilita processamento de mensagens em grupos - Padrão "false"
- PROCESS_SELF_MESSAGES=true # Habilita processamento de mensagens enviadas por você - Padrão "true"
depends_on:
- redis-transcrevezap
deploy:

View File

@ -15,10 +15,13 @@ st.set_page_config(
initial_sidebar_state="expanded",
)
# 2. Depois: Inicialização do Redis
# Conexão com o Redis usando username e password
redis_client = redis.Redis(
host=os.getenv('REDIS_HOST', 'localhost'),
port=int(os.getenv('REDIS_PORT', 6380)),
port=int(os.getenv('REDIS_PORT', 6379)),
username=os.getenv('REDIS_USERNAME', 'default'), # Nome de usuário padrão
password=os.getenv('REDIS_PASSWORD', ''), # Senha padrão
db=int(os.getenv('REDIS_DB', 0)), # Banco de dados padrão
decode_responses=True
)

View File

@ -2,28 +2,60 @@
# Função para inicializar configurações no Redis se não existirem
initialize_redis_config() {
redis-cli -h $REDIS_HOST -p $REDIS_PORT SET GROQ_API_KEY "sua_api_key_aqui" NX
redis-cli -h $REDIS_HOST -p $REDIS_PORT SET BUSINESS_MESSAGE "*Impacte AI* Premium Services" NX
redis-cli -h $REDIS_HOST -p $REDIS_PORT SET PROCESS_GROUP_MESSAGES "false" NX
redis-cli -h $REDIS_HOST -p $REDIS_PORT SET PROCESS_SELF_MESSAGES "true" NX
redis-cli -h $REDIS_HOST -p $REDIS_PORT SET API_DOMAIN "$API_DOMAIN" NX
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" \
--user "$REDIS_USERNAME" \
-a "$REDIS_PASSWORD" \
-n "$REDIS_DB" \
SET GROQ_API_KEY "$GROQ_API_KEY" NX
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" \
--user "$REDIS_USERNAME" \
-a "$REDIS_PASSWORD" \
-n "$REDIS_DB" \
SET BUSINESS_MESSAGE "$BUSINESS_MESSAGE" NX
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" \
--user "$REDIS_USERNAME" \
-a "$REDIS_PASSWORD" \
-n "$REDIS_DB" \
SET PROCESS_GROUP_MESSAGES "$PROCESS_GROUP_MESSAGES" NX
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" \
--user "$REDIS_USERNAME" \
-a "$REDIS_PASSWORD" \
-n "$REDIS_DB" \
SET PROCESS_SELF_MESSAGES "$PROCESS_SELF_MESSAGES" NX
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" \
--user "$REDIS_USERNAME" \
-a "$REDIS_PASSWORD" \
-n "$REDIS_DB" \
SET API_DOMAIN "$API_DOMAIN" NX
}
# Aguardar o Redis estar pronto
echo "Aguardando o Redis ficar disponível..."
until redis-cli -h $REDIS_HOST -p $REDIS_PORT PING; do
until redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" \
--user "$REDIS_USERNAME" \
-a "$REDIS_PASSWORD" \
-n "$REDIS_DB" \
PING | grep -q PONG; do
echo "Redis não está pronto - aguardando..."
sleep 5
done
echo "Redis está disponível."
# Inicializar configurações no Redis (apenas se não existirem)
initialize_redis_config
# Iniciar o FastAPI em background
echo "Iniciando o FastAPI..."
uvicorn main:app --host 0.0.0.0 --port 8005 &
# Iniciar o Streamlit
streamlit run manager.py --server.address 0.0.0.0 --server.port 8501
echo "Iniciando o Streamlit..."
streamlit run manager.py --server.address 0.0.0.0 --server.port 8501 &
# Manter o script rodando
wait

View File

@ -19,11 +19,13 @@ class StorageHandler:
self.logger.setLevel(logging.DEBUG)
self.logger.info("StorageHandler inicializado.")
# Conexão com o Redis
# Conexão com o Redis usando username e password
self.redis = redis.Redis(
host=os.getenv('REDIS_HOST', 'localhost'),
port=int(os.getenv('REDIS_PORT', 6380)),
db=0,
port=int(os.getenv('REDIS_PORT', 6379)),
username=os.getenv('REDIS_USERNAME', 'default'), # Nome de usuário padrão
password=os.getenv('REDIS_PASSWORD', ''), # Senha padrão
db=int(os.getenv('REDIS_DB', 0)), # Banco de dados padrão
decode_responses=True
)