Version: CalVer + git hash shown in top-right corner of main page. Built via Docker ARG BUILD_VERSION at build time. Served via /api-version. Issues Board: shared notepad window for tracking issues with plugin, overlord, nav files, macros. Stored in openissues.json on server. - GET/POST/DELETE /issues endpoints - Draggable window matching Chat/Radar pattern - Category tags (plugin, overlord, nav, macro, other) with colors - Add/resolve issues through the UI Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
46 lines
1.4 KiB
Docker
46 lines
1.4 KiB
Docker
# Dockerfile for Dereth Tracker application
|
|
# Base image: lightweight Python runtime
|
|
FROM python:3.12-slim
|
|
|
|
## Set application working directory
|
|
WORKDIR /app
|
|
|
|
# Upgrade pip and install required Python packages without caching
|
|
RUN python -m pip install --upgrade pip && \
|
|
pip install --no-cache-dir \
|
|
fastapi \
|
|
uvicorn \
|
|
pydantic \
|
|
websockets \
|
|
databases[postgresql] \
|
|
sqlalchemy \
|
|
alembic \
|
|
psycopg2-binary \
|
|
httpx
|
|
|
|
## Copy application source code and migration scripts into container
|
|
COPY static/ /app/static/
|
|
COPY main.py /app/main.py
|
|
COPY db.py /app/db.py
|
|
COPY db_async.py /app/db_async.py
|
|
COPY alembic.ini /app/alembic.ini
|
|
COPY alembic/ /app/alembic/
|
|
COPY Dockerfile /Dockerfile
|
|
## Expose the application port to host
|
|
EXPOSE 8765
|
|
|
|
## Build version (CalVer + git hash, set via --build-arg)
|
|
ARG BUILD_VERSION=dev
|
|
ENV APP_VERSION=$BUILD_VERSION
|
|
|
|
## Default environment variables for application configuration
|
|
ENV DATABASE_URL=postgresql://postgres:password@db:5432/dereth \
|
|
DB_MAX_SIZE_MB=2048 \
|
|
DB_RETENTION_DAYS=7 \
|
|
DB_MAX_SQL_LENGTH=1000000000 \
|
|
DB_MAX_SQL_VARIABLES=32766 \
|
|
DB_WAL_AUTOCHECKPOINT_PAGES=1000 \
|
|
SHARED_SECRET=your_shared_secret
|
|
|
|
## Launch the FastAPI app using Uvicorn
|
|
CMD ["uvicorn","main:app","--host","0.0.0.0","--port","8765","--reload","--workers","1","--no-access-log","--log-level","warning"]
|