Purpose & Architecture
1. Why This Portal Exists
JRFortune.com is a self-hosted personal platform designed and maintained by Jacob Fortune. Over time, the server has evolved to host a variety of specialized web applications, tabletop gaming campaign managers, and event tools.
Previously, each application lived on its own subpath without a unified entry point. This portal serves as the central launchpad—a modern digital foyer that gives friends, campaign players, and visitors a single, intuitive place to discover and launch active services, check uptime status, and manage their authentication.
2. Seamless, Optional Single Sign-On (SSO)
A core architectural objective of this portal is frictionless access without mandatory barriers:
- Public Viewing by Default: Visitors do not need to log in to browse the portal, view public project descriptions, read documentation, or participate in public event polls.
-
Google OpenID Connect (OIDC): The server leverages an enterprise-grade Apache OpenID Connect implementation
(
mod_auth_openidc). Rather than requiring you to remember another username and password, you can authenticate with a single click using your existing Google account. -
Domain-Wide Session Sharing: Once you log in on the portal, an encrypted session is established across
jrfortune.com. If you are an authorized player or the Dungeon Master, you can seamlessly navigate into protected sub-applications (such as the DM Dashboard) without receiving secondary login prompts. -
Role-Based Access Control (RBAC): The gateway verifies your authenticated email address against
access-control lists, automatically unlocking privileged features for administrators (e.g.
alchemy77@gmail.com) while keeping player and public workflows completely secure.
3. Hosted Web Applications
The portal connects to several distinct services running on this host:
⚔️ Tomb of Annihilation (/dnd/)
A companion web application for our ongoing D&D 5th Edition campaign in the jungles of Chult. It provides players with a live codex of Chultan lore, character stat cards, expedition history, hex-crawl notes, and session logs. Players can authenticate via Google to bind their characters and update notes.
🛡️ D&D Dungeon Master Dashboard (/dm/)
A powerful, purpose-built administration console for running D&D sessions. Features include live turn-by-turn combat initiative trackers, encounter generators, NPC and monster databases, player roster management, and distributed SQLite/Turso database synchronizers. Strictly restricted to authorized Dungeon Masters.
🧪 Into The Deep (/intothedeep/)
An experimental application and development workspace under active prototyping. Access is restricted to authorized developer accounts.
🍺 Mansfield Beer Tasting (/beer)
A seasonal event application and scoring submission portal for the annual Mansfield craft beer tasting. Participants submit blind tasting notes, score flights, and tally award results.
4. Infrastructure & Security Architecture
The entire stack is deployed on dedicated Linux hardware with a focus on speed, privacy, and rock-solid reliability:
- Operating System: Ubuntu Linux LTS with automated process supervision via PM2.
- Web Server & Reverse Proxy: Apache 2.4 configured with HTTP/2 and
mod_proxyfor microservice routing. - Identity Provider Integration: Google OAuth2 / OpenID Connect with cryptographic session protection.
- SSL / TLS Security: Automated Let's Encrypt certificates with HTTP Strict Transport Security (HSTS) and modern cipher suites.
- Backend Engines: Node.js (v24), Express, React 19, and Vite.
- Zero Ads & Zero Tracking: No analytics trackers, no advertising beacons, and no data harvesting.
5. Open Source & Community Spirit
This portal and its associated applications are crafted for tabletop storytelling, shared memories among friends, and personal experimentation. If you have suggestions or encounter any issues, please feel free to reach out.