-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
pedrokarim edited this page Jun 11, 2026
·
1 revision
| Domaine | Techno |
|---|---|
| Framework |
Next.js 16 (App Router, output: standalone), React 19
|
| Runtime / paquets |
Bun (inclut bun:sqlite) |
| Auth | NextAuth v5 (Credentials, sessions JWT), bcrypt |
| UI |
Tailwind CSS v4, shadcn/ui + Radix, Lucide, Framer Motion, next-themes
|
| Images | Sharp (miniatures, traitement) |
| Validation | Zod |
| État / data | TanStack Query/Table, Jotai, Zustand, nuqs
|
| Données |
fichiers JSON + SQLite (bun:sqlite) dans data/
|
| Tests | Vitest + Testing Library |
| Analytics | PostHog |
Le README mentionne « Next.js 14 » mais le dépôt est en Next.js 16 / React 19, NextAuth 5 beta.
Pas de base relationnelle externe. Tout vit sous data/ :
-
JSON :
users.json,api-keys.json,history.json,secure-files.json,starred-files.json,deletion-tokens.json -
SQLite (
bun:sqlite) :albums.db,logs.db, base des thèmes
Les fichiers uploadés sont sur disque dans uploads/ (+ uploads/thumbnails/).
| Dossier | Rôle |
|---|---|
app/ |
App Router — pages (groupes (app), (catalog), (marketing), (tools)) et api/
|
components/ |
Composants React (ui/ shadcn, gallery/, albums/, api-keys/, modules/, settings/…) |
lib/ |
Logique cœur : auth, upload, api-key-validator, rate-limit, history, modules/, i18n/, theme/, sse.ts, utils/ (SQLite) |
modules/ |
Plugins de traitement (voir Modules) |
hooks/ |
Hooks React |
store/ |
Stores client (Zustand/Jotai) |
schemas/ |
Schémas Zod |
themes/ · utils/ · actions/
|
Thèmes, utilitaires couleur/CSS, Server Actions |
config/ |
uploads.json, theme.ts, exemples |
data/ |
Données runtime (JSON + SQLite) |
uploads/ |
Fichiers uploadés |
cli/ |
CLI Bun (index.ts + commands/: setup, users, logs, clean, deploy-cron…) |
sharex-mobile/ |
App Expo/React Native (voir Application mobile) |
tests/ · stories/ · docs/ · assets/
|
Tests, stories, docs, captures |
auth.ts (NextAuth), middleware.ts (protection des routes + CORS + logs, runtime nodejs), next.config.mjs, components.json (shadcn), Dockerfile + docker-compose.yml, vitest.config.ts.
middleware.ts protège tout sauf les routes publiques (/, /login, /img-handler) et quelques routes API publiques (/api/upload, /api/auth/*, …). Les rôles (admin / user) sont portés par le JWT et vérifiés côté routes admin.
Démarrage
Utilisation
Intégration bureau
Pour les développeurs
Exploitation