This repo hosts the marketing site for DBZee, a free online Dragon Ball-inspired ORPG. It's a plain static site (HTML + CSS + a small JS file) served by GitHub Pages and pointed at the apex domain dbzee.eu.
The game itself lives in a separate repo (da-rulez/orpg). The styling
here is intentionally reused from the in-game palette: Goku-gi orange,
Super-Saiyan gold, MUI ki-blue, and a deep night-sky background pulled
from the world maps.
.
├── index.html # Home (hero + features)
├── about.html # What the game is, who it's for
├── play.html # Downloads / play (Windows, macOS, Linux, web)
├── news.html # Patch notes
├── CNAME # dbzee.eu (custom domain)
├── .nojekyll # disables Jekyll on Pages
└── assets/
├── css/styles.css # all shared styles
├── js/main.js # mobile nav toggle
└── img/ # SVG dragon ball assets
There's no build step. Either open index.html directly, or:
python3 -m http.server 8000
# then visit http://localhost:8000/- In the repo on GitHub, go to Settings → Pages.
- Build and deployment → Source:
Deploy from a branch. - Branch: select the branch you want to publish (e.g.
mainonce this branch is merged), folder/ (root). Save. - Custom domain: enter
dbzee.euand save. GitHub will read theCNAMEfile in the repo and pin it. - Tick Enforce HTTPS once the certificate has provisioned (can take a few minutes after DNS resolves).
The domain dbzee.eu is registered with Porkbun. GitHub Pages serves the
apex (dbzee.eu) from four anycast IPs and the www subdomain from a
CNAME to <your-github-user>.github.io.
Go to https://porkbun.com/account/login, then Domain Management and
click the DNS button next to dbzee.eu.
Porkbun ships every new domain with a default ALIAS record at the
root pointing to its parking page, plus an A record on www. Delete
both. You'll only want what's listed below in the apex + www slots.
Leave
MX,TXT,NS, and any email-related records alone unless you're certain. Only touch records at@(apex) andwww.
Add four A records at the root (@). In Porkbun's UI, leave the
Host field blank or enter @:
| Type | Host | Answer | TTL |
|---|---|---|---|
| A | @ | 185.199.108.153 |
600 |
| A | @ | 185.199.109.153 |
600 |
| A | @ | 185.199.110.153 |
600 |
| A | @ | 185.199.111.153 |
600 |
Optionally also add the IPv6 equivalents (GitHub publishes these too):
| Type | Host | Answer | TTL |
|---|---|---|---|
| AAAA | @ | 2606:50c0:8000::153 |
600 |
| AAAA | @ | 2606:50c0:8001::153 |
600 |
| AAAA | @ | 2606:50c0:8002::153 |
600 |
| AAAA | @ | 2606:50c0:8003::153 |
600 |
So that www.dbzee.eu redirects to the apex on GitHub's side:
| Type | Host | Answer | TTL |
|---|---|---|---|
| CNAME | www | <your-github-user>.github.io. |
600 |
Replace <your-github-user> with the GitHub account that owns this
repo. The trailing dot is intentional but Porkbun will accept it with or
without.
Usually under 10 minutes for Porkbun, but allow up to a few hours. Verify with:
dig +short dbzee.eu
dig +short www.dbzee.eu CNAMEYou should see the four 185.199.10x.153 IPs at the apex and your
*.github.io host on the www record.
Back on GitHub Settings → Pages, the Custom domain check
should turn green. Tick Enforce HTTPS. Done — https://dbzee.eu/
is live.
Edit the HTML/CSS in place and push. GitHub Pages rebuilds on every push to the deployment branch (usually 1–2 minutes).
There is no asset pipeline. Don't add one unless something has actually outgrown plain HTML — the entire point is that this is a static site you can edit with a text editor on a phone in an airport.
The news page is generated from snapshots stored under
_data/patchnotes/v{X.Y.Z}.md. The game repo only carries the current
patch in patchnotes.md; this repo accumulates the full history.
How it works:
.github/workflows/sync-patchnotes.ymlruns hourly (and on demand).- It downloads
patchnotes.mdfromda-rulez/orpgusing a PAT. tools/snapshot-patchnotes.pyparses the## vX.Y.Zheading; if that version isn't already archived, it writes_data/patchnotes/v{X.Y.Z}.md.tools/render-news.pyrebuildsnews.htmlfromtools/news-template.htmland every archived_data/patchnotes/*.md, sorted newest first.- The workflow commits the new snapshot + regenerated
news.htmland pushes.
You need a fine-grained PAT so the workflow can read the private game repo:
- https://github.com/settings/personal-access-tokens/new
- Resource owner: your account / org that owns
da-rulez/orpg. - Repository access: Only select repositories →
da-rulez/orpg. - Repository permissions → Contents: Read-only.
- Generate, copy the token.
- In this repo: Settings → Secrets and variables → Actions →
New repository secret. Name it
ORPG_TOKEN, paste the token.
Trigger options after the secret is set:
- Wait up to an hour for the next cron run, or
- Actions → Sync patch notes from orpg → Run workflow for an instant manual run, or
- Have the game repo fire a
repository_dispatchwith typeorpg-patchnotes-updatedfrom its own CI whenpatchnotes.mdchanges.
These constraints apply to the upstream patchnotes.md in the orpg
repo. The full rationale lives in PATCHNOTES_GUIDE.md over there.
- Heading:
## vX.Y.Z — Short title [Tag] - Tag: one of
[Release],[Patch],[Hotfix]. If omitted, the renderer treats it as[Patch]. - Hard cap: 2,000 characters total. The snapshot script refuses anything longer (Discord's per-message limit). The workflow run fails, no archive happens, fix it in orpg and re-run.
- Voice: player-centric. What the player will feel, not what the server is doing under the hood.
Badge colors on the site:
| Tag | Badge color |
|---|---|
| Release | gold |
| Patch | blue |
| Hotfix | red |
Editing _data/patchnotes/*.md directly is fine; the next workflow run
will pick them up and re-render. Don't edit news.html by hand — it
gets overwritten by tools/render-news.py.
news.html is one long page. When it gets uncomfortable to scroll,
update tools/render-news.py to chunk entries into pages
(news.html, news-2.html, …) and link them together; the
template already has a <!-- NEWS_ENTRIES --> placeholder so this is a
small change.
Site source is MIT. Game art and trademarks belong to their respective owners; nothing on this site is endorsed by Toei or Bandai Namco.