summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile36
l---------nginx/http.d1
-rw-r--r--nginx/mime.types99
-rw-r--r--nginx/nginx.conf33
4 files changed, 167 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 0d48ea9..6efb909 100644
--- a/Makefile
+++ b/Makefile
@@ -55,10 +55,42 @@ login_registry:
podman login $(REGISTRY_DOMAIN)
.PHONY: install
-install: install_service install_crontab next_steps
+install: install_nginx install_service install_crontab next_steps
.PHONY: uninstall
-uninstall: uninstall_service uninstall_crontab
+uninstall: uninstall_nginx uninstall_service uninstall_crontab
+
+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_backup_exists = $(shell test -d $(NGINX_CONFIG_BACKUP) && echo 1 || echo 0)
+.PHONY: install_nginx
+install_nginx: $(NGINX_CONFIG_BACKUP) $(nginx_target)
+ 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
+ sudo mv $(NGINX_CONFIG) $(NGINX_CONFIG_BACKUP)
+endif
+
+/etc/nginx/%: nginx/%
+ sudo mkdir -p $$(dirname $@)
+ 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 mv $(NGINX_CONFIG_BACKUP) $(NGINX_CONFIG)
+ sudo rc-service nginx restart
+endif
.PHONY: install_service
install_service: ~/.config/rc/init.d/joeac.net
diff --git a/nginx/http.d b/nginx/http.d
new file mode 120000
index 0000000..fafa3e8
--- /dev/null
+++ b/nginx/http.d
@@ -0,0 +1 @@
+/home/broughton/.config/nginx/http.d \ No newline at end of file
diff --git a/nginx/mime.types b/nginx/mime.types
new file mode 100644
index 0000000..1c00d70
--- /dev/null
+++ b/nginx/mime.types
@@ -0,0 +1,99 @@
+
+types {
+ text/html html htm shtml;
+ text/css css;
+ text/xml xml;
+ image/gif gif;
+ image/jpeg jpeg jpg;
+ application/javascript js;
+ application/atom+xml atom;
+ application/rss+xml rss;
+
+ text/mathml mml;
+ text/plain txt;
+ text/vnd.sun.j2me.app-descriptor jad;
+ text/vnd.wap.wml wml;
+ text/x-component htc;
+
+ image/avif avif;
+ image/png png;
+ image/svg+xml svg svgz;
+ image/tiff tif tiff;
+ image/vnd.wap.wbmp wbmp;
+ image/webp webp;
+ image/x-icon ico;
+ image/x-jng jng;
+ image/x-ms-bmp bmp;
+
+ font/woff woff;
+ font/woff2 woff2;
+
+ application/java-archive jar war ear;
+ application/json json;
+ application/mac-binhex40 hqx;
+ application/msword doc;
+ application/pdf pdf;
+ application/postscript ps eps ai;
+ application/rtf rtf;
+ application/vnd.apple.mpegurl m3u8;
+ application/vnd.google-earth.kml+xml kml;
+ application/vnd.google-earth.kmz kmz;
+ application/vnd.ms-excel xls;
+ application/vnd.ms-fontobject eot;
+ application/vnd.ms-powerpoint ppt;
+ application/vnd.oasis.opendocument.graphics odg;
+ application/vnd.oasis.opendocument.presentation odp;
+ application/vnd.oasis.opendocument.spreadsheet ods;
+ application/vnd.oasis.opendocument.text odt;
+ application/vnd.openxmlformats-officedocument.presentationml.presentation
+ pptx;
+ application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
+ xlsx;
+ application/vnd.openxmlformats-officedocument.wordprocessingml.document
+ docx;
+ application/vnd.wap.wmlc wmlc;
+ application/wasm wasm;
+ application/x-7z-compressed 7z;
+ application/x-cocoa cco;
+ application/x-java-archive-diff jardiff;
+ application/x-java-jnlp-file jnlp;
+ application/x-makeself run;
+ application/x-perl pl pm;
+ application/x-pilot prc pdb;
+ application/x-rar-compressed rar;
+ application/x-redhat-package-manager rpm;
+ application/x-sea sea;
+ application/x-shockwave-flash swf;
+ application/x-stuffit sit;
+ application/x-tcl tcl tk;
+ application/x-x509-ca-cert der pem crt;
+ application/x-xpinstall xpi;
+ application/xhtml+xml xhtml;
+ application/xspf+xml xspf;
+ application/zip zip;
+
+ application/octet-stream bin exe dll;
+ application/octet-stream deb;
+ application/octet-stream dmg;
+ application/octet-stream iso img;
+ application/octet-stream msi msp msm;
+
+ audio/midi mid midi kar;
+ audio/mpeg mp3;
+ audio/ogg ogg;
+ audio/x-m4a m4a;
+ audio/x-realaudio ra;
+
+ video/3gpp 3gpp 3gp;
+ video/mp2t ts;
+ video/mp4 mp4;
+ video/mpeg mpeg mpg;
+ video/quicktime mov;
+ video/webm webm;
+ video/x-flv flv;
+ video/x-m4v m4v;
+ video/x-mng mng;
+ video/x-ms-asf asx asf;
+ video/x-ms-wmv wmv;
+ video/x-msvideo avi;
+}
diff --git a/nginx/nginx.conf b/nginx/nginx.conf
new file mode 100644
index 0000000..a46887b
--- /dev/null
+++ b/nginx/nginx.conf
@@ -0,0 +1,33 @@
+# /etc/nginx/nginx.conf
+
+user nginx;
+worker_processes auto;
+pcre_jit on;
+error_log /var/log/nginx/error.log warn;
+
+events {
+ worker_connections 1024;
+}
+
+http {
+ include /etc/nginx/mime.types;
+ default_type application/octet-stream;
+ server_tokens off;
+ client_max_body_size 1m;
+ sendfile on;
+ tcp_nopush on;
+ ssl_protocols TLSv1.2 TLSv1.3;
+ ssl_prefer_server_ciphers on;
+ ssl_session_cache shared:SSL:2m;
+ ssl_session_timeout 1h;
+ gzip on;
+ map $http_upgrade $connection_upgrade {
+ default upgrade;
+ '' close;
+ }
+ log_format main '$remote_addr - $remote_user [$time_local] "$request" '
+ '$status $body_bytes_sent "$http_referer" '
+ '"$http_user_agent" "$http_x_forwarded_for"';
+ access_log /var/log/nginx/access.log main;
+ include /etc/nginx/http.d/*.conf;
+}