Deploy rápido e fácil usando Docker!
# Clone o repositório
git clone https://github.com/avila-inc/ai-unified-studio.git
cd ai-unified-studio
# Configure variáveis de ambiente (opcional)
cp .env.example .env
# Edite .env e adicione suas API keys
# Inicie todos os serviços
docker-compose up -d
# Verificar logs
docker-compose logs -f
Pronto! A aplicação estará rodando em:
# Apenas Ollama
docker run -d \
--name ollama \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama:latest
# App
docker build -t ai-studio .
docker run -d \
--name ai-studio \
-p 8080:8080 \
-e OLLAMA_HOST=http://ollama:11434 \
--link ollama:ollama \
ai-studio
ollama_data (persistência de modelos)./pdf → /app/pdf./converted_ebooks → /app/converted_ebooks./stable-diffusion-models → /app/stable-diffusion-modelsPara habilitar ComfyUI, descomente as linhas no docker-compose.yml.
# APIs
DEEPSEEK_API_KEY=your_key_here
OPENAI_API_KEY=your_key_here
# Ollama
OLLAMA_HOST=http://ollama:11434
# Paths (dentro do container)
PDF_OUTPUT_FOLDER=/app/pdf
EBOOKS_OUTPUT_FOLDER=/app/converted_ebooks
Os seguintes dados são persistidos entre restarts:
volumes:
ollama_data: # Modelos Ollama baixados
app_data: # Configurações da app
./pdf: # PDFs baixados
./converted_ebooks: # eBooks convertidos
# Iniciar serviços
docker-compose up -d
# Parar serviços
docker-compose down
# Reiniciar serviços
docker-compose restart
# Ver logs
docker-compose logs -f app
# Ver status
docker-compose ps
# Acessar container do Ollama
docker exec -it ai-studio-ollama bash
# Baixar modelos
ollama pull llama3.2
ollama pull dolphin-llama3:8b
ollama pull gemma3:1b
ollama pull deepseek-r1:8b
# Listar modelos instalados
ollama list
# Sair
exit
# Pull nova versão
git pull origin main
# Rebuild e restart
docker-compose down
docker-compose build --no-cache
docker-compose up -d
# Backup de volumes
docker run --rm \
-v ollama_data:/data \
-v $(pwd):/backup \
alpine tar czf /backup/ollama_backup.tar.gz -C /data .
# Restore
docker run --rm \
-v ollama_data:/data \
-v $(pwd):/backup \
alpine tar xzf /backup/ollama_backup.tar.gz -C /data
# Verificar se está rodando
docker ps | grep ollama
# Verificar logs
docker logs ai-studio-ollama
# Restart
docker restart ai-studio-ollama
# Testar conexão
curl http://localhost:11434/api/generate
# Ver logs de erro
docker logs ai-studio-app
# Verificar permissões
ls -la pdf/ converted_ebooks/
# Rebuild container
docker-compose build --no-cache app
docker-compose up -d app
# Aumentar limite de memória do Docker
# Docker Desktop → Settings → Resources → Memory: 8GB+
# Verificar uso
docker stats
# Encontrar processo
# Linux/Mac
lsof -i :11434
lsof -i :8080
# Windows
netstat -ano | findstr :11434
netstat -ano | findstr :8080
# Mudar porta no docker-compose.yml
ports:
- "8081:8080" # Use 8081 em vez de 8080
# docker-compose.override.yml
services:
app:
volumes:
- .:/app
command: python -u app_gui.py
environment:
- PYTHONUNBUFFERED=1
docker-compose up -d
# Acessar shell do container
docker exec -it ai-studio-app bash
# Rodar comandos manualmente
python app_gui.py
python pdf_to_ebook_converter.py --help
# Verificar saúde dos containers
docker ps
# Health check manual
docker exec ai-studio-app python -c "import sys; sys.exit(0)"
# Todos os serviços
docker-compose logs -f
# Serviço específico
docker-compose logs -f app
docker-compose logs -f ollama
# Últimas 100 linhas
docker-compose logs --tail=100 app
# Uso de recursos em tempo real
docker stats
# Espaço em disco
docker system df
# Limpar recursos não usados
docker system prune -a
# Inicializar swarm
docker swarm init
# Deploy stack
docker stack deploy -c docker-compose.yml ai-studio
# Ver serviços
docker service ls
# Scale up
docker service scale ai-studio_app=3
# Criar deployment
kubectl create deployment ai-studio --image=ai-studio:latest
# Expor serviço
kubectl expose deployment ai-studio --type=LoadBalancer --port=8080
# Ver status
kubectl get pods
kubectl get services
# Build e tag
docker build -t seu-registry.com/ai-studio:1.0.0 .
# Push
docker push seu-registry.com/ai-studio:1.0.0
# Pull em outro servidor
docker pull seu-registry.com/ai-studio:1.0.0
# Usar usuário não-root (já implementado)
USER appuser
# Scan de vulnerabilidades
docker scan ai-studio:latest
# Usar multi-stage build (já implementado)
FROM python:3.11-slim as builder
# ...
FROM python:3.11-slim
# Usar Docker secrets (Swarm)
echo "sua_api_key" | docker secret create deepseek_key -
# Usar em compose
services:
app:
secrets:
- deepseek_key
# Build cache
docker build --cache-from ai-studio:latest -t ai-studio:latest .
# Limitar recursos
services:
app:
deploy:
resources:
limits:
cpus: '2'
memory: 4G
reservations:
memory: 2G
# Para ComfyUI/Stable Diffusion
services:
comfyui:
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
/ em vez de \ em volumes