Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 28 additions & 69 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,76 +1,35 @@
version: '3.8'

volumes:
db_data:
driver: local

services:
stackdog:
container_name: stackdog
build:
context: .
dockerfile: docker/local/Dockerfile
target: development
entrypoint: ["/bin/sh", "-c"]
command:
- |
echo "Waiting for dependencies..."
sleep 5
echo "Starting Stackdog..."
cargo run --bin stackdog
image: trydirect/stackdog:latest
ports:
- "${APP_PORT:-5000}:${APP_PORT:-5000}"
env_file:
- .env
- target: 5000
published: 5000
environment:
- RUST_LOG=debug
- RUST_BACKTRACE=full
volumes:
- db_data:/app/db
- ./.env:/app/.env:ro
- ./src:/app/src:ro
- ./Cargo.toml:/app/Cargo.toml:ro
- ./migrations:/app/migrations:ro
APP_HOST: 0.0.0.0
APP_PORT: 5000
DATABASE_URL: /data/stackdog.db
STACKDOG_SNIFF_INTERVAL: 600
STACKDOG_AI_PROVIDER: openai
STACKDOG_AI_API_URL: https://api.openai.com/v1
STACKDOG_AI_MODEL: gpt-4o-mini
STACKDOG_AI_API_KEY: <yourkeyhere>
STACKDOG_SLACK_WEBHOOK_URL: <yourslackchannelwebhook?
STACKDOG_LOG_SOURCES: /var/log/syslog,/var/log/auth.log
restart: unless-stopped
volumes:
- source: stackdog-data
target: /data
type: volume
- source: /var/run/docker.sock
target: /var/run/docker.sock
type: bind
networks:
- stackdog_network

# Optional: PostgreSQL (if you want to switch from SQLite)
# postgres:
# container_name: stackdog_postgres
# image: postgres:15-alpine
# environment:
# POSTGRES_USER: stackdog
# POSTGRES_PASSWORD: stackdog_password
# POSTGRES_DB: stackdog
# volumes:
# - postgres_data:/var/lib/postgresql/data
# ports:
# - "5432:5432"
# networks:
# - stackdog_network
# profiles:
# - postgres

# Optional: Adminer for database management
adminer:
container_name: stackdog_adminer
image: adminer:latest
ports:
- "8080:8080"
environment:
- ADMINER_DEFAULT_SERVER=postgres
profiles:
- adminer
networks:
- stackdog_network
depends_on:
- postgres

- default_network
command: serve
volumes:
stackdog-data:
name: stackdog-data
networks:
stackdog_network:
driver: bridge

# Uncomment to use PostgreSQL instead of SQLite
# volumes:
# postgres_data:
default_network:
external: true
name: default_network
Loading