fcd9867670
ci: fix pipeline — vps-runner host mode, remove setup-node, add smoke test
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 23s
2026-03-14 09:16:57 +01:00
77e5990078
ci: relance pipeline après ajout secrets
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 54s
2026-03-14 09:03:32 +01:00
5031b31aeb
fix: pipeline CI/CD — vps-runner direct deploy (pm2 + rsync)
...
CI/CD — Build & Deploy / Build & Deploy (push) Has been cancelled
Remplace le flow Docker (docker compose up) par le vrai modèle :
- Job unique sur vps-runner (runner local sur le VPS)
- Build backend → rsync vers /var/www/originsdigital/backend/ → pm2 restart
- Build frontend avec VITE_API_URL/VITE_SUPEROAUTH_URL → rsync vers /var/www/originsdigital/frontend/dist/
- Suppression appleboy/ssh-action (inutile, le runner est sur le VPS)
2026-03-14 08:59:10 +01:00
df3fe8ebe0
fix(auth): correct SuperOAuth endpoint path — /api/v1/auth not /api/auth
CI/CD — Build & Deploy / Build (push) Failing after 43s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 08:40:32 +01:00
9598cd8715
perf(frontend): drop react-player — YouTube iframe natif, HLS.js lazy seulement si .m3u8
CI/CD — Build & Deploy / Build (push) Failing after 35s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 08:39:01 +01:00
5eb0a43d7f
feat: lazy ReactPlayer, seed 11 vidéos YouTube (niveaux 0/1/2)
CI/CD — Build & Deploy / Build (push) Failing after 41s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 08:25:41 +01:00
11d9432218
fix(routes): resolve superOAuthId → DB userId — critical auth bug
...
CI/CD — Build & Deploy / Build (push) Failing after 35s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
req.user.id = SuperOAuth UUID, pas l'UUID TypeORM en DB.
Sans ce fix : getUserPlanLevel retourne toujours 0, ownerId ne matche jamais.
- video.routes: resolveDbUserId avant getUserPlanLevel
- playlist.routes: resolveDbUserId sur toutes les opérations owner/member
2026-03-14 08:12:11 +01:00
87d076313c
feat(frontend): VideoPage react-player v3, fix data.videos, route /video/:id
CI/CD — Build & Deploy / Build (push) Has been cancelled
CI/CD — Build & Deploy / Deploy to VPS (push) Has been cancelled
2026-03-14 08:12:08 +01:00
5d4bab7d99
chore: add assign-first-admin.sql — run once after first login
CI/CD — Build & Deploy / Build (push) Failing after 39s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 08:10:16 +01:00
253af8f402
fix(auth): upsert user in DB on session creation — first login creates user record
2026-03-14 08:07:42 +01:00
0591cd4528
feat(frontend): useAuth /auth/me, videos list + locked flag, VITE_API_URL
CI/CD — Build & Deploy / Build (push) Failing after 40s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 08:06:51 +01:00
5afcad487e
docs(backend): add .env.example
CI/CD — Build & Deploy / Build (push) Failing after 44s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 08:01:01 +01:00
7c727aa802
feat(admin): requireAdmin middleware + /api/admin routes
...
- requireAdmin: charge user_roles en DB, accepte admin/super_admin
- GET/POST/PATCH/DELETE /api/admin/videos (publiées + non publiées)
- GET /api/admin/users avec rôles et abonnement actif
- PATCH /api/admin/users/:id/roles (remplacement atomique par slugs)
- GET/POST/PATCH /api/admin/plans
2026-03-14 07:46:35 +01:00
75aad8968f
fix(frontend): SuperOAuth flow — VITE_SUPEROAUTH_URL, redirect par provider, pas de client_id
CI/CD — Build & Deploy / Build (push) Failing after 29s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 07:39:51 +01:00
f1de2bb065
fix(backend): resolve migration path relative to __dirname
...
CI/CD — Build & Deploy / Deploy to VPS (push) Has been cancelled
CI/CD — Build & Deploy / Build (push) Has been cancelled
migrations glob "src/migrations/**/*.ts" was CWD-relative — broken when CLI runs
outside the src/ directory. Using __dirname makes it absolute and portable.
2026-03-14 07:32:39 +01:00
25733ee3db
feat(frontend): scaffold Tailwind design system + routing + auth callback
...
- Tailwind v3 + PostCSS + autoprefixer
- BrowserRouter with Layout shell (Header, theme toggle dark/light)
- Pages: HomePage, CallbackPage (SuperOAuth callback handler)
- hooks/useAuth.ts + lib/api.ts (API client base)
- styles/index.css (Tailwind directives)
- Theme persisted in localStorage (od-theme)
2026-03-14 07:15:19 +01:00
f3e392ff1b
feat(backend): mount API routes + cookie-parser + CORS with credentials
...
- index.ts: mount /api/auth, /api/videos, /api/playlists; add cookie-parser; CORS with credentials + FRONTEND_URL env
- auth.middleware: read token from Bearer header OR od_token httpOnly cookie
- routes: auth (session/logout/me), videos (level-gated), playlists (CRUD + share management)
- deps: cookie-parser + @types/cookie-parser
2026-03-14 07:10:47 +01:00
71d90eb133
feat: initial schema migration — 9 tables + seed roles & plans
2026-03-14 07:02:20 +01:00
2f47be1305
feat: TypeORM entities — User, Role, SubscriptionPlan, Video, Playlist + relations
2026-03-14 06:53:02 +01:00
4f3c0e6433
feat: SuperOAuth token introspection middleware + /api/profile route
2026-03-14 06:40:43 +01:00
b771f4d1c3
fix: add package-lock.json — required for npm ci in Docker build
CI/CD — Build & Deploy / Build (push) Failing after 35s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 04:43:26 +01:00
4a3be2a323
feat: initial project structure — Express/TS/TypeORM + React/TS + Docker + Gitea CI
CI/CD — Build & Deploy / Build (push) Failing after 1m47s
CI/CD — Build & Deploy / Deploy to VPS (push) Has been skipped
2026-03-14 04:13:58 +01:00