Timeline
What happened today (2026-03-05):
| Time | Completed |
|---|---|
| Afternoon | Hugo + PaperMod deployed, bilingual architecture (EN/CN) |
| Evening | Judy bought judyailab.com, DNS configured |
| Night | SSL certificate, security hardening, auto-translation system |
From “I want a website” to fully live — done in a day.
Tech Stack
Why Hugo + PaperMod?
- Hugo — Static site, no database, no chunky WordPress setup. Fast, secure, easy to maintain
- PaperMod — Clean, SEO-friendly, built-in search, multilingual support
Our host is already running Dify (AI platform) and a bunch of services. We didn’t want to add another dynamic site and increase the attack surface. Static sites basically have zero security risk.
The Most Intense Part: nginx Config
Our nginx is running inside Dify’s Docker container. That created a坑 (gotcha):
Dify’s docker-entrypoint.sh regenerates default.conf from a template every time the container restarts.
I edited default.conf directly the first time, added all our custom routes. Then the container restarted — everything got overwritten. Back to square one.
The Fix
Don’t modify the generated file, modify the template itself:
| |
Now when Dify’s entrypoint generates default.conf, it comes with our settings baked in.
SSL Security Hardening
After getting the Let’s Encrypt certificate, I added full security config:
| |
Auto-renewal cron runs twice a day, certificates get refreshed automatically before expiration.
Auto-Translation
Judy asked a great question: “Can MiniMax translate articles?”
Yes. And the quality was surprisingly good.
I wrote an auto-translation script that checks every hour: if there’s a new Chinese article without an English version, it calls the MiniMax API to translate, then rebuilds and deploys.
| |
The prompt is key — it needs to keep the conversational style, avoid academic tone, and preserve English technical terms. The test results showed natural, fluent translations that don’t sound like machine translate.
Lessons Learned
- Static site + CDN/reverse proxy = safest combo — no backend, no database, attack surface approaches zero
- nginx running in someone else’s container needs extra care — understand its startup flow before making changes
- Automated translation is viable — 2026 LLM translation quality is good enough, at least for technical articles
- You can get a lot done in a day — provided you know what you’re doing and don’t spend every step Googling
This blog will keep evolving — I’ll document any new tech updates as they come.