templates for appsettings
This commit is contained in:
parent
a793996b70
commit
3fe7b8b46c
6 changed files with 357 additions and 1 deletions
|
|
@ -24,7 +24,7 @@ generated/$(APP_INSTALL_PREFIX)yavsc%.service: generated/ template.service $(SLN
|
|||
@cat template.service | APP_NAME="$*" \
|
||||
DESTDIR="$(DESTDIR)" \
|
||||
HTTP_HOST="$(HTTP_HOST)" \
|
||||
HTTP_PORT="$*_$(HTTP_PORT)" \
|
||||
HTTP_PORT="$($*_PORT)" \
|
||||
APPDIR="$(APPDIR)" \
|
||||
APP_SYSLOG_ID="$(APP_INSTALL_PREFIX)yavsc$*" \
|
||||
POSTGRES_HOST="$(POSTGRES_HOST)" \
|
||||
|
|
@ -45,6 +45,44 @@ generated/$(APP_INSTALL_PREFIX)yavsc%.service: generated/ template.service $(SLN
|
|||
|
||||
generate-service-units: generated/$(APP_INSTALL_PREFIX)yavscOrg.service generated/$(APP_INSTALL_PREFIX)yavscBlogs.service generated/$(APP_INSTALL_PREFIX)yavscApi.service
|
||||
|
||||
# --- Vhosts nginx (générés par envsubst, à l'image des unités systemd) ---
|
||||
# make generate-nginx -> generated/nginx/preprod-yavsc{Org,Blogs,Api}
|
||||
# make generate-nginx APP_INSTALL_ENV=production APP_INSTALL_PREFIX= -> prod (yavsc/api/blogs.pschneider.fr)
|
||||
#
|
||||
# HTTP/3 (QUIC) termine au edge nginx ; Kestrel reste en h1/h2 backend.
|
||||
# Les vhosts générés vont dans generated/nginx/ (gitignoré, comme generated/*.service).
|
||||
NGINX_TEMPLATE := template.vhost
|
||||
NGINX_OUT_DIR := generated/nginx
|
||||
NGINX_HOSTS := Org Blogs Api
|
||||
DOMAIN_ROOT ?= pschneider.fr
|
||||
# Schéma backend Kestrel : https en prod (Kestrel écoute HTTPS, cert Let's
|
||||
# Encrypt), http en preprod (Kestrel écoute HTTP simple, cf. .preprod.env).
|
||||
BACKEND_SCHEME ?= $(if $(filter production,$(APP_INSTALL_ENV)),https,http)
|
||||
# sous-domaine par hôte : Org -> yavsc, Api -> api, Blogs -> blogs
|
||||
nginx_subdomain = $(if $(filter Org,$1),yavsc,$(if $(filter Api,$1),api,$(if $(filter Blogs,$1),blogs,$1)))
|
||||
# domaine complet : <prefix><subdomain>.<DOMAIN_ROOT>
|
||||
# prod Org -> yavsc.pschneider.fr
|
||||
# preprod Org -> preprod-yavsc.pschneider.fr
|
||||
nginx_domain = $(APP_INSTALL_PREFIX)$(call nginx_subdomain,$1).$(DOMAIN_ROOT)
|
||||
|
||||
$(NGINX_OUT_DIR)/$(APP_INSTALL_PREFIX)yavsc%: $(NGINX_OUT_DIR) $(NGINX_TEMPLATE) .$(APP_INSTALL_ENV).env
|
||||
@cat $(NGINX_TEMPLATE) \
|
||||
| DOMAIN="$(call nginx_domain,$*)" \
|
||||
BACKEND_SCHEME="$(BACKEND_SCHEME)" \
|
||||
HTTP_HOST="$(HTTP_HOST)" \
|
||||
BACKEND_PORT="$($*_PORT)" \
|
||||
QUIC_OPTS="$(if $(filter Org,$*),reuseport,)" \
|
||||
envsubst '$$DOMAIN $$BACKEND_SCHEME $$HTTP_HOST $$BACKEND_PORT $$QUIC_OPTS' > $@
|
||||
@echo Created nginx vhost: $@
|
||||
|
||||
generate-nginx: $(addprefix $(NGINX_OUT_DIR)/$(APP_INSTALL_PREFIX)yavsc,$(NGINX_HOSTS))
|
||||
|
||||
generate-nginx-prod:
|
||||
make generate-nginx APP_INSTALL_ENV=production APP_INSTALL_PREFIX=
|
||||
|
||||
$(NGINX_OUT_DIR):
|
||||
@mkdir -p $@
|
||||
|
||||
install-service-%: /etc/systemd/system/$(APP_INSTALL_PREFIX)yavsc%.service
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable $(APP_INSTALL_PREFIX)yavsc$*
|
||||
|
|
|
|||
Loading…
Reference in a new issue