ansible-mailserver-debian/mail_system/tasks/database.yml

177 lines
6.5 KiB
YAML
Raw Permalink Normal View History

2026-03-22 13:09:26 +01:00
- name: Install package python3-psycopg2
ansible.builtin.apt:
2019-09-19 10:43:17 +02:00
name: python3-psycopg2
state: present
2026-03-22 13:09:26 +01:00
- name: Database table domains
community.postgresql.postgresql_table:
2019-09-19 10:43:17 +02:00
login_host: "{{ mailserver.postgresql.host }}"
2026-03-22 13:09:26 +01:00
login_port: "{{ mailserver.postgresql.port }}"
2019-09-19 10:43:17 +02:00
login_user: "{{ mailserver.postgresql.username }}"
login_password: "{{ mailserver.postgresql.password }}"
2026-03-22 13:09:26 +01:00
login_db: "{{ mailserver.postgresql.dbname }}"
2019-09-19 10:43:17 +02:00
ssl_mode: disable
name: domains
columns:
2026-03-22 13:09:26 +01:00
- id BIGSERIAL PRIMARY KEY
- name VARCHAR(128) NOT NULL UNIQUE
- relay_transport TEXT NULL
2019-09-19 10:43:17 +02:00
2026-03-22 13:09:26 +01:00
- name: Database table users
community.postgresql.postgresql_table:
2019-09-19 10:43:17 +02:00
login_host: "{{ mailserver.postgresql.host }}"
2026-03-22 13:09:26 +01:00
login_port: "{{ mailserver.postgresql.port }}"
2019-09-19 10:43:17 +02:00
login_user: "{{ mailserver.postgresql.username }}"
login_password: "{{ mailserver.postgresql.password }}"
2026-03-22 13:09:26 +01:00
login_db: "{{ mailserver.postgresql.dbname }}"
2019-09-19 10:43:17 +02:00
ssl_mode: disable
name: users
columns:
2026-03-22 13:09:26 +01:00
- 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
- 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) }}
- unique(domain_id, username)
2019-09-19 10:43:17 +02:00
2026-03-22 13:09:26 +01:00
- name: Database index users__domain_username
community.postgresql.postgresql_idx:
2019-09-19 10:43:17 +02:00
login_host: "{{ mailserver.postgresql.host }}"
2026-03-22 13:09:26 +01:00
login_port: "{{ mailserver.postgresql.port }}"
2019-09-19 10:43:17 +02:00
login_user: "{{ mailserver.postgresql.username }}"
login_password: "{{ mailserver.postgresql.password }}"
2026-03-22 13:09:26 +01:00
login_db: "{{ mailserver.postgresql.dbname }}"
2019-09-19 10:43:17 +02:00
ssl_mode: disable
table: users
columns: domain_id, username
idxname: users__domain_username
2026-03-22 13:09:26 +01:00
- name: Database table aliases
community.postgresql.postgresql_table:
2019-09-19 10:43:17 +02:00
login_host: "{{ mailserver.postgresql.host }}"
2026-03-22 13:09:26 +01:00
login_port: "{{ mailserver.postgresql.port }}"
2019-09-19 10:43:17 +02:00
login_user: "{{ mailserver.postgresql.username }}"
login_password: "{{ mailserver.postgresql.password }}"
2026-03-22 13:09:26 +01:00
login_db: "{{ mailserver.postgresql.dbname }}"
2019-09-19 10:43:17 +02:00
ssl_mode: disable
name: aliases
columns:
2026-03-22 13:09:26 +01:00
- id bigserial primary key
- alias_domain_id bigint references domains(id) on delete cascade
- alias varchar(250) not null
- forwardings varchar(250)[] not null
- t timestamp without time zone not null default now()
- comment text null
- unique(alias_domain_id, alias)
2019-09-19 10:43:17 +02:00
2026-03-22 13:09:26 +01:00
- name: Database index aliases__alias
community.postgresql.postgresql_idx:
2019-09-19 10:43:17 +02:00
login_host: "{{ mailserver.postgresql.host }}"
2026-03-22 13:09:26 +01:00
login_port: "{{ mailserver.postgresql.port }}"
2019-09-19 10:43:17 +02:00
login_user: "{{ mailserver.postgresql.username }}"
login_password: "{{ mailserver.postgresql.password }}"
2026-03-22 13:09:26 +01:00
login_db: "{{ mailserver.postgresql.dbname }}"
2019-09-19 10:43:17 +02:00
ssl_mode: disable
table: aliases
columns: alias
idxname: aliases__alias
2026-03-22 13:09:26 +01:00
- name: Database table shared_folders
community.postgresql.postgresql_table:
2019-09-19 10:43:17 +02:00
login_host: "{{ mailserver.postgresql.host }}"
2026-03-22 13:09:26 +01:00
login_port: "{{ mailserver.postgresql.port }}"
2019-09-19 10:43:17 +02:00
login_user: "{{ mailserver.postgresql.username }}"
login_password: "{{ mailserver.postgresql.password }}"
2026-03-22 13:09:26 +01:00
login_db: "{{ mailserver.postgresql.dbname }}"
2019-09-19 10:43:17 +02:00
ssl_mode: disable
name: shared_folders
columns:
2026-03-22 13:09:26 +01:00
- id bigserial primary key
- from_user varchar(128) not null
- to_user varchar(128) not null
- dummy char(1) DEFAULT '1'
2019-09-19 10:43:17 +02:00
2026-03-22 13:09:26 +01:00
- name: Database index shared_folders__from_to
community.postgresql.postgresql_idx:
2019-09-19 10:43:17 +02:00
login_host: "{{ mailserver.postgresql.host }}"
2026-03-22 13:09:26 +01:00
login_port: "{{ mailserver.postgresql.port }}"
2019-09-19 10:43:17 +02:00
login_user: "{{ mailserver.postgresql.username }}"
login_password: "{{ mailserver.postgresql.password }}"
2026-03-22 13:09:26 +01:00
login_db: "{{ mailserver.postgresql.dbname }}"
2019-09-19 10:43:17 +02:00
ssl_mode: disable
table: shared_folders
columns: from_user, to_user
idxname: shared_folders__from_to
2026-03-22 13:09:26 +01:00
unique: true
2019-09-19 10:43:17 +02:00
2026-03-22 13:09:26 +01:00
- name: Database table shared_folders_anyone
community.postgresql.postgresql_table:
2019-09-19 10:43:17 +02:00
login_host: "{{ mailserver.postgresql.host }}"
2026-03-22 13:09:26 +01:00
login_port: "{{ mailserver.postgresql.port }}"
2019-09-19 10:43:17 +02:00
login_user: "{{ mailserver.postgresql.username }}"
login_password: "{{ mailserver.postgresql.password }}"
2026-03-22 13:09:26 +01:00
login_db: "{{ mailserver.postgresql.dbname }}"
2019-09-19 10:43:17 +02:00
ssl_mode: disable
name: shared_folders_anyone
columns:
2026-03-22 13:09:26 +01:00
- id bigserial primary key
- from_user varchar(128) not null
- dummy char(1) DEFAULT '1'
2019-09-19 10:43:17 +02:00
2026-03-22 13:09:26 +01:00
- name: Database index shared_folders_anyone__from
community.postgresql.postgresql_idx:
2019-09-19 10:43:17 +02:00
login_host: "{{ mailserver.postgresql.host }}"
2026-03-22 13:09:26 +01:00
login_port: "{{ mailserver.postgresql.port }}"
2019-09-19 10:43:17 +02:00
login_user: "{{ mailserver.postgresql.username }}"
login_password: "{{ mailserver.postgresql.password }}"
2026-03-22 13:09:26 +01:00
login_db: "{{ mailserver.postgresql.dbname }}"
2019-09-19 10:43:17 +02:00
ssl_mode: disable
table: shared_folders_anyone
columns: from_user
idxname: shared_folders__from
2026-03-22 13:09:26 +01:00
unique: true
2026-03-22 13:09:26 +01:00
- name: Database table mail_from
community.postgresql.postgresql_table:
login_host: "{{ mailserver.postgresql.host }}"
2026-03-22 13:09:26 +01:00
login_port: "{{ mailserver.postgresql.port }}"
login_user: "{{ mailserver.postgresql.username }}"
login_password: "{{ mailserver.postgresql.password }}"
2026-03-22 13:09:26 +01:00
login_db: "{{ mailserver.postgresql.dbname }}"
ssl_mode: disable
name: mail_from
columns:
2026-03-22 13:09:26 +01:00
- id bigserial primary key
- t timestamp default now()
- original varchar(250) not null
- rewritten varchar(250) not null
- srs_id bigint
2026-03-22 13:09:26 +01:00
- name: Database index mail_from__rewritten
community.postgresql.postgresql_idx:
login_host: "{{ mailserver.postgresql.host }}"
2026-03-22 13:09:26 +01:00
login_port: "{{ mailserver.postgresql.port }}"
login_user: "{{ mailserver.postgresql.username }}"
login_password: "{{ mailserver.postgresql.password }}"
2026-03-22 13:09:26 +01:00
login_db: "{{ mailserver.postgresql.dbname }}"
ssl_mode: disable
table: mail_from
columns: rewritten
idxname: mail_from__rewritten
2020-09-12 13:58:52 +02:00
2026-03-22 13:09:26 +01:00
- name: Database index mail_from__srs_id
community.postgresql.postgresql_idx:
2020-09-12 13:58:52 +02:00
login_host: "{{ mailserver.postgresql.host }}"
2026-03-22 13:09:26 +01:00
login_port: "{{ mailserver.postgresql.port }}"
2020-09-12 13:58:52 +02:00
login_user: "{{ mailserver.postgresql.username }}"
login_password: "{{ mailserver.postgresql.password }}"
2026-03-22 13:09:26 +01:00
login_db: "{{ mailserver.postgresql.dbname }}"
2020-09-12 13:58:52 +02:00
ssl_mode: disable
table: mail_from
columns: srs_id
idxname: mail_from__srs_id