Commit Graph

3238 Commits

Author SHA1 Message Date
Wikid82 62bbd6693e fix: reorder feature list in README for improved clarity 2025-11-28 15:50:12 -05:00
Wikid82 fe1338890e fix: reorder feature list in README for improved clarity and consistency 2025-11-28 15:49:31 -05:00
Wikid82 83668da3d8 fix: reorder features in README for better clarity 2025-11-28 15:48:30 -05:00
Wikid82 fc1bf92bd6 fix: add spacing before license and release badges in README 2025-11-28 15:43:46 -05:00
Wikid82 1a2568ff4d fix: correct header level for Cerberus section in README 2025-11-28 15:42:25 -05:00
Wikid82 410fa17e79 fix: update README to correct heading level for Cerberus section and improve formatting 2025-11-28 15:41:02 -05:00
Wikid82 d3d3bd9a22 fix: correct header level for Cerberus section in README 2025-11-28 15:40:06 -05:00
Wikid82 19f884f88c fix: update README to enhance clarity and detail about Charon and Cerberus 2025-11-28 15:37:49 -05:00
Wikid82 73b60eb132 fix: update README to enhance clarity and detail about Charon and Cerberus 2025-11-28 15:37:24 -05:00
Wikid82 938692bbdc fix: update README to enhance project descriptions for Charon and Cerberus 2025-11-28 15:36:52 -05:00
Wikid82 f426595013 fix: update README to reflect project name change and improve clarity 2025-11-28 15:18:44 -05:00
Wikid82 7030d3d9d3 fix: update README to reflect project name change and improve clarity 2025-11-28 15:17:41 -05:00
Wikid82 9269a802dd fix: update README to reflect project name change from Caddy Proxy Manager+ to Charon 2025-11-28 15:16:33 -05:00
Jeremy 7f85fd8ecd Merge pull request #256 from Wikid82/main
Propagate changes from main into development
2025-11-28 12:31:41 -05:00
Wikid82 c2cbf19c5c fix: add support for ignoring XCF files in .gitignore 2025-11-28 12:05:15 -05:00
Wikid82 39210aee8c Refactor code structure for improved readability and maintainability 2025-11-28 12:02:25 -05:00
Wikid82 de39f5d7a5 fix: restore Charon.code-workspace configuration file 2025-11-28 11:59:21 -05:00
Jeremy 2fcbc71b09 Merge pull request #253 from Wikid82/main
Propagate changes from main into development
2025-11-28 10:14:13 -05:00
Wikid82 d96ff80f57 fix: add missing checkout step in test-image job
The test-image job was trying to run ./scripts/integration-test.sh
without first checking out the repository, causing CI failures.
2025-11-28 13:52:19 +00:00
Wikid82 2d68bc2d2d feat: improve bulk ACL modal with multi-select, progress indicator, and Select All/Clear
- Added checkboxes to select multiple ACLs at once
- Added Select All / Clear buttons for quick selection
- Added progress indicator when applying multiple ACLs
- ACLs are applied sequentially with visual feedback
- All tests passing with 81.32% coverage
2025-11-28 07:22:30 +00:00
Wikid82 0118f28fa7 fix: convert all internal doc links from .md to .html 2025-11-28 06:38:18 +00:00
Wikid82 1807d65c4c fix: use .html extensions in docs index for GitHub Pages 2025-11-28 06:31:00 +00:00
Wikid82 69bc7ff48d docs: add instruction for updating docs.yml index cards 2025-11-28 06:28:03 +00:00
Wikid82 d2f0226679 fix: resolve TypeScript any types and unused variable warnings 2025-11-28 06:27:00 +00:00
Wikid82 f37b20949a docs: add debugging and github-setup guides to landing page 2025-11-28 06:26:48 +00:00
Wikid82 31ab1f8976 fix: correct GitHub Pages documentation URLs and add features to docs index 2025-11-28 06:17:31 +00:00
Wikid82 c123fe52fd docs: update documentation link format to use GitHub Pages URLs 2025-11-28 06:00:37 +00:00
Wikid82 d31b613759 docs: add GitHub Pages link format to copilot instructions 2025-11-28 06:00:16 +00:00
Wikid82 3ca3067556 fix: update documentation links to point to the correct repository 2025-11-28 05:58:42 +00:00
Wikid82 9d5daff52c docs: update links to use GitHub Pages URLs 2025-11-28 05:58:07 +00:00
Wikid82 74d7bf2ac3 feat: enhance Access List management with delete confirmation and backup functionality 2025-11-28 05:52:17 +00:00
Wikid82 0273da0841 feat: add new public assets and update pre-commit configuration for large files 2025-11-28 05:47:42 +00:00
Wikid82 38b7df0c27 docs: add features.md, restructure docs, simplify README as marketing page 2025-11-28 05:42:29 +00:00
Wikid82 7a37b2f480 docs: add features.md, restructure docs, simplify README as marketing page 2025-11-28 05:41:55 +00:00
Wikid82 d5d4caf9b4 Refactor pre-commit hooks to manual execution, enhance uptime monitoring with new models and batching notifications
- Updated .pre-commit-config.yaml to change hooks to manual execution for performance.
- Added UptimeHost and UptimeNotificationEvent models to support host-level monitoring.
- Enhanced UptimeService to batch notifications for multiple service failures on the same host.
- Implemented tests for notification batching and uptime host creation during sync.
- Improved formatDuration function for better readability of durations.
2025-11-28 04:00:36 +00:00
Wikid82 a4cff3c194 feat: Add security presets and related tests
- Implemented new security presets for access control lists, including geo-blacklist and known botnet IPs.
- Added tests for security presets functionality, including validation of preset structure and category/type checks.
- Created hooks for Docker and domains with comprehensive tests for fetching, creating, and deleting domains.
- Removed unused HealthStatus component.
- Updated ProxyHosts bulk delete tests to reflect changes in selection logic.
- Introduced integration test script for automated testing of proxy host creation and validation.
2025-11-28 02:54:44 +00:00
Wikid82 72fd121bdb fix: resolve race conditions and update golangci-lint config
- Fix TestCertificateHandler_Delete race condition:
  - Add WAL mode and busy_timeout to SQLite connection
  - Add sleep to allow background sync goroutine to complete
- Fix TestNotificationService_SendExternal_EdgeCases race condition:
  - Use atomic.Value for cross-goroutine string access
- Update .golangci.yml for version 2:
  - Add version field
  - Move linters-settings under linters.settings
  - Remove deprecated typecheck and gosimple linters
  - Update govet shadow check syntax
2025-11-28 00:54:47 +00:00
Wikid82 1a9c651efd feat: add windows and macos support to goreleaser
- Update .goreleaser.yaml:
  - Split builds into linux, windows, and darwin
  - Configure Zig as the C/C++ compiler for cross-compilation (CGO enabled)
  - Add zip archive format for Windows
  - Restrict deb/rpm packages to Linux builds
- Update .github/workflows/release-goreleaser.yml:
  - Add setup-zig action to install Zig compiler
  - Remove manual apt-get cross-compiler installation
2025-11-28 00:34:25 +00:00
Wikid82 ca4ddc4e3e feat: enhance dev workflow and prepare for goreleaser
- Update Makefile with new targets:
  - lint-backend: Run golangci-lint via Docker
  - lint-docker: Run hadolint via Docker
  - test-race: Run Go tests with race detection
  - benchmark: Run Go benchmarks
  - integration-test: Run local integration tests
- Update .pre-commit-config.yaml:
  - Add go-test-race hook
  - Add golangci-lint hook
  - Add hadolint hook
- Add .goreleaser.yaml configuration:
  - Define builds for linux/amd64 and linux/arm64
  - Configure archive creation (tar.gz)
  - Configure package creation (deb, rpm)
- Add .github/workflows/release-goreleaser.yml:
  - New workflow to test GoReleaser builds
  - Builds frontend first, then uses GoReleaser
  - Handles cross-compilation dependencies
2025-11-28 00:28:42 +00:00
Wikid82 fc27b5c42e feat: add security presets and block list recommendations for ACLs
- Add security preset system with curated threat intelligence
  - High-Risk Countries preset (RU, CN, KP, IR, etc.) ~800M IPs
  - Expanded Threat List preset ~1.2B IPs
  - Cloud Scanner IPs preset (Shodan, Censys) ~3K IPs
  - Tor Exit Nodes preset ~1.2K IPs (changes daily)
- Add tooltips linking to data sources (SANS ISC, Spamhaus, Tor Project)
- Add 'Get My IP' button to quickly add current IP to allowlist
- Add IP range calculator showing total IPs covered by rules
- Emphasize block lists over allow lists in UI
  - Renamed UI labels to show 'Recommended' for block lists
  - Added info box explaining why block lists are safer
- Add /system/my-ip API endpoint to fetch user's public IP
  - Handles X-Forwarded-For, X-Real-IP, CF-Connecting-IP headers
  - Returns IP and source (direct, proxy, Cloudflare, etc.)
- Add ARIA attributes to ProxyHosts checkboxes for accessibility

Block lists prevent lockouts while maintaining security by blocking
known threats instead of requiring explicit allow lists that can
inadvertently block legitimate users (especially CGNAT/mobile users).

Note: Bulk delete tests need refinement (event simulation) - tracked
separately.
2025-11-28 00:05:11 +00:00
renovate[bot] f7a413b1bb chore(deps): update docker/metadata-action action to v5.10.0 (#243)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-27 18:39:54 +00:00
Wikid82 ab334a2315 feat: add bulk delete with auto-backup and improve bulk actions UX
- Add bulk delete button with automatic backup creation before deletion
- Move checkbox column to the right side of the table
- Show '(all)' indicator when all hosts are selected
- Add comprehensive delete confirmation modal listing affected hosts
- Rename 'Bulk Actions' button to 'Manage ACL' for clarity
- Add CGNAT warning banner in Access Lists page
  - Explains why mobile/CGNAT connections may be blocked
  - Provides solutions for locked-out users
  - Includes tips for T-Mobile 5G, Starlink, and other CGNAT ISPs
- Improve error messaging and loading states

Addresses common CGNAT issues where geo-blocking fails due to
data center IP addresses appearing instead of user's location.
2025-11-27 17:43:20 +00:00
Wikid82 33e91e21c5 Remove obsolete implementation documents and scripts; delete SECURITY_IMPLEMENTATION_PLAN.md, VERSIONING_IMPLEMENTATION.md, cookies.txt, create_issues.sh, and frontend coverage report. 2025-11-27 16:11:02 +00:00
Wikid82 2f23cf1251 chore: update ignore files and add issue creation script
- Add *.cover and coverage_*.out patterns to gitignore
- Add recursive database patterns (backend/data/**/*.db)
- Ignore project implementation documentation files
- Add cookies.txt and create_issues.sh to gitignore
- Update dockerignore with same patterns for smaller images
- Add *.cover and *.out to codecov ignore
- Add scripts/create_bulk_acl_issues.sh for automated issue creation
2025-11-27 16:08:29 +00:00
Wikid82 459f9b6c52 docs: add comprehensive testing documentation for bulk ACL feature
- Create main testing issue with 64 manual test checkpoints
- Add 7 sub-issue templates for organized testing workflow
- Cover basic functionality, error handling, UI/UX, integration, cross-browser, and regression testing
- Include test environment setup and success criteria
2025-11-27 15:03:42 +00:00
Wikid82 05321e3a59 feat: implement bulk ACL application feature for proxy hosts 2025-11-27 14:55:00 +00:00
Wikid82 429de10f0f feat: implement access list management with CRUD operations and IP testing
- Added API integration for access lists including listing, creating, updating, deleting, and testing IPs against access lists.
- Created AccessListForm component for creating and editing access lists with validation.
- Developed AccessListSelector component for selecting access lists with detailed display of selected ACL.
- Implemented hooks for managing access lists and handling API interactions.
- Added tests for AccessListSelector and useAccessLists hooks to ensure functionality.
- Enhanced AccessLists page with UI for managing access lists, including create, edit, delete, and test IP features.
2025-11-27 08:55:29 +00:00
Wikid82 486c9b40c1 feat: Add security scanning capabilities with govulncheck and Trivy integration 2025-11-27 06:01:32 +00:00
Wikid82 51664416b6 feat: Enhance ProxyHost configuration with application presets and internal IP support 2025-11-27 03:54:41 +00:00
Jeremy 09231ed6da Merge pull request #242 from Wikid82/copilot/add-cgnat-solver-feature
docs: Add Plex Remote Access Helper & CGNAT Solver issue specification
2025-11-26 19:37:50 -05:00