Commit Graph

249 Commits

Author SHA1 Message Date
denshooter
bd73a77ae3 fix: Reduce component flashing on page load and scroll
Some checks failed
Production Deployment (Zero Downtime) / deploy-production (push) Has been cancelled
- Remove mounted state checks that return null (Hero, About, Projects)
- Reduce animation delays and durations for faster initial render
- Change viewport margins from -100px to -50px for earlier trigger
- Reduce initial animation distances (y: 40 -> 20, y: 30 -> 20)
- Use requestAnimationFrame for Header mount to prevent flash
- Always render components instead of returning null to prevent layout shift
- Optimize Framer Motion transitions for smoother scrolling
2026-01-09 19:36:06 +01:00
denshooter
f63a745221 fix: Improve ChatWidget text visibility and ActivityFeed loading state
Some checks failed
Production Deployment (Zero Downtime) / deploy-production (push) Has been cancelled
- Fix ChatWidget tooltip text being cut off (add z-index and shadow)
- Fix ChatWidget header text overflow with truncate classes
- Add loading state for ActivityFeed so it's visible on production while fetching
- Ensure ActivityFeed shows even when data is loading
2026-01-09 19:32:56 +01:00
denshooter
4e48f55737 docs: Add guide for adding 404 project to production
Some checks failed
Production Deployment (Zero Downtime) / deploy-production (push) Has been cancelled
2026-01-09 19:30:57 +01:00
denshooter
fadeb9b6b9 feat: Add Kernel Panic 404 page as project and link in footer
Some checks failed
Production Deployment (Zero Downtime) / deploy-production (push) Has been cancelled
- Add 404 link in footer
- Add Kernel Panic 404 as featured project in seed data
- Project includes interactive terminal, Easter eggs, and retro effects
2026-01-09 19:28:45 +01:00
denshooter
947f72ecca feat: Add interactive kernel panic 404 page
Some checks failed
Production Deployment (Zero Downtime) / deploy-production (push) Has been cancelled
- Terminal-style 404 page with boot sequence
- Interactive command line with file system
- Easter eggs: hawkins/011, fsociety, 42, rm -rf /
- CRT monitor effects and visual glitches
- Audio synthesis for key presses and effects
- Full terminal emulator with commands: ls, cd, cat, grep, etc.
2026-01-09 19:26:08 +01:00
denshooter
ab110fd009 fix: Improve health check to use container-internal testing
Some checks failed
Production Deployment (Zero Downtime) / deploy-production (push) Has been cancelled
- Prioritize Docker health status (most reliable)
- Test HTTP endpoint from inside container using docker exec
- Fallback to host-based HTTP test if available
- Better debugging output showing both internal and external tests
- Final verification uses Docker health status as authoritative
2026-01-09 19:18:43 +01:00
denshooter
511c37f104 fix: Install curl in production image and improve health check
Some checks failed
Production Deployment (Zero Downtime) / deploy-production (push) Failing after 9m26s
2026-01-09 19:06:58 +01:00
denshooter
3771949ba8 fix: Install curl in production image and improve health check
- Install curl in runner stage for health checks
- Increase health check timeout to 90 attempts (3 minutes)
- Improve health check logic to prioritize HTTP endpoint
- Add better debugging output during health check wait
- Show container status and logs during health check failures
2026-01-09 19:06:07 +01:00
denshooter
1e950823e1 Merge dev into production
Some checks failed
Production Deployment (Zero Downtime) / deploy-production (push) Failing after 8m19s
- Add activity tracking toggle
- Remove Discord status display
- Fix HTML entity decoding in chat
- Improve n8n chat response parsing
- Add n8n status text guide documentation
2026-01-09 18:46:48 +01:00
denshooter
c5b607a253 fix: Improve n8n chat response parsing
All checks were successful
Dev Deployment (Zero Downtime) / deploy-dev (push) Successful in 13m6s
- Add comprehensive parsing for various n8n response formats
- Check multiple field names (reply, message, response, text, content, answer, output, result)
- Handle array responses and nested structures (data, json, items)
- Add recursive search for string values in complex objects
- Improve logging to show full n8n response structure
- Only use fallback if truly no response found
2026-01-09 18:11:03 +01:00
denshooter
42a586d183 fix: Properly decode HTML entities in chat messages
Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Has been cancelled
- Fix ' not being decoded to apostrophe
- Decode HTML entities when loading messages from localStorage
- Improve server-side HTML entity decoding to handle all variations
- Replace hardcoded ' in static text with regular apostrophes
- Add support for more HTML entity variations (rsquo, lsquo, etc.)
2026-01-09 18:07:43 +01:00
denshooter
9c24fdf5bd feat: Remove Discord status display from activity feed
All checks were successful
Dev Deployment (Zero Downtime) / deploy-dev (push) Successful in 13m6s
- Remove status footer section that displayed Discord status
- Status information (online/offline/dnd/away) is no longer shown
- Activity feed now only shows coding, gaming, and music activities
2026-01-09 17:42:05 +01:00
denshooter
d09802ab19 remove: Remove staging banner component
Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Has been cancelled
2026-01-09 17:36:44 +01:00
denshooter
fc71bc740a docs: Add guide for changing status text in n8n
Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Has been cancelled
2026-01-09 17:34:18 +01:00
denshooter
242a808590 feat: Add activity tracking toggle and customize status text
Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Has been cancelled
- Add toggle button to enable/disable activity tracking
- Store tracking preference in localStorage
- Change 'Do Not Disturb' to 'Nicht stören' (German)
- Add better status text translations (online, offline, away)
- Show disabled state when tracking is off
- Stop fetching activity data when tracking is disabled
2026-01-09 17:26:05 +01:00
denshooter
60e69eb37b fix: Remove Traefik labels and add Nginx Proxy Manager support
All checks were successful
Dev Deployment (Zero Downtime) / deploy-dev (push) Successful in 13m7s
- Remove Traefik-specific labels (user uses Nginx Proxy Manager)
- Add proper host header handling in middleware for 421 fix
- Create NGINX_PROXY_MANAGER_SETUP.md with complete setup guide
- Fix 421 Misdirected Request by ensuring proper proxy headers
2026-01-09 17:06:08 +01:00
denshooter
d8001fc2c4 fix: Move staging banner to top-left to avoid overlap with activity monitor
All checks were successful
Dev Deployment (Zero Downtime) / deploy-dev (push) Successful in 13m7s
- Position banner at top-left instead of bottom-right
- Make banner more compact to reduce visual clutter
- Avoids overlap with ActivityFeed (bottom-right) and ChatWidget (bottom-left)
- Smaller, cleaner design that doesn't interfere with content
2026-01-09 16:04:13 +01:00
denshooter
e8248a6ee1 fix: Ensure staging banner is positioned bottom-right, not top-right
All checks were successful
Dev Deployment (Zero Downtime) / deploy-dev (push) Successful in 13m7s
- Add explicit inline styles to override any CSS conflicts
- Set top: auto and left: auto to ensure bottom-right positioning
- Fix banner appearing in wrong location
2026-01-09 15:36:23 +01:00
denshooter
d40fdf6d22 fix: Simplify Gitea variables and improve staging banner design
All checks were successful
Dev Deployment (Zero Downtime) / deploy-dev (push) Successful in 13m7s
- Remove branch-specific variable names (not needed)
- Each workflow uses its own default based on branch
- Users only need to set general variables, not branch-specific ones
- Redesign staging banner as floating box in bottom-right corner
- Better UX: doesn't block content, dismissible, modern design
2026-01-09 15:14:23 +01:00
denshooter
9486116fd8 feat: Add branch-specific Gitea variables support
Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Has been cancelled
- Support NEXT_PUBLIC_BASE_URL_PRODUCTION and NEXT_PUBLIC_BASE_URL_DEV
- Support LOG_LEVEL_PRODUCTION and LOG_LEVEL_DEV
- Fallback to general variables if branch-specific not set
- Add comprehensive GITEA_VARIABLES_SETUP.md guide
- Allows independent configuration for production and dev branches
2026-01-09 15:01:29 +01:00
denshooter
0d44ebee17 feat: Add staging banner to dev/test environment
Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Has been cancelled
- Add StagingBanner component that displays on dev/staging/test domains
- Shows warning that site is not production-ready
- Automatically detects staging environment via hostname or env vars
- Dismissible banner with smooth animations
- Only shows on dev.dk0.dev or other test domains
2026-01-09 14:54:45 +01:00
denshooter
4184e2fcf0 fix: Decode HTML entities in chat responses and improve n8n error handling
Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Has been cancelled
- Add HTML entity decoding for chat responses (fixes ' display issue)
- Add timeout handling for n8n webhook requests (30s chat, 10s status)
- Improve error logging with detailed error information
- Add N8N_SECRET_TOKEN support for authentication
- Better fallback handling when n8n is unavailable
- Fix server-side HTML entity decoding for chat and status endpoints
2026-01-09 14:52:26 +01:00
denshooter
271703556d fix: Add proxy network to staging container
Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Has been cancelled
- Add external proxy network to portfolio-staging service
- Ensures staging container can communicate with reverse proxy
- Matches production configuration
2026-01-09 14:47:37 +01:00
denshooter
fd49095710 feat: Optimize builds, add rollback script, and improve security
All checks were successful
Dev Deployment (Zero Downtime) / deploy-dev (push) Successful in 13m33s
Build Optimizations:
- Enable Docker BuildKit cache for faster builds (7min → 3-4min)
- Add .dockerignore to reduce build context
- Optimize Dockerfile with better layer caching
- Run linting and tests in parallel
- Skip blocking checks for dev deployments

Rollback Functionality:
- Add rollback.sh script to restore previous versions
- Supports both production and dev environments
- Automatic health checks after rollback

Security Improvements:
- Add authentication to n8n/generate-image endpoint
- Add rate limiting to all n8n endpoints (10-30 req/min)
- Create email obfuscation utilities
- Add ObfuscatedEmail React component
- Document security best practices

Files:
- .dockerignore - Faster builds
- scripts/rollback.sh - Rollback functionality
- lib/email-obfuscate.ts - Email obfuscation utilities
- components/ObfuscatedEmail.tsx - React component
- SECURITY_IMPROVEMENTS.md - Security documentation
2026-01-09 14:30:14 +01:00
denshooter
8c223db2a8 feat: Setup zero-downtime deployments for production and dev branches
Some checks failed
Dev Deployment (Zero Downtime) / deploy-dev (push) Has been cancelled
- Created separate workflows for production and dev deployments
- Production branch → dk0.dev (port 3000)
- Dev branch → dev.dk0.dev (port 3002)
- Zero-downtime deployment pattern (start new, wait for health, remove old)
- Complete isolation between environments (separate containers, databases, networks)
- Cleaned up unused code and files:
  - Removed unused GhostEditor and ResizableGhostEditor components
  - Removed old/unused workflows and markdown files
  - Fixed docker-compose references
- Upgraded dependencies to latest compatible versions
- Fixed TypeScript errors in editor page
- Updated staging to use dev.dk0.dev domain
2026-01-09 14:21:03 +01:00
denshooter
5dcc6ae0a6 fix: Remove newline from quote string literal
Some checks failed
CI/CD Pipeline (Dev/Staging) / staging (push) Failing after 10m32s
CI/CD Pipeline (Using Gitea Variables & Secrets) / production (push) Successful in 18m39s
Staging Deployment / staging (push) Successful in 16m35s
2026-01-09 12:57:08 +01:00
denshooter
21f0ebaa98 feat: Replace quotes with comprehensive collection of programming quotes 2026-01-09 12:56:54 +01:00
denshooter
db0bf2b0c6 Update staging configuration to avoid port conflicts and enhance deployment scripts
- Changed staging app port from 3001 to 3002 in docker-compose.staging.yml
- Updated PostgreSQL port from 5433 to 5434 and Redis port from 6380 to 6381
- Modified STAGING_SETUP.md to reflect new port configurations
- Adjusted CI/CD workflows to accommodate new staging ports and improve deployment messages
- Added N8N environment variables to staging configuration for better integration
2026-01-09 12:56:53 +01:00
denshooter
de0f3f1e66 fix: Update Dockerfile to correctly copy Next.js 15 standalone output structure
Some checks failed
CI/CD Pipeline (Dev/Staging) / staging (push) Failing after 8m11s
2026-01-09 03:03:33 +01:00
denshooter
393e8c01cd feat: Enhance Dockerfile with verification for standalone output and update n8n status route to handle missing webhook URL
Some checks failed
CI/CD Pipeline (Dev/Staging) / staging (push) Failing after 7m56s
2026-01-09 02:36:21 +01:00
denshooter
0e578dd833 feat: Add Dev Branch Testing Guide and CI/CD Pipeline for Staging Deployment
Some checks failed
CI/CD Pipeline (Dev/Staging) / staging (push) Failing after 9m0s
2026-01-09 02:02:08 +01:00
denshooter
5cbe95dc24 Merge branch 'dev_n8n' into dev 2026-01-09 00:24:21 +01:00
denshooter
d0c3049a90 updated the branches for the on push etc. 2026-01-08 19:32:13 +01:00
denshooter
3b2c94c699 chore: Clean up old files 2026-01-08 17:55:29 +01:00
denshooter
cd4d2367ab full upgrade to dev 2026-01-08 16:27:40 +01:00
denshooter
41f404c581 full upgrade to dev 2026-01-08 11:40:42 +01:00
denshooter
7320a0562d full upgrade to dev 2026-01-08 11:31:57 +01:00
denshooter
4bf94007cc full upgrade to dev 2026-01-08 04:27:58 +01:00
denshooter
884d7f984b full upgrade to dev 2026-01-08 04:24:22 +01:00
denshooter
e2c2585468 feat: update Projects component with framer-motion variants and improve animations
refactor: modify layout to use ClientOnly and BackgroundBlobsClient components

fix: correct import statement for ActivityFeed in the main page

fix: enhance sitemap fetching logic with error handling and mock support

refactor: convert BackgroundBlobs to default export for consistency

refactor: simplify ErrorBoundary component and improve error handling UI

chore: update framer-motion to version 12.24.10 in package.json and package-lock.json

test: add minimal Prisma Client mock for testing purposes

feat: create BackgroundBlobsClient for dynamic import of BackgroundBlobs

feat: implement ClientOnly component to handle client-side rendering

feat: add custom error handling components for better user experience
2026-01-08 01:39:17 +01:00
denshooter
c5efd28383 full upgrade 2026-01-07 23:13:25 +01:00
denshooter
4cd3f60c98 feat: Fix hydration errors, navbar overlap, and add AI image generation system
## 🎨 UI/UX Fixes

### Fixed React Hydration Errors
- ActivityFeed: Standardized button styling (gradient → solid)
- ActivityFeed: Unified icon sizes and spacing for SSR/CSR consistency
- ActivityFeed: Added timestamps to chat messages for stable React keys
- About: Fixed duplicate keys in tech stack items (added unique key combinations)
- Projects: Fixed duplicate keys in project tags (combined projectId + tag + index)

### Fixed Layout Issues
- Added spacer after Header component (h-24 md:h-32) to prevent navbar overlap
- Hero section now properly visible below fixed navbar

## 🔧 Backend Improvements

### Database Schema
- Added ActivityStatus model for real-time activity tracking
- Supports: coding activity, music playing, watching, gaming, status/mood
- Single-row design (id=1) with auto-updating timestamps

### API Enhancements
- Fixed n8n status endpoint to handle missing table gracefully
- Added TypeScript interfaces (removed ESLint `any` warnings)
- New API: POST /api/n8n/generate-image for AI image generation
- New API: GET /api/n8n/generate-image?projectId=X for status check

## 🔐 Security & Auth

### Middleware Updates
- Removed premature auth redirect for /manage and /editor routes
- Pages now handle their own authentication (show login forms)
- Security headers still applied to all routes

## 🤖 New Feature: AI Image Generation System

### Complete automated project cover image generation using local Stable Diffusion

**Core Components:**
- Admin UI component (AIImageGenerator.tsx) with preview, generate, and regenerate
- n8n workflow integration for automation
- Context-aware prompt generation based on project metadata
- Support for 10+ project categories with optimized prompts

**Documentation (6 new files):**
- README.md - System overview and features
- SETUP.md - Detailed installation guide (486 lines)
- QUICKSTART.md - 15-minute quick start
- PROMPT_TEMPLATES.md - Category-specific templates (612 lines)
- ENVIRONMENT.md - Environment variables reference
- n8n-workflow-ai-image-generator.json - Ready-to-import workflow

**Database Migration:**
- SQL script: create_activity_status.sql
- Auto-setup script: quick-fix.sh
- Migration guide: prisma/migrations/README.md

**Key Features:**
 Automatic generation on project creation
 Manual regeneration via admin UI
 Category-specific prompts (web, mobile, devops, ai, game, etc.)
 Local Stable Diffusion (no API costs, privacy-first)
 n8n workflow orchestration
 Optimized for web (1024x768)

## 📝 Documentation

- CHANGELOG_DEV.md - Complete changelog with migration guide
- PRE_PUSH_CHECKLIST.md - Pre-push verification checklist
- Comprehensive AI image generation docs

## 🐛 Bug Fixes

1. Fixed "Hydration failed" errors in ActivityFeed
2. Fixed "two children with same key" warnings
3. Fixed navbar overlapping hero section
4. Fixed "relation activity_status does not exist" errors
5. Fixed /manage redirect loop (was going to home page)
6. Fixed TypeScript ESLint errors and warnings
7. Fixed duplicate transition prop in Hero component

## ⚠️ Breaking Changes

None - All changes are backward compatible

## 🔄 Migration Required

Database migration needed for new ActivityStatus table:
```bash
./prisma/migrations/quick-fix.sh
# OR
psql -d portfolio -f prisma/migrations/create_activity_status.sql
```

## 📦 Files Changed

**Modified (7):**
- app/page.tsx
- app/components/About.tsx
- app/components/Projects.tsx
- app/components/ActivityFeed.tsx
- app/components/Hero.tsx
- app/api/n8n/status/route.ts
- middleware.ts
- prisma/schema.prisma

**Created (14):**
- app/api/n8n/generate-image/route.ts
- app/components/admin/AIImageGenerator.tsx
- docs/ai-image-generation/* (6 files)
- prisma/migrations/* (3 files)
- CHANGELOG_DEV.md
- PRE_PUSH_CHECKLIST.md
- COMMIT_MESSAGE.txt

##  Testing

- [x] Build successful: npm run build
- [x] Linting passed: npm run lint (0 errors, 8 warnings)
- [x] No hydration errors in console
- [x] No duplicate key warnings
- [x] /manage accessible (shows login form)
- [x] API endpoints responding correctly
- [x] Navbar no longer overlaps content

## 🚀 Next Steps

1. Test AI image generation with Stable Diffusion setup
2. Test n8n workflow integration
3. Create demo screenshots for new features
4. Update main README.md after merge

---
Co-authored-by: AI Assistant (Claude Sonnet 4.5)
2026-01-07 14:38:57 +01:00
denshooter
26a8610aa7 full upgrade to dev 2026-01-07 14:30:00 +01:00
denshooter
4dc727fcd6 feat: add activity feed and background effects
- Implemented ActivityFeed component to display real-time user activity including coding, music, and chat interactions.
- Added GooFilter and BackgroundBlobs components for enhanced visual effects.
- Updated layout to include new components and ensure proper stacking context.
- Enhanced Tailwind CSS configuration with new color and font settings.
- Created API route to mock activity data from n8n.
- Refactored main page structure to streamline component rendering.
2026-01-06 20:10:00 +01:00
denshooter
e74f85da41 chore(security): update dependencies to fix vulnerabilities
Some checks failed
CI/CD Pipeline (Using Gitea Variables & Secrets) / production (push) Failing after 11m31s
Test Gitea Variables and Secrets / test-variables (push) Successful in 4s
- Update Next.js to 15.5.7 and React to 19.0.1 (React2Shell fix)
- Update Nodemailer to 7.0.11 (Security fix)
- Update React Markdown and others to resolve all audit issues
- Add SECURITY-UPDATE.md
2025-12-08 16:21:11 +01:00
denshooter
a4af934504 fix: ESLint-Fehler in About-Komponente behoben (Apostrophe escaped)
Some checks failed
CI/CD Pipeline (Using Gitea Variables & Secrets) / production (push) Failing after 11m12s
Test Gitea Variables and Secrets / test-variables (push) Successful in 4s
2025-11-22 19:25:05 +01:00
denshooter
976a6360fd feat: Website-Rework mit verbessertem Design, Sicherheit und Deployment
- Neue About/Skills-Sektion hinzugefügt
- Verbesserte UI/UX für alle Komponenten
- Enhanced Contact Form mit Validierung
- Verbesserte Security Headers und Middleware
- Sichere Deployment-Skripte (safe-deploy.sh)
- Zero-Downtime Deployment Support
- Verbesserte Docker-Sicherheit
- Umfassende Sicherheits-Dokumentation
- Performance-Optimierungen
- Accessibility-Verbesserungen
2025-11-22 19:24:49 +01:00
denshooter
498bec6edf feat: add quick health fix and test scripts
Some checks failed
CI/CD Pipeline (Using Gitea Variables & Secrets) / production (push) Failing after 10m29s
Test Gitea Variables and Secrets / test-variables (push) Successful in 3s
- Add quick-health-fix.sh for immediate diagnosis
- Add test-app.sh for comprehensive testing
- Fix localhost connection issues
- Improve health check reliability
2025-10-19 22:39:58 +02:00
denshooter
1ef7f88b0a feat: add diagnostic and health check scripts
Some checks failed
CI/CD Pipeline (Using Gitea Variables & Secrets) / production (push) Failing after 10m26s
Test Gitea Variables and Secrets / test-variables (push) Successful in 2s
- Add comprehensive health check script
- Add connection issue diagnostic script
- Improve health check reliability
- Better error handling and reporting
2025-10-19 22:02:11 +02:00
denshooter
623411b093 fix: remove unused NextRequest import
Some checks failed
CI/CD Pipeline (Using Gitea Variables & Secrets) / production (push) Failing after 10m24s
Test Gitea Variables and Secrets / test-variables (push) Successful in 3s
2025-10-19 21:48:49 +02:00