71 Commits

Author SHA1 Message Date
4f01e01cae feat: move n8n to dev stack under n8n.dev.pivoine.art
- Moved n8n service from standalone stack to dev/compose.yaml
- Updated hostname from n8n.pivoine.art to n8n.dev.pivoine.art
- Updated environment variables to use DEV_N8N_ prefix
- Updated restic backup volume reference (n8n_n8n_data -> dev_n8n_data)
- Removed standalone n8n/compose.yaml
- Container name changes from n8n_app to dev_n8n
- Volume name changes from n8n_n8n_data to dev_n8n_data

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 16:28:15 +01:00
91fd8be904 refactor: consolidate WebSocket config to PUSHER_* variables
- Change PUSHER_HOST to public URL (coolify-realtime.coolify.dev.pivoine.art)
- Update PUSHER_PORT from 6001 to 443 (HTTPS)
- Add PUSHER_SCHEME=https
- Remove VITE_PUSHER_* variables (redundant)
- Change label quotes from single to double

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 14:48:36 +01:00
5a42268369 feat: add VITE_PUSHER environment variables for frontend WebSocket
Configure browser to connect to Soketi via HTTPS through Traefik:
- VITE_PUSHER_HOST: coolify-realtime.coolify.dev.pivoine.art
- VITE_PUSHER_PORT: 443
- VITE_PUSHER_SCHEME: https

This fixes the 'Cannot connect to real-time service' warning.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 14:39:06 +01:00
ab632fd054 feat: expose Soketi WebSocket server via Traefik
Add Traefik labels to Soketi to make it accessible at
coolify-realtime.coolify.dev.pivoine.art for browser WebSocket connections

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 14:05:44 +01:00
8a1eee975f fix: update Soketi healthcheck to use 127.0.0.1 instead of localhost
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 13:56:37 +01:00
44ecff89c8 fix: use correct Coolify port 8080 for Traefik routing 2025-11-15 13:32:44 +01:00
3ff112ccb3 fix: use shared core PostgreSQL for Coolify instead of separate instance 2025-11-15 13:31:05 +01:00
30249bd3ca fix: use correct soketi image tag (1.0-16-alpine) 2025-11-15 13:28:27 +01:00
140b240bab feat: add Coolify deployment platform to dev stack
Add Coolify self-hosted deployment platform with:
- Coolify main service at coolify.dev.pivoine.art
- Dedicated PostgreSQL database (uses shared core instance)
- Soketi WebSocket server for real-time features
- Traefik routing with HTTPS and compression
- Environment variables in arty.yml (secrets in .env)
- Database creation in PostgreSQL init script

Coolify enables deploying applications from Git repositories,
including the pivoine.art Jekyll site from Gitea.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 13:24:09 +01:00
5d3fa7618b fix: expose Gitea SSH port 2222 and update SSH_PORT setting
- Add ports mapping to expose SSH port 2222 on host
- Change SSH_PORT from 22 to 2222 for correct clone URL display
- Gitea will now show git@dev.pivoine.art:2222/user/repo.git in UI

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 13:07:49 +01:00
414ff269b2 fix: correct Gitea custom assets mount path for themes and favicon
Move custom assets from /data/gitea/custom/public to /data/gitea/public
to properly serve custom themes and favicon/logo files. Gitea expects
custom public assets at /data/gitea/public, not nested under custom/.

- Restructured dev/custom/public/ to dev/public/
- Updated volume mount in dev/compose.yaml
- Includes 21 custom themes from sainnhe/gitea-themes
- Includes custom favicon and logo

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 12:20:42 +01:00
485edffa48 docs: update README with gitea-dark as default theme
Note that custom themes are available for manual selection but may not work as default

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 12:16:53 +01:00
77a81d29f0 fix: change default theme to gitea-dark (built-in)
Custom themes not loading properly, reverting to built-in theme.
Custom themes still available in theme list for manual selection.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 12:16:07 +01:00
07bcba01fa feat: set edge-dark as default Gitea theme
- Change DEFAULT_THEME from gitea-auto to edge-dark
- Add THEME_COLOR_META_TAG for edge-dark (#333644)
- Custom favicon and logo already configured in custom directory

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 12:13:46 +01:00
d73504a1de fix: use correct default theme name for Gitea
- Change DEFAULT_THEME from 'auto' to 'gitea-auto'
- Add 'arc-green' to themes list (standard Gitea theme)
- Remove invalid 'auto' theme name from THEMES list

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 12:03:22 +01:00
644c437b31 fix: remove deprecated Gravatar environment variables
- Remove GITEA__picture__* environment variables (deprecated in Gitea 1.18+)
- Gravatar must be configured via admin panel in modern Gitea versions
- Add README.md with post-installation configuration instructions
- Document Gravatar setup, runner registration, themes, and custom assets

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 12:01:20 +01:00
fbdca7c5a2 fix: correct Gitea custom directory mount path
Change from ./dev/custom to ./custom since compose.yaml is in dev/ directory

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 11:57:24 +01:00
17653546b8 fix: reorganize Gitea customizations to proper directory structure
- Move themes to dev/custom/public/assets/css/ (correct Gitea custom path)
- Add custom favicon.svg and logo.svg to dev/custom/public/assets/img/
- Update volume mount to use /data/gitea/custom instead of incorrect path
- Follows Gitea customization documentation structure

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 11:56:23 +01:00
92a96b5f6e feat: add custom themes and enable Gravatar for Gitea
- Add 21 custom themes from sainnhe/gitea-themes:
  - Edge (auto, dark, light)
  - Everforest (auto, dark, light)
  - Gruvbox (auto, dark, light)
  - Gruvbox Material (auto, dark, light)
  - Nord, Palenight, Soft Era
  - Sonokai (base + 5 variants)
- Enable Gravatar for user avatars
- Set default theme to auto (system preference)
- Mount themes directory to Gitea container

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 11:53:16 +01:00
98f564c896 fix: use EMAIL_SMTP_* variables for Gitea mailer configuration
Change from SMTP_* to EMAIL_SMTP_* variables to match existing .env

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 11:47:59 +01:00
d32ac39d27 feat: add Gitea self-hosted Git service with Actions runner
- Create new 'dev' stack at dev.pivoine.art
- Add Gitea with PostgreSQL database (core stack)
- Add Gitea Actions runner with Docker support
- Enable mailer configuration via SMTP
- Enable container registry and packages
- Add gitea database to PostgreSQL init script

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 11:43:13 +01:00