cmc/dotfiles

Using GNU Stow to manage my dotfiles. config dotfiles macos stow

Commit eae1c6583f

eae1c6583fda121a380d33cd1814a30f5452b75a

parent: 920c5e5844

Verified · cmc

cmc <hello@cleberg.net> · 2026-05-10 18:13 UTC

fix: format latest nginx conf changes

Layout: unified · split

linux/nginx/etc/nginx/custom.d/redirects/blog.conf +37 −133
@@ -1,139 +1,43 @@
1# Legacy blog redirects
2
3location = /blog/how-to-set-up-a-vps-web-server {
4 return 301 /blog/vps-web-server.html;
5}
6
7location = /blog/how-to-set-up-a-vps-web-server.html {
8 return 301 /blog/vps-web-server.html;
9}
10
11location = /blog/doom-emacs-org-mode.html {
12 return 301 /blog/doom-emacs.html;
13}
14
15location = /blog/2020-01-25-aes-encryption.html {
16 return 301 /blog/aes-encryption.html;
17}
18
19location = /blog/2020-01-26-steam-on-ntfs-drives.html {
20 return 301 /blog/steam-on-ntfs.html;
21}
22
23location = /blog/updating-dynamic-dns-with-cloudflare-api {
24 return 301 /blog/cloudflare-dns-api.html;
25}
26
27location = /blog/launching-a-gemini-capsule.html {
28 return 301 /blog/gemini-capsule.html;
29}
30
31location = /blog/jumping-back-into-photography {
32 return 301 /blog/photography.html;
33}
34
35location = /blog/jumping-back-into-photography.html {
36 return 301 /blog/photography.html;
37}
38
39location = /blog/i-passed-the-cisa.html {
40 return 301 /blog/cisa.html;
41}
42
43location = /blog/fedora-remove-login-manager.html {
44 return 301 /blog/fedora-login-manager.html;
45}
46
47location = /blog/corporate-security.html {
48 return 301 /blog/internal-audit.html;
49}
50
51location = /blog/secure-your-network-with-the-uncomplicated-firewall {
52 return 301 /blog/ufw.html;
53}
54
55location = /blog/secure-your-network-with-the-uncomplicated-firewall.html {
56 return 301 /blog/ufw.html;
57}
58
59location = /blog/running-flatpak-apps-easily.html {
60 return 301 /blog/flatpak-symlinks.html;
61}
1# Top-level redirects
622
63location = /blog/random-mullvad-wireguard {
64 return 301 /blog/random-wireguard.html;
65}
3location /atom.xml { return 301 $scheme://$host/feed.xml; }
4location /blog/salary-transparency.html { return 301 $scheme://$host/salary/; }
5location /blog/salary-transparency { return 301 /salary/; }
666
67location = /blog/note-taking.html {
68 return 301 /blog/reliable-notes.html;
69}
70
71location = /blog/matrix-synapse.html {
72 return 301 /blog/self-hosting-matrix.html;
73}
74
75location = /blog/macos-testing-out-a-new-os {
76 return 301 /blog/macos.html;
77}
78
79location = /blog/hosting-a-gemini-server.html {
80 return 301 /blog/gemini-server.html;
81}
82
83location = /blog/gitweb.html {
84 return 301 /blog/self-hosting-gitweb.html;
85}
86
87location = /blog/freshrss.html {
88 return 301 /blog/self-hosting-freshrss.html;
89}
90
91location = /blog/foss-macos-apps {
92 return 301 /blog/macos.html;
93}
94
95location = /blog/foss-macos-apps.html {
96 return 301 /blog/macos.html;
97}
98
99location = /blog/doom-emacs {
100 return 301 /blog/doom-emacs.html;
101}
102
103location = /blog/digital-minimalism {
104 return 301 /blog/digital-minimalism.html;
105}
106
107location = /blog/cryptography-basics.html {
108 return 301 /blog/cryptography.html;
109}
110
111location = /blog/alpine-desktop {
112 return 301 /blog/alpine-desktop.html;
113}
7# Legacy blog redirects
1148
115location = /blog/salary-transparency {
116 return 301 /salary/;
117}
9location = /blog/how-to-set-up-a-vps-web-server { return 301 /blog/vps-web-server.html; }
10location = /blog/how-to-set-up-a-vps-web-server.html { return 301 /blog/vps-web-server.html; }
11location = /blog/doom-emacs-org-mode.html { return 301 /blog/doom-emacs.html; }
12location = /blog/2020-01-25-aes-encryption.html { return 301 /blog/aes-encryption.html; }
13location = /blog/2020-01-26-steam-on-ntfs-drives.html { return 301 /blog/steam-on-ntfs.html; }
14location = /blog/updating-dynamic-dns-with-cloudflare-api { return 301 /blog/cloudflare-dns-api.html; }
15location = /blog/launching-a-gemini-capsule.html { return 301 /blog/gemini-capsule.html; }
16location = /blog/jumping-back-into-photography { return 301 /blog/photography.html; }
17location = /blog/jumping-back-into-photography.html { return 301 /blog/photography.html; }
18location = /blog/i-passed-the-cisa.html { return 301 /blog/cisa.html; }
19location = /blog/fedora-remove-login-manager.html { return 301 /blog/fedora-login-manager.html; }
20location = /blog/corporate-security.html { return 301 /blog/internal-audit.html; }
21location = /blog/secure-your-network-with-the-uncomplicated-firewall { return 301 /blog/ufw.html; }
22location = /blog/secure-your-network-with-the-uncomplicated-firewall.html { return 301 /blog/ufw.html; }
23location = /blog/running-flatpak-apps-easily.html { return 301 /blog/flatpak-symlinks.html; }
24location = /blog/random-mullvad-wireguard { return 301 /blog/random-wireguard.html; }
25location = /blog/note-taking.html { return 301 /blog/reliable-notes.html; }
26location = /blog/matrix-synapse.html { return 301 /blog/self-hosting-matrix.html; }
27location = /blog/macos-testing-out-a-new-os { return 301 /blog/macos.html; }
28location = /blog/hosting-a-gemini-server.html { return 301 /blog/gemini-server.html; }
29location = /blog/gitweb.html { return 301 /blog/self-hosting-gitweb.html; }
30location = /blog/freshrss.html { return 301 /blog/self-hosting-freshrss.html; }
31location = /blog/foss-macos-apps { return 301 /blog/macos.html; }
32location = /blog/foss-macos-apps.html { return 301 /blog/macos.html; }
33location = /blog/doom-emacs { return 301 /blog/doom-emacs.html; }
34location = /blog/digital-minimalism { return 301 /blog/digital-minimalism.html; }
35location = /blog/cryptography-basics.html { return 301 /blog/cryptography.html; }
36location = /blog/alpine-desktop { return 301 /blog/alpine-desktop.html; }
11837
11938# Bad/bot paths
12039
121location = /blog/wp-login.php {
122 return 410;
123}
124
125location = /blog/signatur.php {
126 return 410;
127}
128
129location = /blog/data:, {
130 return 410;
131}
132
133location = /org/blog/index.org {
134 return 410;
135}
136
137location = /.well-known/ {
138 return 404;
139}
40location = /blog/wp-login.php { return 410; }
41location = /blog/signatur.php { return 410; }
42location = /org/blog/index.org { return 410; }
43location = /.well-known/ { return 404; }