Initial mailu setup
This commit is contained in:
parent
14e72b2a5c
commit
d25555d107
|
@ -1,46 +1,51 @@
|
||||||
$ANSIBLE_VAULT;1.1;AES256
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
30643964633738353062356235363564666438643964363861626362376232393632633865643432
|
64346663666535326565323563373636363265386662643039373566303933353265623934336662
|
||||||
6334636639326630316531636138633165306461643336630a623832356137663233333030333031
|
3463623661616637636239323033386164383465373935340a653538333938626665366330636235
|
||||||
33383865313439623337333662653563303065303233373261303635373838353039303231386337
|
32343439343561393234616164393835636566343234363963653938363832383363393030343638
|
||||||
3339336362393237640a336166343730656337616135663530623764633631393635343233313163
|
6266373436343637390a336133633139363065613332353563653261323763323733613135663465
|
||||||
31633335356633343666396363323064376561643938373065656230396331316163316237353032
|
61366663313266656366663439343235306130356261633930316337653733396533643835643165
|
||||||
32303962366338646239363336316639646534323561653132616632613737643063643264633033
|
63353564353338643362616132626632336232386162363236363637386333623839323633323763
|
||||||
61386134366165303736373736393532343236656230353533383035623330336464326536383739
|
34343762386235633631623730636361336135353132393961643634393963636236313233363236
|
||||||
34616633633539316364363832346665623330333765363363323032303065396566333936366532
|
30343662346165313132363730616461306638663137643538363463323932626436303864643738
|
||||||
35363966303066373632323330343738656139323961613431393031366162653761613231666236
|
66643761616133623138396461633833353330336332336365306134333165333432653863393531
|
||||||
39616361636365653330623562613331363239356461316332653838623866663264376262386461
|
35346266336236333133646164666133383736636537346261356331376131393233313434323934
|
||||||
39383332393665336365303566646234643437386233323163626539303937356230616430616137
|
66336130323162333239636366313034653135653832306666313766653664336639646436343066
|
||||||
36643435396536363261623764663038626131333364386433666466356265643662653964666564
|
37383833623936626330316337653465623762633639303163356338656638626364613436323564
|
||||||
39303864636664623839656130663739346131306634306638333361643061303730346262366361
|
31316136323232396534653062313966353539356564633835363631633461383437623134386636
|
||||||
34643330303137373065373863386233386632636238376538303631393233333334303532393037
|
32353933653630373363393063373865353663393234343065326435633931386534643934643237
|
||||||
34613034336633383866353063333563663035323435343866313335373061623732643236306534
|
65356435303834303930356333353336653961373131323336613634333935303939343632666333
|
||||||
61343431646232396362633733643362366262326334313737336164323166363333643235383432
|
62636564353036343933666331326630376236653563303031643331303336383461616638316236
|
||||||
32633530333031363634396336366165383064306161316233396435303461653736653235626632
|
31353663336561613063303235303231656462313032656234616165366534303632383631303463
|
||||||
32313661643537376566396561346366366332303034613135666231323935386639623439353034
|
64303530636434386235386333333636303865633061383434653433386437313634323834636635
|
||||||
36373934386464326631666663653165396561623034643736656239356639313564613363393962
|
39653131633061376661643761663264353864323931333031323033396666646130616361333566
|
||||||
37376462623663623433653737646538666330373264633663353831363936356331336362333562
|
61633436666461623262383336643032653463396230333466383239356530333538633533346161
|
||||||
62326235373331376238316165336166336464306636386536636236353534663935623561336130
|
61373266306535393430636339653834383664633839656238636232353134633336323430623334
|
||||||
34633437306539626635356133383032623839343238313736313462323637363630626664626639
|
33636334376163653665653039333564373237366261623038653337366334663831346663646165
|
||||||
63346531333764366266386564656532633035366661626266313861666263643038333762313762
|
62613936326362363063643866663534363435646533333938333265633863666538663132633233
|
||||||
36303036666236636661316530313865373239643964323831346535303338326334356665326538
|
63623236303162326163666435316136323932393836626435336466333566616438343663643933
|
||||||
32326530653364393864653636313734336533323063316363326134393737663765323138613539
|
34623665306135373232386137356638373362326461396439323134396236623933663635396135
|
||||||
63396631626435616239306634373965666461666366393033363936303331613131613934393636
|
30653661663039306236653861643932633938356665313665613261363335636338356364346263
|
||||||
61616138376665646137663938306637623461306230633431613036656462623131333331393032
|
33643466333366633965353039646362313333356636323364336165616339393565386236613132
|
||||||
61333933386166356536346133396535383064626161343832633034386365626137373566353065
|
34643332366338323765346333633065613638363365636634316564616136363431333964623231
|
||||||
39383037373239396163383330386363366434386537636430653865616561323833373239623863
|
33373462373365663665386638633932363662383036613038393139633035313230396437373834
|
||||||
30633034353466626265623065326333376336386361653064303535363736653338333632343662
|
32383763623364386436373031306136343963646133626263393266383139616662633461666263
|
||||||
33663332636263393963633562373763653132646361383263316262663663343262643131383337
|
62646538326561313266656463303631613336376162363731616530383264343832383236373564
|
||||||
32666362313536313765663139356266643861396136353831383561653435353237663633613365
|
39626530303337386531333965376333383364396464353262646531326535336561356365343135
|
||||||
64636136663632613337666639363861663731306330653433326264646237653235633332393863
|
39353831653865306464623435623335376437333964663936386432376166343132646266393361
|
||||||
62316536303836353931643338626561656633383561373738623163383262323266643461313236
|
64393838376464626363643335636439373765336637303562333437393239613534383232313833
|
||||||
64363531643433346635343132353037653234636437326461303465623532376532616430306639
|
35636365303130373533663838396132386538386566326637366531666438373036323038643765
|
||||||
32636639636365313162663437363235636132663630396338616134316230336464666233643334
|
32653761623735306130393366636238623534323937613131303665386533623030333036356361
|
||||||
65626333626538633039626666666663333866303936363365663437396663643032633065363239
|
37326563616632346166366633383661633565346433366361373735663161633833626665366438
|
||||||
66376235373363393439323866616438343365366366633630623139663534646636633833393533
|
61333035316339626262303264333139346263323762663731613832623663393831313431623265
|
||||||
36373961633162323236616630656165636666303135623331356335383331353532666665366531
|
37666137303463623263363261303662303063353235306665613732393935346665386161643664
|
||||||
36626435303535653439613564353436343931666533353430336130363038336531373530303036
|
31333831373761376530653239646139323564366666663662316362643265333365386632643164
|
||||||
34356130633666623733663937343463613861313533623338316538313930663738323032386266
|
65376466663036656130633337376261343032366634343665363134323639616661613935353934
|
||||||
65306262373932396264366634646639396632363561663164666539643132303066346432323234
|
33613139363233616433633133656633383535383435343438303464393063336665623632333866
|
||||||
66623166306565353937323265363265666663633234323137303934343937626165616131396362
|
63393530623536323930316134363164653063333530353732323637646364643164643339343832
|
||||||
39336438323233643830663366636537396538623635666137306230316434383264383534383033
|
66646233366239613833646430356635613231386338346464343964313062396166346338636438
|
||||||
31393839323336356465363563326539366364343962626666303963646261353965
|
39643231623262303133333961636362653365326264326362616532303539326231303465363964
|
||||||
|
61373730396439626132643766306532613462393065656332666133333536326537333161303961
|
||||||
|
37353939343565363165646362316633366662373237346431373665316430323332663033333133
|
||||||
|
34333165383138366438636435343636616265663730356564613866336130633732363930306334
|
||||||
|
38393265656134663964333366306363663439666639623439393565326564366461366362393033
|
||||||
|
3731616562313735396236313131333838623532393266376638
|
||||||
|
|
115
roles/docker/tasks/services/mailu.yml
Normal file
115
roles/docker/tasks/services/mailu.yml
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: create mailu volume folders
|
||||||
|
file:
|
||||||
|
name: "{{ mailu.volume_folder }}/{{ volume }}"
|
||||||
|
state: directory
|
||||||
|
loop:
|
||||||
|
- redis
|
||||||
|
- certs
|
||||||
|
- overrides
|
||||||
|
- data
|
||||||
|
- dkim
|
||||||
|
- mail
|
||||||
|
- filter
|
||||||
|
- dav
|
||||||
|
- webmail
|
||||||
|
loop_control:
|
||||||
|
loop_var: volume
|
||||||
|
|
||||||
|
- name: mailu redis container
|
||||||
|
docker_container:
|
||||||
|
name: mailu_redis
|
||||||
|
image: redis:alpine
|
||||||
|
restart_policy: always
|
||||||
|
volumes:
|
||||||
|
- "{{ mailu.volume_folder }}/redis:/data"
|
||||||
|
|
||||||
|
- name: mailu database container
|
||||||
|
docker_container:
|
||||||
|
image: mailu/postgresql:1.6
|
||||||
|
restart_policy: always
|
||||||
|
env_file: "{{ mailu.volume_folder}}/mailu.env"
|
||||||
|
volumes:
|
||||||
|
- "{{ mailu.volume_folder }}/data/psql_db:/data"
|
||||||
|
- "{{ mailu.volume_folder }}/data/psql_backup:/backup"
|
||||||
|
|
||||||
|
- name: upload mailu.env file
|
||||||
|
template:
|
||||||
|
src: mailu.env.j2
|
||||||
|
dest: "{{ mailu.volume_folder}}/mailu.env"
|
||||||
|
|
||||||
|
- name: mailu front container
|
||||||
|
docker_container:
|
||||||
|
name: mailu_front
|
||||||
|
image: mailu/nginx:1.6
|
||||||
|
env_file: "{{ mailu.volume_folder}}/mailu.env"
|
||||||
|
volumes:
|
||||||
|
- "{{ mailu.volume_folder }}/certs:/certs"
|
||||||
|
- "{{ mailu.volume_folder }}/overrides/nginx:/overrides"
|
||||||
|
|
||||||
|
- name: mailu admin container
|
||||||
|
docker_container:
|
||||||
|
image: mailu/admin:1.6
|
||||||
|
restart_policy: always
|
||||||
|
env_file: "{{ mailu.volume_folder}}/mailu.env"
|
||||||
|
volumes:
|
||||||
|
- "{{ mailu.volume_folder}}/data:/data"
|
||||||
|
- "{{ mailu.volume_folder}}/dkim:/dkim"
|
||||||
|
|
||||||
|
- name: mailu imap container
|
||||||
|
docker_container:
|
||||||
|
image: mailu/dovecot:1.6
|
||||||
|
restart_policy: always
|
||||||
|
env_file: "{{ mailu.volume_folder}}/mailu.env"
|
||||||
|
volumes:
|
||||||
|
- "{{ mailu.volume_folder}}/mail:/mail"
|
||||||
|
- "{{ mailu.volume_folder}}/overrides:/overrides"
|
||||||
|
|
||||||
|
- name: mailu smtp container
|
||||||
|
docker_container:
|
||||||
|
image: mailu/postfix:1.6
|
||||||
|
restart_policy: always
|
||||||
|
env_file: "{{ mailu.volume_folder}}/mailu.env"
|
||||||
|
volumes:
|
||||||
|
- "{{ mailu.volume_folder}}/overrides:/overrides"
|
||||||
|
|
||||||
|
- name: mailu antispam container
|
||||||
|
docker_container:
|
||||||
|
image: mailu/rspamd:1.6
|
||||||
|
restart_policy: always
|
||||||
|
env_file: "{{ mailu.volume_folder}}/mailu.env"
|
||||||
|
volumes:
|
||||||
|
- "{{ mailu.volume_folder}}/filter:/var/lib/rspamd"
|
||||||
|
- "{{ mailu.volume_folder}}/dkim:/dkim"
|
||||||
|
- "{{ mailu.volume_folder}}/overrides/rspamd:/etc/rspamd/override.d"
|
||||||
|
|
||||||
|
- name: mailu antivirus container
|
||||||
|
docker_container:
|
||||||
|
image: mailu/clamav:1.6
|
||||||
|
restart_policy: always
|
||||||
|
env_file: "{{ mailu.volume_folder}}/mailu.env"
|
||||||
|
volumes:
|
||||||
|
- "{{ mailu.volume_folder}}/filter:/data"
|
||||||
|
|
||||||
|
- name: mailu webdav container
|
||||||
|
docker_container:
|
||||||
|
image: mailu/radicale:1.6
|
||||||
|
restart_policy: always
|
||||||
|
env_file: "{{ mailu.volume_folder}}/mailu.env"
|
||||||
|
volumes:
|
||||||
|
- "{{ mailu.volume_folder}}/dav:/data"
|
||||||
|
|
||||||
|
- name: mailu fetchmail container
|
||||||
|
docker_container:
|
||||||
|
image: mailu/fetchmail:1.6
|
||||||
|
restart_policy: always
|
||||||
|
env_file: "{{ mailu.volume_folder}}/mailu.env"
|
||||||
|
|
||||||
|
- name: mailu webmail container
|
||||||
|
docker_container:
|
||||||
|
image: mailu/rainloop:1.6
|
||||||
|
restart_policy: always
|
||||||
|
env_file: "{{ mailu.volume_folder}}/mailu.env"
|
||||||
|
volumes:
|
||||||
|
- "{{ mailu.volume_folder }}/webmail:/data"
|
160
roles/docker/templates/mailu.env
Normal file
160
roles/docker/templates/mailu.env
Normal file
|
@ -0,0 +1,160 @@
|
||||||
|
# Mailu main configuration file
|
||||||
|
#
|
||||||
|
# Generated for compose flavor
|
||||||
|
#
|
||||||
|
# This file is autogenerated by the configuration management wizard.
|
||||||
|
# For a detailed list of configuration variables, see the documentation at
|
||||||
|
# https://mailu.io
|
||||||
|
|
||||||
|
###################################
|
||||||
|
# Common configuration variables
|
||||||
|
###################################
|
||||||
|
|
||||||
|
# Set this to the path where Mailu data and configuration is stored
|
||||||
|
# This variable is now set directly in `docker-compose.yml by the setup utility
|
||||||
|
# ROOT=/mailu
|
||||||
|
|
||||||
|
# Mailu version to run (1.0, 1.1, etc. or master)
|
||||||
|
#VERSION=1.6
|
||||||
|
|
||||||
|
# Set to a randomly generated 16 bytes string
|
||||||
|
SECRET_KEY={{ mailu_secret_key }}
|
||||||
|
|
||||||
|
# Address where listening ports should bind
|
||||||
|
# This variables are now set directly in `docker-compose.yml by the setup utility
|
||||||
|
# PUBLIC_IPV4= 127.0.0.1 (default: 127.0.0.1)
|
||||||
|
# PUBLIC_IPV6= ::1 (default: ::1)
|
||||||
|
|
||||||
|
# Subnet of the docker network. This should not conflict with any networks to which your system is connected. (Internal and external!)
|
||||||
|
SUBNET=192.168.203.0/24
|
||||||
|
|
||||||
|
# Main mail domain
|
||||||
|
DOMAIN=data.coop
|
||||||
|
|
||||||
|
# Hostnames for this server, separated with comas
|
||||||
|
HOSTNAMES=nem.li,kva.li
|
||||||
|
|
||||||
|
# Postmaster local part (will append the main mail domain)
|
||||||
|
POSTMASTER=admin
|
||||||
|
|
||||||
|
# Choose how secure connections will behave (value: letsencrypt, cert, notls, mail, mail-letsencrypt)
|
||||||
|
TLS_FLAVOR=letsencrypt
|
||||||
|
|
||||||
|
# Authentication rate limit (per source IP address)
|
||||||
|
AUTH_RATELIMIT=10/minute;1000/hour
|
||||||
|
|
||||||
|
# Opt-out of statistics, replace with "True" to opt out
|
||||||
|
DISABLE_STATISTICS=False
|
||||||
|
|
||||||
|
###################################
|
||||||
|
# Optional features
|
||||||
|
###################################
|
||||||
|
|
||||||
|
# Expose the admin interface (value: true, false)
|
||||||
|
ADMIN=true
|
||||||
|
|
||||||
|
# Choose which webmail to run if any (values: roundcube, rainloop, none)
|
||||||
|
WEBMAIL=rainloop
|
||||||
|
|
||||||
|
# Dav server implementation (value: radicale, none)
|
||||||
|
WEBDAV=radicale
|
||||||
|
|
||||||
|
# Antivirus solution (value: clamav, none)
|
||||||
|
#ANTIVIRUS=clamav
|
||||||
|
|
||||||
|
#Antispam solution
|
||||||
|
ANTISPAM=none
|
||||||
|
|
||||||
|
###################################
|
||||||
|
# Mail settings
|
||||||
|
###################################
|
||||||
|
|
||||||
|
# Message size limit in bytes
|
||||||
|
# Default: accept messages up to 50MB
|
||||||
|
# Max attachment size will be 33% smaller
|
||||||
|
MESSAGE_SIZE_LIMIT=50000000
|
||||||
|
|
||||||
|
# Networks granted relay permissions
|
||||||
|
# Use this with care, all hosts in this networks will be able to send mail without authentication!
|
||||||
|
RELAYNETS=
|
||||||
|
|
||||||
|
# Will relay all outgoing mails if configured
|
||||||
|
RELAYHOST=
|
||||||
|
|
||||||
|
# Fetchmail delay
|
||||||
|
FETCHMAIL_DELAY=600
|
||||||
|
|
||||||
|
# Recipient delimiter, character used to delimiter localpart from custom address part
|
||||||
|
RECIPIENT_DELIMITER=+
|
||||||
|
|
||||||
|
# DMARC rua and ruf email
|
||||||
|
DMARC_RUA=admin
|
||||||
|
DMARC_RUF=admin
|
||||||
|
|
||||||
|
# Welcome email, enable and set a topic and body if you wish to send welcome
|
||||||
|
# emails to all users.
|
||||||
|
WELCOME=false
|
||||||
|
WELCOME_SUBJECT=Welcome to your new email account
|
||||||
|
WELCOME_BODY=Welcome to your new email account, if you can read this, then it is configured properly!
|
||||||
|
|
||||||
|
# Maildir Compression
|
||||||
|
# choose compression-method, default: none (value: bz2, gz)
|
||||||
|
COMPRESSION=
|
||||||
|
# change compression-level, default: 6 (value: 1-9)
|
||||||
|
COMPRESSION_LEVEL=
|
||||||
|
|
||||||
|
###################################
|
||||||
|
# Web settings
|
||||||
|
###################################
|
||||||
|
|
||||||
|
# Path to redirect / to
|
||||||
|
WEBROOT_REDIRECT=/webmail
|
||||||
|
|
||||||
|
# Path to the admin interface if enabled
|
||||||
|
WEB_ADMIN=/admin
|
||||||
|
|
||||||
|
# Path to the webmail if enabled
|
||||||
|
WEB_WEBMAIL=/webmail
|
||||||
|
|
||||||
|
# Website name
|
||||||
|
SITENAME=data.coop
|
||||||
|
|
||||||
|
# Linked Website URL
|
||||||
|
WEBSITE=https://mail.data.coop
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
###################################
|
||||||
|
# Advanced settings
|
||||||
|
###################################
|
||||||
|
|
||||||
|
# Log driver for front service. Possible values:
|
||||||
|
# json-file (default)
|
||||||
|
# journald (On systemd platforms, useful for Fail2Ban integration)
|
||||||
|
# syslog (Non systemd platforms, Fail2Ban integration. Disables `docker-compose log` for front!)
|
||||||
|
# LOG_DRIVER=json-file
|
||||||
|
|
||||||
|
# Docker-compose project name, this will prepended to containers names.
|
||||||
|
COMPOSE_PROJECT_NAME=mailu
|
||||||
|
|
||||||
|
# Default password scheme used for newly created accounts and changed passwords
|
||||||
|
# (value: BLF-CRYPT, SHA512-CRYPT, SHA256-CRYPT, MD5-CRYPT, CRYPT)
|
||||||
|
PASSWORD_SCHEME=BLF-CRYPT
|
||||||
|
|
||||||
|
# Header to take the real ip from
|
||||||
|
REAL_IP_HEADER=
|
||||||
|
|
||||||
|
# IPs for nginx set_real_ip_from (CIDR list separated by commas)
|
||||||
|
REAL_IP_FROM=
|
||||||
|
|
||||||
|
# choose wether mailu bounces (no) or rejects (yes) mail when recipient is unknown (value: yes, no)
|
||||||
|
REJECT_UNLISTED_RECIPIENT=
|
||||||
|
|
||||||
|
# Log level threshold in start.py (value: CRITICAL, ERROR, WARNING, INFO, DEBUG, NOTSET)
|
||||||
|
LOG_LEVEL=WARNING
|
||||||
|
|
||||||
|
###################################
|
||||||
|
# Database settings
|
||||||
|
###################################
|
||||||
|
DB_FLAVOR=postgresql
|
||||||
|
DB_PW={{ postgres_passwords.mailu }}
|
Loading…
Reference in a new issue