feat: add Open Graph image generation and SEO metadata

- Introduced `PageSeo` component for managing page metadata for social sharing.
- Created Open Graph image templates using SVG and static fonts for better visual representation.
- Implemented service alert management with functions to check active alerts and format route numbers.
- Added utility functions for generating and watching alert validity.
- Developed a script to generate Open Graph images dynamically based on page content.
- Included tests for service alert functionalities to ensure correctness and reliability.
This commit is contained in:
2026-10-05 13:02:06 +03:00
parent 6460846134
commit 142ec97959
35 changed files with 8226 additions and 4690 deletions

View File

@@ -1,20 +1,18 @@
version: "3.3"
networks:
web:
external: true
name: ridebus-landing
services:
ridebus-landing:
build: .
restart: unless-stopped
environment:
RIDEBUS_API_BASE_URL: ${RIDEBUS_API_BASE_URL:-https://api.ridebus.by/}
RIDEBUS_API_KEY: ${RIDEBUS_API_KEY:-}
networks:
- web
labels:
- "traefik.enable=true"
- "traefik.http.routers.ridebus-landing.rule=Host(`ridebus.by`)"
- "traefik.http.routers.ridebus-landing.entrypoints=web-http,web-https"
- "traefik.http.routers.ridebus-landing.tls=true"
- "traefik.http.routers.ridebus-landing.tls.certresolver=letsEncrypt"
- "traefik.http.services.ridebus-landing-service.loadbalancer.server.port=3000"
ridebus-landing:
build: .
image: ridebus-landing:latest
init: true
restart: unless-stopped
ports:
- '${RIDEBUS_BIND_ADDRESS:-0.0.0.0}:${RIDEBUS_PORT:-3000}:3000'
environment:
RIDEBUS_API_BASE_URL: ${RIDEBUS_API_BASE_URL:-https://api.ridebus.by/}
RIDEBUS_API_KEY: ${RIDEBUS_API_KEY:-}
logging:
driver: json-file
options:
max-size: '10m'
max-file: '3'