A modern, secure web interface for managing Certbot SSL/TLS certificates.
- π Secure certificate management
- π Automatic and manual certificate renewal
- π Real-time dashboard with certificate status
- π¨ Modern, responsive UI with dark mode
- π Comprehensive logging and monitoring
- π Easy deployment with Docker
- Node.js + Express + TypeScript
- WebSocket for real-time updates
- JWT authentication
- Comprehensive security middleware
- React 18 + TypeScript
- Vite for fast builds
- TanStack Query for data management
- Tailwind CSS + shadcn/ui components
- Lucide icons
- Node.js >= 18
- npm >= 9
- Certbot installed on the system
# Install dependencies
npm install
# Start development servers (frontend + backend)
npm run dev
# Or start individually
npm run dev:backend
npm run dev:frontendThe frontend will be available at http://localhost:3000 and the backend at http://localhost:5000.
# Build both frontend and backend
npm run build
# Or build individually
npm run build:backend
npm run build:frontend# Run all tests
npm test
# Run tests with coverage
npm run test:coverage --workspacescertbot-ui/
βββ backend/ # Express API server
β βββ src/
β β βββ config/ # Configuration files
β β βββ controllers/ # Route controllers
β β βββ middleware/ # Express middleware
β β βββ routes/ # API routes
β β βββ services/ # Business logic
β β βββ types/ # TypeScript types
β β βββ utils/ # Utility functions
β βββ package.json
βββ frontend/ # React application
β βββ src/
β β βββ components/ # React components
β β βββ pages/ # Page components
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API services
β β βββ store/ # State management
β β βββ types/ # TypeScript types
β βββ package.json
βββ package.json # Root package (workspaces)
Copy .env.example to .env in the backend directory and configure:
JWT_SECRET: Secure random string for JWT signingCERTBOT_PATH: Path to certbot binaryCERTBOT_CONFIG_DIR: Certbot configuration directory- Other settings as needed
- This application runs Certbot commands with elevated privileges
- Always use HTTPS in production
- Change the default JWT secret
- Implement proper authentication
- Use rate limiting and input validation
- Review the security documentation before deployment
MIT
Contributions are welcome! Please read the contributing guide first.