Add DNS/Flask servers, logging, and stunnel config

Introduces a DNS server (dnsserver.py) that redirects Nintendo domains, a Flask server (server.py) for serving Gen4/Gen5 Pokémon event files and logging unknown requests, and supporting batch scripts for starting/stopping services. Adds stunnel configuration and certificates for SSL proxying, as well as initial requirements and log handling. Removes obsolete server.log and restructures event file serving and logging for better maintainability.
This commit is contained in:
2025-09-20 01:56:32 -04:00
parent bc1edc6fdf
commit 87d4b4ba78
30 changed files with 270 additions and 42 deletions
+21
View File
@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDfTCCAuagAwIBAgIBADANBgkqhkiG9w0BAQUFADCBjDELMAkGA1UEBhMCVVMx
EzARBgNVBAgTCldhc2hpbmd0b24xIDAeBgNVBAoTF05pbnRlbmRvIG9mIEFtZXJp
Y2EgSW5jMQwwCgYDVQQLEwNOT0ExFDASBgNVBAMTC05pbnRlbmRvIENBMSIwIAYJ
KoZIhvcNAQkBFhNjYUBub2EubmludGVuZG8uY29tMB4XDTA1MDgxMDA3MDIyMloX
DTQ5MTIyODEyMDAwMFowgYwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
dG9uMSAwHgYDVQQKExdOaW50ZW5kbyBvZiBBbWVyaWNhIEluYzEMMAoGA1UECxMD
Tk9BMRQwEgYDVQQDEwtOaW50ZW5kbyBDQTEiMCAGCSqGSIb3DQEJARYTY2FAbm9h
Lm5pbnRlbmRvLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAs815l3dd
iq+GqOjXcxx33xCQH4H4QZ4hVd+8/GP7GUPx9sRyQkm9rURoTvPaHeZN2PlZiNyu
Pps4Ccp//9wkokR4eEmT1IRAELjsPtstk8gRyP14LWGtMa6GJrD9Wj+hPb/iS0ns
zmaYWCYSwPv0d2Ub6vvLf+CMywKjTl6M6psCAwEAAaOB7DCB6TAdBgNVHQ4EFgQU
e1dTPzGsd3Hx/UrmD0Ow1VVBn9IwgbkGA1UdIwSBsTCBroAUe1dTPzGsd3Hx/Urm
D0Ow1VVBn9KhgZKkgY8wgYwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
dG9uMSAwHgYDVQQKExdOaW50ZW5kbyBvZiBBbWVyaWNhIEluYzEMMAoGA1UECxMD
Tk9BMRQwEgYDVQQDEwtOaW50ZW5kbyBDQTEiMCAGCSqGSIb3DQEJARYTY2FAbm9h
Lm5pbnRlbmRvLmNvbYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GB
AF/sccq8/vxDNIho4Zal/mZZ+cbggUn8AH9ZeYD2kLvCd1w9j4O0IgkqEaBnYbho
OR7R4ExsHSEGmFn1A7TNbkRgcRrcOIoO6HsRPmPiDX12NKEZyfN8cDwc0azKsJZd
eYVJXqFQRJNZz3h5DkUDlXxJQMD3xALVAMehncWFC7jc
-----END CERTIFICATE-----
View File
+5
View File
@@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgAAAAAAAAAAAAAAAA
R3PjA+68HXho4wtwNR2+qja1KjOhRANCAARNgTALVXey7qzm9xplJr10KCXkZcEA
vUfFK/d8DDELSmj68KRellomg04PUPPzA2BBiSIpTu3HBVjeUCfR2zf5
-----END PRIVATE KEY-----
+1
View File
@@ -0,0 +1 @@
004773E303EEBC1D7868E30B70351DBEAA36B52A33
+17
View File
@@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE-----
MIICqjCCAhMCFFlac2Q+iXBDUiNXP9NLm6gXIWo7MA0GCSqGSIb3DQEBBQUAMIGT
MQswCQYDVQQGEwJVUzEVMBMGA1UECAwMUGVubnN5bHZhbmlhMRQwEgYDVQQHDAtN
dXJyeXN2aWxsZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRkw
FwYDVQQLDBBuaW50ZW5kb3dpZmkubmV0MRkwFwYDVQQDDBBuaW50ZW5kb3dpZmku
bmV0MB4XDTI1MDkyMDAzNTMwMFoXDTI2MDkyMDAzNTMwMFowgZMxCzAJBgNVBAYT
AlVTMRUwEwYDVQQIDAxQZW5uc3lsdmFuaWExFDASBgNVBAcMC011cnJ5c3ZpbGxl
MSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxGTAXBgNVBAsMEG5p
bnRlbmRvd2lmaS5uZXQxGTAXBgNVBAMMEG5pbnRlbmRvd2lmaS5uZXQwgZ8wDQYJ
KoZIhvcNAQEBBQADgY0AMIGJAoGBANbz7GfMN/KBqp12LWUSxVflSqDKCuudfsTI
+32SnvOji6SZDDPpOLn64cPV3/bmEBxjBCHXsYIiz4q/2VK4YRyrStFDnOVsXw52
awH3Kw7uTVpUQttJAm3aj0CJgJNoc1j+1Kb960EVk5jvGMSHK0ESDCCqOOPAEzqN
wP0gClvfAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAgorZg1VXbmb+f2RSKKflW3hQ
3TcHGsXX97Ai7F/U97ge89G+UT+0YHLILqsH/zlJc5sKKo4slMqzlwJXvGPTZ0iS
eGkO87zo/ibv38H9qhRkKH8OjdKHJf9LjCewBdeth2VN5EToTt60OyNenmnj3p5m
65bjEyE/+GDiTWbK1MQ=
-----END CERTIFICATE-----
+16
View File
@@ -0,0 +1,16 @@
-----BEGIN PRIVATE KEY-----
MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBANbz7GfMN/KBqp12
LWUSxVflSqDKCuudfsTI+32SnvOji6SZDDPpOLn64cPV3/bmEBxjBCHXsYIiz4q/
2VK4YRyrStFDnOVsXw52awH3Kw7uTVpUQttJAm3aj0CJgJNoc1j+1Kb960EVk5jv
GMSHK0ESDCCqOOPAEzqNwP0gClvfAgMBAAECgYBk7MR7++vs5iroodswkL6txU/j
7NlxxVIHLWK/k/8j4A8p6l5LZV6oG/6yx5HPyDeaTHddOHv04UlXGTr91uppAbf7
BN8iXwZzAh7tT3QVluGXnO+hlrtRiPCpnSRKuG04wR1UehYJV3WrDKLVBHmqhxxF
tdbOBRRcY+KrFnBWoQJBAPxqPyR/mtxzTH2KV8yHNaeku/U7OJTi0RXV/VbKviQs
qzQYql+CEJxJLYz5r16ebnn+J1kakq+JLj/yCcZ50BECQQDaAXfmTrUK3CiHzrln
nmyOia67N2biGzNoarz9O7IAqfAFVhnbw1pO/GDMXvq9yc4A4dlApDh02DTAXAIf
21zvAkBdIQYy/TGx7IhoOUazm59cPxdqH3N820Kxf8Z840jMJ/7ytbcGjgJ65zT7
MpRVoLa6I994rKk6Qq7hwPeCVydBAkAbEhebZ6afhJsb0hW/wjJkuMATy1thNFN7
4dU59NGzt2ZwozJu0aFDMZ+rgRfNvWNxRJo/pqTEDZzvTf2NiyXNAkAo4bDqN37K
0x86Gjn+L1a76jpgNtJ3o5L/GyJYlpQrK4Qn/ZX3TX/Lmv74BHjU8vy5lI66w5Yt
l81+P9zvyEVy
-----END PRIVATE KEY-----
+2
View File
@@ -0,0 +1,2 @@
cryptography>=3.3
flask>=2.0
+17
View File
@@ -0,0 +1,17 @@
; stunnel.conf
; Run in background (no console popup)
foreground = quiet
; Reduce verbosity (4 = info, 3 = warnings only)
debug = 4
; Write logs to file instead of popup
output = stunnel.log
[wfc]
accept = 0.0.0.0:443
connect = 127.0.0.1:8080
cert = ../certs/server.crt
key = ../certs/server.key
sslVersion = SSLv23
ciphers = ALL:!aNULL