Initial commit
This commit is contained in:
commit
09bc73507a
4 changed files with 95 additions and 0 deletions
42
README.md
Normal file
42
README.md
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Roundcube
|
||||
|
||||
Requires additional PHP and web server setup, e.g. with this [nginx](https://git.notandy.de/ansible/roles/nginx) role:
|
||||
|
||||
```
|
||||
roundcube_config:
|
||||
imap_host: 'ssl://mail.example.com:993'
|
||||
smtp_host: 'tls://mail.example.com:587'
|
||||
des_key: "{{ lookup('passwordstore', 'example.com/roundcube-secret create=true length=24 nosymbols=true') }}"
|
||||
|
||||
nginx:
|
||||
add_headers:
|
||||
Strict-Transport-Security: "max-age=63072000"
|
||||
Content-Security-Policy: "default-src 'self' 'unsafe-inline' 'unsafe-eval' data:"
|
||||
X-Frame-Options: "sameorigin"
|
||||
X-Content-Type-Options: "nosniff"
|
||||
X-XSS-Protection: "1; mode=block"
|
||||
php:
|
||||
ini:
|
||||
date_timezone: Europe/Berlin
|
||||
vhosts:
|
||||
mail:
|
||||
servername:
|
||||
- mail.example.com
|
||||
custom:
|
||||
- root /var/lib/roundcube
|
||||
- index index.php index.html index.htm
|
||||
locations:
|
||||
- match: /
|
||||
custom:
|
||||
- try_files $uri $uri/ /index.php?q=$uri&$args
|
||||
- match: ^~ /data
|
||||
custom:
|
||||
- deny all
|
||||
- match: '~ \.php$'
|
||||
custom:
|
||||
- include /etc/nginx/fastcgi_params
|
||||
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name
|
||||
- fastcgi_param REDIRECT_STATUS 200
|
||||
- fastcgi_param HTTPS On
|
||||
- fastcgi_pass php-handler
|
||||
```
|
||||
6
defaults/main.yml
Normal file
6
defaults/main.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
roundcube_config:
|
||||
db_dsnw: 'sqlite:////var/lib/roundcube/db/roundcube?mode=0640'
|
||||
#imap_host: 'ssl://imap.example.com:993'
|
||||
#smtp_host: 'tls://smtp.example.com:587'
|
||||
#des_key: Set this to a 24-char random character string!
|
||||
cipher_method: AES-256-CBC
|
||||
19
tasks/main.yml
Normal file
19
tasks/main.yml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
- name: Install fail2ban
|
||||
ansible.builtin.apt:
|
||||
pkg: roundcube
|
||||
|
||||
- name: Create db directory
|
||||
ansible.builtin.file:
|
||||
path: /var/lib/roundcube/db
|
||||
owner: www-data
|
||||
group: www-data
|
||||
state: directory
|
||||
mode: "0750"
|
||||
|
||||
- name: Update config
|
||||
ansible.builtin.template:
|
||||
src: config.inc.php.j2
|
||||
dest: /etc/roundcube/config.inc.php
|
||||
owner: root
|
||||
group: www-data
|
||||
mode: "0640"
|
||||
28
templates/config.inc.php.j2
Normal file
28
templates/config.inc.php.j2
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
/* {{ ansible_managed }} */
|
||||
|
||||
{% macro php_obj(obj) %}
|
||||
{%- if obj is string -%}
|
||||
'{{ obj|replace('\\', '\\\\')|replace('\'', '\\\'') }}'
|
||||
{%- elif obj is number -%}
|
||||
{{ obj }}
|
||||
{%- elif obj is boolean -%}
|
||||
{{ obj }}
|
||||
{%- elif obj is none -%}
|
||||
null
|
||||
{% elif obj is mapping %}
|
||||
[
|
||||
{% for key, value in obj.items() %}
|
||||
'{{ key|replace('\\', '\\\\')|replace('\'', '\\\'') }}' => {{ php_obj(value)|indent }},
|
||||
{% endfor %}
|
||||
]
|
||||
{%- elif obj is iterable -%}
|
||||
[
|
||||
{% for item in obj %}
|
||||
{{ php_obj(item)|indent(first=true) }},
|
||||
{% endfor %}
|
||||
]
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
$config = {{ php_obj(roundcube_config) }};
|
||||
Loading…
Add table
Add a link
Reference in a new issue