Redis DB, Username e Password, Ajuste no Env e Docker Compose
This commit is contained in:
parent
22217802a2
commit
35a75c5cbc
14
.env.example
14
.env.example
@ -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"
|
22
config.py
22
config.py
@ -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)}")
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
)
|
||||
|
||||
|
46
start.sh
46
start.sh
@ -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
|
@ -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
|
||||
)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user