• HTML 66.4%
  • DIGITAL Command Language 33.6%
Find a file
2026-06-04 06:42:28 +00:00
.gitignore Initial 2019to2025 site 2026-06-04 06:37:36 +00:00
2019to2025.samuelshadrach.com Initial 2019to2025 site 2026-06-04 06:37:36 +00:00
index.html Initial 2019to2025 site 2026-06-04 06:37:36 +00:00
README.md Add Codex README notice 2026-06-04 06:42:28 +00:00

Written by Codex. May contain hallucinations; verify instructions before use.

2019to2025

Static frontend and Nginx reverse-proxy config for:

https://2019to2025.samuelshadrach.com

The site compares GPT-2 with a newer OpenRouter-hosted model. The browser only calls same-origin proxy routes; API keys and private upstream URLs must stay on the server.

Files

  • index.html: static frontend served from /var/www/gpt2/index.html
  • 2019to2025.samuelshadrach.com: Nginx site config
  • .gitignore: local ignore rules

Private Server Config

Do not commit real keys, endpoint ids, private IPs, or provider URLs.

Create /etc/nginx/snippets/llm_api_keys.conf on the server:

set $openrouter_api_key "OPENROUTER_API_KEY";
set $runpod_api_key "RUNPOD_API_KEY";
set $runpod_gpt2_runsync_url "RUNPOD_GPT2_RUNSYNC_URL";

The RUNPOD_GPT2_RUNSYNC_URL value should be the full private upstream URL for the GPT-2 runsync endpoint.

Deploy

From the repo on the server:

git pull
sudo cp -f index.html /var/www/gpt2/index.html
sudo cp -f 2019to2025.samuelshadrach.com /etc/nginx/sites-available/2019to2025.samuelshadrach.com
sudo ln -sfn /etc/nginx/sites-available/2019to2025.samuelshadrach.com /etc/nginx/sites-enabled/2019to2025.samuelshadrach.com
sudo nginx -t
sudo systemctl reload nginx

Verify

curl -I https://2019to2025.samuelshadrach.com/
curl -sS -o /tmp/openrouter_check.json -w 'openrouter http=%{http_code} total=%{time_total}s\n' \
  https://2019to2025.samuelshadrach.com/api/openrouter/v1/chat/completions \
  -H 'Content-Type: application/json' \
  --data '{"model":"openai/gpt-oss-120b","messages":[{"role":"user","content":"Reply with exactly ok."}],"max_tokens":64}'
curl -sS -o /tmp/gpt2_check.json -w 'gpt2 http=%{http_code} total=%{time_total}s\n' \
  https://2019to2025.samuelshadrach.com/api/gpt2 \
  -H 'Content-Type: application/json' \
  --data '{"input":{"prompt":"Say hello in five words."}}'

The GPT-2 request can be slow when the backend is cold.

Security Notes

  • Keep provider API keys in /etc/nginx/snippets/llm_api_keys.conf, never in Git.
  • Keep private upstream URLs and endpoint ids out of Git.
  • The Nginx config exposes fixed same-origin proxy routes only.
  • Model output is rendered as text, not injected HTML.
  • CORS is restricted to https://2019to2025.samuelshadrach.com.