Просмотр исходного кода

Add HAL module structure for deployment as CDN service

Enables deploying f1-circuits as a HAL module on ace behind Traefik,
serving track SVGs at f1-circuits.zurag.be.
master
jochen 2 дней назад
Родитель
Сommit
9faf9f4041
3 измененных файлов: 47 добавлений и 0 удалений
  1. +14
    -0
      module.yml
  2. +13
    -0
      service/Dockerfile
  3. +20
    -0
      service/docker-compose.yml

+ 14
- 0
module.yml Просмотреть файл

@@ -0,0 +1,14 @@
manifest: 2
name: f1-circuits
version: "1.0.0"
description: "F1 track layout CDN — serves SVG/PNG circuit maps by grand prix and year"

env:
DOMAIN:
from: node.domain
default: localhost

docker:
- image: f1-circuits
context: .
dockerfile: service/Dockerfile

+ 13
- 0
service/Dockerfile Просмотреть файл

@@ -0,0 +1,13 @@
FROM python:3.12-slim

WORKDIR /app

RUN pip install --no-cache-dir fastapi uvicorn fastf1 python-slugify

COPY cdn-api.py circuits_service.py ergast_service.py ./
COPY models/ ./models/
COPY circuits/ ./circuits/

EXPOSE 8000

CMD ["uvicorn", "cdn-api:app", "--host", "0.0.0.0", "--port", "8000"]

+ 20
- 0
service/docker-compose.yml Просмотреть файл

@@ -0,0 +1,20 @@
services:
f1-circuits:
image: registry-api.novox.be/novox/f1-circuits:latest
container_name: f1-circuits
restart: unless-stopped
volumes:
- ./cache:/app/cache
labels:
traefik.enable: "true"
traefik.http.routers.f1-circuits.rule: "Host(`f1-circuits.${DOMAIN:-localhost}`)"
traefik.http.routers.f1-circuits.entrypoints: websecure
traefik.http.routers.f1-circuits.tls.certresolver: le
traefik.http.services.f1-circuits.loadbalancer.server.port: "8000"
# CDN cache headers are set by the app itself
networks:
- proxy

networks:
proxy:
external: true

Загрузка…
Отмена
Сохранить