summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-06-29 09:06:17 +0100
committerJoe Carstairs <me@joeac.net>2026-06-29 09:06:17 +0100
commit673aaf1c13cfdbec74f99d771ad1d5398dc4613f (patch)
tree8f9ae6b4815ba58ca778b40203dff534c4c2f62f
parentc059bc34d8e60fa0c626e41566aa3bb1defe42e1 (diff)
installs nginx per module
-rw-r--r--Makefile36
-rw-r--r--config.mk2
-rw-r--r--nginx/http.d/@.joeac.net.conf (renamed from nginx/http.d/joeac.net.conf)0
3 files changed, 24 insertions, 14 deletions
diff --git a/Makefile b/Makefile
index 0c42169..947cd8e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,5 @@
+include config.mk
+
#############
# VARIABLES #
#############
@@ -14,6 +16,7 @@ MODULES := http gemini smtp vaultwarden
#############
container_image_name = $(REGISTRY_DOMAIN)/$(REGISTRY_USER)/joeac.net-$(module)
+nginx_module_target = $(if $(SUBDOMAIN_$(module)),/etc/nginx/http.d/$(SUBDOMAIN_$(module)).joeac.net.conf restart_nginx)
define build_module_rule =
.PHONY: build_$(module)
@@ -40,7 +43,7 @@ endef
define install_module_rule =
.PHONY: install_$(module)
-install_$(module): ~/.config/rc/init.d/joeac.net ~/.config/rc/init.d/joeac.net.$(module)
+install_$(module): ~/.config/rc/init.d/joeac.net ~/.config/rc/init.d/joeac.net.$(module) $(nginx_module_target)
~/.config/rc/init.d/joeac.net.$(module): ~/.config/rc/init.d/joeac.net ~/.config/rc/runlevels/default
ln -s $(shell realpath ~/.config/rc/init.d/joeac.net) ~/.config/rc/init.d/joeac.net.$(module)
@@ -73,7 +76,7 @@ login_registry:
podman login $(REGISTRY_DOMAIN)
.PHONY: install
-install: install_nginx $(foreach module,$(MODULES),install_$(module)) install_crontab
+install: $(foreach module,$(MODULES),install_$(module)) install_crontab
.PHONY: uninstall
uninstall: uninstall_nginx uninstall_joeac.net_service $(foreach module,$(MODULES),uninstall_$(module)) uninstall_crontab
@@ -83,32 +86,31 @@ uninstall: uninstall_nginx uninstall_joeac.net_service $(foreach module,$(MODULE
nginx_src := $(shell find -L nginx -type f)
nginx_target := $(addprefix /etc/,$(nginx_src))
-NGINX_CONFIG := /etc/nginx
-NGINX_CONFIG_BACKUP := /etc/nginx.joeac.net-backup
+NGINX_CONFIG_SRC := nginx/nginx.conf
+NGINX_CONFIG := /etc/nginx/nginx.conf
+NGINX_CONFIG_BACKUP := /etc/nginx/nginx.joeac.net-backup
nginx_config_backup_exists = $(shell test -d $(NGINX_CONFIG_BACKUP) && echo 1 || echo 0)
.PHONY: install_nginx
-install_nginx: $(NGINX_CONFIG_BACKUP) $(nginx_target)
+install_nginx: $(NGINX_CONFIG_BACKUP) $(NGINX_CONFIG)
+
+.PHONY: restart_nginx
+restart_nginx:
sudo rc-service nginx restart
-$(NGINX_CONFIG_BACKUP): $(NGINX_CONFIG)
-ifeq ($(nginx_config_backup_exists),1)
- @echo "tried to back up $(NGINX_CONFIG) to $(NGINX_CONFIG_BACKUP), but $(NGINX_CONFIG_BACKUP) already exists: try \`make uninstall_nginx\` and try again?"
- @exit 1
-else
+$(NGINX_CONFIG_BACKUP):
+ifeq ($(nginx_config_backup_exists),0)
sudo mv $(NGINX_CONFIG) $(NGINX_CONFIG_BACKUP)
endif
-/etc/nginx/%: nginx/%
- sudo mkdir -p $$(dirname $@)
+$(NGINX_CONFIG): $(NGINX_CONFIG_SRC)
sudo cp $< $@
.PHONY: uninstall_nginx
uninstall_nginx:
ifeq ($(nginx_config_backup_exists),0)
@echo "No nginx backup config detected: doing nothing"
- @exit 0
else
- sudo rm -rf $(NGINX_CONFIG)
+ sudo rm -f $(NGINX_CONFIG)
sudo mv $(NGINX_CONFIG_BACKUP) $(NGINX_CONFIG)
sudo rc-service nginx restart
endif
@@ -134,6 +136,12 @@ $(foreach module,$(MODULES),$(eval $(uninstall_module_rule)))
sudo cp openrc/conf.d/user.$(shell whoami) /etc/conf.d/user.$(shell whoami)
sudo rc-update add user.$(shell whoami) default
+/etc/nginx/http.d/%joeac.net.conf: nginx/http.d/%joeac.net.conf install_nginx /etc/nginx/http.d
+ sudo cp $< $@
+
+/etc/nginx/http.d:
+ sudo mkdir -p /etc/nginx/http.d
+
.PHONY: install_crontab
install_crontab: /etc/periodic/daily/joeac.net
diff --git a/config.mk b/config.mk
new file mode 100644
index 0000000..ac61469
--- /dev/null
+++ b/config.mk
@@ -0,0 +1,2 @@
+SUBDOMAIN_http := @
+SUBDOMAIN_vaultwarden := pwd
diff --git a/nginx/http.d/joeac.net.conf b/nginx/http.d/@.joeac.net.conf
index 24b31fb..24b31fb 100644
--- a/nginx/http.d/joeac.net.conf
+++ b/nginx/http.d/@.joeac.net.conf