Files
jpaulio/README.md
T
claude e3c7bf2e74
build / build (push) Successful in 17s
jpaul.io hub page
Single self-contained index.html (avatar + favicon inlined; only Google
Fonts external; zero JS; dark-mode; responsive) served by a baked
nginx:alpine image behind Traefik, built and published by CI on push
to main and rolled out by Watchtower.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LbhPvfSERrnuY5jdhAdB7v
2026-07-02 21:11:38 -04:00

34 lines
1.6 KiB
Markdown

# jpaul.io
The personal hub landing page at the root of [jpaul.io](https://jpaul.io) — who I am,
what I make, and where to find me. Not a blog, not a portfolio: a hub.
## Contents
- **`index.html`** — the whole site. One self-contained file, no build step. The avatar
and favicon are inlined as data URIs; the only external assets are the Google Fonts
(Inter + JetBrains Mono). Zero JavaScript.
- **`favicon.svg`** — green `$` / amber `_` cursor mark on the GitHub-dark-slate ground.
- **`Dockerfile`** — bakes the site into an `nginx:alpine` image.
- **`docker-compose.yml`** — runs that image behind Traefik.
- **`.gitea/workflows/build.yml`** — CI: build the image and publish it on push to `main`.
## Design
Dark-mode only, GitHub-dark-slate palette, terminal-panel motifs. Matches the brand used
across [jpaul.me](https://www.jpaul.me), the AI Workflow course cards, and the YouTube
channel. Responsive; cards stack to one column below 720px; hero stays readable at 375px.
## Deploy — automated (push to main → live)
1. **Push to `main`** → Gitea Actions builds the `nginx:alpine` image and publishes it.
2. The deploy host **pulls** the image over HTTPS.
3. **Watchtower** recreates the container with the new image.
No bind mounts — the running container always matches what CI built. Runs behind Traefik:
`websecure` entrypoint, an HTTP-01 cert, and `Host(jpaul.io) || Host(www.jpaul.io)` with
the cert domains named explicitly (a compound rule won't auto-populate them).
First run on the host: `docker compose up -d`. After that, editing the site is just
commit → push to `main`; CI and Watchtower do the rest.