diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a2b839e --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,25 @@ +services: + sentient-jimmy: + image: sentient-jimmy:latest + depends_on: + db: + condition: service_healthy + environment: + - DATABASE_URL=postgres://postgres:password@db:5432/postgres + volumes: + - ./config.toml:/jimmy/config.toml:ro + db: + image: postgres:16 + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=password + - POSTGRES_DB=postgres + volumes: + - postgres_data:/var/lib/postgresql/data/ + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U postgres" ] + interval: 1s + timeout: 30s + retries: 10 +volumes: + postgres_data: \ No newline at end of file diff --git a/jimmy/cogs/chat.py b/jimmy/cogs/chat.py index de660e0..2e05e6d 100644 --- a/jimmy/cogs/chat.py +++ b/jimmy/cogs/chat.py @@ -9,9 +9,9 @@ import discord from discord import Interaction from ollama import AsyncClient, ResponseError, Options from discord.ext import commands -from jimmy .utils import create_ollama_message, find_suitable_server, decorate_server_name as decorate_name -from jimmy .config import get_servers, get_server -from jimmy .db import OllamaThread +from jimmy.utils import create_ollama_message, find_suitable_server, decorate_server_name as decorate_name +from jimmy.config import get_servers, get_server +from jimmy.db import OllamaThread from humanize import naturalsize, naturaldelta diff --git a/jimmy/config.py b/jimmy/config.py index 10b144f..ddbe244 100644 --- a/jimmy/config.py +++ b/jimmy/config.py @@ -1,3 +1,4 @@ +import os import tomllib import logging from typing import Callable @@ -66,4 +67,6 @@ def get_config(): _loaded.setdefault("servers", {}) _loaded["servers"].setdefault("order", []) _loaded.setdefault("bot", {}) + if database_url := os.getenv("DATABASE_URL"): + _loaded["bot"]["db_url"] = database_url return _loaded