Files
gpt_from_scratch/website/CLAUDE.md
T
2026-06-12 17:19:26 +08:00

3.0 KiB

Server Information

SSH Access: ssh root@39.102.124.161 (Alibaba Cloud) OS: CentOS with Baota panel pre-configured Website: https://www.thereisnospoonadu.com/ Web Server: Tengine (Alibaba's fork of Nginx) — use tengine commands, NOT nginx

Gitea (self-hosted Git server)

Web UI: https://git.thereisnospoonadu.com Admin username: beastgitea2026 API token: paste fresh when needed (not stored) SSH remote: git@git.thereisnospoonadu.com:beastgitea2026/<repo>.git SSH port: 222 — configured in ~/.ssh/config on dev machine Gitea data: /var/lib/gitea/ | Docker container name: gitea Tengine config: /etc/tengine/conf.d/gitea.conf

Critical File Paths

Web Root: /www/wwwroot/soft_download/ Tengine Config (ACTUAL): /etc/tengine/conf.d/thereisnospoonadu.conf

  • Site uses HTTPS (port 443), HTTP redirects to HTTPS
  • Always test changes with: tengine -t && tengine -s reload

Auth File: /etc/tengine/.htpasswd Logs: Check tengine log paths inside /etc/tengine/conf.d/thereisnospoonadu.conf

User Management

Add a new end user (can login and download files):

# Add user (file already exists — do NOT use -c or it will overwrite all users)
htpasswd /etc/tengine/.htpasswd username

# Verify a user's password
htpasswd -v /etc/tengine/.htpasswd username

# Delete a user
htpasswd -D /etc/tengine/.htpasswd username

# List current users
cat /etc/tengine/.htpasswd

Note: htpasswd requires httpd-tools package (yum install -y httpd-tools).

Architecture

Download Portal System:

  • Login page: /login.html (public)
  • File listing: /list/ (requires HTTP Basic Auth via Authorization header)
  • File downloads: Direct links to .exe, .md, .pdf, etc. (NO auth required)
  • Security model: Must login to see file list, but downloads are public once you know the filename

Key Files:

  • /www/wwwroot/soft_download/index.html - Main file browser
  • /www/wwwroot/soft_download/login.html - Login page
  • /www/wwwroot/soft_download/api/validate - Auth validation endpoint

Important Notes

  • When making Tengine changes, ALWAYS edit /etc/tengine/conf.d/thereisnospoonadu.conf
  • Test against the actual domain: curl -I https://www.thereisnospoonadu.com/filename
  • PHP is NOT configured/working on this server - use Tengine-only solutions
  • Large files (170MB+ exe) need native browser downloads, not blob/XHR approach

Verification Checklist (Before Making Changes)

# 1. Verify which Tengine config is active
tengine -T | grep -A 30 'server_name.*thereisnospoonadu'

# 2. Test current behavior against actual domain
curl -I https://www.thereisnospoonadu.com/版本升级说明(用记事本打开).md

# 3. After changes: test and reload
tengine -t && tengine -s reload

Troubleshooting (Only When Issues Occur)

# Find log paths from config
grep 'access_log\|error_log' /etc/tengine/conf.d/thereisnospoonadu.conf

Note: Logs are automatically rotated daily, keeping 7 days of history (compressed).