86 lines
3.9 KiB
YAML
86 lines
3.9 KiB
YAML
---
|
|
httpd_php: true
|
|
httpd_tls_site_root: /srv/roundcube/roundcubemail-{{ roundcube_version }}/public_html
|
|
httpd_optional_enabled_modules:
|
|
- deflate
|
|
- expires
|
|
- headers
|
|
httpd_tls_vhost_raw: |
|
|
<IfModule mod_rewrite.c>
|
|
Options +SymLinksIfOwnerMatch
|
|
RewriteEngine On
|
|
RewriteRule ^favicon\.ico$ skins/elastic/images/favicon.ico
|
|
|
|
# security rules:
|
|
# - deny access to files not containing a dot or starting with a dot
|
|
# in all locations except installer directory
|
|
RewriteRule ^(?!installer|\.well-known\/|[a-zA-Z0-9]{16})(\.?[^\.]+)$ - [F]
|
|
# - deny access to some locations
|
|
RewriteRule ^/?(\.git|\.tx|SQL|bin|config|logs|temp|tests|vendor|program\/(include|lib|localization|steps)) - [F]
|
|
# - deny access to some documentation files
|
|
RewriteRule /?(README.*|CHANGELOG.*|SECURITY.*|meta\.json|composer\..*|jsdeps.json)$ - [F]
|
|
</IfModule>
|
|
|
|
<IfModule mod_deflate.c>
|
|
SetOutputFilter DEFLATE
|
|
</IfModule>
|
|
|
|
# prefer to brotli over gzip if brotli is available
|
|
<IfModule mod_brotli.c>
|
|
SetOutputFilter BROTLI_COMPRESS
|
|
# some assets have been compressed, so no need to do it again
|
|
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|web[pm]|woff2?)$ no-brotli
|
|
</IfModule>
|
|
|
|
<IfModule mod_expires.c>
|
|
ExpiresActive On
|
|
ExpiresDefault "access plus 1 month"
|
|
</IfModule>
|
|
|
|
FileETag MTime Size
|
|
|
|
<IfModule mod_autoindex.c>
|
|
Options -Indexes
|
|
</IfModule>
|
|
|
|
<IfModule mod_headers.c>
|
|
# Disable page indexing
|
|
Header set X-Robots-Tag "noindex, nofollow"
|
|
# replace 'merge' with 'append' for Apache < 2.2.9
|
|
#Header merge Cache-Control public env=!NO_CACHE
|
|
# Optional security headers
|
|
# Only provides increased security if the browser supports those features
|
|
# Be careful! Testing is required! They should be adjusted to your installation / user environment
|
|
# HSTS - HTTP Strict Transport Security
|
|
#Header always set Strict-Transport-Security "max-age=31536000; preload" env=HTTPS
|
|
# HPKP - HTTP Public Key Pinning
|
|
# Only template - fill with your values
|
|
#Header always set Public-Key-Pins "max-age=3600; report-uri=\"\"; pin-sha256=\"\"; pin-sha256=\"\"" env=HTTPS
|
|
# X-Xss-Protection
|
|
# This header is used to configure the built in reflective XSS protection found in Internet Explorer, Chrome and Safari (Webkit).
|
|
#Header set X-XSS-Protection "1; mode=block"
|
|
# X-Frame-Options
|
|
# The X-Frame-Options header (RFC), or XFO header, protects your visitors against clickjacking attacks
|
|
# Already set by php code! Do not activate both options
|
|
#Header set X-Frame-Options SAMEORIGIN
|
|
# X-Content-Type-Options
|
|
# It prevents Google Chrome and Internet Explorer from trying to mime-sniff the content-type of a response away from the one being declared by the server.
|
|
#Header set X-Content-Type-Options "nosniff"
|
|
</IfModule>
|
|
mariadb_manage: true
|
|
mariadb_users:
|
|
- user: roundcube
|
|
password: !vault |
|
|
$ANSIBLE_VAULT;1.1;AES256
|
|
31383138383839383861303464383230363265323536636336306530316337333266373730643835
|
|
6130356163343631616663666132346633346336333538650a303932343831386132326261313433
|
|
61306462623666353831626136633633623331666338663239373236376464303338633364656364
|
|
3333653363653838300a326662626333666135366130366466633466353366666235316633383135
|
|
39323532623037656635356266666434333831363834646232373031336134626166666664653662
|
|
6266313336656565303663353436626334313865313330303538
|
|
priv: "'roundcubedb.*'': 'ALL,GRANT'"
|
|
mariadb_databases:
|
|
- roundcubedb
|
|
roundcube_db_dsnw: "mysql://roundcube:{{ mariadb_users[0].password }}@localhost/roundcubedb"
|
|
# roundcube_db_dsnw: 'mysql://roundcube:pass@localhost/roundcubemail'
|