Skip to content

About

β›… Websoftware πŸš€ Dovecot per-domain SSL certificate control with a user-friendly web interface. It seamlessly integrates with ISPConfig for efficient mail domain SSL certificate management.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

2 watching

Forks

Dovecot Certificate Interface (DCI)

Note

This README has been updated for version 1.2.1 by AI (Claude Opus 5.5) and reviewed by a human.

πŸ” Overview

Tip

No new features are currently planned for this project. However, users are welcome to create issues or feature requests, which will be reviewed and responded to within 1–3 weeks.

DCI is a software tool designed to enable and manage per-domain SSL certificates for Dovecot, seamlessly integrating with ISPConfig. Optionally, the same certificates can be served by Postfix for SMTP, so mail clients can use their own domain for IMAP/POP3 and SMTP. This interface offers automation, user management, logging, and other features to simplify the administration of secure email services.

Screenshot

Features

  • Per-Domain SSL Certificate Management: Automates the configuration of SSL certificates for individual domains in Dovecot.
  • Postfix SMTP Certificates (SNI): Optionally writes the same per-domain certificates into a Postfix SNI map, so Postfix presents the matching certificate for each domain (Postfix 3.4 or newer).
  • SSL Validation: Before adding domains to Dovecot or Postfix, DCI checks that each certificate matches its private key (RSA and EC keys) and validates domain names and file paths to ensure proper configuration.
  • ISPConfig Integration: Fetches and applies SSL certificates automatically from ISPConfig, including Let's Encrypt certificates. Custom certificates are preferred as long as they are valid.
  • User Management: Manage users with different permissions; supports password recovery through database manipulation.
  • Logging & Monitoring: View and monitor cronjob activities and other background processes directly through the web interface.
  • Debugging Support: Enable MySQL logging for detailed error tracking during development.
  • IP Blacklisting: Automatic IP blocking after failed login attempts, with an option to unblock manually.
  • User Management: DCI includes user management, allowing administrators to create, edit, or delete users and assign different permissions. If the administrator password is lost, recovery requires direct database manipulation.
  • Standalone Mode: Can be used independently of other hosting software, though manual Dovecot (and optionally Postfix) configuration is required.
  • Logging: DCI provides logging for cronjob activities and includes a debugging mode that can be enabled in settings.php to log MySQL errors.

System File Modifications

DCI operates non-destructively, meaning it does not alter active configuration files. Instead, it generates a configuration file defined by the _CRON_DOVECOT_FILE_ constant in settings.php, and, if the optional Postfix cronjob is used, a Postfix SNI map (default /etc/postfix/dci.sni.map, changeable with the _CRON_POSTFIX_FILE_ constant). The only manual changes required are adding a single string to dovecot.conf and, for Postfix, a single line to main.cf, which can be easily reverted. Generated files are replaced atomically and Dovecot is reloaded instead of restarted, so open connections are kept. The software validates certificates deeply, minimizing the risk of corrupting Dovecot or Postfix configurations. However, ensure it is not used alongside other hosting software like Plesk or Virtualmin, which might conflict with its operations.

Default Login for Web Interface

  • Username: admin
  • Password: changeme

πŸ› οΈ Installation

For installation instructions, including the optional Postfix setup, please refer to our documentation, which can be found in the "Documentation" section of this README. You can access the instructions online at https://bugfishtm.github.io/Dovecot-Certificate-Interface/installation.html or locally at ./docs/installation.html.

πŸ“– Documentation

The following documentation is intended for both end-users and developers.

Description Link
A playlist or video related to this project. https://www.youtube.com/playlist?list=PL6npOHuBGrpBN3Ar9FlQEZEFe1yCXTBNr
If this repository contains a _videos folder, you can check that as well.
Access the online documentation for this project. https://bugfishtm.github.io/Dovecot-Certificate-Interface/index.html
If you'd prefer to access the documentation locally, you can find it at. ./docs/index.html

The following documentation is intended for developers.

Description Link
Documentation for the integrated framework - for developers. https://bugfishtm.github.io/bugfish-framework/

❓ Support Channels

If you encounter any issues or have questions while using this software, feel free to contact us:

πŸ“’ Spread the Word

Help us grow by sharing this project with others! You can:

  • Tweet about it – Share your thoughts on Twitter/X and link us!
  • Post on LinkedIn – Let your professional network know about this project on LinkedIn.
  • Share on Reddit – Talk about it in relevant subreddits like r/programming or r/opensource.
  • Tell Your Community – Spread the word in Discord servers, Slack groups, and forums.

πŸ“ Repository Structure

This table provides an overview of key files and folders related to the repository. Click on the links to access each file for more detailed information. If certain folders are missing from the repository, they are irrelevant to this project.

Document Type Description
.github Folder with github setup files.
.github/CODE_OF_CONDUCT.md The community guidelines.
_changelogs Folder for changelogs.
_images Folder for project images.
_licenses Folder for third-party licenses.
_releases Folder for releases.
_screenshots Folder with project screenshots.
_source Folder with the source code.
_videos Folder with videos related to the project.
docs Folder for the documentation.
.gitattributes Repository setting file. Only for development purposes.
.gitignore Repository ignore file. Only for development purposes.
README.md Readme of this project. You are currently looking at this file.
github_reset.bat File to reset this repository. Only for development purposes.
github_update.bat File to update this repository. Only for development purposes.
CONTRIBUTING.md Information for contributors.
CHANGELOG.md Information about changelogs.
SECURITY.md How to handle security issues.
LICENSE.md License of this project.

πŸ“‘ Changelog Information

Refer to the _changelogs folder for detailed insights into the changes made across different versions. The changelogs are available in HTML format within this folder, providing a structured record of updates, modifications, and improvements over time. Additionally, GitHub Releases follow the same structure and also include these changelogs for easy reference.

🀝 Community Guidelines

We’re on a mission to create groundbreaking solutions, pushing the boundaries of technology. By being here, you’re an integral part of that journey.

Positive Guidelines:

  • Be kind, empathetic, and respectful in all interactions.
  • Engage thoughtfully, offering constructive, solution-oriented feedback.
  • Foster an environment of collaboration, support, and mutual respect.

Unacceptable Behavior:

  • Harassment, hate speech, or offensive language.
  • Personal attacks, discrimination, or any form of bullying.
  • Sharing private or sensitive information without explicit consent.

Let’s collaborate, inspire one another, and build something extraordinary together!

πŸ›‘οΈ Warranty and Security

I take security seriously and appreciate responsible disclosure. If you discover a vulnerability, please follow these steps:

  • Do not report it via public GitHub issues or discussions. Instead, please contact the security@bugfish.eu email address directly.
  • Provide as much detail as possible, including a description of the issue, steps to reproduce it, and its potential impact.

I aim to acknowledge reports within 2–4 weeks and will update you on our progress once the issue is verified and addressed.

This software is provided as-is, without any guarantees of security, reliability, or fitness for any particular purpose. We do not take responsibility for any damage, data loss, security breaches, or other issues that may arise from using this software. By using this software, you agree that We are not liable for any direct, indirect, incidental, or consequential damages. Use it at your own risk.

πŸ“œ License Information

The license for this software can be found in the LICENSE.md file. Third-party licenses, like the one of the included Bugfish Framework, are located in the ./_licenses folder. The software may also include additional licensed software or libraries.

🐟 Bugfish

About

β›… Websoftware πŸš€ Dovecot per-domain SSL certificate control with a user-friendly web interface. It seamlessly integrates with ISPConfig for efficient mail domain SSL certificate management.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages