This commit is contained in:
=
2024-12-19 22:32:42 -05:00
parent 12e996003e
commit 9803b2f155
27 changed files with 268 additions and 55 deletions

4
nginx/Dockerfile Normal file
View File

@ -0,0 +1,4 @@
FROM nginxinc/nginx-unprivileged:stable-alpine
COPY --chown=nginx:nginx content /usr/share/nginx/html
COPY --chown=nginx:nginx default.conf /etc/nginx/conf.d/default.conf
USER nginx

20
nginx/archive/client.bak Normal file
View File

@ -0,0 +1,20 @@
{
"m.homeserver": {
"base_url": "https://matrix.balsillie.net"
},
"m.identity_server": {
"base_url": "https://vector.im"
},
"im.vector.riot.jitsi": {
"preferredDomain": "meet.balsillie.net"
},
"m.integrations": {
"managers": [
{"ui_url": "https://dimension.mau.chat/riot","api_url": "https://dimension.mau.chat/api/v1/scalar"},
{"ui_url": "https://scalar.vector.im/","api_url": "https://scalar.vector.im/api"}
]
},
"m.tile_server": {
"map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=iiUQpKWdJesCmSFlMdaa"
}
}

View File

@ -0,0 +1 @@
../../mail/

View File

@ -0,0 +1,15 @@
{
"m.homeserver": {
"base_url": "https://matrix.balsillie.net"
},
"m.identity_server": {
"base_url": "https://vector.im"
},
"org.matrix.msc2965.authentication": {
"issuer": "https://matrix-auth.balsillie.net/",
"account": "https://matrix-auth.balsillie.net/account"
},
"m.tile_server": {
"map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=iiUQpKWdJesCmSFlMdaa"
}
}

View File

@ -0,0 +1,3 @@
{
"m.server": "matrix-federation.balsillie.net:8448"
}

View File

@ -0,0 +1 @@
./michael@balsillie.email

View File

@ -0,0 +1 @@
./michael@balsillie.net

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<clientConfig version="1.1">
<emailProvider id="balsillie.net">
<domain>balsillie.net</domain>
<displayName>Balsillie Family</displayName>
<displayShortName>Home</displayShortName>
<incomingServer type="imap">
<hostname>imap.balsillie.net</hostname>
<port>993</port>
<socketType>SSL</socketType>
<authentication>password-cleartext</authentication>
<username>%EMAILLOCALPART%</username>
</incomingServer>
<outgoingServer type="smtp">
<hostname>smtp.balsillie.net</hostname>
<port>465</port>
<socketType>SSL</socketType>
<authentication>password-cleartext</authentication>
<username>%EMAILLOCALPART%</username>
<addThisServer>true</addThisServer>
<useGlobalPreferredServer>true</useGlobalPreferredServer>
</outgoingServer>
</emailProvider>
<addressBook type="carddav">
<username>%EMAILLOCALPART%</username>
<authentication>OAuth2</authentication>
<serverURL>https://cloud.balsillie.net/remote.php/dav/</serverURL>
</addressBook>
<calendar type="caldav">
<username>%EMAILLOCALPART%</username>
<authentication>OAuth2</authentication>
<serverURL>https://cloud.balsillie.net/remote.php/dav/</serverURL>
</calendar>
<fileShare type="webdav">
<username>%EMAILLOCALPART%</username>
<authentication>OAuth2</authentication>
<serverURL>https://cloud.balsillie.net/remote.php/dav/</serverURL>
</fileShare>
<webMail>
<loginPage url="https://mail.balsillie.net/" />
</webMail>
<oAuth2>
<issuer>https://auth.balsillie.net/realms/balsillie</issuer>
<scope>mail-w</scope>
<authURL>https://auth.balsillie.net/realms/balsillie/protocol/openid-connect/auth</authURL>
<tokenURL>https://auth.balsillie.net/realms/balsillie/protocol/openid-connect/token</tokenURL>
</oAuth2>
</clientConfig>

108
nginx/content/michael.vcf Normal file
View File

@ -0,0 +1,108 @@
BEGIN:VCARD
VERSION:4.0
CLASS:public
KIND:individual
REV:20241214T050000Z
FN:Michael Balsillie
N:Balsillie;Michael;Donald;Mr;
NICKNAME:Michael
GENDER:M
LANG:en-US
TZ:America/New_York
TEL;TYPE=CELL:+16172903286
EMAIL;TYPE=HOME:michael@balsillie.email
EMAIL;TYPE=WORK:mbalsillie@arrowstreetcapital.com
ANNIVERSARY:20170528
RELATED;TYPE=Wife:Bridie Balsillie
RELATED;TYPE=Son:West Balsillie
BDAY:19841011
IMPP:WhatsApp:+16172903286
IMPP:Matrix:@michael:balsillie.net
ORG:Arrowstreet Capital
TITLE:Associate Director, Infrastructure Automation Engineer
URL:https://blog.balsillie.net/
SOURCE:https://balsillie.net/michael.vcf
KEY:data:application/pgp-keys;base64,mDMEYpNdFhYJKwYBBAHaRw8BAQdAJ24hVKqenwLTFDhmGXSRE6nkgpPe47r7yX8z+1DCQ5G0MW1p
Y2hhZWxAYmFsc2lsbGllLmVtYWlsIDxtaWNoYWVsQGJhbHNpbGxpZS5lbWFpbD6IjwQQFgoAIAUC
YpNdFgYLCQcIAwIEFQgKAgQWAgEAAhkBAhsDAh4BACEJEPzomrczVRG2FiEEkQdDAK2vo04InzdP
/OiatzNVEbZmrQEA8azpOz//RnAvxPCKYTY0tjIj0RMo+IuHYSFOJXQn4lcA/iI/QmqGJLxCKVHa
AjmdV1injapo/76D7djJd2WUkH8PuDgEYpNdFhIKKwYBBAGXVQEFAQEHQF6aPvQK9ajTvXN6fAge
uCX8Y07pmRQY6YQmjFkguwUfAwEIB4h4BBgWCAAJBQJik10WAhsMACEJEPzomrczVRG2FiEEkQdD
AK2vo04InzdP/OiatzNVEba8mQD/WDCEtwKeXf9WKQMD5fowdcJlbqiBSkXoyB51pfcSnCMA/1y8
56V3Vk5BqSdgdpxNCRMhHFjL1FfCEvAMIE6sZEAD
PHOTO:data:image/jpeg;base64,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
END:VCARD

View File

@ -0,0 +1,5 @@
version: STSv1
mode: testing
mx: mail.protonmail.ch
mx: mailsec.protonmail.ch
max_age: 604800

View File

@ -0,0 +1,4 @@
version: STSv1
mode: enforce
mx: smtp.balsillie.net
max_age: 2592000

114
nginx/default.conf Normal file
View File

@ -0,0 +1,114 @@
http2 on;
real_ip_header X-Forwarded-For;
set_real_ip_from ingress-nginx-controller-pods.ingress-nginx.svc.cluster00.balsillie.house;
server {
listen 8080;
server_name balsillie.net;
location = /michael.vcf {
default_type application/octet-stream;
root /usr/share/nginx/html;
}
location = /.well-known/autoconfig/mail/config-v1.1.xml {
default_type application/octet-stream;
root /usr/share/nginx/html;
}
location /.well-known/host-meta {
return 301 https://social.balsillie.net$request_uri;
}
location /.well-known/webfinger {
return 301 https://social.balsillie.net$request_uri;
}
location /.well-known/nodeinfo {
return 301 https://social.balsillie.net$request_uri;
}
location /.well-known/matrix/ {
default_type application/json;
root /usr/share/nginx/html;
}
location = / {
return 301 https://blog.balsillie.net/;
}
}
server {
listen 8080;
server_name mta-sts.balsillie.net;
location = /.well-known/mta-sts.txt {
default_type application/octet-stream;
root /usr/share/nginx/html/mta-sts/balsillie_net;
}
location / {
return 404;
}
}
server {
listen 8080;
server_name mta-sts.balsillie.email;
location = /.well-known/mta-sts.txt {
default_type application/octet-stream;
root /usr/share/nginx/html/mta-sts/balsillie_email;
}
location / {
return 404;
}
}
server {
listen 8080;
server_name openpgpkey.balsillie.net openpgpkey.balsillie.email;
location /.well-known/openpgpkey {
default_type application/octet-stream;
root /usr/share/nginx/html;
}
location / {
return 404;
}
}
server {
listen 8080;
server_name autoconfig.balsillie.net;
location = /mail/config-v1.1.xml {
default_type application/octet-stream;
root /usr/share/nginx/html;
}
location / {
return 404;
}
}
server {
listen 8080;
server_name account.balsillie.net auth-admin.balsillie.net;
location / {
return 301 https://auth.balsillie.net/realms/balsillie/account;
}
}
server {
listen 8080;
server_name notify.balsillie.net;
location / {
return 301 https://notify.balsillie.net:9000$request_uri;
}
}