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
@@ -0,0 +1,55 @@
/// <reference path="../pb_data/types.d.ts" />
migrate((app) => {
let settings = app.settings()
settings.rateLimits = {
enabled: true,
rules: [
// General API limit - 200 requests per 5 minutes
{
label: "/api",
audience: "",
duration: 5 * 60, // 5 minutes
maxRequests: 200
},
// Brute force protection for auth attempts - 20 attempts per 5 minutes (guests only)
{
label: "*:auth",
audience: "@guest", // Only for unauthenticated users
duration: 5 * 60, // 15 minutes
maxRequests: 20
},
// Password reset - 5 per hour
{
label: "POST /api/collections/users/request-password-reset",
audience: "",
duration: 60 * 60, // 1 hour
maxRequests: 5
},
// Email verification - 5 per hour
{
label: "POST /api/collections/users/request-verification",
audience: "",
duration: 60 * 60, // 1 hour
maxRequests: 5
},
// Email change - 3 per hour (authenticated only)
{
label: "POST /api/collections/users/request-email-change",
audience: "@auth",
duration: 60 * 60, // 1 hour
maxRequests: 3
},
// OTP - 10 per hour
{
label: "POST /api/collections/users/request-otp",
audience: "",
duration: 60 * 60, // 1 hour
maxRequests: 10
}
]
}
app.save(settings)
})