Initial commit: Korrith website, assessment API, PocketBase schema, Docker/Coolify deployment

This commit is contained in:
Korrith
2026-09-17 20:47:51 +00:00
commit c17f11f591
248 changed files with 39721 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
# Korrith frontend — static SPA + same-origin reverse proxies.
# The frontend calls the API and PocketBase on relative paths, so they must
# be reachable on the same origin as the site:
# /hcgi/api/* -> Express API
# /hcgi/platform/* -> PocketBase (API + admin UI)
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
client_max_body_size 20m;
gzip on;
gzip_min_length 1024;
gzip_types text/css application/javascript application/json image/svg+xml font/woff2;
# Express API
location /hcgi/api/ {
proxy_pass http://api:3001/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# PocketBase
location /hcgi/platform/ {
proxy_pass http://pocketbase:8090/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Server-sent events (realtime subscriptions)
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
}
# Hashed build assets — safe to cache aggressively
location /assets/ {
expires 30d;
add_header Cache-Control "public, immutable";
try_files $uri =404;
}
# SPA fallback — client-side routing
location / {
try_files $uri $uri/ /index.html;
}
}