feat: docker compose infrastructure — postgres+timescaledb, redis, ollama

This commit is contained in:
Viktor Barzin 2026-02-22 15:11:50 +00:00
parent 0ac9884b89
commit 75c8d5d203
No known key found for this signature in database
GPG key ID: 0EB088298288D958
3 changed files with 100 additions and 0 deletions

23
.env.example Normal file
View file

@ -0,0 +1,23 @@
# PostgreSQL
POSTGRES_PASSWORD=trading
# Trading Bot
TRADING_DATABASE_URL=postgresql+asyncpg://trading:trading@localhost:5432/trading
TRADING_REDIS_URL=redis://localhost:6379/0
TRADING_LOG_LEVEL=INFO
# Alpaca (paper trading)
ALPACA_API_KEY=your_api_key_here
ALPACA_SECRET_KEY=your_secret_key_here
ALPACA_BASE_URL=https://paper-api.alpaca.markets
# JWT
JWT_SECRET_KEY=change-me-in-production
# Reddit (for news fetcher)
REDDIT_CLIENT_ID=your_client_id
REDDIT_CLIENT_SECRET=your_client_secret
REDDIT_USER_AGENT=trading-bot/0.1
# Ollama
OLLAMA_HOST=http://localhost:11434

37
.gitignore vendored Normal file
View file

@ -0,0 +1,37 @@
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
*.egg-info/
*.egg
.eggs/
dist/
build/
.venv/
venv/
*.whl
# Node
node_modules/
dashboard/dist/
dashboard/build/
# Secrets
.env
*.pem
# IDE
.vscode/
.idea/
*.swp
*.swo
*~
# OS
.DS_Store
Thumbs.db
# Data
*.db
*.sqlite3

40
docker-compose.yml Normal file
View file

@ -0,0 +1,40 @@
services:
postgres:
image: timescale/timescaledb:latest-pg16
environment:
POSTGRES_USER: trading
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-trading}
POSTGRES_DB: trading
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U trading"]
interval: 5s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redisdata:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 5
ollama:
image: ollama/ollama:latest
ports:
- "11434:11434"
volumes:
- ollama_models:/root/.ollama
volumes:
pgdata:
redisdata:
ollama_models: