expand the README to make it a little bit more useful

This commit is contained in:
mischa 2023-10-14 14:44:58 +00:00
parent 8e8ec9534c
commit 4189bd17a1
1 changed files with 72 additions and 10 deletions

View File

@ -1,8 +1,24 @@
## OpenSMTPD Admin
Fork of Postfix Admin 2.1.0 (released in 2007)
OpenSMTPD Admin started as a fork of Postfix Admin 2.1.0 (released
in 2007), and grew quickly in a complete rewrite for OpenSMTPD.
Database needed to use SQL with OpenSMTPD
## Installation of packages
To get going on OpenBSD you will need to install the following packages:
mariadb-server
php
php-pdo_mysql
For OpenSMTPD you need the packages:
opensmtpd-extras
opensmtpd-extras-mysql
Once the packages are installed follow the steps outlined in /usr/local/share/doc/pkg-readmes
You need to create the database with:
CREATE DATABASE IF NOT EXISTS `opensmtpd` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `opensmtpd`;
@ -15,7 +31,7 @@ Database needed to use SQL with OpenSMTPD
`modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`username`),
KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Admins'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Admins';
CREATE TABLE `alias` (
`address` varchar(255) NOT NULL DEFAULT '',
@ -25,7 +41,7 @@ Database needed to use SQL with OpenSMTPD
`modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`address`),
KEY `address` (`address`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Aliases'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Aliases';
CREATE TABLE `domain` (
`domain` varchar(255) NOT NULL DEFAULT '',
@ -36,14 +52,14 @@ Database needed to use SQL with OpenSMTPD
`modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`domain`),
KEY `domain` (`domain`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Domains'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Domains';
CREATE TABLE `domain_admins` (
`username` varchar(255) NOT NULL DEFAULT '',
`domain` varchar(255) NOT NULL DEFAULT '',
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Domain Admins'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Domain Admins';
CREATE TABLE `log` (
`timestamp` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
@ -52,7 +68,7 @@ Database needed to use SQL with OpenSMTPD
`action` varchar(255) NOT NULL DEFAULT '',
`data` varchar(255) NOT NULL DEFAULT '',
KEY `timestamp` (`timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Log'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Log';
CREATE TABLE `mailbox` (
`username` varchar(255) NOT NULL DEFAULT '',
@ -64,7 +80,7 @@ Database needed to use SQL with OpenSMTPD
`modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`username`),
KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Mailboxes'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Mailboxes';
CREATE TABLE `vacation` (
`email` varchar(255) NOT NULL DEFAULT '',
@ -75,10 +91,55 @@ Database needed to use SQL with OpenSMTPD
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`email`),
KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Vacation'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='OpenSMTPD Admin - Virtual Vacation';
Config for OpenSMTPTD, MySQL/MariaDB example:
You can create the database user with something like:
CREATE USER IF NOT EXISTS 'opensmtpd'@'localhost' IDENTIFIED BY 'RandomString';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON opensmtpd.* TO 'opensmtpd'@'localhost';
As an example configuration for httpd you can use:
server "opensmtpadmin" {
listen on * tls port 443
tls {
certificate "/etc/ssl/opensmtpdadmin.fullchain.pem"
key "/etc/ssl/private/opensmtpadmin.key"
}
tcp { nodelay, sack }
log style forwarded
location "/admin/*" {
authenticate with "/opensmtpdadmin/admin/.htpasswd"
root "/opensmtpdadmin"
fastcgi socket "/run/php-fpm.sock"
}
location "*.php*" {
root "/opensmtpdadmin"
directory index index.php
fastcgi socket "/run/php-fpm.sock"
}
location "/*" {
root "/opensmtpdadmin"
directory index index.php
}
}
As soon as that is done you can go to https://<yourhost>/<br>
You will be greeted by setup.php to check if everything is present to run OpenSMTPDAdmin.
Copy or move the conf.php-sample to conf.php and make the needed changes for your setup.<br>
You can remove setup.php if you want.
After that you can go to https://<yourhost>/admin/admin.php where you create the SUPER ADMIN.<br>
NOTE: Once this is done either remove or protect this directory / file.
You are now ready to use OpenSMTPDAdmin.
To use the accounts OpenSMTPDAdmin create in OpenSMTPD you can use the below config:
# /etc/mail/smtpd.conf
table credentials mysql:/etc/mail/sql.conf
@ -86,6 +147,7 @@ Config for OpenSMTPTD, MySQL/MariaDB example:
table userinfo mysql:/etc/mail/sql.conf
table virtuals mysql:/etc/mail/sql.conf
Connecting the database to smtpd:
# /etc/mail/sql.conf