mirror of
https://github.com/elisiariocouto/leggen.git
synced 2025-12-13 14:52:16 +00:00
This major update transforms leggen from CLI-only to a web-ready architecture while maintaining full CLI compatibility. New Features: - FastAPI backend service (leggend) with comprehensive REST API - Background job scheduler with configurable cron (replaces Ofelia) - All CLI commands refactored to use API endpoints - Docker configuration updated for new services - API client with health checks and error handling API Endpoints: - /api/v1/banks/* - Bank connections and institutions - /api/v1/accounts/* - Account management and balances - /api/v1/transactions/* - Transaction retrieval with filtering - /api/v1/sync/* - Manual sync and scheduler configuration - /api/v1/notifications/* - Notification settings management CLI Enhancements: - New --api-url option and LEGGEND_API_URL environment variable - Enhanced sync command with --wait and --force options - Improved transactions command with --full and --limit options - Automatic fallback and health checking Breaking Changes: - compose.yml structure updated (leggend service added) - Ofelia scheduler removed (internal scheduler used instead) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
32 lines
1020 B
Docker
32 lines
1020 B
Docker
FROM python:3.13-alpine AS builder
|
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
|
|
WORKDIR /app
|
|
|
|
RUN --mount=type=cache,target=/root/.cache/uv \
|
|
--mount=type=bind,source=uv.lock,target=uv.lock \
|
|
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
|
|
uv sync --frozen --no-install-project --no-editable
|
|
|
|
COPY . /app
|
|
|
|
RUN --mount=type=cache,target=/root/.cache/uv \
|
|
uv sync --frozen --no-editable --no-group dev
|
|
|
|
FROM python:3.13-alpine
|
|
|
|
LABEL org.opencontainers.image.source="https://github.com/elisiariocouto/leggen"
|
|
LABEL org.opencontainers.image.authors="Elisiário Couto <elisiario@couto.io>"
|
|
LABEL org.opencontainers.image.licenses="MIT"
|
|
LABEL org.opencontainers.image.title="leggend"
|
|
LABEL org.opencontainers.image.description="Leggen API service"
|
|
LABEL org.opencontainers.image.url="https://github.com/elisiariocouto/leggen"
|
|
|
|
WORKDIR /app
|
|
ENV PATH="/app/.venv/bin:$PATH"
|
|
|
|
COPY --from=builder --chown=app:app /app/.venv /app/.venv
|
|
|
|
EXPOSE 8000
|
|
|
|
ENTRYPOINT ["/app/.venv/bin/leggend"] |