Commit Graph
93 Commits
Author SHA1 Message Date
eboloandClaude Opus 5 d240ede031 Refresh the lock file for the SDK the runner installs
Caddy Manager CI build / docker (push) Successful in 54s
CI restores with `--locked-mode`, and `setup-dotnet` is pinned only to
`dotnet-version: '10'` with `dotnet-quality: 'ga'`, so it follows the latest
10.x GA. That SDK now brings Microsoft.AspNetCore.App.Internal.Assets 10.0.12
while the lock still pinned 10.0.10, and restore refused with NU1004. Nothing
in the project changed; the implicit ASP.NET Core package moved under it.

Regenerated with `scripts/dotnet-docker.sh restore --force-evaluate` so the
value comes from the same SDK image the runner uses (10.0.401) rather than
whatever happens to be installed locally. Verified with `--locked-mode` and the
full suite, 346 tests, on that image.

This will drift again on the next patch. The durable options are pinning the
SDK exactly (global.json plus an exact `dotnet-version`) or dropping
`--locked-mode`; leaving that decision alone for now.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-12 17:59:32 +07:00
eboloandClaude 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