Shortened service- to svc-

This commit is contained in:
2025-07-09 05:00:41 +02:00
parent db384c6261
commit 575df76ec3
140 changed files with 101 additions and 101 deletions

View File

@@ -0,0 +1,38 @@
# Nginx Static HTML Server
## 🔥 Description
This role configures an [Nginx](https://nginx.org/) server to host a static HTML homepage securely over HTTPS. It automates domain configuration, SSL/TLS certificate retrieval using [Let's Encrypt](https://letsencrypt.org/), and ensures your site is ready for production with minimal setup.
## 📖 Overview
Optimized for Archlinux environments, this role provides a lightweight, reliable solution for serving static websites. It automatically configures Nginx to serve files from a predefined directory, sets up secure HTTPS connections, and includes support for `.well-known` paths required by ACME challenges.
### Key Features
- **Static Site Hosting:** Serves HTML, CSS, JavaScript, and other static files.
- **Let's Encrypt Integration:** Automatically requests and installs SSL/TLS certificates.
- **Simple Root Configuration:** Defines a clean webroot with `index.html` support.
- **Secure by Default:** Includes modern SSL headers and best practices via Nginx.
- **.well-known Support:** Ensures full ACME challenge compatibility.
## 🎯 Purpose
The Nginx Static HTML Server role provides a simple and efficient method to publish static websites with HTTPS, perfect for personal homepages, landing pages, or small projects.
## 🚀 Features
- **Automatic HTTPS Certificates:** Handles secure certificate issuance via Let's Encrypt.
- **Minimal Nginx Setup:** Clean and optimized default configurations.
- **Highly Portable:** Works out-of-the-box with minimal variables.
- **Local Time Support:** Properly displays directory listing timestamps when needed.
## 🔗 Learn More
- [Nginx Official Website](https://nginx.org/)
- [Let's Encrypt](https://letsencrypt.org/)
- [Static Web Page (Wikipedia)](https://en.wikipedia.org/wiki/Static_web_page)
- [HTTPS (Wikipedia)](https://en.wikipedia.org/wiki/HTTPS)
## 🧑‍💻 Author Information
Created in 2023 by [Kevin Veen-Birkenbach](https://www.veen.world/)

View File

@@ -0,0 +1,7 @@
features:
matomo: true
css: true
portfolio_iframe: true
domains:
canonical:
- "html.{{ primary_domain }}"

View File

@@ -0,0 +1,31 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: |
Configures an Nginx server to host static HTML websites with HTTPS support, automatic SSL certificate retrieval via Let's Encrypt, and secure default settings.
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- rolling
galaxy_tags:
- nginx
- https
- static
- html
- letsencrypt
- ssl
- homepage
- automation
repository: "https://s.veen.world/cymais"
issue_tracker_url: "https://s.veen.world/cymaisissues"
documentation: "https://s.veen.world/cymais"
dependencies:
- srv-web-https
- gen-git

View File

@@ -0,0 +1,13 @@
---
- name: "include role for {{application_id}} to receive certs & do modification routines"
include_role:
name: srv-web-composer
vars:
domain: "{{domains | get_domain(application_id)}}"
http_port: "{{ ports.localhost.http[application_id] }}"
- name: "generate {{domains | get_domain(application_id)}}.conf"
template:
src: "nginx.conf.j2"
dest: "{{nginx.directories.http.servers}}{{domains | get_domain(application_id)}}.conf"
notify: restart nginx

View File

@@ -0,0 +1,24 @@
server
{
server_name {{domains | get_domain(application_id)}};
{% include 'roles/net-letsencrypt/templates/ssl_header.j2' %}
{% include 'roles/srv-web-injector-core/templates/global.includes.conf.j2'%}
{% include 'roles/srv-web-proxy-core/templates/headers/content_security_policy.conf.j2' %}
charset utf-8;
location /
{
root {{nginx.directories.data.html}};
index index.html index.htm;
}
location /.well-known/ {
alias {{nginx.directories.data.well_known}};
allow all;
default_type "text/plain";
autoindex on;
}
}

View File

@@ -0,0 +1,4 @@
application_id: "html-server"
domain: "{{domains | get_domain(application_id)}}"
features:
portfolio_iframe: true # Necessary for imprint loading