Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
103
Merge Requests
103
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
slapos
Commits
b5ccfb2e
Commit
b5ccfb2e
authored
May 16, 2023
by
Joanne Hugé
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WIP
parent
2be9e8dc
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
66 additions
and
76 deletions
+66
-76
software/mail-server/README.md
software/mail-server/README.md
+5
-0
software/mail-server/buildout.hash.cfg
software/mail-server/buildout.hash.cfg
+4
-13
software/mail-server/dovecot-passwd.jinja2
software/mail-server/dovecot-passwd.jinja2
+0
-4
software/mail-server/dovecot.jinja2.conf
software/mail-server/dovecot.jinja2.conf
+0
-4
software/mail-server/instance-default-input-schema.json
software/mail-server/instance-default-input-schema.json
+4
-4
software/mail-server/instance-default.cfg.in
software/mail-server/instance-default.cfg.in
+53
-30
software/mail-server/instance.cfg.in
software/mail-server/instance.cfg.in
+0
-3
software/mail-server/postfix_alias.jinja2
software/mail-server/postfix_alias.jinja2
+0
-3
software/mail-server/postfix_mailname.jinja2
software/mail-server/postfix_mailname.jinja2
+0
-1
software/mail-server/postfix_main.jinja2.cf
software/mail-server/postfix_main.jinja2.cf
+0
-8
software/mail-server/software.cfg
software/mail-server/software.cfg
+0
-6
No files found.
software/mail-server/README.md
0 → 100644
View file @
b5ccfb2e
# mail-server
-
Local IMAP / SMTP mail server using Dovecot and Postfix
-
Runs on port 10143 and 10025
-
Designed to be deployed on 4G / 5G base stations such as ORS
software/mail-server/buildout.hash.cfg
View file @
b5ccfb2e
...
...
@@ -15,34 +15,25 @@
[template]
filename = instance.cfg.in
md5sum =
06e676a14d64c2aa394bab2849aff687
md5sum =
7ab3b606972e1b338d28fc1374617835
[template-default]
_update_hash_filename_ = instance-default.cfg.in
md5sum =
21f59e513b2ab8cce8a428dd30a6fe26
md5sum =
123a56ab69723d869bc52169fa5d530b
[dovecot.jinja2.conf]
_update_hash_filename_ = dovecot.jinja2.conf
md5sum = 9bf03ace9c104b8d566e782a6578561e
[dovecot-passwd.jinja2]
_update_hash_filename_ = dovecot-passwd.jinja2
md5sum = 9e895c044984534a330328329b8b8462
md5sum = a1f695cb881e9be680b7b8a597a4b0c9
[dovecot-passdb.jinja2.lua]
_update_hash_filename_ = dovecot-passdb.jinja2.lua
md5sum = 060107ee6ad0eb9092529bc2bd1ee52f
[postfix_main.jinja2.cf]
_update_hash_filename_ = postfix_main.jinja2.cf
md5sum =
b0e5870eb65fe70e01e6787e825b78eb
md5sum =
e3b2b86282816ac4020154de70cd5074
[postfix_master.jinja2.cf]
_update_hash_filename_ = postfix_master.jinja2.cf
md5sum = 7752a8b4af5c18dc404e0a862af89272
[postfix_alias.jinja2]
_update_hash_filename_ = postfix_alias.jinja2
md5sum = ea0165b66d7d3da48c4977dc611c044a
[postfix_mailname.jinja2]
_update_hash_filename_ = postfix_mailname.jinja2
md5sum = e7eb11cb4485b0d46f968f612643c1b0
[postfix_vmailbox.jinja2]
_update_hash_filename_ = postfix_vmailbox.jinja2
md5sum = b01eb42fd9cecc1fcc9bad85f463eea6
...
...
software/mail-server/dovecot-passwd.jinja2
deleted
100644 → 0
View file @
2be9e8dc
alpha:{PLAIN}ors123
bravo:{PLAIN}ors123
charlie:{PLAIN}ors123
delta:{PLAIN}ors123
software/mail-server/dovecot.jinja2.conf
View file @
b5ccfb2e
...
...
@@ -78,10 +78,6 @@ namespace inbox {
ssl
=
no
# passdb {
# args = {{ dovecot_passwd }}
# driver = passwd-file
# }
passdb
{
driver
=
lua
args
=
file
={{
dovecot_passdb_lua
}}
blocking
=
yes
...
...
software/mail-server/instance-default-input-schema.json
View file @
b5ccfb2e
...
...
@@ -3,10 +3,10 @@
"$schema"
:
"http://json-schema.org/draft-04/schema"
,
"title"
:
"Input Parameters"
,
"properties"
:
{
"
mail_domain
"
:
{
"default"
:
"
ors.rapid.space
"
,
"title"
:
"
Mail domain
"
,
"description"
:
"
Mail domain
"
,
"
dns_sr_url
"
:
{
"default"
:
""
,
"title"
:
"
DNS SR URL
"
,
"description"
:
"
URL of the SR running the DNS server
"
,
"type"
:
"string"
}
}
...
...
software/mail-server/instance-default.cfg.in
View file @
b5ccfb2e
...
...
@@ -67,15 +67,10 @@ context =
url = {{ dovecot_conf_template }}
output = ${directory:etc}/dovecot.conf
extra-context =
key dovecot_passwd dovecot-passwd:output
key dovecot_passdb_lua dovecot-passdb-lua:output
raw postfix_auth ${directory:var-spool-postfix-private}/auth
raw postfix_dovecot_lmtp ${directory:var-spool-postfix-private}/dovecot-lmtp
[dovecot-passwd]
<= config-base
url = {{ dovecot_passwd_template }}
output = ${directory:etc}/dovecot-passwd
[dovecot-passdb-lua]
<= config-base
url = {{ dovecot_passdb_lua_template }}
...
...
@@ -97,16 +92,6 @@ init =
except:
options['ipv4'] = "0.0.0.0"
[typed-paths]
# Postfix-friendly rendering of file paths, prefixed with database type.
aliases = hash:${postfix-alias:output}
[{{ section('postalias-db') }}]
recipe = plone.recipe.command
stop-on-error = true
command = '${wrapper-postalias:wrapper-path}' '${typed-paths:aliases}'
update-command = ${:command}
[{{ section('postmap-virtual') }}]
recipe = plone.recipe.command
stop-on-error = true
...
...
@@ -124,8 +109,6 @@ update-command = ${:command}
url = {{ postfix_main_template }}
output = ${directory:etc-postfix}/main.cf
extra-context =
key alias_file postfix-alias:output
key mailname_file postfix-mailname:output
key vmailbox_file postfix-vmailbox:output
key virtual_file postfix-virtual:output
key bin_directory directory:bin
...
...
@@ -138,34 +121,26 @@ extra-context =
key mail_owner userinfo:pw-name
key setgid_group userinfo:gr-name
key ip_address slap-configuration:ipv6-random
key mail_domain request-dns-entry:connection-domain
raw xz_utils_location {{ xz_utils_location }}
raw postfix_location {{ postfix_location }}
raw mail_domain {{ slapparameter_dict.get('mail_domain', 'ors.rapid.space') }}
[postfix-conf-master]
<= config-base
url = {{ postfix_master_template }}
output = ${directory:etc-postfix}/master.cf
[postfix-alias]
<= config-base
url = {{ postfix_alias_template }}
output = ${directory:etc-postfix}/postfix-alias
[postfix-mailname]
<= config-base
url = {{ postfix_mailname_template }}
output = ${directory:etc-postfix}/postfix-mailname
[postfix-vmailbox]
<= config-base
url = {{ postfix_vmailbox_template }}
output = ${directory:etc-postfix}/postfix-vmailbox
extra-context =
raw mail_domain {{ slapparameter_dict.get('mail_domain', '
ors.rapid.space
') }}
raw mail_domain {{ slapparameter_dict.get('mail_domain', '') }}
[postfix-virtual]
<= config-base
url = {{ postfix_virtual_template }}
output = ${directory:etc-postfix}/postfix-virtual
extra-context =
raw mail_domain {{ slapparameter_dict.get('mail_domain', '
ors.rapid.space
') }}
raw mail_domain {{ slapparameter_dict.get('mail_domain', '') }}
[dovecot-wrapper]
recipe = slapos.recipe.template
...
...
@@ -209,6 +184,47 @@ hash-files =
${postfix-conf-main:output}
${postfix-wrapper:output}
[publish-connection-parameters]
recipe = slapos.cookbook:publish
<= monitor-publish
imap-port = 10143
smtp-port = 10025
imap-smtp-ipv6 = ${slap-configuration:ipv6-random}
{% if slapparameter_dict.get('dns_sr_url', '') %}
domain = ${request-dns-entry:connection-domain}
{% endif %}
[imap-listen-promise]
<= monitor-promise-base
promise = check_socket_listening
name = imap_listen.py
config-host = ${slap-configuration:ipv6-random}
config-port = 10143
[smtp-listen-promise]
<= monitor-promise-base
promise = check_socket_listening
name = smtp_listen.py
config-host = ${slap-configuration:ipv6-random}
config-port = 10025
[request-dns-entry]
name = dns-mail-entry
recipe = slapos.cookbook:request.serialised
software-url = {{ slapparameter_dict['dns_sr_url'] }}
software-type = core-network
server-url = {{ slap_connection['server-url'] }}
computer-id = {{ slap_connection['computer-id'] }}
partition-id = {{ slap_connection['partition-id'] }}
key-file = {{ slap_connection['key-file'] }}
cert-file = {{ slap_connection['cert-file'] }}
shared = true
sla-computer_guid = {{ slap_connection['computer-id'] }}
config-name = dns-mail-entry
config-subdomain = mail
config-ip = ${slap-configuration:ipv6-random}
return = domain ip
[base-wrapper]
recipe = slapos.cookbook:wrapper
environment =
...
...
@@ -238,7 +254,6 @@ path = {{ postfix_location }}/usr/sbin
(
'base-sbin-bin-wrapper',
(
'postalias',
'postcat',
'postconf',
'postdrop',
...
...
@@ -267,6 +282,8 @@ command-line = ${directory:usr}/libexec/postfix/master -c ${directory:etc-postfi
wrapper-path = ${directory:run}/postfix-master
[buildout]
extends =
{{ template_monitor }}
parts =
directory
dovecot-conf
...
...
@@ -275,9 +292,15 @@ parts =
postfix-conf-master
postfix-service
postfix-symlinks-libexec
monitor-base
publish-connection-parameters
imap-listen-promise
smtp-listen-promise
{{ part_list | join('\n ') }}
{% if slapparameter_dict.get('dns_sr_url', '') %}
request-dns-entry
{% endif %}
eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline= true
software/mail-server/instance.cfg.in
View file @
b5ccfb2e
...
...
@@ -22,14 +22,11 @@ context =
key slapparameter_dict slap-configuration:configuration
raw template_monitor ${monitor2-template:output}
raw dovecot_conf_template ${dovecot.jinja2.conf:target}
raw dovecot_passwd_template ${dovecot-passwd.jinja2:target}
raw dovecot_passdb_lua_template ${dovecot-passdb.jinja2.lua:target}
raw dovecot_binary ${dovecot:location}/sbin/dovecot
raw postfix_main_template ${postfix_main.jinja2.cf:target}
raw postfix_master_template ${postfix_master.jinja2.cf:target}
raw postfix_alias_template ${postfix_alias.jinja2:target}
raw postfix_virtual_template ${postfix_virtual.jinja2:target}
raw postfix_mailname_template ${postfix_mailname.jinja2:target}
raw postfix_vmailbox_template ${postfix_vmailbox.jinja2:target}
raw postfix_location ${postfix:location}
raw xz_utils_location ${xz-utils:location}
...
...
software/mail-server/postfix_alias.jinja2
deleted
100644 → 0
View file @
2be9e8dc
postmaster: alpha
postmaster: bravo
postmaster: charlie
software/mail-server/postfix_mailname.jinja2
deleted
100644 → 0
View file @
2be9e8dc
ors.local
software/mail-server/postfix_main.jinja2.cf
View file @
b5ccfb2e
...
...
@@ -18,9 +18,6 @@ smtputf8_enable = no
mail_owner = {{ mail_owner }}
setgid_group = {{ setgid_group }}
alias_maps = hash:{{ alias_file }}
alias_database = hash:{{ alias_file }}
virtual_mailbox_domains = {{ mail_domain }}
virtual_mailbox_base = {{ vhosts_directory }}
virtual_mailbox_maps = hash:{{ vmailbox_file }}
...
...
@@ -43,11 +40,6 @@ smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
# smtpd_recipient_restrictions =
# reject_non_fqdn_recipient
# reject_unknown_recipient_domain
# permit_sasl_authenticated
# reject
smtpd_recipient_restrictions =
permit_sasl_authenticated
smtpd_relay_restrictions =
...
...
software/mail-server/software.cfg
View file @
b5ccfb2e
...
...
@@ -32,8 +32,6 @@ filename = ${:_buildout_section_name_}
[dovecot.jinja2.conf]
< = copy-to-instance
[dovecot-passwd.jinja2]
< = copy-to-instance
[dovecot-passdb.jinja2.lua]
< = copy-to-instance
...
...
@@ -41,10 +39,6 @@ filename = ${:_buildout_section_name_}
< = copy-to-instance
[postfix_master.jinja2.cf]
< = copy-to-instance
[postfix_alias.jinja2]
< = copy-to-instance
[postfix_mailname.jinja2]
< = copy-to-instance
[postfix_vmailbox.jinja2]
< = copy-to-instance
[postfix_virtual.jinja2]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment