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
The easiest way to deploy Certbot UI is using Docker:
# Navigate to docker directory
cd docker
# Copy and configure environment
cp .env.example .env
nano .env # Edit JWT_SECRET and other settings
# Start with pre-built images from GitHub Container Registry
docker-compose up -d
# Or build locally
docker-compose -f docker-compose.local.yml up -dAccess at:
- Frontend: http://localhost:8080
- Backend API: http://localhost:5000
For detailed deployment instructions, see Docker Documentation.
- 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
Comprehensive documentation is available in the docs/ directory:
- Installation Guide - Detailed installation and setup instructions
- Quick Start Guide - Get up and running quickly
- Usage Guide - How to use the application
- Cloudflare Tunnel Setup - Expose services securely to the internet
- Contributing Guide - How to contribute to the project
The application can be deployed using Docker Compose with Cloudflare Tunnels for secure internet access:
# Start all services (backend, frontend, and tunnel)
docker compose up -d
# View logs
docker compose logs -f
# Stop services
docker compose downSee the Cloudflare Tunnel Setup Guide for details on exposing your services to the internet.
MIT
Contributions are welcome! Please read the Contributing Guide first.