Commit Graph

3558 Commits

Author SHA1 Message Date
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
copilot-swe-agent[bot]
3ca72b157c feat: Add Plex Remote Access Helper & CGNAT Solver issue specification
Co-authored-by: Wikid82 <176516789+Wikid82@users.noreply.github.com>
2025-11-27 00:20:03 +00:00
copilot-swe-agent[bot]
121021450f Initial plan 2025-11-27 00:16:09 +00:00
Wikid82
1efc18940c feat: enable security services in docker-compose and update logs navigation 2025-11-26 21:07:24 +00:00
Jeremy
7064cafaf7 Merge pull request #240 from Wikid82/main
Propagate changes from main into development
2025-11-26 14:00:12 -05:00
Wikid82
6f55ac99c3 fix: improve uptime service test reliability by using local closed port 2025-11-26 18:57:19 +00:00
Wikid82
6e646eee3c fix: update security docs link and workflow base path 2025-11-26 18:53:10 +00:00
Wikid82
e8f52b6d18 docs: fix navigation links for cpmp base path 2025-11-26 18:52:56 +00:00
Wikid82
58edf44f3c feat: update security configuration and documentation for new service modes 2025-11-26 18:47:31 +00:00
Jeremy
1b9cf98b9d docs: update security env vars to use MODE 2025-11-26 13:46:37 -05:00
Jeremy
a232824f64 docs: add security documentation 2025-11-26 13:40:19 -05:00
Wikid82
c8a452f1a0 feat: implement modular security services with CrowdSec and WAF integration 2025-11-26 18:35:14 +00:00
Wikid82
06d0aca8a4 feat: update favicon and adjust logo/banner display in layout 2025-11-26 14:23:44 +00:00
Jeremy
7465a24347 Merge pull request #239 from Wikid82/development
Propagate changes from development into feature/beta-release
2025-11-26 08:37:18 -05:00
Jeremy
804e1417fa Merge pull request #238 from Wikid82/renovate/npm-minorpatch
fix(deps): update npm minor/patch
2025-11-26 08:36:47 -05:00
renovate[bot]
9177737a60 fix(deps): update npm minor/patch 2025-11-26 09:53:57 +00:00
Wikid82
ba05c5e945 feat: adjust banner image layout for better alignment and size 2025-11-26 04:05:37 +00:00
Wikid82
20cf3d1010 feat: update banner image dimensions for improved responsiveness 2025-11-26 03:57:18 +00:00
Wikid82
1891cbb75a feat: add static file serving for banner, logo, and favicon in router 2025-11-26 03:49:47 +00:00
Wikid82
e459978797 feat: replace title with banner image in mobile header and main layout 2025-11-26 03:49:47 +00:00
Jeremy
f811983473 Merge pull request #237 from Wikid82/development
Propagate changes from development into feature/beta-release
2025-11-25 22:49:20 -05:00
Jeremy
5307b4fe5e Merge branch 'feature/beta-release' into development 2025-11-25 22:49:03 -05:00
Wikid82
b2cd09ae24 feat: add new public assets and update pre-commit configuration for large files 2025-11-25 22:11:03 -05:00
Wikid82
a52108bfd1 feat: update MonitorCard layout for improved status display and settings access 2025-11-26 01:45:46 +00:00
Wikid82
3015682394 feat: enhance MonitorCard layout with status badge and settings button 2025-11-26 01:41:15 +00:00
Wikid82
a8a95793b7 fix: adjust styling for MonitorCard status indicator for better alignment 2025-11-26 01:34:08 +00:00
Wikid82
56903b0e06 chore: clean up unused files and empty code blocks 2025-11-26 01:12:52 +00:00
Wikid82
4f03021c9c refactor: remove security-related hooks and pages
- Deleted `useSecurity.ts` hook which managed authentication users, providers, and policies.
- Removed `Policies.tsx`, `Providers.tsx`, and `Users.tsx` pages that utilized the above hook.
- Cleaned up the `index.tsx` file in the Security section to remove references to the deleted pages.
- Updated mock data by removing unused properties related to forward authentication.
2025-11-26 00:02:15 +00:00
Wikid82
b20522f150 feat: add IdentityStore support to security app configuration 2025-11-25 23:06:05 +00:00
Wikid82
96920c2b20 feat: refactor security app configuration to use unified SecurityConfig structure 2025-11-25 22:43:09 +00:00
Wikid82
b1fdcfbb1b feat: add HelpTooltip component for improved OAuth field guidance 2025-11-25 22:23:02 +00:00