Commit Graph

40 Commits

Author SHA1 Message Date
22deecdbe8 revert: remove terminal port 6002 configuration
Port 6002 is not active in default Coolify deployment.
Terminal functionality appears to work through main port 8080
or requires additional configuration not documented.

Need to investigate Coolify terminal enablement further.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 12:37:08 +01:00
46105b1f25 feat: enable Coolify terminal interface
- Add Traefik routing for terminal service on port 6002
- Accessible at terminal.coolify.dev.pivoine.art
- Enable web-based terminal access for deployments

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 12:35:08 +01:00
94a8df8fa1 refactor: simplify Coolify realtime subdomain
Change from coolify-realtime.coolify.dev.pivoine.art
to realtime.coolify.dev.pivoine.art for cleaner URLs

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 12:28:36 +01:00
102484d88c fix: remove unused Coolify mail env vars, use database config
Coolify stores SMTP settings in the database (instance_settings table)
rather than reading from environment variables.

SMTP settings configured directly in database:
- smtp_enabled: true
- smtp_host: net_mailpit
- smtp_port: 1025
- smtp_from_address: hi@pivoine.art
- smtp_from_name: Coolify

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 11:48:32 +01:00
ab1d350af3 feat: enable email notifications in Coolify
- Add MAIL_MAILER=smtp to use SMTP transport
- Configure MAIL_HOST and MAIL_PORT to use Mailpit relay
- Set MAIL_FROM_ADDRESS and MAIL_FROM_NAME for sender info
- No encryption/auth needed for internal Mailpit relay

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 11:40:55 +01:00
26fa1be36c feat: enable email notifications in Gitea
- Add ENABLE_NOTIFY_MAIL: true to enable email notifications
- Set DEFAULT_EMAIL_NOTIFICATIONS: enabled as default for users
- Uses existing Mailpit mail relay configuration

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 08:01:21 +01:00
ffbcecc09d feat: replace Basic Auth with Authelia
Replace HTTP Basic Auth with Authelia ForwardAuth for consistent
authentication across infrastructure:

- Asciinema Admin (admin.asciinema.dev.pivoine.art): Removed Basic Auth,
  added Authelia protection
- FaceFusion (facefusion.ai.pivoine.art): Removed Basic Auth, added
  Authelia protection

Updated Authelia access control to include both services with one_factor
policy.

All services now use Authelia for authentication, eliminating the need
to manage separate Basic Auth credentials.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 21:54:27 +01:00
b19afa6a04 fix: move Gitea APP_NAME to root level config 2025-11-15 19:18:24 +01:00
eb61a9971c feat: set Gitea APP_NAME to dev.pivoine.art 2025-11-15 19:16:38 +01:00
8dcf503724 feat: update Gitea branding - change icons to #6cb6eb blue, fix icon and title 2025-11-15 19:13:29 +01:00
a39c4fb0fe feat: recolor Gitea logo to #d38aea pink/magenta
Add CSS filter to logo.svg and favicon.svg to change color to #d38aea

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 19:06:08 +01:00
56a8f2d6a3 feat: add custom Gitea landing page and re-enable public access
- Disable REQUIRE_SIGNIN_VIEW to allow public landing page
- Mount custom templates directory
- Add custom home.tmpl with simple welcome page and sign-in button
- Remove default Gitea promotional content

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 19:00:37 +01:00
c57897652e feat: set Gitea default theme to edge-dark and require sign-in
- Change default theme from gitea-dark to edge-dark
- Enable REQUIRE_SIGNIN_VIEW to hide landing page from anonymous users

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 18:56:33 +01:00
51267cc674 feat: add Mailpit SMTP relay and migrate all services
- Add Mailpit service to NET stack with web UI at mailpit.pivoine.art
- Configure Mailpit to relay all emails through IONOS SMTP
- Migrate all 11+ services to use Mailpit instead of direct IONOS SMTP:
  * SEXY: Directus API
  * UTIL: Joplin, Mattermost, Vaultwarden, Tandoor, Linkwarden
  * DEV: Gitea, n8n, Asciinema
  * AI: Open WebUI
  * NET: Netdata (via msmtp)
- Centralize SMTP credentials in mailpit-relay.yaml
- Simplify service configs (no auth/TLS for internal SMTP)
- Enable email monitoring via Mailpit web UI with Basic Auth

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 18:34:38 +01:00
b5eec43304 feat: add runner config to mount Docker socket in job containers 2025-11-15 17:39:04 +01:00
808044bc2e fix: use catthehacker/ubuntu images with Docker for Gitea runner 2025-11-15 17:32:10 +01:00
c78ffb953a fix: mount Docker binary in Gitea runner for Docker commands 2025-11-15 17:31:01 +01:00
3dab00b6d4 fix: add privileged mode to Gitea runner for Docker access 2025-11-15 17:30:18 +01:00
c506a92800 feat: move asciinema to dev stack under asciinema.dev.pivoine.art
- Moved asciinema service from standalone stack to dev/compose.yaml
- Updated hostname from asciinema.pivoine.art to asciinema.dev.pivoine.art
- Updated environment variables to use DEV_ASCIINEMA_ prefix
- Updated restic backup volume reference (asciinema_data -> dev_asciinema_data)
- Moved custom.exs to dev/asciinema-custom.exs
- Removed standalone asciinema/compose.yaml directory
- Container name changes from asciinema_app to dev_asciinema
- Volume name changes from asciinema_data to dev_asciinema_data
- Preserved admin interface at admin.asciinema.dev.pivoine.art with Basic Auth

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 16:34:28 +01:00
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