diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..b3926fb --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,24 @@ +FROM python:3.11-slim + +# Dev tools — not needed in production, but essential for development +RUN apt-get update && apt-get install -y --no-install-recommends \ + git \ + curl \ + ffmpeg \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app + +# Install Python dependencies +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +# Environment defaults (override via devcontainer.json remoteEnv) +ENV OLLAMA_URL=http://host.docker.internal:11434/api/generate +ENV MODEL_NAME=gemma4:e2b +ENV PORT=8080 +ENV POLL_INTERVAL=21600 +ENV DATA_DIR=/app/data +ENV TTS_VOICE=af_heart + +RUN mkdir -p /app/data/audio diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..ee1c3db --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,34 @@ +{ + "name": "Guardian Newscast Pipeline", + "build": { + "dockerfile": "Dockerfile" + }, + "forwardPorts": [8080], + "portsAttributes": { + "8080": { + "label": "Newscast API", + "onAutoForward": "notify" + } + }, + "postCreateCommand": "pip install -r requirements.txt", + "customizations": { + "vscode": { + "extensions": [ + "ms-python.python", + "ms-python.vscode-pylance" + ], + "settings": { + "python.defaultInterpreterPath": "/usr/local/bin/python", + "python.envFile": "${workspaceFolder}/.env" + } + } + }, + "remoteEnv": { + "OLLAMA_URL": "http://host.docker.internal:11434/api/generate", + "MODEL_NAME": "gemma4:e2b", + "PORT": "8080", + "POLL_INTERVAL": "21600", + "TTS_VOICE": "af_heart", + "DATA_DIR": "${workspaceFolder}/data" + } +}