Alexis Bruneteau
d5c1c90c50
feat(dockerfile): add multi-stage Next.js Docker build configuration
...
Update Dockerfile for Next.js 15 migration with production-optimized build:
- Multi-stage build separating compilation from runtime
- Next.js standalone output mode (~150-200MB final image)
- Non-root user (nextjs:1000) for security hardening
- Health check endpoint for orchestration monitoring
- Node.js 20 Alpine runtime for minimal footprint
Add .dockerignore to exclude development files from build context,
reducing build time and image size.
Update README with comprehensive Docker deployment documentation including
environment variable configuration and image features.
OpenSpec: Implements fix-dockerfile-nextjs proposal (26/30 tasks completed)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
v1.0.0-docker
2025-10-17 00:49:03 +02:00
Alexis Bruneteau
e391a6f972
docs(openspec): update tasks.md with completion status
...
- Marked 89/167 tasks as completed
- Added completion status by phase
- Documented deferred tasks for post-MVP
- Added migration summary with deliverables
Core MVP complete:
- All critical authentication and portfolio features done
- Production build successful
- Documentation complete
- Tag PROD-v1.0.0 deployed
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 00:43:18 +02:00
Alexis Bruneteau
b83c7a7d6d
feat(migration): migrate from Angular 20 to Next.js 15
...
Build and Deploy to k3s / build-and-deploy (push) Failing after 1m31s
Complete framework migration from Angular to Next.js with full feature parity.
## What Changed
- Migrated from Angular 20 to Next.js 15 with App Router
- Replaced Angular components with React functional components
- Implemented React Context API for state management (replacing RxJS)
- Integrated React Hook Form for form handling
- Added shadcn/ui component library
- Configured Tailwind CSS 4.1 with @tailwindcss/postcss
- Implemented JWT authentication with middleware protection
## Core Features Implemented
- ✅ User registration and login with validation
- ✅ JWT token authentication with localStorage
- ✅ Protected dashboard route with middleware
- ✅ Portfolio listing with status indicators
- ✅ Create portfolio functionality
- ✅ ZIP file upload with progress tracking
- ✅ Portfolio deployment
- ✅ Responsive design with Tailwind CSS
## Technical Stack
- Framework: Next.js 15 (App Router)
- Language: TypeScript 5.8
- Styling: Tailwind CSS 4.1
- UI Components: shadcn/ui + Lucide icons
- State: React Context API + hooks
- Forms: React Hook Form
- API Client: Native fetch with custom wrapper
## File Structure
- /app - Next.js pages (landing, login, register, dashboard)
- /components - React components (ui primitives, auth provider)
- /lib - API client, types, utilities
- /hooks - Custom hooks (useAuth, usePortfolios)
- /middleware.ts - Route protection
- /angular-backup - Preserved Angular source code
## API Compatibility
- All backend endpoints remain unchanged
- JWT Bearer token authentication preserved
- API response format maintained
## Build Output
- Production build: 7 routes compiled successfully
- Bundle size: ~102kB shared JS (optimized)
- First Load JS: 103-126kB per route
## Documentation
- Updated README.md with Next.js setup guide
- Created OpenSpec proposal in openspec/changes/migrate-to-nextjs-launchui/
- Added project context in openspec/project.md
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
PROD-v1.0.0
v1.0.0-nextjs
2025-10-17 00:34:43 +02:00
Alexis Bruneteau
609940cafe
env
Build and Deploy to k3s / build-and-deploy (push) Failing after 38s
PROD-v0.0.11
2025-06-05 03:30:17 +02:00
Alexis Bruneteau
49e1bcac81
working good
Build and Deploy to k3s / build-and-deploy (push) Failing after 38s
PROD-v0.0.10
2025-06-04 21:52:54 +02:00
Alexis Bruneteau
1fdf7516a5
tag
2025-06-04 03:32:57 +02:00
Alexis Bruneteau
d5c4a99281
set production API
Build and Deploy to k3s / build-and-deploy (push) Failing after 47s
PROD-v0.0.8
2025-06-02 14:32:07 +02:00
Alexis Bruneteau
e785ea0ea6
fixed ingress
Build and Deploy to k3s / build-and-deploy (push) Failing after 38s
PROD-v0.0.6
2025-06-02 12:17:44 +02:00
Alexis Bruneteau
cd89d07f70
changed docker image tag
Build and Deploy to k3s / build-and-deploy (push) Failing after 40s
PROD-v0.0.3
2025-06-02 10:13:46 +02:00
Alexis Bruneteau
3ade4d1bd1
changed icon
Build and Deploy to k3s / build-and-deploy (push) Failing after 38s
PROD-v0.0.2
2025-06-02 10:04:42 +02:00
Alexis Bruneteau
120fc26d01
DNS
Build and Deploy to k3s / build-and-deploy (push) Failing after 38s
PROD-v0.0.1
2025-06-01 15:34:02 +02:00
Alexis Bruneteau
a55a295164
pre-alpha test
Build and Deploy to k3s / build-and-deploy (push) Failing after 39s
PRE_ALPHA-v0.0.6
2025-06-01 14:04:20 +02:00
Alexis Bruneteau
e616a400ed
optimized Dockerfile
Build and Deploy to k3s / build-and-deploy (push) Failing after 38s
PRE_ALPHA-v0.0.5
2025-06-01 03:14:46 +02:00
Alexis Bruneteau
8acf22a953
optimized Dockerfile
Build and Deploy to k3s / build-and-deploy (push) Failing after 40s
PRE_ALPHA-v0.0.4
2025-06-01 03:07:08 +02:00
Alexis Bruneteau
295c15f03b
landing
Build and Deploy to k3s / build-and-deploy (push) Failing after 1m7s
PRE_ALPHA-v0.0.3
2025-06-01 03:03:04 +02:00
Alexis Bruneteau
ee5daffdba
landing
Build and Deploy to k3s / build-and-deploy (push) Failing after 36s
PRE_ALPHA-v0.0.2
2025-06-01 03:01:58 +02:00
Alexis Bruneteau
3849e2d0dc
tag
Build and Deploy to k3s / build-and-deploy (push) Failing after 1m10s
PRE_ALPHA-v0.0.1
2025-05-31 18:14:35 +02:00
Alexis Bruneteau
46e5797d85
tag
Build and Deploy to k3s / build-and-deploy (push) Failing after 1m19s
PRE_ALPHA-v0
2025-05-31 18:13:16 +02:00
Alexis Bruneteau
43ddc32e17
tag
Build and Deploy to k3s / build-and-deploy (push) Failing after 1m25s
PRE-ALPHA-v0
2025-05-31 18:12:23 +02:00
Alexis Bruneteau
40793eceab
tag
2025-05-31 18:10:58 +02:00
Alexis Bruneteau
4d2b176816
tag
2025-05-31 18:00:35 +02:00
Alexis Bruneteau
85ab22d566
dingz
2025-05-31 17:58:30 +02:00
Alexis Bruneteau
97520d404a
retesting
2025-05-31 17:47:59 +02:00
Alexis Bruneteau
225c0654cc
retesting
2025-05-31 17:44:22 +02:00
Alexis Bruneteau
00f4158d57
retesting
2025-05-31 17:41:54 +02:00
Alexis Bruneteau
f2c2b55cb1
testing
2025-05-31 17:36:34 +02:00
Alexis Bruneteau
24c382d520
debugging
2025-05-31 17:23:30 +02:00
Alexis Bruneteau
128d87636a
tag
2025-05-31 17:17:16 +02:00
Alexis Bruneteau
54083e4233
tag
2025-05-31 17:15:36 +02:00
Alexis Bruneteau
fe14d9f790
tag
2025-05-31 16:51:52 +02:00
Alexis Bruneteau
6f76ba2f6e
tag
2025-05-31 16:09:37 +02:00
Alexis Bruneteau
0643d4fb08
tag
2025-05-31 16:08:09 +02:00
Alexis Bruneteau
7e0cd37851
tag
2025-05-31 15:54:58 +02:00
Alexis Bruneteau
e378e7fa11
tag
2025-05-31 15:33:13 +02:00
Alexis Bruneteau
1a862b1efc
fix
2025-05-31 03:38:25 +02:00
Alexis Bruneteau
9d25fbc935
fix
2025-05-31 03:28:06 +02:00
Alexis Bruneteau
c03360713f
fix
2025-05-31 03:11:55 +02:00
Alexis Bruneteau
ae2b3b106a
waouh
2025-05-31 02:43:51 +02:00
Alexis Bruneteau
70f799ea73
first commit
2025-05-31 01:02:43 +02:00
Alexis Bruneteau
4762cc8a05
initial commit
2025-05-30 13:25:49 +02:00