This commit is contained in:
fenris 2025-09-16 20:35:46 +02:00
parent 94ccd09e49
commit 58db617aa8
8 changed files with 90 additions and 0 deletions

View file

@ -0,0 +1,4 @@
{
"var_davina_backend_and_nginx_domain": "davina.example.org",
"var_davina_backend_and_nginx_tls_mode": "force"
}

View file

@ -0,0 +1,35 @@
[
{
"name": "deactivate default site",
"become": true,
"ansible.builtin.file": {
"state": "absent",
"dest": "/etc/nginx/sites-enabled/default"
}
},
{
"name": "emplace configuration | data",
"become": true,
"ansible.builtin.template": {
"src": "conf.j2",
"dest": "/etc/nginx/sites-available/{{var_davina_backend_and_nginx_domain}}"
}
},
{
"name": "emplace configuration | link",
"become": true,
"ansible.builtin.file": {
"state": "link",
"src": "/etc/nginx/sites-available/{{var_davina_backend_and_nginx_domain}}",
"dest": "/etc/nginx/sites-enabled/{{var_davina_backend_and_nginx_domain}}"
}
},
{
"name": "restart nginx",
"become": true,
"ansible.builtin.systemd_service": {
"state": "restarted",
"name": "nginx"
}
}
]

View file

@ -0,0 +1,36 @@
{% macro davina_backend_common() %}
location / {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REDIRECT_STATUS 200;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
{% endmacro %}
server {
listen 80;
listen [::]:80;
server_name {{var_davina_backend_and_nginx_domain}};
{% if var_davina_backend_and_nginx_tls_mode == 'force' %}
return 301 https://$http_host$request_uri;
{% else %}
{{ davina_backend_common() }}
{% endif %}
}
{% if var_davina_backend_and_nginx_tls_mode != 'disable' %}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name {{var_davina_backend_and_nginx_domain}};
ssl_certificate_key /etc/ssl/private/{{var_davina_backend_and_nginx_domain}}.pem;
ssl_certificate /etc/ssl/fullchains/{{var_davina_backend_and_nginx_domain}}.pem;
include /etc/nginx/ssl-hardening.conf;
{{ davina_backend_common() }}
}
{% endif %}

View file

@ -0,0 +1,15 @@
{
"domain": {
"mandatory": false,
"type": "string"
},
"tls_mode": {
"mandatory": false,
"type": "string",
"options": [
"disable",
"enable",
"force"
]
}
}