2019-09-19 08:43:17 +00:00
|
|
|
- name: apt install python3-psycopg2
|
|
|
|
apt:
|
|
|
|
name: python3-psycopg2
|
|
|
|
state: present
|
|
|
|
|
|
|
|
- name: database table domains
|
|
|
|
postgresql_table:
|
|
|
|
login_host: "{{ mailserver.postgresql.host }}"
|
|
|
|
port: "{{ mailserver.postgresql.port }}"
|
|
|
|
login_user: "{{ mailserver.postgresql.username }}"
|
|
|
|
login_password: "{{ mailserver.postgresql.password }}"
|
|
|
|
db: "{{ mailserver.postgresql.dbname }}"
|
|
|
|
ssl_mode: disable
|
|
|
|
name: domains
|
|
|
|
columns:
|
|
|
|
- id bigserial primary key
|
|
|
|
- name varchar(128) not null unique
|
|
|
|
- relay_transport text null
|
|
|
|
|
|
|
|
- name: database table users
|
|
|
|
postgresql_table:
|
|
|
|
login_host: "{{ mailserver.postgresql.host }}"
|
|
|
|
port: "{{ mailserver.postgresql.port }}"
|
|
|
|
login_user: "{{ mailserver.postgresql.username }}"
|
|
|
|
login_password: "{{ mailserver.postgresql.password }}"
|
|
|
|
db: "{{ mailserver.postgresql.dbname }}"
|
|
|
|
ssl_mode: disable
|
|
|
|
name: users
|
|
|
|
columns:
|
|
|
|
- id BIGSERIAL PRIMARY KEY
|
|
|
|
- domain_id BIGINT references domains(id) on delete cascade
|
|
|
|
- username VARCHAR(128) NOT NULL
|
|
|
|
- realname VARCHAR(250) NOT NULL
|
|
|
|
- password VARCHAR(128) NOT NULL
|
|
|
|
- suspend_submission BOOL NOT NULL DEFAULT false
|
|
|
|
- suspend_imap_reason TEXT NULL
|
2019-10-10 11:51:31 +00:00
|
|
|
- quota_storage_bytes BIGINT NOT NULL DEFAULT {{ mailserver.dovecot.mailbox_max_bytes | default(100000000000) }}
|
|
|
|
- quota_inbox_messages INT NOT NULL DEFAULT {{ mailserver.dovecot.mailbox_max_messages | default(500000) }}
|
2019-09-19 08:43:17 +00:00
|
|
|
- unique(domain_id, username)
|
|
|
|
|
|
|
|
- name: database index users__domain_username
|
|
|
|
postgresql_idx:
|
|
|
|
login_host: "{{ mailserver.postgresql.host }}"
|
|
|
|
port: "{{ mailserver.postgresql.port }}"
|
|
|
|
login_user: "{{ mailserver.postgresql.username }}"
|
|
|
|
login_password: "{{ mailserver.postgresql.password }}"
|
|
|
|
db: "{{ mailserver.postgresql.dbname }}"
|
|
|
|
ssl_mode: disable
|
|
|
|
table: users
|
|
|
|
columns: domain_id, username
|
|
|
|
idxname: users__domain_username
|
|
|
|
|
|
|
|
- name: database table aliases
|
|
|
|
postgresql_table:
|
|
|
|
login_host: "{{ mailserver.postgresql.host }}"
|
|
|
|
port: "{{ mailserver.postgresql.port }}"
|
|
|
|
login_user: "{{ mailserver.postgresql.username }}"
|
|
|
|
login_password: "{{ mailserver.postgresql.password }}"
|
|
|
|
db: "{{ mailserver.postgresql.dbname }}"
|
|
|
|
ssl_mode: disable
|
|
|
|
name: aliases
|
|
|
|
columns:
|
|
|
|
- id bigserial primary key
|
|
|
|
- alias_domain_id bigint references domains(id) on delete cascade
|
2022-04-25 18:10:40 +00:00
|
|
|
- alias varchar(250) not null
|
2019-09-19 08:43:17 +00:00
|
|
|
- forwardings varchar(250)[] not null
|
|
|
|
- t timestamp without time zone not null default now()
|
|
|
|
- comment text null
|
2022-04-25 18:10:40 +00:00
|
|
|
- unique(alias_domain_id, alias)
|
2019-09-19 08:43:17 +00:00
|
|
|
|
|
|
|
- name: database index aliases__alias
|
|
|
|
postgresql_idx:
|
|
|
|
login_host: "{{ mailserver.postgresql.host }}"
|
|
|
|
port: "{{ mailserver.postgresql.port }}"
|
|
|
|
login_user: "{{ mailserver.postgresql.username }}"
|
|
|
|
login_password: "{{ mailserver.postgresql.password }}"
|
|
|
|
db: "{{ mailserver.postgresql.dbname }}"
|
|
|
|
ssl_mode: disable
|
|
|
|
table: aliases
|
|
|
|
columns: alias
|
|
|
|
idxname: aliases__alias
|
|
|
|
|
|
|
|
- name: database table shared_folders
|
|
|
|
postgresql_table:
|
|
|
|
login_host: "{{ mailserver.postgresql.host }}"
|
|
|
|
port: "{{ mailserver.postgresql.port }}"
|
|
|
|
login_user: "{{ mailserver.postgresql.username }}"
|
|
|
|
login_password: "{{ mailserver.postgresql.password }}"
|
|
|
|
db: "{{ mailserver.postgresql.dbname }}"
|
|
|
|
ssl_mode: disable
|
|
|
|
name: shared_folders
|
|
|
|
columns:
|
|
|
|
- id bigserial primary key
|
|
|
|
- from_user varchar(128) not null
|
|
|
|
- to_user varchar(128) not null
|
|
|
|
- dummy char(1) DEFAULT '1'
|
|
|
|
|
|
|
|
- name: database index shared_folders__from_to
|
|
|
|
postgresql_idx:
|
|
|
|
login_host: "{{ mailserver.postgresql.host }}"
|
|
|
|
port: "{{ mailserver.postgresql.port }}"
|
|
|
|
login_user: "{{ mailserver.postgresql.username }}"
|
|
|
|
login_password: "{{ mailserver.postgresql.password }}"
|
|
|
|
db: "{{ mailserver.postgresql.dbname }}"
|
|
|
|
ssl_mode: disable
|
|
|
|
table: shared_folders
|
|
|
|
columns: from_user, to_user
|
|
|
|
idxname: shared_folders__from_to
|
|
|
|
|
|
|
|
- name: database table shared_folders_anyone
|
|
|
|
postgresql_table:
|
|
|
|
login_host: "{{ mailserver.postgresql.host }}"
|
|
|
|
port: "{{ mailserver.postgresql.port }}"
|
|
|
|
login_user: "{{ mailserver.postgresql.username }}"
|
|
|
|
login_password: "{{ mailserver.postgresql.password }}"
|
|
|
|
db: "{{ mailserver.postgresql.dbname }}"
|
|
|
|
ssl_mode: disable
|
|
|
|
name: shared_folders_anyone
|
|
|
|
columns:
|
|
|
|
- id bigserial primary key
|
|
|
|
- from_user varchar(128) not null
|
|
|
|
- dummy char(1) DEFAULT '1'
|
|
|
|
|
|
|
|
- name: database index shared_folders_anyone__from
|
|
|
|
postgresql_idx:
|
|
|
|
login_host: "{{ mailserver.postgresql.host }}"
|
|
|
|
port: "{{ mailserver.postgresql.port }}"
|
|
|
|
login_user: "{{ mailserver.postgresql.username }}"
|
|
|
|
login_password: "{{ mailserver.postgresql.password }}"
|
|
|
|
db: "{{ mailserver.postgresql.dbname }}"
|
|
|
|
ssl_mode: disable
|
|
|
|
table: shared_folders_anyone
|
|
|
|
columns: from_user
|
|
|
|
idxname: shared_folders__from
|
2019-10-11 16:14:38 +00:00
|
|
|
|
|
|
|
- name: database table mail_from
|
|
|
|
postgresql_table:
|
|
|
|
login_host: "{{ mailserver.postgresql.host }}"
|
|
|
|
port: "{{ mailserver.postgresql.port }}"
|
|
|
|
login_user: "{{ mailserver.postgresql.username }}"
|
|
|
|
login_password: "{{ mailserver.postgresql.password }}"
|
|
|
|
db: "{{ mailserver.postgresql.dbname }}"
|
|
|
|
ssl_mode: disable
|
|
|
|
name: mail_from
|
|
|
|
columns:
|
|
|
|
- id bigserial primary key
|
|
|
|
- t timestamp default now()
|
|
|
|
- original varchar(250) not null
|
|
|
|
- rewritten varchar(250) not null
|
2020-09-12 11:58:52 +00:00
|
|
|
- srs_id bigint
|
2019-10-11 16:14:38 +00:00
|
|
|
|
|
|
|
- name: database index mail_from__rewritten
|
|
|
|
postgresql_idx:
|
|
|
|
login_host: "{{ mailserver.postgresql.host }}"
|
|
|
|
port: "{{ mailserver.postgresql.port }}"
|
|
|
|
login_user: "{{ mailserver.postgresql.username }}"
|
|
|
|
login_password: "{{ mailserver.postgresql.password }}"
|
|
|
|
db: "{{ mailserver.postgresql.dbname }}"
|
|
|
|
ssl_mode: disable
|
|
|
|
table: mail_from
|
|
|
|
columns: rewritten
|
|
|
|
idxname: mail_from__rewritten
|
2020-09-12 11:58:52 +00:00
|
|
|
|
|
|
|
- name: database index mail_from__srs_id
|
|
|
|
postgresql_idx:
|
|
|
|
login_host: "{{ mailserver.postgresql.host }}"
|
|
|
|
port: "{{ mailserver.postgresql.port }}"
|
|
|
|
login_user: "{{ mailserver.postgresql.username }}"
|
|
|
|
login_password: "{{ mailserver.postgresql.password }}"
|
|
|
|
db: "{{ mailserver.postgresql.dbname }}"
|
|
|
|
ssl_mode: disable
|
|
|
|
table: mail_from
|
|
|
|
columns: srs_id
|
|
|
|
idxname: mail_from__srs_id
|