Sign inSign up

jfxs/aerodebrief-rp

By jfxs

•Updated 29 days ago

A lightweight automatically updated AeroDebrief backend reverse proxy

Image
0

2.5K

jfxs/aerodebrief-rp repository overview

⁠AeroDebrief Backend

Django backend for the AeroDebrief flight analysis platform.

Software License semantic-release: angular Pipeline Status

Docker Hub The Docker Hub registry.

Quay.io The Quay.io registry.

Docker tags: 1.5.2-001, 1.5, 1, latest

⁠Overview

API backend for the AeroDebrief application. Handles flight data management and analysis. Uses Django Ninja for REST APIs and PostgreSQL for storage.

⁠Features

  • Fleet Management — Aircraft tracking (registration, type, MTOW).
  • User Management — Authentication via Django allauth⁠.
  • API — RESTful endpoints with Django Ninja⁠.
  • Docker — Containerized dev and deployment environments.
  • Code Quality — mypy/pyrefly (strict typing), ruff (lint/format), pre-commit hooks.
  • Testing — Unit tests and functional tests with pytest⁠ and factory_boy.
  • Task Automation — Common tasks managed with Taskfile⁠.

⁠Quick Start

⁠Prerequisites
⁠Installation
  1. Clone the repository:

    git clone https://gitlab.com/op_so/projects/aerodebrief-backend.git
    cd aerodebrief-backend
    
  2. Install dependencies:

    uv sync
    
  3. Set up the environment: Copy the example environment file and adjust as needed.

    cp env.example .env
    
  4. Create local data directories and start infrastructure:

    task 00:020-create-data-dir
    rm -rf ./.data/postgresql
    mkdir -p ./.data/postgresql && chmod 777 ./.data/postgresql
    docker compose up
    task 00:030-reset-db
    uv run manage.py runserver
    

    API: http://127.0.0.1:8000/api/v1
    Doc: http://127.0.0.1:8000/api/v1/docs
    Admin: http://127.0.0.1:8000/admin
    Mailpit: http://127.0.0.1:8025/
    PgAdmin: http://127.0.0.1:8888/

⁠Development

Common tasks are available via Taskfile:

⁠Code Quality & Testing
CommandDescription
task 00:110-formatFormat code with ruff.
task 00:120-lintLint with ruff.
task 00:130-type-checkType check with mypy and pyrefly.
task 00:220-run-testsRun tests with pytest.
task 00:999-pre-commitRun all pre-commit checks.
⁠Database Management
CommandDescription
task 00:030-reset-dbReset DB, run migrations, create superuser.
⁠Docker Local Dev
CommandDescription
task 00:710-docker-build-local-devBuild dev images locally (aerodebrief-api:dev, aerodebrief-rp:dev).
task 00:730-docker-test-localRun HTTP tests against the local Docker stack (port 8080).

Run the full local stack after building images:

docker compose -f compose.local.dev.yml up

⁠Software Bill of Materials

NameVersionType
alpine-baselayout3.7.2-r1apk
alpine-baselayout-data3.7.2-r1apk
alpine-keys2.6-r0apk
alpine-release3.24.1-r0apk
aom-libs3.14.1-r0apk
apache2-utils2.4.68-r0apk
apk-tools3.0.6-r0apk
apr1.7.6-r0apk
apr-util1.6.4-r0apk
brotli-libs1.2.0-r1apk
busybox1.37.0-r31apk
busybox-binsh1.37.0-r31apk
c-ares1.34.8-r0apk
ca-certificates20260611-r0apk
ca-certificates-bundle20260611-r0apk
curl8.21.0-r0apk
fontconfig2.17.1-r1apk
freetype2.14.3-r0apk
geoip1.6.12-r6apk
gettext-envsubst1.0-r0apk
libapk3.0.6-r0apk
libavif1.4.1-r0apk
libbsd0.12.2-r0apk
libbz21.0.8-r6apk
libcrypto33.5.7-r0apk
libcurl8.21.0-r0apk
libdav1d1.5.3-r0apk
libedit20260508.3.1-r1apk
libexpat2.8.3-r0apk
libgcc15.2.0-r5apk
libgd2.3.3-r10apk
libice1.1.2-r0apk
libidn22.3.8-r0apk
libintl1.0-r0apk
libjpeg-turbo3.1.3-r0apk
libmd1.2.0-r0apk
libncursesw6.6_p20260516-r0apk
libpng1.6.58-r1apk
libpsl0.21.5-r3apk
libsharpyuv1.6.0-r0apk
libsm1.2.6-r0apk
libssl33.5.7-r0apk
libstdc++15.2.0-r5apk
libunistring1.4.2-r0apk
libuuid2.42.1-r0apk
libwebp1.6.0-r0apk
libx111.8.13-r0apk
libxau1.0.12-r0apk
libxcb1.17.0-r2apk
libxdmcp1.1.5-r1apk
libxext1.3.7-r0apk
libxml22.13.9-r2apk
libxpm3.5.19-r0apk
libxslt1.1.43-r3apk
libxt1.3.1-r0apk
libyuv0.0.1928-r0apk
musl1.2.6-r2apk
musl-utils1.2.6-r2apk
ncurses-terminfo-base6.6_p20260516-r0apk
nghttp2-libs1.69.0-r0apk
nginx1.31.4-r1apk
nginx-module-geoip1.31.4-r1apk
nginx-module-image-filter1.31.4-r1apk
nginx-module-njs1.31.4.1.0.0-r1apk
nginx-module-xslt1.31.4-r1apk
pcre210.47-r1apk
scanelf1.3.9-r1apk
ssl_client1.37.0-r31apk
tiff4.7.1-r0apk
tzdata2026c-r0apk
xz-libs5.8.3-r0apk
zlib1.3.2-r0apk
zstd-libs1.5.7-r2apk

⁠Authors

⁠License

This project is licensed under the GNU Affero General Public License (AGPL) - see the LICENSE⁠ file for details.

Tag summary

Content type

Image

Digest

sha256:b3be2a642…

Size

25 MB

Last updated

29 days ago

docker pull jfxs/aerodebrief-rp