Step 1
RequiredCreate server config
Copy /api/config.local.php.example to /api/config.local.php inside Hostinger and paste the real values there only.
api/config.local.php resend_api_key supabase_url supabase_anon_key cron_secret
Production Security
Private deploy guide for server-side secrets, API protection, cron safety and clean production files.
Copy /api/config.local.php.example to /api/config.local.php inside Hostinger and paste the real values there only.
api/config.local.php resend_api_key supabase_url supabase_anon_key cron_secret
Upload /api/.htaccess. It blocks direct access to config files, helper files and backup/log files inside the API folder.
api/.htaccess api/_bootstrap.php api/config.local.php.example
Use htaccess-security-snippet.txt as a guide. Merge it into your current public_html/app/.htaccess after taking a backup.
Do not blindly replace .htaccess. Back up first. Merge only the security rules you need.
Any server key previously pasted in PHP or shared in a chat should be rotated in the provider dashboard, then stored only in config.local.php.
Rotate Resend key Confirm cron secret Confirm Supabase RLS remains active