Adding website hosting

This commit is contained in:
Ian Roddis
2026-03-23 14:34:12 -03:00
parent 5920d3fd7a
commit ab89c85844
6 changed files with 59 additions and 0 deletions
@@ -107,6 +107,9 @@ forgejo_admin_password: "changeme_forgejo_admin"
forgejo_admin_email: "admin@{{ base_domain }}" forgejo_admin_email: "admin@{{ base_domain }}"
forgejo_ssh_port: 2222 forgejo_ssh_port: 2222
# Website
website_nginx_version: "alpine"
# SMTP (for services that send email) # SMTP (for services that send email)
smtp_host: "stalwart" smtp_host: "stalwart"
smtp_port: 587 smtp_port: 587
+2
View File
@@ -29,3 +29,5 @@
tags: [vaultwarden, passwords, vault] tags: [vaultwarden, passwords, vault]
- role: forgejo - role: forgejo
tags: [forgejo, git, vcs] tags: [forgejo, git, vcs]
- role: website
tags: [website, web]
+3
View File
@@ -0,0 +1,3 @@
---
website_data_dir: "{{ sovereign_base_dir }}/website"
website_nginx_version: "alpine"
+6
View File
@@ -0,0 +1,6 @@
---
- name: restart website
community.docker.docker_compose_v2:
project_src: "{{ website_data_dir }}"
state: present
recreate: always
+21
View File
@@ -0,0 +1,21 @@
---
- name: Create website directories
ansible.builtin.file:
path: "{{ item }}"
state: directory
mode: '0755'
loop:
- "{{ website_data_dir }}"
- "{{ website_data_dir }}/html"
- name: Deploy website docker-compose
ansible.builtin.template:
src: docker-compose.yml.j2
dest: "{{ website_data_dir }}/docker-compose.yml"
mode: '0644'
notify: restart website
- name: Start website
community.docker.docker_compose_v2:
project_src: "{{ website_data_dir }}"
state: present
@@ -0,0 +1,24 @@
services:
website:
image: nginx:{{ website_nginx_version }}
container_name: website
restart: unless-stopped
volumes:
- {{ website_data_dir }}/html:/usr/share/nginx/html:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.website.rule=Host(`{{ base_domain }}`)"
- "traefik.http.routers.website.tls=true"
- "traefik.http.routers.website.tls.certresolver=letsencrypt"
- "traefik.http.services.website.loadbalancer.server.port=80"
networks:
- {{ sovereign_network_name }}
logging:
driver: gelf
options:
gelf-address: "udp://{{ graylog_host }}:{{ graylog_gelf_port }}"
tag: "website"
networks:
{{ sovereign_network_name }}:
external: true