Files
web-app-template/README.md
T
JonKazama-Hellion 1a7d716098
CI / verify (push) Failing after 34s
Initial template setup
2026-05-09 16:41:16 +02:00

3.1 KiB

Web App Template

A starting point for new Hellion Online Media web apps on the Hellion Forge.

Stack:

  • Next.js 16 (App Router, Turbopack)
  • React 19
  • TypeScript strict mode
  • Prisma ORM + MySQL
  • NextAuth (auth.js v5)
  • Sass/SCSS in external files — never inline styles
  • FontAwesome

This mirrors the production stack used for hellion-media-website, hellion-initiative-v3, and nova-corporation.de.


How to use this template

  1. Click "Use this template" on the Forge.
  2. Clone locally and replace project name in:
    • package.jsonname
    • README.md → this section + project description
  3. Set up your .env.local from .env.example.
  4. npm install, npx prisma generate, npx prisma migrate dev.
  5. npm run devhttp://localhost:3000.
  6. Implement your app in src/app/.

Project structure

.
├── .editorconfig
├── env.example                     Template for .env.local. Rename to .env.example after cloning if you prefer the dot-prefix convention.
├── .gitea/
│   ├── ISSUE_TEMPLATE/
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       └── ci.yml                  Lint + type-check + Prisma validate
├── .gitignore
├── prisma/
│   └── schema.prisma               Skeleton with NextAuth tables
├── src/
│   ├── app/
│   │   ├── layout.tsx              Root layout
│   │   ├── page.tsx                Home page
│   │   └── api/auth/[...nextauth]/route.ts
│   ├── components/                 Reusable UI components
│   ├── lib/
│   │   ├── prisma.ts               Prisma client singleton
│   │   └── auth.ts                 NextAuth config
│   └── styles/
│       └── globals.scss            Global styles entry
├── next.config.ts
├── package.json
├── tsconfig.json
├── CODEOWNERS
├── LICENSE                         MIT
└── README.md                       This file (replace before shipping)

Conventions (Hellion Online Media)

  • External SCSS files only — no inline style={...}, no style.css per component. Co-located *.module.scss is fine.
  • Database access via DAL layer — direct Prisma calls only inside src/lib/dal/*.ts, never in components or routes. Pattern from hellion-initiative-v3.
  • No client-side secrets — all auth/DB access goes through server components or route handlers.
  • PM2 single-process deployment — production runs on Strato Windows Server with PM2 + IIS reverse proxy. No clustering, no Vercel.

Production deployment

This template is opinionated about non-cloud deployment:

  • Server: Strato Windows Server 2025
  • Process manager: PM2 (NSSM Windows-service wrapper, single-process mode)
  • Reverse proxy: IIS with TLS termination
  • Database: MySQL on Strato VPS, accessible only via WireGuard

Adjust next.config.ts accordingly (no output: 'standalone' unless you containerize).


License

MIT — see LICENSE.