Sign inSign up

sarthak5109/sql-agent

By sarthak5109

β€’Updated 10 months ago

Image
0

591

sarthak5109/sql-agent repository overview

⁠SQL Agent - Docker Deployment Guide

⁠🐳 Quick Start

⁠Prerequisites
⁠Steps
  1. Configure environment variables:

    cp .env.docker .env
    

    Edit .env and add your MISTRAL_API_KEY and set a secure POSTGRES_PASSWORD.

  2. Build and start services:

    docker-compose up -d
    
  3. Run database migrations:

    docker-compose exec app sh -c "npx drizzle-kit migrate"
    
  4. Seed the database (optional):

    docker-compose exec app sh -c "npx tsx src/app/db/db.seed.ts"
    
  5. Access the application:

β πŸ› οΈ Docker Commands

⁠Start services
docker-compose up -d
⁠Stop services
docker-compose down
⁠View logs
docker-compose logs -f app
docker-compose logs -f postgres
⁠Rebuild after code changes
docker-compose up -d --build
⁠Run migrations
docker-compose exec app npx drizzle-kit migrate
⁠Access database shell
docker-compose exec postgres psql -U postgres -d sqlagent
⁠Check health status
curl http://localhost:3000/api/health

β πŸ—„οΈ Database Management

⁠Using Adminer UI

Start with database tools profile:

docker-compose --profile tools up -d

Access Adminer at http://localhost:8080⁠

  • System: PostgreSQL
  • Server: postgres
  • Username: postgres
  • Password: (from your .env)
  • Database: sqlagent
⁠Backup database
docker-compose exec postgres pg_dump -U postgres sqlagent > backup.sql
⁠Restore database
docker-compose exec -T postgres psql -U postgres sqlagent < backup.sql

β πŸ”§ Troubleshooting

⁠View container status
docker-compose ps
⁠Check container health
docker inspect --format='{{json .State.Health}}' sql-agent-app
⁠Reset everything
docker-compose down -v
docker-compose up -d --build

β πŸ“¦ Production Deployment

For production:

  1. Use secrets management for sensitive variables
  2. Set strong POSTGRES_PASSWORD
  3. Configure proper SSL certificates
  4. Set up reverse proxy (nginx/traefik)
  5. Enable backups with volume snapshots
  6. Use external managed database if preferred
⁠External Database

To use external PostgreSQL (like Neon), modify docker-compose.yml:

services:
  app:
    environment:
      DATABASE_URL: ${DATABASE_URL} # Point to external DB
    # Remove depends_on: postgres

β πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Next.js App   β”‚ :3000
β”‚   (sql-agent)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚             β”‚
    β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”
    β”‚ Postgresβ”‚   β”‚ Mistral  β”‚
    β”‚   :5432 β”‚   β”‚   API    β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
    β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”
    β”‚ Volume  β”‚
    β”‚  Data   β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β πŸ“Š Resource Requirements

Minimum:

  • CPU: 2 cores
  • RAM: 2GB
  • Disk: 10GB

Recommended:

  • CPU: 4 cores
  • RAM: 4GB
  • Disk: 20GB

Tag summary

Content type

Image

Digest

sha256:49f405995…

Size

91.9 MB

Last updated

10 months ago

docker pull sarthak5109/sql-agent