ebolo and Claude Opus 5
c484014752
Harden the read path, forwarded headers and security docs
...
Caddy Manager CI build / docker (push) Failing after 1m2s
Found while investigating an unrelated Gitea compromise: CaddyManager itself
was not involved, but reviewing it turned up three things worth closing.
Reading a configuration was the only file operation that did not validate the
name. Saving, renaming and deleting all reject `..`, `/` and `\`, so the read
path was the one way to leave the configuration directory and pull in any
`*.caddy` file on the host. The HTTP API happened to be covered, because GET
checks the name against the directory listing first, but the UI calls the
service directly and nothing stopped it.
Forwarded headers were trusted from any peer. That is correct only while the
container port is unreachable except through the proxy; the moment it is
published, a caller dictates the scheme, host and client address the app
believes in. Loopback and private space cover a proxy on a Docker network or on
the host, which is the documented deployment, and ignore everyone else.
The README never said that the `X-Api-Key` check guards `/api/*` and nothing
else, so the UI - which rewrites Caddyfiles and holds the Docker socket - reads
as protected when it is not. It now says so, and warns about the specific shape
that bit us: a second hostname added for machine callers whose only extra
directive is a `tls` line, which serves the unauthenticated UI to anyone who
can resolve it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-12 17:05:52 +07:00
ebolo
8f0019592e
fix(proxy): honor forwarded headers from Caddy
...
Caddy Manager CI build / docker (push) Successful in 1m14s
Bump the application version to 1.2.2 and configure forwarded headers so
OpenAPI generates HTTPS URLs when TLS is terminated by Caddy.
2026-07-26 20:40:35 +07:00
ebolo
4c271241d7
ci: publish only the web application container
...
Caddy Manager CI build / docker (push) Successful in 2m45s
Disable container support for tests and bump the application version to
1.2.1.
2026-07-26 20:02:13 +07:00
ebolo
9f7cb79bad
feat(api): Add authenticated Caddy management API
Caddy Manager CI build / docker (push) Successful in 4m24s
2026-07-26 18:34:02 +07:00
ebolo
a94abca127
build(deps): declare Alpine runtime identifier
Caddy Manager CI build / docker (push) Successful in 3m25s
2026-07-26 16:20:04 +07:00
ebolo
96f0112449
ci(build): target .NET 10 Alpine with low-memory tuning
Caddy Manager CI build / docker (push) Failing after 32s
2026-07-26 16:15:00 +07:00
ebolo
7380680230
feat: upgrade application to .NET 10
...
Caddy Manager CI build / docker (push) Successful in 6m37s
Preserve configuration defaults with the .NET 10 binder and update
dependencies, Docker builds, CI, and test tooling.
2026-07-26 15:55:11 +07:00
ebolo
b5cbad3664
refactor(caddy): centralize reverse proxy editor dialogs
Caddy Manager CI build / docker (push) Successful in 5m28s
2026-07-26 13:29:46 +07:00
ebolo
6f6a37d5a6
chore(version): bump application version to 1.1.0
Caddy Manager CI build / docker (push) Successful in 5m32s
2026-07-26 12:57:12 +07:00
ebolo
d5ea7b56cb
feat(caddy): support renaming configuration files
2026-07-26 12:55:50 +07:00
ebolo
f5a1f99dec
feat(caddy): add reload configs action to reverse proxies page
Caddy Manager CI build / docker (push) Successful in 7m32s
2026-07-26 11:58:18 +07:00
ebolo
d0687c9134
feat(docker): Gracefully reload Caddy configuration
Caddy Manager CI build / docker (push) Successful in 11m33s
2026-07-26 11:39:59 +07:00
ebolo
284036b549
ux: move tag to the right of hostname
Caddy Manager CI build / docker (push) Successful in 57s
2025-07-31 21:44:26 +07:00
ebolo
1ab09d4344
chore: implement retry mechanism for container publishing in CI workflow
Caddy Manager CI build / docker (push) Successful in 1m35s
2025-07-28 23:08:39 +07:00
ebolo
dfc091f98d
chore: change color of the tags chip
Caddy Manager CI build / docker (push) Successful in 51s
2025-07-28 23:00:54 +07:00
ebolo
d61b6983eb
feat: enhance search functionality in CaddyReverseProxiesPage to include tag matching
Caddy Manager CI build / docker (push) Successful in 1m15s
2025-07-28 22:42:17 +07:00
ebolo
7012193e04
feat: add tag extraction functionality to Caddy configuration and display in UI
Caddy Manager CI build / docker (push) Successful in 49s
2025-07-28 22:34:52 +07:00
ebolo
5d5888c6e7
refactor: remove unused using directives from service and test files for cleaner code
Caddy Manager CI build / docker (push) Successful in 1m39s
2025-07-27 13:26:04 +07:00
ebolo
844da49a54
refactor: update layout of CaddyReverseProxiesPage to use MudContainer for improved structure and styling
Caddy Manager CI build / docker (push) Successful in 1m21s
2025-07-26 21:26:16 +07:00
ebolo
ad18782149
chore: update coding standards to include service method argument and result wrapping, and add Tailwind CSS script to App.razor
Caddy Manager CI build / docker (push) Failing after 48s
2025-07-26 21:21:30 +07:00
ebolo
0beb3800b5
refactor: update Blazor testing guidelines and improve regex for hostname parsing in Caddy configuration
Caddy Manager CI build / docker (push) Successful in 45s
2025-07-23 15:33:18 +07:00
ebolo
063ed041b0
chore: refactor project structure by removing .cursorignore and updating references to use Contracts in test files
Caddy Manager CI build / docker (push) Successful in 52s
2025-07-23 11:50:12 +07:00
ebolo
85e556fe46
chore: remove coverage report file
Caddy Manager CI build / docker (push) Successful in 50s
2025-07-23 10:40:09 +07:00
ebolo
ec454d0346
chore: update project structure with contracts and services for CaddyManager, including configuration and Docker integration
Caddy Manager CI build / docker (push) Successful in 1m16s
2025-07-23 10:37:51 +07:00
ebolo
18c710d341
refactor: enhance layout and structure of Caddyfile and Reverse Proxies pages for improved UI consistency
Caddy Manager CI build / docker (push) Successful in 1m1s
2025-07-17 21:43:58 +07:00
ebolo
2da42bc8bd
fix: handle dialog result for Caddy restart and ensure processing state is updated on failure
Caddy Manager CI build / docker (push) Successful in 1m2s
2025-07-17 08:35:30 +07:00
ebolo
209ff3fe9c
fix: update deletion confirmation message to display file names instead of configurations
Caddy Manager CI build / docker (push) Successful in 59s
2025-07-16 23:34:17 +07:00
ebolo
401f9a8f51
fix: Implement object equality for CaddyConfigurationInfo to enable list selection
Caddy Manager CI build / docker (push) Successful in 1m0s
2025-07-16 23:13:42 +07:00
ebolo
57a5b0d58d
fix: update README links to point to the new GitHub repository and enhance installation instructions for Docker Compose
Caddy Manager CI build / docker (push) Successful in 58s
2025-07-16 10:13:43 +07:00
ebolo
3e0b1e8a7a
feat: add Caddy Manager service configuration to Docker Compose with volume mappings
Caddy Manager CI build / docker (push) Successful in 41s
2025-07-16 09:07:23 +07:00
ebolo
83bea70af5
refactor: rename CI job to 'build' and add permissions for container publishing
Caddy Manager CI build / docker (push) Successful in 45s
2025-07-16 08:58:22 +07:00
ebolo
345ff6477a
feat: add CI workflow for Caddy Manager with container publishing and metadata handling
Caddy Manager CI build / docker (push) Successful in 45s
2025-07-16 08:55:22 +07:00
ebolo
56da5d6dc2
fix: update commit hash link color for better visibility in UI
Caddy Manager CI build / docker (push) Successful in 1m1s
2025-07-16 08:27:40 +07:00
ebolo
a596ae48a0
feat: update commit hash display to be a clickable link in the UI
Caddy Manager CI build / docker (push) Successful in 1m2s
2025-07-16 08:25:29 +07:00
ebolo
1818f47cda
fix: correct syntax for container image tags in CI workflow
Caddy Manager CI build / docker (push) Failing after 57s
2025-07-16 08:10:39 +07:00
ebolo
159d9bbbef
feat: add application version and commit hash display in UI, update CI workflow for metadata handling
Caddy Manager CI build / docker (push) Failing after 25s
2025-07-16 08:09:14 +07:00
ebolo
cade49d89d
feat: enhance Caddy reverse proxy configuration with aggregated ports display
Caddy Manager CI build / docker (push) Successful in 1m2s
2025-07-16 07:16:23 +07:00
ebolo
ee32425930
feat: update roadmap to reflect completion of caddy file parsing feature
Caddy Manager CI build / docker (push) Successful in 46s
2025-07-16 07:01:37 +07:00
ebolo
44c7a5b45c
chore: refactor Caddyfile editor duplication
Caddy Manager CI build / docker (push) Successful in 1m2s
2025-07-15 07:53:34 +07:00
ebolo
14cbcf20f3
feat: add duplicate button to Caddyfile editor
Caddy Manager CI build / docker (push) Successful in 1m12s
2025-07-15 07:44:00 +07:00
ebolo
d0bb0f709a
feat: allow searching by server name
Caddy Manager CI build / docker (push) Successful in 1m1s
2025-07-12 10:55:04 +07:00
ebolo
d90b77d537
feat: Update GitHub icon URL in top bar
Caddy Manager CI build / docker (push) Successful in 1m22s
2025-07-12 09:45:04 +07:00
ebolo
25e58b622d
fix: Show progress circular on CaddyReverseProxiesPage when saving and restarting from editor
Caddy Manager CI build / docker (push) Successful in 39s
2025-07-12 08:42:12 +07:00
ebolo
a1811169f7
feat: Add save and restart functionality to Caddyfile editor and update launch configuration
Caddy Manager CI build / docker (push) Successful in 45s
2025-07-12 08:30:15 +07:00
ebolo
199ab601d5
chore: tweak the delete dialog
Caddy Manager CI build / docker (push) Successful in 2m52s
2025-07-10 21:59:39 +07:00
ebolo
84e70b724a
chore: ui fixes
Caddy Manager CI build / docker (push) Successful in 2m49s
2025-07-10 21:34:22 +07:00
ebolo
4ed7d6bd11
chore: add padding bottom to global caddy config editor
Caddy Manager CI build / docker (push) Successful in 1m0s
2025-07-10 21:26:41 +07:00
ebolo
fd366dc21d
feat: show info chips for configurations
Caddy Manager CI build / docker (push) Successful in 1m6s
2025-07-10 21:12:15 +07:00
ebolo
520ccd8a49
feat: support clearing the searching text
Caddy Manager CI build / docker (push) Successful in 1m15s
2025-07-05 15:40:37 +07:00
ebolo
f3eae5e649
feat: add search bar to the proxy configs page
Caddy Manager CI build / docker (push) Successful in 1m42s
2025-07-05 09:09:37 +07:00
ebolo
6e9eea843d
fix: do not add the divider line to the last item
2025-07-05 08:55:34 +07:00
ebolo
70951a2bfe
chore: ignore caddy config folder (test)
2025-07-05 08:54:53 +07:00
ebolo
25373e51b8
rework: configuration service
...
- to have it be more dynamic
2025-07-05 08:16:35 +07:00
ebolo
a6717942f3
fix: dir config for development
2025-07-05 08:05:18 +07:00
ebolo
95d8aabbbf
fix: create config dir for caddy if not exist
2025-07-05 08:01:43 +07:00
ebolo
f818873d6b
fix: auto focus to file name on opening editor dialog
Caddy Manager CI build / docker (push) Successful in 1m6s
2025-05-01 07:50:31 +00:00
ebolo
67a392fb78
fix: tweak the positioning of the file content field label
2025-05-01 07:46:44 +00:00
ebolo
36f21c864e
fix: padding and radius of caddyfile editor
Caddy Manager CI build / docker (push) Successful in 57s
2025-05-01 03:52:04 +00:00
ebolo
cfb0f495ca
feat: add custom css style component
...
Caddy Manager CI build / docker (push) Successful in 1m18s
This component would contain the css rules to override the default css (i.e.) of MudBlazor for custom styling
2025-04-30 11:37:21 +00:00
ebolo
f995e8c4d4
fix: active nav drawer item color
Caddy Manager CI build / docker (push) Successful in 1m27s
2025-04-30 11:17:48 +00:00
ebolo
9bd95c08f7
chore: update gitignore and dev cont
Caddy Manager CI build / docker (push) Successful in 1m33s
2025-04-30 10:56:13 +00:00
ebolo
413e5f339c
feat: update name of the dev container
...
Caddy Manager CI build / docker (push) Successful in 43s
Signed-off-by: ebolo <daothanhduy305@gmail.com >
2025-04-29 08:16:24 +07:00
ebolo
74dac65817
feat: add devcontainer
Caddy Manager CI build / docker (push) Successful in 1m24s
2025-04-29 01:12:13 +00:00
ebolo
7cb1e62326
refactor: clean up csproject
...
Caddy Manager CI build / docker (push) Successful in 1m56s
Signed-off-by: ebolo <daothanhduy305@gmail.com >
2025-02-07 11:38:13 +07:00
ebolo
e5dd287869
feat: use mini variant of drawer
Caddy Manager CI build / docker (push) Successful in 1m0s
2025-01-27 22:44:51 +07:00
ebolo
d0480ab41b
feat: add confirmation dialog on deleting configurations
Caddy Manager CI build / docker (push) Successful in 1m32s
2025-01-27 13:04:40 +07:00
ebolo
2e1d309c54
fix: update links
Caddy Manager CI build / docker (push) Successful in 1m2s
2025-01-26 12:57:05 +07:00
ebolo
a8a0475917
feat: omit the user repo in container registry
Caddy Manager CI build / docker (push) Successful in 48s
2025-01-26 12:32:10 +07:00
ebolo
70b1416b77
fix: move README outside
Caddy Manager CI build / docker (push) Successful in 2m46s
2025-01-26 12:00:51 +07:00
ebolo
be7afadf50
feat: add README and COPYING
Caddy Manager CI build / docker (push) Has been cancelled
2025-01-26 11:59:51 +07:00
ebolo
d25bddfa9b
Revert "fix: publish container --no-restore"
...
Caddy Manager CI build / docker (push) Successful in 41s
This reverts commit 7e6bb96390 .
2025-01-26 10:37:04 +07:00
ebolo
7e6bb96390
fix: publish container --no-restore
Caddy Manager CI build / docker (push) Failing after 36s
2025-01-26 09:55:59 +07:00
ebolo
57c007364f
feat: add cache dependency path
Caddy Manager CI build / docker (push) Successful in 52s
2025-01-26 09:51:33 +07:00
ebolo
805f373756
feat: add lock file
Caddy Manager CI build / docker (push) Failing after 45s
2025-01-26 09:37:10 +07:00
ebolo
2c19e81d76
fix: update ci action to fix build
Caddy Manager CI build / docker (push) Failing after 1m26s
2025-01-26 09:28:51 +07:00
ebolo
346d8f41bb
feat: add ci action
Caddy Manager CI build / docker (push) Failing after 2m19s
2025-01-26 09:19:24 +07:00
ebolo
7049e8489a
refactor: cleanup
2025-01-25 14:27:55 +07:00
ebolo
4680aa9f9f
fix: proper padding applied to the monaco editors
2025-01-25 07:41:32 +07:00
ebolo
a4f3f3552e
feat: dark mode
2025-01-25 07:17:22 +07:00
ebolo
a51b58561a
feat: support restart caddy docker container
2025-01-24 23:31:12 +07:00
ebolo
7ac609e9f6
feat: make the file name in edit mode be readonly instead of disabled
2025-01-24 15:32:54 +07:00
ebolo
c46333eb99
refactor: remove redundant initialization
2025-01-24 13:05:53 +07:00
ebolo
12dbb1578e
feat: support delete selected configurations
2025-01-24 13:01:09 +07:00
ebolo
760281d377
feat: save caddy file on edit and add new
2025-01-24 12:47:20 +07:00
ebolo
6c0bbef5d3
feat: add radius to the monaco editor
2025-01-24 08:31:57 +07:00
ebolo
098a7d308b
feat: also show the file name in edit mode
2025-01-24 08:18:19 +07:00
ebolo
98977c8ed5
feat: init new config dialog
2025-01-23 23:18:23 +07:00
ebolo
a6d3807703
feat: style the app bar and drawer
2025-01-23 22:40:57 +07:00
ebolo
ae7844eb45
typo: page title of reverse proxy config
2025-01-23 18:02:50 +07:00
ebolo
085a0c3485
feat: update proxy items styling
2025-01-23 17:54:50 +07:00
ebolo
8d322cbecd
feat: init the pages for reverse proxy configs and global configs
2025-01-23 17:22:32 +07:00
ebolo
0ab177abc7
init: initial commit for the project
2025-01-23 08:54:08 +07:00