2026-04-28 12:09:38 +02:00
2026-04-20 22:06:59 +02:00
2026-04-20 22:57:57 +02:00
2026-04-20 22:06:59 +02:00
2026-04-28 12:09:38 +02:00
2026-04-20 17:59:24 +00:00
2026-04-20 17:59:24 +00:00
2026-04-20 17:59:24 +00:00
2026-04-20 22:06:59 +02:00
2026-04-20 17:59:24 +00:00
2026-04-20 17:59:24 +00:00
2026-04-20 17:59:24 +00:00
2026-04-20 17:59:24 +00:00
2026-04-20 17:59:24 +00:00
2026-04-20 17:59:24 +00:00
2026-04-20 17:59:24 +00:00
2026-04-20 17:59:24 +00:00
2026-04-20 17:59:24 +00:00

Getting Started

Create .env.local file

Before starting make sure .env.local file exists and contains

# Only needed if using keycloak
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET= # you can generate it using "openssl rand -base64 32"
# If you plan to use keycloak (only openid issuer implemented) you have to create a client on your app
KEYCLOAK_CLIENT_ID=...
KEYCLOAK_CLIENT_SECRET=...
KEYCLOAK_ISSUER=https://<KEYCLOAK_DOMAIN>/realms/<REALM_NAME>

Launch development server

First, run the development server:

npm ci
npm run dev

Or use another package manager

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Add features

Add page

Create src/app/[locale]/{your-page}/page.tsx

Or src/app/{your-page}/page.tsx if you don't want to use locales

Add your code and there you go !

Add API endpoint

Create src/app/api/your/endpoints/route.ts or src/app/api/your-endpoints/route.ts

Add Locale

Copy messages/en.json and rename it messages/{your-locale}.json, then translate it.

Add locale flag at svg format in public/flags

Update src/i18n/routing.ts with your new locale

Protect a Page route or an API route

Add your Page or API in src/proxy.ts

'/example': ['admin'], # Page only accessible to users with admin role
'/dashboard': [], # Page accessible to all users connected

Git

Before Commit

Setup

If you use this template by using git clone, remove .git and link directory to a repo

Then run

git init
git remote add origin https://gitea.iceberg.black/user/repo.git
git branch -M main
git push -u origin main

Lint and format

Install Husky to link and format code before commit

npx husky init

Copy

npx lint-staged

Or whatever you want in .husky/pre-commit

Change all lines with [TO CHANGE] + public/manifest.json

Before Push

  • Ensure all git secrets or variables exist
  • Ensure all docker links exist on distant machine
  • Ensure env file exists on remote machine

Auto deploy

To run auto deploy you have to check for the "Before Push" section and then:

Push Tag with format v* to trigger Deploy CI

git tag -a vX.X.X -m "Release vX.X.X"   # Locally
git push origin vX.X.X                  # On remote

Optionnal Delete tag:

git tag -d vX.X.X                       # Locally
git push origin :refs/tags/vX.X.X       # On remote

Useful command with all to reset

git tag -d v1.0.0; git push origin :refs/tags/v1.0.0; git tag -a v1.0.0 -m "Release v1.0.0"; git push origin v1.0.0

Features

Implemented

  • Clean gitea CI
  • Locale handling
  • Authentification with keycloak
  • Routes an API role protections
  • Auto deploy

To implement

  • Better Tailwind CSS classes
  • See keycloak user infos
S
Description
No description provided
Readme Apache-2.0
1 MiB
Languages
TypeScript 94.8%
CSS 3.8%
JavaScript 0.7%
Dockerfile 0.7%