Merge remote-tracking branch 'origin/dev' into forwardinghosts
commit
6c4c7a690e
|
@ -353,7 +353,7 @@ elseif (isset($_SESSION['mailcow_cc_role']) && ($_SESSION['mailcow_cc_role'] ==
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-sm-offset-2 col-sm-10">
|
<div class="col-sm-offset-2 col-sm-10">
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label><input type="checkbox" name="delete1" checked> <?=$lang['add']['delete1'];?></label>
|
<label><input type="checkbox" name="delete1"> <?=$lang['add']['delete1'];?></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,287 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS `admin` (
|
|
||||||
`username` VARCHAR(255) NOT NULL,
|
|
||||||
`password` VARCHAR(255) NOT NULL,
|
|
||||||
`superadmin` TINYINT(1) NOT NULL DEFAULT '0',
|
|
||||||
`created` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
|
|
||||||
`modified` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
|
|
||||||
`active` TINYINT(1) NOT NULL DEFAULT '1',
|
|
||||||
PRIMARY KEY (`username`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `alias` (
|
|
||||||
`address` VARCHAR(255) NOT NULL,
|
|
||||||
`goto` TEXT NOT NULL,
|
|
||||||
`domain` VARCHAR(255) NOT NULL,
|
|
||||||
`created` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
|
|
||||||
`modified` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
|
|
||||||
`active` TINYINT(1) NOT NULL DEFAULT '1',
|
|
||||||
PRIMARY KEY (`address`),
|
|
||||||
KEY `domain` (`domain`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `sender_acl` (
|
|
||||||
`logged_in_as` VARCHAR(255) NOT NULL,
|
|
||||||
`send_as` VARCHAR(255) NOT NULL
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `spamalias` (
|
|
||||||
`address` VARCHAR(255) NOT NULL,
|
|
||||||
`goto` TEXT NOT NULL,
|
|
||||||
`validity` INT(11) NOT NULL,
|
|
||||||
PRIMARY KEY (`address`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `alias_domain` (
|
|
||||||
`alias_domain` VARCHAR(255) NOT NULL,
|
|
||||||
`target_domain` VARCHAR(255) NOT NULL,
|
|
||||||
`created` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
|
|
||||||
`modified` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
|
|
||||||
`active` TINYINT(1) NOT NULL DEFAULT '1',
|
|
||||||
PRIMARY KEY (`alias_domain`),
|
|
||||||
KEY `active` (`active`),
|
|
||||||
KEY `target_domain` (`target_domain`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `domain` (
|
|
||||||
`domain` VARCHAR(255) NOT NULL,
|
|
||||||
`description` VARCHAR(255),
|
|
||||||
`aliases` INT(10) NOT NULL DEFAULT '0',
|
|
||||||
`mailboxes` INT(10) NOT NULL DEFAULT '0',
|
|
||||||
`maxquota` BIGINT(20) NOT NULL DEFAULT '0',
|
|
||||||
`quota` BIGINT(20) NOT NULL DEFAULT '0',
|
|
||||||
`transport` VARCHAR(255) NOT NULL,
|
|
||||||
`backupmx` TINYINT(1) NOT NULL DEFAULT '0',
|
|
||||||
`relay_all_recipients` TINYINT(1) NOT NULL DEFAULT '0',
|
|
||||||
`created` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
|
|
||||||
`modified` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
|
|
||||||
`active` TINYINT(1) NOT NULL DEFAULT '1',
|
|
||||||
PRIMARY KEY (`domain`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `domain_admins` (
|
|
||||||
`username` VARCHAR(255) NOT NULL,
|
|
||||||
`domain` VARCHAR(255) NOT NULL,
|
|
||||||
`created` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
|
|
||||||
`active` TINYINT(1) NOT NULL DEFAULT '1',
|
|
||||||
KEY `username` (`username`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `mailbox` (
|
|
||||||
`username` VARCHAR(255) NOT NULL,
|
|
||||||
`password` VARCHAR(255) NOT NULL,
|
|
||||||
`name` VARCHAR(255),
|
|
||||||
`maildir` VARCHAR(255) NOT NULL,
|
|
||||||
`quota` BIGINT(20) NOT NULL DEFAULT '0',
|
|
||||||
`local_part` VARCHAR(255) NOT NULL,
|
|
||||||
`domain` VARCHAR(255) NOT NULL,
|
|
||||||
`created` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
|
|
||||||
`modified` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
|
|
||||||
`tls_enforce_in` TINYINT(1) NOT NULL DEFAULT '0',
|
|
||||||
`tls_enforce_out` TINYINT(1) NOT NULL DEFAULT '0',
|
|
||||||
`kind` VARCHAR(100) NOT NULL DEFAULT '',
|
|
||||||
`multiple_bookings` TINYINT(1) NOT NULL DEFAULT '0',
|
|
||||||
`wants_tagged_subject` TINYINT(1) NOT NULL DEFAULT '0',
|
|
||||||
`active` TINYINT(1) NOT NULL DEFAULT '1',
|
|
||||||
PRIMARY KEY (`username`),
|
|
||||||
KEY `domain` (`domain`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `quota2` (
|
|
||||||
`username` VARCHAR(100) NOT NULL,
|
|
||||||
`bytes` BIGINT(20) NOT NULL DEFAULT '0',
|
|
||||||
`messages` INT(11) NOT NULL DEFAULT '0',
|
|
||||||
PRIMARY KEY (`username`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `filterconf` (
|
|
||||||
`object` VARCHAR(100) NOT NULL DEFAULT '',
|
|
||||||
`option` VARCHAR(50) NOT NULL DEFAULT '',
|
|
||||||
`value` VARCHAR(100) NOT NULL DEFAULT '',
|
|
||||||
`prefid` INT(11) NOT NULL AUTO_INCREMENT,
|
|
||||||
PRIMARY KEY (`prefid`),
|
|
||||||
KEY `object` (`object`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `imapsync` (
|
|
||||||
`id` INT NOT NULL AUTO_INCREMENT,
|
|
||||||
`user2` VARCHAR(255) NOT NULL,
|
|
||||||
`host1` VARCHAR(255) NOT NULL,
|
|
||||||
`authmech1` ENUM('PLAIN','LOGIN','CRAM-MD5') DEFAULT 'PLAIN',
|
|
||||||
`regextrans2` VARCHAR(255) DEFAULT '',
|
|
||||||
`authmd51` TINYINT(1) NOT NULL DEFAULT 0,
|
|
||||||
`domain2` VARCHAR(255) NOT NULL DEFAULT '',
|
|
||||||
`subfolder2` VARCHAR(255) NOT NULL DEFAULT '',
|
|
||||||
`user1` VARCHAR(255) NOT NULL,
|
|
||||||
`password1` VARCHAR(255) NOT NULL,
|
|
||||||
`exclude` VARCHAR(500) NOT NULL DEFAULT '',
|
|
||||||
`maxage` SMALLINT NOT NULL DEFAULT '0',
|
|
||||||
`mins_interval` VARCHAR(50) NOT NULL,
|
|
||||||
`port1` SMALLINT NOT NULL,
|
|
||||||
`enc1` ENUM('TLS','SSL','PLAIN') DEFAULT 'TLS',
|
|
||||||
`delete2duplicates` TINYINT(1) NOT NULL DEFAULT '1',
|
|
||||||
`returned_text` TEXT,
|
|
||||||
`last_run` TIMESTAMP NULL DEFAULT NULL,
|
|
||||||
`created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
`modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
`active` TINYINT(1) NOT NULL DEFAULT '0',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `tfa` (
|
|
||||||
`id` INT NOT NULL AUTO_INCREMENT,
|
|
||||||
`username` VARCHAR(255) NOT NULL,
|
|
||||||
`authmech` ENUM('yubi_otp', 'u2f', 'hotp', 'totp'),
|
|
||||||
`secret` VARCHAR(255) DEFAULT NULL,
|
|
||||||
`keyHandle` VARCHAR(255) DEFAULT NULL,
|
|
||||||
`publicKey` VARCHAR(255) DEFAULT NULL,
|
|
||||||
`counter` INT NOT NULL DEFAULT '0',
|
|
||||||
`certificate` TEXT,
|
|
||||||
`active` TINYINT(1) NOT NULL DEFAULT '0',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `forwarding_hosts` (
|
|
||||||
`host` VARCHAR(255) NOT NULL,
|
|
||||||
`source` VARCHAR(255) NOT NULL,
|
|
||||||
PRIMARY KEY (`host`)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
DROP VIEW IF EXISTS grouped_mail_aliases;
|
|
||||||
DROP VIEW IF EXISTS grouped_sender_acl;
|
|
||||||
DROP VIEW IF EXISTS grouped_domain_alias_address;
|
|
||||||
|
|
||||||
CREATE VIEW grouped_mail_aliases (username, aliases) AS
|
|
||||||
SELECT goto, IFNULL(GROUP_CONCAT(address SEPARATOR ' '), '') AS address FROM alias
|
|
||||||
WHERE address!=goto
|
|
||||||
AND active = '1'
|
|
||||||
AND address NOT LIKE '@%'
|
|
||||||
GROUP BY goto;
|
|
||||||
|
|
||||||
CREATE VIEW grouped_sender_acl (username, send_as) AS
|
|
||||||
SELECT logged_in_as, IFNULL(GROUP_CONCAT(send_as SEPARATOR ' '), '') AS send_as FROM sender_acl
|
|
||||||
WHERE send_as NOT LIKE '@%'
|
|
||||||
GROUP BY logged_in_as;
|
|
||||||
|
|
||||||
CREATE VIEW grouped_domain_alias_address (username, ad_alias) AS
|
|
||||||
SELECT username, IFNULL(GROUP_CONCAT(local_part, '@', alias_domain SEPARATOR ' '), '') AS ad_alias FROM mailbox
|
|
||||||
LEFT OUTER JOIN alias_domain on target_domain=domain GROUP BY username;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS sogo_acl (
|
|
||||||
c_folder_id INTEGER NOT NULL,
|
|
||||||
c_object character varying(255) NOT NULL,
|
|
||||||
c_uid character varying(255) NOT NULL,
|
|
||||||
c_role character varying(80) NOT NULL
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS sogo_alarms_folder (
|
|
||||||
c_path VARCHAR(255) NOT NULL,
|
|
||||||
c_name VARCHAR(255) NOT NULL,
|
|
||||||
c_uid VARCHAR(255) NOT NULL,
|
|
||||||
c_recurrence_id INT(11) DEFAULT NULL,
|
|
||||||
c_alarm_number INT(11) NOT NULL,
|
|
||||||
c_alarm_date INT(11) NOT NULL
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS sogo_cache_folder (
|
|
||||||
c_uid VARCHAR(255) NOT NULL,
|
|
||||||
c_path VARCHAR(255) NOT NULL,
|
|
||||||
c_parent_path VARCHAR(255) DEFAULT NULL,
|
|
||||||
c_type TINYINT(3) unsigned NOT NULL,
|
|
||||||
c_creationdate INT(11) NOT NULL,
|
|
||||||
c_lastmodified INT(11) NOT NULL,
|
|
||||||
c_version INT(11) NOT NULL DEFAULT '0',
|
|
||||||
c_deleted TINYINT(4) NOT NULL DEFAULT '0',
|
|
||||||
c_content longTEXT,
|
|
||||||
PRIMARY KEY (c_uid,c_path)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS sogo_folder_info (
|
|
||||||
c_folder_id BIGINT(20) unsigned NOT NULL AUTO_INCREMENT,
|
|
||||||
c_path VARCHAR(255) NOT NULL,
|
|
||||||
c_path1 VARCHAR(255) NOT NULL,
|
|
||||||
c_path2 VARCHAR(255) DEFAULT NULL,
|
|
||||||
c_path3 VARCHAR(255) DEFAULT NULL,
|
|
||||||
c_path4 VARCHAR(255) DEFAULT NULL,
|
|
||||||
c_foldername VARCHAR(255) NOT NULL,
|
|
||||||
c_location INTeger NULL,
|
|
||||||
c_quick_location VARCHAR(2048) DEFAULT NULL,
|
|
||||||
c_acl_location VARCHAR(2048) DEFAULT NULL,
|
|
||||||
c_folder_type VARCHAR(255) NOT NULL,
|
|
||||||
PRIMARY KEY (c_path),
|
|
||||||
UNIQUE KEY c_folder_id (c_folder_id)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS sogo_quick_appointment (
|
|
||||||
c_folder_id INTeger NOT NULL,
|
|
||||||
c_name character varying(255) NOT NULL,
|
|
||||||
c_uid character varying(255) NOT NULL,
|
|
||||||
c_startdate INTeger,
|
|
||||||
c_enddate INTeger,
|
|
||||||
c_cycleenddate INTeger,
|
|
||||||
c_title character varying(1000) NOT NULL,
|
|
||||||
c_participants TEXT,
|
|
||||||
c_isallday INTeger,
|
|
||||||
c_iscycle INTeger,
|
|
||||||
c_cycleinfo TEXT,
|
|
||||||
c_classification INTeger NOT NULL,
|
|
||||||
c_isopaque INTeger NOT NULL,
|
|
||||||
c_status INTeger NOT NULL,
|
|
||||||
c_priority INTeger,
|
|
||||||
c_location character varying(255),
|
|
||||||
c_orgmail character varying(255),
|
|
||||||
c_partmails TEXT,
|
|
||||||
c_partstates TEXT,
|
|
||||||
c_category character varying(255),
|
|
||||||
c_sequence INTeger,
|
|
||||||
c_component character varying(10) NOT NULL,
|
|
||||||
c_nextalarm INTeger,
|
|
||||||
c_description TEXT,
|
|
||||||
CONSTRAINT sogo_quick_appointment_pkey PRIMARY KEY (c_folder_id, c_name)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS sogo_quick_contact (
|
|
||||||
c_folder_id INTeger NOT NULL,
|
|
||||||
c_name character varying(255) NOT NULL,
|
|
||||||
c_givenname character varying(255),
|
|
||||||
c_cn character varying(255),
|
|
||||||
c_sn character varying(255),
|
|
||||||
c_screenname character varying(255),
|
|
||||||
c_l character varying(255),
|
|
||||||
c_mail character varying(255),
|
|
||||||
c_o character varying(255),
|
|
||||||
c_ou character varying(255),
|
|
||||||
c_telephonenumber character varying(255),
|
|
||||||
c_categories character varying(255),
|
|
||||||
c_component character varying(10) NOT NULL,
|
|
||||||
CONSTRAINT sogo_quick_contact_pkey PRIMARY KEY (c_folder_id, c_name)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS sogo_sessions_folder (
|
|
||||||
c_id VARCHAR(255) NOT NULL,
|
|
||||||
c_value VARCHAR(255) NOT NULL,
|
|
||||||
c_creationdate INT(11) NOT NULL,
|
|
||||||
c_lastseen INT(11) NOT NULL,
|
|
||||||
PRIMARY KEY (c_id)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS sogo_store (
|
|
||||||
c_folder_id INTeger NOT NULL,
|
|
||||||
c_name character varying(255) NOT NULL,
|
|
||||||
c_content mediumTEXT NOT NULL,
|
|
||||||
c_creationdate INTeger NOT NULL,
|
|
||||||
c_lastmodified INTeger NOT NULL,
|
|
||||||
c_version INTeger NOT NULL,
|
|
||||||
c_deleted INTeger,
|
|
||||||
CONSTRAINT sogo_store_pkey PRIMARY KEY (c_folder_id, c_name)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS sogo_user_profile (
|
|
||||||
c_uid VARCHAR(255) NOT NULL,
|
|
||||||
c_defaults TEXT,
|
|
||||||
c_settings TEXT,
|
|
||||||
PRIMARY KEY (c_uid)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
|
||||||
|
|
||||||
INSERT INTO `admin` (username, password, superadmin, created, modified, active) SELECT 'admin', '{SSHA256}K8eVJ6YsZbQCfuJvSUbaQRLr0HPLz5rC9IAp0PAFl0tmNDBkMDc0NDAyOTAxN2Rk', 1, NOW(), NOW(), 1 WHERE NOT EXISTS (SELECT * FROM `admin`);
|
|
||||||
DELETE FROM `domain_admins`;
|
|
||||||
INSERT INTO `domain_admins` (username, domain, created, active) SELECT `username`, 'ALL', NOW(), 1 FROM `admin` WHERE superadmin='1' AND `username` NOT IN (SELECT `username` FROM `domain_admins`);
|
|
|
@ -55,6 +55,17 @@ services:
|
||||||
aliases:
|
aliases:
|
||||||
- redis
|
- redis
|
||||||
|
|
||||||
|
# clamd-mailcow:
|
||||||
|
# image: mailcow/clamd
|
||||||
|
# restart: always
|
||||||
|
# dns:
|
||||||
|
# - 172.22.1.254
|
||||||
|
# dns_search: mailcow-network
|
||||||
|
# networks:
|
||||||
|
# mailcow-network:
|
||||||
|
# aliases:
|
||||||
|
# - clamd
|
||||||
|
|
||||||
rspamd-mailcow:
|
rspamd-mailcow:
|
||||||
image: mailcow/rspamd
|
image: mailcow/rspamd
|
||||||
build: ./data/Dockerfiles/rspamd
|
build: ./data/Dockerfiles/rspamd
|
||||||
|
|
Loading…
Reference in New Issue