Deploy Greptile using Docker Compose - the recommended approach
# Clone the akupara repository git clone https://github.com/greptileai/akupara.git cd akupara # Or download the latest release wget https://github.com/greptileai/akupara/archive/refs/tags/v0.1.3.tar.gz tar -xzf v0.1.3.tar.gz cd akupara-0.1.3
cd docker
cp .env.example .env
.env
# Database Configuration POSTGRES_HOST=your-postgres-host POSTGRES_PORT=5432 POSTGRES_DB=greptile POSTGRES_USER=greptile_user POSTGRES_PASSWORD=your-secure-password # Redis Configuration REDIS_HOST=your-redis-host REDIS_PORT=6379 REDIS_PASSWORD=your-redis-password # LLM Configuration OPENAI_API_KEY=your-openai-key ANTHROPIC_API_KEY=your-anthropic-key # Application Configuration GREPTILE_API_HOST=api.yourdomain.com GREPTILE_WEB_HOST=app.yourdomain.com SSL_CERT_PATH=/path/to/your/cert.pem SSL_KEY_PATH=/path/to/your/key.pem # GitHub Integration GITHUB_APP_ID=your-github-app-id GITHUB_APP_PRIVATE_KEY_PATH=/path/to/github-private-key.pem
mkdir -p ssl cp /path/to/your/certificate.pem ssl/ cp /path/to/your/private-key.pem ssl/
# Start all services docker-compose up -d # Check service status docker-compose ps # View logs docker-compose logs -f
# Check application health curl https://api.yourdomain.com/health # Check database connectivity docker-compose exec greptile-api greptile-cli db:status # View service logs docker-compose logs greptile-api docker-compose logs greptile-web
-- Connect to your PostgreSQL database CREATE EXTENSION IF NOT EXISTS vector;
LLM_PROVIDER=openai OPENAI_API_KEY=your-api-key OPENAI_MODEL=gpt-4 EMBEDDING_PROVIDER=openai OPENAI_EMBEDDING_MODEL=text-embedding-ada-002
LLM_PROVIDER=anthropic ANTHROPIC_API_KEY=your-api-key ANTHROPIC_MODEL=claude-3-sonnet-20240229
LLM_PROVIDER=bedrock AWS_REGION=us-east-1 AWS_ACCESS_KEY_ID=your-access-key AWS_SECRET_ACCESS_KEY=your-secret-key BEDROCK_MODEL_ID=anthropic.claude-3-sonnet-20240229-v1:0
GITHUB_APP_ID=123456 GITHUB_APP_PRIVATE_KEY_PATH=/app/ssl/github-private-key.pem GITHUB_WEBHOOK_SECRET=your-webhook-secret
cd docker/terraform # Initialize Terraform terraform init # Plan the deployment terraform plan # Apply the infrastructure terraform apply
# Pull the latest images docker-compose pull # Restart services docker-compose down docker-compose up -d # Check update status docker-compose logs -f
# Database backup docker-compose exec postgres pg_dump -U greptile_user greptile > backup.sql # Redis backup (if using persistence) docker-compose exec redis redis-cli BGSAVE # Application data backup docker-compose exec greptile-api greptile-cli backup:create
# Service health docker-compose ps # Resource usage docker stats # Application logs docker-compose logs -f --tail=100 # Database status docker-compose exec postgres psql -U greptile_user -d greptile -c "\l"
# Check Docker daemon sudo systemctl status docker # Check compose file syntax docker-compose config # View detailed logs docker-compose logs service-name
# Test database connectivity docker-compose exec greptile-api nc -zv postgres-host 5432 # Check database logs docker-compose logs postgres
# Verify certificate files openssl x509 -in ssl/certificate.pem -text -noout # Check certificate expiration openssl x509 -in ssl/certificate.pem -noout -dates
# docker-compose.override.yml version: '3.8' services: greptile-api: deploy: resources: limits: memory: 4G cpus: '2.0' environment: - WORKER_PROCESSES=4 - MAX_CONNECTIONS=1000 postgres: environment: - POSTGRES_SHARED_BUFFERS=256MB - POSTGRES_EFFECTIVE_CACHE_SIZE=1GB
Was this page helpful?