Services & APIs
The legacy typhoon service runs on a Spring backend; internal apps use Next.js/Node with SQLite; research pipelines and data collectors are Python. Each service is kept small and independently deployable.
Web · Backend
Services, servers, and data plumbing behind the research web stack.
The legacy typhoon service runs on a Spring backend; internal apps use Next.js/Node with SQLite; research pipelines and data collectors are Python. Each service is kept small and independently deployable.
Four web services run behind the same Nginx front door, each on its own domain and certificate. Front-end details are on the Front page.
Per-domain Nginx virtual hosts with individual SSL certificates and an HTTPS API proxy. Wildcard vhosts were removed so each service is isolated, and requests to unregistered hostnames are dropped at the server.
Recurring collection and post-processing run under cron, PM2, and systemd, with duplicate-run cleanup between schedulers. Collectors are idempotent — unique-path upserts and seen-record checks prevent duplicate ingestion.
Large raw files stay on the filesystem while a metadata database (10 tables) indexes paths, models, data types, and timestamps — a hybrid that keeps 1982–2025 legacy archives searchable without moving them. 16 scheduled jobs collect and post-process KMA, JTWC, RSMC, GK2A, OSTIA, and HYCOM data.
A dashboard tracks server status, GPU utilization, cluster nodes, and process health, with OOM and resource-pressure issues diagnosed from collected metrics.