Commit graph

125 commits

Author SHA1 Message Date
a8ea8c9548 feat(branding): apply MapleDeploy branding to Coolify
Replace Coolify branding with MapleDeploy throughout the UI: logos,
favicon, fonts (Overlock 900), color scheme, help links, and page
titles. Remove GitHub Actions workflows and add Forgejo CI build
workflow. Strip cloud-only features (subscription prompts, sponsor
links, server creation cloud options).
2026-03-14 00:15:16 -04:00
Andras Bacsai
6488751fd2 feat(proxy): add database-backed config storage with disk backups
- Store proxy configuration in database as primary source for faster access
- Implement automatic timestamped backups when configuration changes
- Add backfill migration logic to recover configs from disk for legacy servers
- Simplify UI by removing loading states (config now readily available)
- Add comprehensive logging for debugging configuration generation and recovery
- Include unit tests for config recovery scenarios
2026-03-11 14:11:31 +01:00
Andras Bacsai
1d054b23b8
Merge branch 'next' into shadow/fix-docker-time-command 2025-11-28 10:25:42 +01:00
Andras Bacsai
246e3cd8a2 fix: resolve Docker validation race conditions and sudo prefix bug
- Fix sudo prefix bug: Use word boundary matching to prevent 'do' keyword from matching 'docker' commands
- Add ensureProxyNetworksExist() helper to create networks before docker compose up
- Ensure networks exist synchronously before dispatching async proxy startup to prevent race conditions
- Update comprehensive unit tests for sudo parsing (50 tests passing)

This resolves issues where Docker commands failed to execute with sudo on non-root servers and where proxy networks were not created before the proxy container started.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 09:04:42 +01:00
Andras Bacsai
7a16938f0c fix(proxy): prevent "container name already in use" error during proxy restart
Add wait loops to ensure containers are fully removed before restarting.
This fixes race conditions where docker compose would fail because an
existing container was still being cleaned up.

Changes:
- StartProxy: Add explicit stop, wait loop before docker compose up
- StopProxy: Add wait loop after container removal
- Both actions now poll up to 10 seconds for complete removal
- Add error suppression to handle non-existent containers gracefully

Tests:
- Add StartProxyTest.php with 3 tests for cleanup logic
- Add StopProxyTest.php with 4 tests for stop behavior

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 11:35:22 +01:00
Andras Bacsai
8c77c63043 feat(proxy): add Traefik version tracking with notifications and dismissible UI warnings
- Add automated Traefik version checking job running weekly on Sundays
- Implement version detection from running containers and comparison with versions.json
- Add notifications across all channels (Email, Discord, Slack, Telegram, Pushover, Webhook) for outdated versions
- Create dismissible callout component with localStorage persistence
- Display cross-branch upgrade warnings (e.g., v3.5 -> v3.6) with changelog links
- Show patch update notifications within same branch
- Add warning icon that appears when callouts are dismissed
- Prevent duplicate notifications during proxy restart by adding restarting parameter
- Fix notification spam with transition-based logic for status changes
- Enable system email settings by default in development mode
- Track last saved/applied proxy settings to detect configuration drift
2025-11-14 11:35:22 +01:00
ShadowArcanist
9620455be0
Merge branch 'next' into shadow/fix-docker-time-command 2025-10-17 18:52:40 +05:30
Andras Bacsai
bd88bbca5b fix: streamline proxy status handling in StartProxy and Navbar components 2025-10-10 10:41:58 +02:00
ShadowArcanist
b39690dfa2 Changed docker --time command to -t since --time is deprecated on v28 2025-10-09 13:26:10 +05:30
Andras Bacsai
cef3d3af5d feat(proxy): enhance proxy configuration regeneration by extracting custom commands
- Added a new function to extract custom proxy commands from existing Traefik configurations before regenerating the proxy configuration.
- Updated the proxy configuration generation logic to include these custom commands, ensuring they are preserved during regeneration.
- Introduced unit tests to validate the extraction of custom commands and handle various scenarios, including invalid YAML and different proxy types.
2025-10-07 11:11:13 +02:00
Andras Bacsai
393745b68c Revert "refactor(file-transfer): replace base64 encoding with direct file transfer method across multiple database actions for improved clarity and efficiency"
This reverts commit 18068857b1.
2025-09-15 17:55:08 +02:00
Andras Bacsai
1ca94b90da fix(proxy): replace CheckConfiguration with GetProxyConfiguration and SaveConfiguration with SaveProxyConfiguration for improved clarity and consistency in proxy management 2025-09-09 12:52:19 +02:00
Andras Bacsai
18068857b1 refactor(file-transfer): replace base64 encoding with direct file transfer method across multiple database actions for improved clarity and efficiency 2025-09-08 14:04:24 +02:00
Cynthia Ebert
a40dd8880d
fix(proxy): remove hardcoded port 80/443 checks (#6275) 2025-08-04 22:16:49 +02:00
Andras Bacsai
9ad2304229 refactor(proxy): streamline proxy status handling and improve dashboard availability checks 2025-06-11 12:02:39 +02:00
Andras Bacsai
1cdc01194b feat(proxy-dashboard): implement ProxyDashboardCacheService to manage Traefik dashboard cache; clear cache on configuration changes and proxy actions 2025-06-06 19:18:32 +02:00
Andras Bacsai
ddcb14500d refactor(proxy-status): refactored how the proxy status is handled on the UI and on the backend
feat(cloudflare): improved cloudflare tunnel automated installation
2025-06-06 14:47:54 +02:00
Andras Bacsai
e062edb689 refactor(core): streamline container stopping process and reduce timeout duration; update related methods for consistency 2025-04-30 15:28:59 +02:00
Andras Bacsai
3176106222 fix(CheckProxy, Status): prevent proxy checks when force_stop is active; remove debug statement in General 2025-04-05 14:32:51 +02:00
Andras Bacsai
5836837967 fix(CheckProxy): enhance port conflict detection by adjusting ss command for better output 2025-04-05 13:56:07 +02:00
Andras Bacsai
71823459a7 fix(CheckProxy): refine port conflict detection with improved grep patterns 2025-04-05 13:32:58 +02:00
Andras Bacsai
11ada83f1e fix(CheckProxy): update port conflict check to ensure accurate grep matching 2025-04-05 13:13:15 +02:00
Andras Bacsai
9b49332a36 refactor(CheckProxy): replace 'which' with 'command -v' for command availability checks 2025-04-05 12:30:14 +02:00
Lukasz L.
fb0bf3e687
Merge branch 'next' into main 2025-04-03 23:57:43 +02:00
peaklabs-dev
331693546b
fix(proxy): proxy restart does not work on domain
- When you restart the proxy on an instance domain, the proxy stops and is removed, but never restarted. So you loose access over the domain and have to go in over IP and Port.
This is because we are doing the restart directly in the UI instead of in the background via a job, and the proxy is serving the UI domain.
2025-04-02 19:38:31 +02:00
priard
bb70c11988 feat(proxy): enhance proxy handling and port conflict detection
- Refactored proxy container name determination based on environment.
- Implemented a smart port checker that accurately identifies port conflicts, including dual-stack scenarios.
- Improved error handling and user feedback for port usage issues.
2025-04-02 16:34:24 +02:00
Andras Bacsai
f7122ec520 refactor(proxy): improve port availability checks with multiple methods 2025-03-25 18:28:01 +01:00
Andras Bacsai
1e9a4aa5b6 fix(core): remove --remove-orphans flag from proxy startup command to prevent other proxy deletions (db) 2025-02-03 21:24:27 +01:00
Hederson Boechat
071cabdc31 fix(proxy) update traefik proxy config for docker swarm 2025-01-23 11:57:34 -03:00
Andras Bacsai
e84dba493e fix 2024-12-06 13:39:00 +01:00
Andras Bacsai
7d089ba1a9 fix: validateconnection 2024-11-22 15:50:52 +01:00
Andras Bacsai
695ab93cf0 fixes 2024-11-06 15:16:12 +01:00
Lucas Michot
1ec224fde1 Inline many variables. 2024-10-31 18:20:11 +01:00
Lucas Michot
8e1444eaa7 Get rid of many useless blank lines 2024-10-31 17:44:01 +01:00
Lucas Michot
5b6e466e0c Remove some useless catch blocks 2024-10-28 14:37:00 +01:00
Lucas Michot
d557a22b91 Remove all ray() calls 2024-10-28 13:51:23 +01:00
Andras Bacsai
4f4453b17c chore: Update proxy configuration paths for Caddy and Nginx in dev 2024-10-04 13:46:33 +02:00
Andras Bacsai
ce49f4806d fix: proxy conf in dev 2024-10-04 13:25:17 +02:00
Andras Bacsai
5f07b473e9 fix: parse proxy config and check the set ports usage 2024-10-03 21:29:55 +02:00
Andras Bacsai
dedf2cf87b fix: proxy fixes 2024-09-27 15:36:51 +02:00
Andras Bacsai
6c78580f1f refactor: Improve start proxy script to handle existing containers gracefully 2024-09-27 15:27:05 +02:00
Andras Bacsai
eb80a7e2f7 chore: Update Docker commands to start proxy 2024-09-24 10:53:12 +02:00
peaklabs-dev
ea3501ada6
Fix: SSH Multiplexing for Jobs 2024-09-17 15:31:05 +02:00
Andras Bacsai
189a8347ed feat: add server api endpoints 2024-07-23 14:20:53 +02:00
Andras Bacsai
7c4a722d72 refactor: Add force parameter to StartProxy handle method 2024-07-10 15:53:56 +02:00
Andras Bacsai
2c92cc40e1 refactor: Update code to use str() instead of Str::of() for string manipulation 2024-06-25 10:37:10 +02:00
Thijmen
d86274cc37 Fix styling 2024-06-10 20:43:34 +00:00
Andras Bacsai
5c72541044 fix: improve build server functionalities 2024-05-24 12:01:04 +02:00
Andras Bacsai
579ed5b9c0 fix: build server should not have a proxy 2024-05-24 11:17:23 +02:00
Andras Bacsai
cccf86d388 feat: if proxy stopped manually, it won't start back again 2024-05-22 20:42:08 +02:00