- 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
- 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
- Add external proxy network to portfolio-staging service
- Ensures staging container can communicate with reverse proxy
- Matches production configuration
- 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
- 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
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
- 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.
- 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
- Remove checkSession from useEffect dependency array to prevent infinite loop
- Improve session validation logic with better error handling
- Add clear session functionality for debugging
- Add 'Clear Session & Reload' button to help with stuck sessions
- Better session cleanup on validation errors
This should resolve the verification loop issue in the admin login.
- Increase health check wait times in Gitea Actions workflow
- Add additional main page accessibility check with longer timeout
- Remove basic auth middleware to use custom admin login only
- Custom admin login at /manage route provides better UX than browser basic auth
This should resolve the 'Main page is not accessible' issue and provide a nicer admin login experience.
- Add proxy network to portfolio service networks
- Define proxy as external network in Docker Compose
- This allows the application to be accessible through the proxy network
- Fixes the 'Main page is not accessible' issue
The portfolio app will now be on both portfolio_net (for internal communication) and proxy (for external access).
- Remove redundant export statements from workflow
- Add default values to Docker Compose environment variables
- Add debugging logs to help diagnose deployment issues
- Ensure environment variables are properly passed to containers
This should resolve the 'variable is not set' warnings and make the main page accessible.
- Change @ts-ignore to @ts-expect-error as required by ESLint
- Simplify React.act mock to avoid TypeScript complexity
- Ensures linting passes in pre-push checks
- Update React.act mock to handle both sync and async callbacks
- Fix type compatibility with React's act function signature
- Ensures proper TypeScript compilation during build
- Change from npm run test to npm run test:production
- This ensures the pre-push checks use the same test configuration as CI
- Fixes the test failures that were blocking pushes
- Removed unused network configurations from docker-compose.yml.
- Added production-specific Jest configuration in jest.config.production.ts for better test management.
- Updated jest.config.ts to include production build fixes and module resolution improvements.
- Enhanced jest.setup.ts to mock React's act function for production builds.
- Introduced new CI/CD workflows for Gitea, focusing on reliability and zero downtime deployments.
- Added scripts for debugging Gitea Actions and verifying environment variables.
These changes streamline the CI/CD process and improve testing capabilities.
- Export all environment variables before deployment to ensure they're available to child processes
- Add logging to show which variables are configured (without revealing secrets)
- This fixes docker-compose warnings about missing environment variables
- Ensures both docker run and docker-compose scenarios work correctly
Updated scripts:
- scripts/gitea-deploy.sh
- scripts/gitea-deploy-simple.sh
- Modify root checks to allow running as root in CI environments
- Add conditional check: only prevent root when not in CI (CI env var not set)
- Updated scripts:
- scripts/gitea-deploy.sh
- scripts/gitea-deploy-simple.sh
- scripts/deploy.sh
- scripts/auto-deploy.sh
- scripts/setup-gitea-runner.sh
This fixes the 'This script should not be run as root' error in Gitea Actions
where containers run as root by default.
- Simplify nginx startup command to avoid YAML syntax issues
- Remove complex fallback configuration that was causing shell errors
- nginx now starts successfully and serves the application correctly
Tested locally: nginx responds to /health and / endpoints properly.
- Introduced `sync-env.ps1` to facilitate the synchronization of environment variables from Bitwarden on Windows.
- Implemented checks for Bitwarden CLI installation and authentication status.
- Added functionality to fetch environment variables from a specified Bitwarden item and create/update a `.env` file.
- Enhanced user feedback with clear error messages and success confirmations.
✅ This script streamlines the management of environment variables by integrating with Bitwarden, ensuring secure and efficient updates.
- Move proxy_set_header directives inside location blocks
- Add DNS resolver for dynamic upstream resolution
- Improve fallback configuration in docker-compose
- Add config validation before starting nginx
This should resolve the nginx startup failures.
- Remove default nginx configuration files to prevent conflicts
- Add command to clear /etc/nginx/conf.d/* before starting nginx
- This fixes the 'events directive not allowed here' error
- Introduced `sync-env.sh` to automate the synchronization of environment variables from Bitwarden.
- Implemented authentication with Bitwarden CLI, including session management and error handling.
- Added functionality to fetch environment variables from Bitwarden items and create/update a `.env` file in the specified target directory.
- Included logging for debugging and operational transparency.
✅ This script enhances the management of environment variables by integrating with Bitwarden, ensuring secure and efficient updates.