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
|
FASTAPI_PORT=8005
|
||||||
STREAMLIT_PORT=8501
|
STREAMLIT_PORT=8501
|
||||||
HOST=0.0.0.0
|
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)
|
# Nível de log inicial (pode ser ajustado após o carregamento de configurações)
|
||||||
logger.setLevel(logging.INFO)
|
logger.setLevel(logging.INFO)
|
||||||
|
|
||||||
# Conexão com o Redis
|
# Conexão com o Redis usando username e password
|
||||||
redis_client = redis.Redis(
|
redis_client = redis.Redis(
|
||||||
host=os.getenv('REDIS_HOST', 'localhost'),
|
host=os.getenv('REDIS_HOST', 'localhost'),
|
||||||
port=int(os.getenv('REDIS_PORT', 6380)),
|
port=int(os.getenv('REDIS_PORT', 6379)),
|
||||||
db=int(os.getenv('REDIS_DB', '0')),
|
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
|
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:
|
class Settings:
|
||||||
"""Classe para gerenciar configurações do sistema."""
|
"""Classe para gerenciar configurações do sistema."""
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -110,4 +124,4 @@ def load_settings():
|
|||||||
# Ajustar nível de log
|
# Ajustar nível de log
|
||||||
log_level = getattr(logging, settings.LOG_LEVEL, logging.INFO)
|
log_level = getattr(logging, settings.LOG_LEVEL, logging.INFO)
|
||||||
logger.setLevel(log_level)
|
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_HOST=redis-transcrevezap
|
||||||
- REDIS_PORT=6380 # Porta personalizada para o Redis do 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_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:
|
depends_on:
|
||||||
- redis-transcrevezap
|
- redis-transcrevezap
|
||||||
deploy:
|
deploy:
|
||||||
|
@ -15,10 +15,13 @@ st.set_page_config(
|
|||||||
initial_sidebar_state="expanded",
|
initial_sidebar_state="expanded",
|
||||||
)
|
)
|
||||||
|
|
||||||
# 2. Depois: Inicialização do Redis
|
# Conexão com o Redis usando username e password
|
||||||
redis_client = redis.Redis(
|
redis_client = redis.Redis(
|
||||||
host=os.getenv('REDIS_HOST', 'localhost'),
|
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
|
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
|
# Função para inicializar configurações no Redis se não existirem
|
||||||
initialize_redis_config() {
|
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" \
|
||||||
redis-cli -h $REDIS_HOST -p $REDIS_PORT SET BUSINESS_MESSAGE "*Impacte AI* Premium Services" NX
|
--user "$REDIS_USERNAME" \
|
||||||
redis-cli -h $REDIS_HOST -p $REDIS_PORT SET PROCESS_GROUP_MESSAGES "false" NX
|
-a "$REDIS_PASSWORD" \
|
||||||
redis-cli -h $REDIS_HOST -p $REDIS_PORT SET PROCESS_SELF_MESSAGES "true" NX
|
-n "$REDIS_DB" \
|
||||||
redis-cli -h $REDIS_HOST -p $REDIS_PORT SET API_DOMAIN "$API_DOMAIN" NX
|
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
|
# Aguardar o Redis estar pronto
|
||||||
echo "Aguardando o Redis ficar disponível..."
|
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..."
|
echo "Redis não está pronto - aguardando..."
|
||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
|
|
||||||
|
echo "Redis está disponível."
|
||||||
|
|
||||||
# Inicializar configurações no Redis (apenas se não existirem)
|
# Inicializar configurações no Redis (apenas se não existirem)
|
||||||
initialize_redis_config
|
initialize_redis_config
|
||||||
|
|
||||||
# Iniciar o FastAPI em background
|
# Iniciar o FastAPI em background
|
||||||
|
echo "Iniciando o FastAPI..."
|
||||||
uvicorn main:app --host 0.0.0.0 --port 8005 &
|
uvicorn main:app --host 0.0.0.0 --port 8005 &
|
||||||
|
|
||||||
# Iniciar o Streamlit
|
# 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
|
# Manter o script rodando
|
||||||
wait
|
wait
|
@ -19,11 +19,13 @@ class StorageHandler:
|
|||||||
self.logger.setLevel(logging.DEBUG)
|
self.logger.setLevel(logging.DEBUG)
|
||||||
self.logger.info("StorageHandler inicializado.")
|
self.logger.info("StorageHandler inicializado.")
|
||||||
|
|
||||||
# Conexão com o Redis
|
# Conexão com o Redis usando username e password
|
||||||
self.redis = redis.Redis(
|
self.redis = redis.Redis(
|
||||||
host=os.getenv('REDIS_HOST', 'localhost'),
|
host=os.getenv('REDIS_HOST', 'localhost'),
|
||||||
port=int(os.getenv('REDIS_PORT', 6380)),
|
port=int(os.getenv('REDIS_PORT', 6379)),
|
||||||
db=0,
|
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
|
decode_responses=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user