Commit Graph

50 Commits

Author SHA1 Message Date
GitHub Actions
2014ff9fce feat(import): add multi-site import modal and upload-multi API 2025-12-01 16:19:05 +00:00
CI
5cea5755a0 feat: add external notification templates management
- Introduced NotificationTemplate model for reusable external notification templates.
- Implemented CRUD operations for external templates in NotificationService.
- Added routes for managing external templates in the API.
- Created frontend API methods for external templates.
- Enhanced Notifications page to manage external templates with a form and list view.
- Updated layout and login pages to improve UI consistency.
- Added integration tests for proxy host management with improved error handling.
2025-11-29 20:51:46 +00:00
CI
fcc273262c test(caddy): cover invalid path branches; ci: handle go test non-zero when coverage file exists 2025-11-29 08:55:25 +00:00
CI
ce8a51e6c7 fix(workflows): replace invalid semantic-version action with fallback script 2025-11-29 02:49:21 +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
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
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
51664416b6 feat: Enhance ProxyHost configuration with application presets and internal IP support 2025-11-27 03:54:41 +00:00
Wikid82
c8a452f1a0 feat: implement modular security services with CrowdSec and WAF integration 2025-11-26 18:35:14 +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
8c36a8dee4 feat: add support for additional emails in user management and update related configurations 2025-11-25 18:30:16 +00:00
Wikid82
07be2155be Refactor Security Management: Split Security page into Users, Providers, and Policies components; remove deprecated Security component; implement CRUD functionality for users, providers, and policies; enhance Uptime page with monitor editing capabilities. 2025-11-25 14:53:06 +00:00
Wikid82
7a1f577771 feat: add forward authentication configuration and UI
- Introduced ForwardAuthConfig model to store global forward authentication settings.
- Updated Manager to fetch and apply forward authentication configuration.
- Added ForwardAuthHandler to create a reverse proxy handler for authentication.
- Enhanced ProxyHost model to include forward authentication options.
- Created Security page and ForwardAuthSettings component for managing authentication settings.
- Implemented API endpoints for fetching and updating forward authentication configuration.
- Added tests for new functionality including validation and error handling.
- Updated frontend components to support forward authentication settings.
2025-11-25 13:25:05 +00:00
Wikid82
78b782974e feat: add custom name handling for proxy hosts and enhance import functionality 2025-11-25 03:50:23 +00:00
Wikid82
cc6bc7d6d6 feat: add name field to ProxyHost and implement sorting functionality in ProxyHosts and CertificateList components 2025-11-25 02:50:32 +00:00
Wikid82
72975c674a feat: enhance certificate handling with staging support and update UI for untrusted status 2025-11-25 01:53:58 +00:00
Wikid82
5bfe923e37 feat: add Certificate interface and update ProxyHostForm and ProxyHosts components to display certificate details 2025-11-25 01:06:45 +00:00
Wikid82
897959a621 feat: enhance import handling with detailed conflict resolution and UI updates 2025-11-24 23:48:25 +00:00
Wikid82
ad98d9fea2 feat: add multi-file upload and import detection endpoints to ImportHandler 2025-11-24 18:55:53 +00:00
Wikid82
6feff3e8ce chore: remove cashed 2025-11-24 18:22:01 +00:00
Wikid82
9c842e7eab chore: remove cached 2025-11-24 18:21:11 +00:00
Wikid82
a698dff33a feat: implement transient import previews and persist-on-commit
- Refactor import handler to support transient previews for uploads and mounted Caddyfiles
- Import sessions are now created only when user commits (not on upload/mount)
- Upload endpoint saves files to import/uploads/<uuid>.caddyfile and returns preview without DB persistence
- GetPreview supports both DB-backed sessions and transient previews from mountPath
- Commit endpoint handles both DB sessions and transient uploads/mounts, persisting session on commit
- Cancel endpoint removes DB sessions or deletes transient uploaded files
- CheckMountedImport no longer auto-creates DB sessions (transient preview behavior)
- Add conflict detection for transient previews against existing ProxyHosts
- Update importer to return raw domain names in conflicts array instead of formatted messages
- Fix import handler Cancel to return 404 for non-existent sessions
- Update all tests to match new transient preview behavior
- Install Node.js 20.x for pre-commit hooks
- Adjust coverage threshold to 78% (78.2% actual)
2025-11-24 17:43:55 +00:00
Wikid82
9f54438955 Add tests for error handling in backup, notification, and proxy host handlers; enhance certificate service with persistence tests; refactor backup service for scheduled backups; improve frontend form handling and add API tests for certificates, domains, and proxy hosts; implement frontend test coverage script. 2025-11-24 03:52:37 +00:00
Wikid82
642d4d2437 feat: Enhance Uptime heartbeat bar
- Frontend: Increase heartbeat history to 60 items (1 hour)
- Frontend: Add empty bars for alignment when history is sparse
- Frontend: Improve tooltips with detailed status info
- Frontend: Update API client to support limit parameter
2025-11-23 23:50:04 +00:00
Wikid82
8120806c68 chore: Update .gitignore and commit remaining frontend changes 2025-11-23 20:44:19 +00:00
Wikid82
ce89c63afc feat: implement certificate upload and deletion functionality, enhance certificate management in the API and frontend 2025-11-22 23:05:23 -05:00
Wikid82
ba67cc2274 fix: update remote server form tests for new test connection feature 2025-11-22 20:14:31 -05:00
Wikid82
8a60325464 feat: enhance import session handling by adding session UUID to commitImport function 2025-11-22 15:58:12 -05:00
Wikid82
fea86a6c76 feat: enhance import functionality with Caddyfile content preview and optional mounting in Docker 2025-11-22 14:29:21 -05:00
Wikid82
3256cc845b feat: add log level filtering and enhance logging configuration; update UI for improved navigation and settings structure 2025-11-21 21:32:43 -05:00
Wikid82
870af044f8 feat: add test connection functionality for proxy hosts and enhance UI for testing connections 2025-11-21 18:06:48 -05:00
Wikid82
cf23ddb666 feat: add domain management functionality with CRUD operations and integrate into UI 2025-11-21 16:15:39 -05:00
Wikid82
50e4932148 feat: add current password verification for email updates and implement tasks layout with navigation 2025-11-21 13:37:19 -05:00
Wikid82
8a0d7952a9 feat: add profile update functionality and integrate it into the Security page 2025-11-21 11:25:58 -05:00
Wikid82
96cb7c8ef4 test: improve backend coverage for caddy, backup and import services 2025-11-20 22:56:11 -05:00
Wikid82
62904858b2 refactor: reorganize imports and improve error handling across components 2025-11-20 22:21:32 -05:00
Wikid82
9f62a4a2df feat: add Docker container management functionality
- Implement DockerHandler to handle API requests for listing Docker containers.
- Create DockerService to interact with Docker API and retrieve container information.
- Add routes for Docker container management in the API.
- Introduce frontend API integration for Docker container listing.
- Enhance ProxyHostForm to allow quick selection of Docker containers.
- Update Docker-related tests to ensure functionality and error handling.
- Modify Docker Compose files to enable Docker socket access for local and remote environments.
- Add TypeScript configurations for improved build processes.
2025-11-20 21:27:02 -05:00
Wikid82
20c8944380 feat: Complete Issue #11 - Fix backup UI bugs and implement System Settings page 2025-11-20 13:38:05 -05:00
Wikid82
6db6652cd2 feat: Implement advanced access logging with Caddy JSON format, filtering, and download 2025-11-20 13:19:01 -05:00
Wikid82
e62eeebfba feat: implement Settings, Security, and Backups routes with API integration 2025-11-20 11:38:24 -05:00
Wikid82
1a506a0b46 feat: add backups and logs API with corresponding interfaces and functions 2025-11-20 10:28:10 -05:00
Wikid82
9d39241c61 feat: update health check API response and integrate versioning in Layout component 2025-11-20 09:54:55 -05:00
Wikid82
c97c16a752 feat: add Settings and Setup pages for user management
- Implemented Settings page for changing user passwords with validation and feedback.
- Created Setup page for initial admin account setup with form handling and navigation.
- Added API service layer for handling requests related to proxy hosts, remote servers, and import functionality.
- Introduced mock data for testing purposes and set up testing framework with vitest.
- Configured Tailwind CSS for styling and Vite for development and build processes.
- Added scripts for Dockerfile validation, Python syntax checking, and Sourcery integration.
- Implemented release and coverage scripts for better CI/CD practices.
2025-11-19 22:54:35 -05:00
Wikid82
1e2d87755d Remove Settings and Setup pages along with their tests and related API services
- Deleted Settings.tsx and Setup.tsx pages, which included functionality for changing passwords and setting up an admin account.
- Removed associated test files for Setup page.
- Eliminated API service definitions related to proxy hosts, remote servers, import functionality, and health checks.
- Cleaned up mock data and test setup files.
- Removed configuration files for TypeScript, Vite, and Tailwind CSS.
- Deleted scripts for testing coverage, release management, Dockerfile validation, and Python compilation checks.
- Removed Sourcery pre-commit wrapper script.
2025-11-19 22:53:32 -05:00
Wikid82
e13223592c feat: Add testRemoteServerConnection functionality to useRemoteServers hook and update related tests 2025-11-19 20:33:06 -05:00
Wikid82
945b18ab3e feat: Implement User Authentication and Fix Frontend Startup
- Implemented Issue #9: User Authentication & Authorization
  - Added User model fields (FailedLoginAttempts, LockedUntil, LastLogin)
  - Created AuthService with JWT support, bcrypt hashing, and account lockout
  - Added AuthMiddleware and AuthHandler
  - Registered auth routes in backend
  - Created AuthContext and RequireAuth component in frontend
  - Implemented Login page and integrated with backend
- Fixed 'Blank Page' issue in local Docker environment
  - Added QueryClientProvider to main.tsx
  - Installed missing lucide-react dependency
  - Fixed TypeScript linting errors in SetupGuard.tsx
- Updated docker-entrypoint.sh to use 127.0.0.1 for reliable Caddy checks
- Verified with local Docker build
2025-11-19 19:44:22 -05:00
Wikid82
c0c0c29f9f refactor(frontend): consolidate architecture, migrate to React Query, and remove legacy files 2025-11-19 17:46:11 -05:00
Wikid82
6b0dfa7085 ci: add Go/Node CI, Docker multi-stage, Makefile, and pre-commit hooks; update README 2025-11-17 18:16:03 -05:00