Skip to content

πŸ”’ Modern web UI for Certbot - Manage Let's Encrypt SSL/TLS certificates with ease. Features automated renewals, multiple certificate formats (PEM, DER, PKCS12, JKS), DNS/HTTP challenges, and real-time monitoring.

Notifications You must be signed in to change notification settings

oriolrius/certbot-ui

Repository files navigation

Certbot UI

A modern, secure web interface for managing Certbot SSL/TLS certificates.

Features

  • πŸ” 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

Tech Stack

Backend

  • Node.js + Express + TypeScript
  • WebSocket for real-time updates
  • JWT authentication
  • Comprehensive security middleware

Frontend

  • React 18 + TypeScript
  • Vite for fast builds
  • TanStack Query for data management
  • Tailwind CSS + shadcn/ui components
  • Lucide icons

Quick Start

Prerequisites

  • Node.js >= 18
  • npm >= 9
  • Certbot installed on the system

Development

# Install dependencies
npm install

# Start development servers (frontend + backend)
npm run dev

# Or start individually
npm run dev:backend
npm run dev:frontend

The frontend will be available at http://localhost:3000 and the backend at http://localhost:5000.

Building

# Build both frontend and backend
npm run build

# Or build individually
npm run build:backend
npm run build:frontend

Testing

# Run all tests
npm test

# Run tests with coverage
npm run test:coverage --workspaces

Project Structure

certbot-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)

Configuration

Copy .env.example to .env in the backend directory and configure:

  • JWT_SECRET: Secure random string for JWT signing
  • CERTBOT_PATH: Path to certbot binary
  • CERTBOT_CONFIG_DIR: Certbot configuration directory
  • Other settings as needed

Security

⚠️ Important Security Notes:

  • 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

License

MIT

Contributing

Contributions are welcome! Please read the contributing guide first.

About

πŸ”’ Modern web UI for Certbot - Manage Let's Encrypt SSL/TLS certificates with ease. Features automated renewals, multiple certificate formats (PEM, DER, PKCS12, JKS), DNS/HTTP challenges, and real-time monitoring.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published