diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..1f4e50b
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,11 @@
+# API Options
+DECNET_API_HOST=0.0.0.0
+DECNET_API_PORT=8000
+DECNET_JWT_SECRET=supersecretkey12345
+DECNET_INGEST_LOG_FILE=/var/log/decnet/decnet.log
+
+# Web Dashboard Options
+DECNET_WEB_HOST=0.0.0.0
+DECNET_WEB_PORT=8080
+DECNET_ADMIN_USER=admin
+DECNET_ADMIN_PASSWORD=admin
diff --git a/.gitignore b/.gitignore
index 187f68b..e7239c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,5 @@ webmail
windows1
*.db
decnet.json
+.env
+.env.local
diff --git a/.hypothesis/constants/12924abcbf0c075f b/.hypothesis/constants/12924abcbf0c075f
new file mode 100644
index 0000000..531c5d2
--- /dev/null
+++ b/.hypothesis/constants/12924abcbf0c075f
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/web/api.py
+# hypothesis_version: 6.151.11
+
+[404, 500, 1000, '*', '/api/v1/auth/login', '/api/v1/deckies', '/api/v1/logs', '/api/v1/stats', '/api/v1/stream', '1.0.0', 'Authorization', 'Bearer', 'Bearer ', 'Decky not found', 'No active deployment', 'WWW-Authenticate', 'access_token', 'admin', 'bearer', 'data', 'id', 'lastEventId', 'limit', 'logs', 'message', 'must_change_password', 'offset', 'password_hash', 'role', 'stats', 'text/event-stream', 'token', 'token_type', 'total', 'type', 'username', 'uuid']
\ No newline at end of file
diff --git a/.hypothesis/constants/3048c6da87ba838d b/.hypothesis/constants/3048c6da87ba838d
new file mode 100644
index 0000000..18ba47e
--- /dev/null
+++ b/.hypothesis/constants/3048c6da87ba838d
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/web/auth.py
+# hypothesis_version: 6.151.11
+
+[1440, 'HS256', 'exp', 'iat', 'utf-8']
\ No newline at end of file
diff --git a/.hypothesis/constants/39f59c66c174e4ce b/.hypothesis/constants/39f59c66c174e4ce
new file mode 100644
index 0000000..9583d59
--- /dev/null
+++ b/.hypothesis/constants/39f59c66c174e4ce
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/cli.py
+# hypothesis_version: 6.151.11
+
+[8000, ',', ', ', '--all', '--api', '--api-port', '--archetype', '--config', '--deckies', '--decky', '--distro', '--dry-run', '--emit-syslog', '--host', '--id', '--interface', '--ip-start', '--ipvlan', '--log-file', '--log-target', '--min-deckies', '--mode', '--mutate-interval', '--no-cache', '--output', '--port', '--randomize-distros', '--randomize-services', '--services', '--subnet', '--watch', '--web-port', '-a', '-c', '-d', '-f', '-i', '-m', '-n', '-o', '-w', '/index.html', '0.0.0.0', 'Available Services', 'Default Services', 'Description', 'Display Name', 'Docker Image', 'Image', 'Machine Archetypes', 'Name', 'Ports', 'Slug', 'archetypes', 'bold cyan', 'correlate', 'decnet', 'decnet.cli', 'decnet.log', 'decnet.web.api:app', 'decnet_web', 'dim', 'dist', 'distros', 'green', 'json', 'linux', 'mutate', 'services', 'swarm', 'syslog', 'table', 'unihost', 'uvicorn', 'web']
\ No newline at end of file
diff --git a/.hypothesis/constants/42a1dcb5c22b1ac1 b/.hypothesis/constants/42a1dcb5c22b1ac1
new file mode 100644
index 0000000..3aba509
--- /dev/null
+++ b/.hypothesis/constants/42a1dcb5c22b1ac1
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/ini_loader.py
+# hypothesis_version: 6.151.11
+
+[100, 512, 1024, ',', '.', '1', '[', ']', 'amount', 'archetype', 'binary', 'custom-', 'exceeds maximum', 'exec', 'general', 'gw', 'interface', 'ip', 'log-target', 'log_target', 'mutate-interval', 'mutate_interval', 'net', 'nmap-os', 'nmap_os', 'ports', 'services']
\ No newline at end of file
diff --git a/.hypothesis/constants/46cebe14ff55dbd1 b/.hypothesis/constants/46cebe14ff55dbd1
new file mode 100644
index 0000000..9f524f1
--- /dev/null
+++ b/.hypothesis/constants/46cebe14ff55dbd1
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/cli.py
+# hypothesis_version: 6.151.11
+
+[5173, 8000, ',', ', ', '--all', '--api', '--api-port', '--archetype', '--config', '--deckies', '--decky', '--distro', '--dry-run', '--emit-syslog', '--host', '--id', '--interface', '--ip-start', '--ipvlan', '--log-file', '--log-target', '--min-deckies', '--mode', '--mutate-interval', '--no-cache', '--output', '--port', '--randomize-distros', '--randomize-services', '--services', '--subnet', '--watch', '--web-port', '-a', '-c', '-d', '-f', '-i', '-m', '-n', '-o', '-w', '/index.html', '0.0.0.0', 'Available Services', 'Default Services', 'Description', 'Display Name', 'Docker Image', 'Image', 'Machine Archetypes', 'Name', 'Ports', 'Slug', 'archetypes', 'bold cyan', 'correlate', 'decnet', 'decnet.cli', 'decnet.log', 'decnet.web.api:app', 'decnet_web', 'dim', 'dist', 'distros', 'green', 'json', 'linux', 'mutate', 'services', 'swarm', 'syslog', 'table', 'unihost', 'uvicorn', 'web']
\ No newline at end of file
diff --git a/.hypothesis/constants/4efedb0b38145ee9 b/.hypothesis/constants/4efedb0b38145ee9
new file mode 100644
index 0000000..b1c7a57
--- /dev/null
+++ b/.hypothesis/constants/4efedb0b38145ee9
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/env.py
+# hypothesis_version: 6.151.11
+
+['.env', '.env.local', '0.0.0.0', '8000', '8080', 'DECNET_ADMIN_USER', 'DECNET_API_HOST', 'DECNET_API_PORT', 'DECNET_JWT_SECRET', 'DECNET_WEB_HOST', 'DECNET_WEB_PORT', 'admin']
\ No newline at end of file
diff --git a/.hypothesis/constants/56584ef41d5dcfbb b/.hypothesis/constants/56584ef41d5dcfbb
new file mode 100644
index 0000000..18ba47e
--- /dev/null
+++ b/.hypothesis/constants/56584ef41d5dcfbb
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/web/auth.py
+# hypothesis_version: 6.151.11
+
+[1440, 'HS256', 'exp', 'iat', 'utf-8']
\ No newline at end of file
diff --git a/.hypothesis/constants/653cbfe0ead00867 b/.hypothesis/constants/653cbfe0ead00867
new file mode 100644
index 0000000..531c5d2
--- /dev/null
+++ b/.hypothesis/constants/653cbfe0ead00867
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/web/api.py
+# hypothesis_version: 6.151.11
+
+[404, 500, 1000, '*', '/api/v1/auth/login', '/api/v1/deckies', '/api/v1/logs', '/api/v1/stats', '/api/v1/stream', '1.0.0', 'Authorization', 'Bearer', 'Bearer ', 'Decky not found', 'No active deployment', 'WWW-Authenticate', 'access_token', 'admin', 'bearer', 'data', 'id', 'lastEventId', 'limit', 'logs', 'message', 'must_change_password', 'offset', 'password_hash', 'role', 'stats', 'text/event-stream', 'token', 'token_type', 'total', 'type', 'username', 'uuid']
\ No newline at end of file
diff --git a/.hypothesis/constants/6ef9c847efdbbda6 b/.hypothesis/constants/6ef9c847efdbbda6
new file mode 100644
index 0000000..775bdf1
--- /dev/null
+++ b/.hypothesis/constants/6ef9c847efdbbda6
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/web/api.py
+# hypothesis_version: 6.151.11
+
+[400, 404, 500, 512, 1000, 1024, '*', '/api/v1/auth/login', '/api/v1/deckies', '/api/v1/logs', '/api/v1/stats', '/api/v1/stream', '1.0.0', 'Authorization', 'Bearer', 'Bearer ', 'Decky not found', 'No active deployment', 'WWW-Authenticate', 'access_token', 'admin', 'bearer', 'data', 'decnet.web.api', 'id', 'lastEventId', 'limit', 'logs', 'message', 'must_change_password', 'offset', 'password_hash', 'role', 'stats', 'text/event-stream', 'token', 'token_type', 'total', 'type', 'unihost', 'username', 'uuid']
\ No newline at end of file
diff --git a/.hypothesis/constants/7a3f92bbfaebef4e b/.hypothesis/constants/7a3f92bbfaebef4e
new file mode 100644
index 0000000..ea9cbba
--- /dev/null
+++ b/.hypothesis/constants/7a3f92bbfaebef4e
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/ini_loader.py
+# hypothesis_version: 6.151.11
+
+[',', '.', '1', 'amount', 'archetype', 'binary', 'custom-', 'exec', 'general', 'gw', 'interface', 'ip', 'log-target', 'log_target', 'mutate-interval', 'mutate_interval', 'net', 'nmap-os', 'nmap_os', 'ports', 'services']
\ No newline at end of file
diff --git a/.hypothesis/constants/84bbb6b2519f3506 b/.hypothesis/constants/84bbb6b2519f3506
new file mode 100644
index 0000000..bd8fff0
--- /dev/null
+++ b/.hypothesis/constants/84bbb6b2519f3506
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/web/api.py
+# hypothesis_version: 6.151.11
+
+[400, 404, 500, 1000, '*', '/api/v1/auth/login', '/api/v1/deckies', '/api/v1/logs', '/api/v1/stats', '/api/v1/stream', '1.0.0', 'Authorization', 'Bearer', 'Bearer ', 'Decky not found', 'No active deployment', 'WWW-Authenticate', 'access_token', 'admin', 'bearer', 'data', 'decnet.web.api', 'id', 'lastEventId', 'limit', 'logs', 'message', 'must_change_password', 'offset', 'password_hash', 'role', 'stats', 'text/event-stream', 'token', 'token_type', 'total', 'type', 'unihost', 'username', 'uuid']
\ No newline at end of file
diff --git a/.hypothesis/constants/bae355075973c2af b/.hypothesis/constants/bae355075973c2af
new file mode 100644
index 0000000..775bdf1
--- /dev/null
+++ b/.hypothesis/constants/bae355075973c2af
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/web/api.py
+# hypothesis_version: 6.151.11
+
+[400, 404, 500, 512, 1000, 1024, '*', '/api/v1/auth/login', '/api/v1/deckies', '/api/v1/logs', '/api/v1/stats', '/api/v1/stream', '1.0.0', 'Authorization', 'Bearer', 'Bearer ', 'Decky not found', 'No active deployment', 'WWW-Authenticate', 'access_token', 'admin', 'bearer', 'data', 'decnet.web.api', 'id', 'lastEventId', 'limit', 'logs', 'message', 'must_change_password', 'offset', 'password_hash', 'role', 'stats', 'text/event-stream', 'token', 'token_type', 'total', 'type', 'unihost', 'username', 'uuid']
\ No newline at end of file
diff --git a/.hypothesis/constants/cbd8a83626f88ea8 b/.hypothesis/constants/cbd8a83626f88ea8
new file mode 100644
index 0000000..7e87974
--- /dev/null
+++ b/.hypothesis/constants/cbd8a83626f88ea8
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/web/sqlite_repository.py
+# hypothesis_version: 6.151.11
+
+['SELECT * FROM logs', 'active_deckies', 'attacker_ip', 'decky', 'decnet.db', 'deployed_deckies', 'event_type', 'fields', 'max_id', 'msg', 'must_change_password', 'password_hash', 'raw_line', 'role', 'service', 'timestamp', 'total', 'total_logs', 'unique_attackers', 'username', 'uuid']
\ No newline at end of file
diff --git a/.hypothesis/constants/dbb3e0fb1231c2a3 b/.hypothesis/constants/dbb3e0fb1231c2a3
new file mode 100644
index 0000000..9583d59
--- /dev/null
+++ b/.hypothesis/constants/dbb3e0fb1231c2a3
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/cli.py
+# hypothesis_version: 6.151.11
+
+[8000, ',', ', ', '--all', '--api', '--api-port', '--archetype', '--config', '--deckies', '--decky', '--distro', '--dry-run', '--emit-syslog', '--host', '--id', '--interface', '--ip-start', '--ipvlan', '--log-file', '--log-target', '--min-deckies', '--mode', '--mutate-interval', '--no-cache', '--output', '--port', '--randomize-distros', '--randomize-services', '--services', '--subnet', '--watch', '--web-port', '-a', '-c', '-d', '-f', '-i', '-m', '-n', '-o', '-w', '/index.html', '0.0.0.0', 'Available Services', 'Default Services', 'Description', 'Display Name', 'Docker Image', 'Image', 'Machine Archetypes', 'Name', 'Ports', 'Slug', 'archetypes', 'bold cyan', 'correlate', 'decnet', 'decnet.cli', 'decnet.log', 'decnet.web.api:app', 'decnet_web', 'dim', 'dist', 'distros', 'green', 'json', 'linux', 'mutate', 'services', 'swarm', 'syslog', 'table', 'unihost', 'uvicorn', 'web']
\ No newline at end of file
diff --git a/.hypothesis/constants/e6075ef770e33fe2 b/.hypothesis/constants/e6075ef770e33fe2
new file mode 100644
index 0000000..775bdf1
--- /dev/null
+++ b/.hypothesis/constants/e6075ef770e33fe2
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/web/api.py
+# hypothesis_version: 6.151.11
+
+[400, 404, 500, 512, 1000, 1024, '*', '/api/v1/auth/login', '/api/v1/deckies', '/api/v1/logs', '/api/v1/stats', '/api/v1/stream', '1.0.0', 'Authorization', 'Bearer', 'Bearer ', 'Decky not found', 'No active deployment', 'WWW-Authenticate', 'access_token', 'admin', 'bearer', 'data', 'decnet.web.api', 'id', 'lastEventId', 'limit', 'logs', 'message', 'must_change_password', 'offset', 'password_hash', 'role', 'stats', 'text/event-stream', 'token', 'token_type', 'total', 'type', 'unihost', 'username', 'uuid']
\ No newline at end of file
diff --git a/.hypothesis/constants/e9250999acae5d85 b/.hypothesis/constants/e9250999acae5d85
new file mode 100644
index 0000000..9f524f1
--- /dev/null
+++ b/.hypothesis/constants/e9250999acae5d85
@@ -0,0 +1,4 @@
+# file: /home/anti/Tools/DECNET/decnet/cli.py
+# hypothesis_version: 6.151.11
+
+[5173, 8000, ',', ', ', '--all', '--api', '--api-port', '--archetype', '--config', '--deckies', '--decky', '--distro', '--dry-run', '--emit-syslog', '--host', '--id', '--interface', '--ip-start', '--ipvlan', '--log-file', '--log-target', '--min-deckies', '--mode', '--mutate-interval', '--no-cache', '--output', '--port', '--randomize-distros', '--randomize-services', '--services', '--subnet', '--watch', '--web-port', '-a', '-c', '-d', '-f', '-i', '-m', '-n', '-o', '-w', '/index.html', '0.0.0.0', 'Available Services', 'Default Services', 'Description', 'Display Name', 'Docker Image', 'Image', 'Machine Archetypes', 'Name', 'Ports', 'Slug', 'archetypes', 'bold cyan', 'correlate', 'decnet', 'decnet.cli', 'decnet.log', 'decnet.web.api:app', 'decnet_web', 'dim', 'dist', 'distros', 'green', 'json', 'linux', 'mutate', 'services', 'swarm', 'syslog', 'table', 'unihost', 'uvicorn', 'web']
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/0575996a80e05285 b/.hypothesis/examples/ecc7e8764d8d8b88/0575996a80e05285
deleted file mode 100644
index 9ad1e3a..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/0575996a80e05285
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ûﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/05b107d6a0bba012 b/.hypothesis/examples/ecc7e8764d8d8b88/05b107d6a0bba012
deleted file mode 100644
index 27864e0..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/05b107d6a0bba012
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ୠ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/0846c0a67e2fa342 b/.hypothesis/examples/ecc7e8764d8d8b88/0846c0a67e2fa342
deleted file mode 100644
index 154ffcb..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/0846c0a67e2fa342
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ𥕻
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/15e20de56fba3fec b/.hypothesis/examples/ecc7e8764d8d8b88/15e20de56fba3fec
deleted file mode 100644
index 565fafb..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/15e20de56fba3fec
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ôÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/1997fccd48132354 b/.hypothesis/examples/ecc7e8764d8d8b88/1997fccd48132354
deleted file mode 100644
index f0efb7b..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/1997fccd48132354
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000 £ÃÙÛäôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/19f423ffce230999 b/.hypothesis/examples/ecc7e8764d8d8b88/19f423ffce230999
deleted file mode 100644
index 450eac7..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/19f423ffce230999
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000òúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/19f62e888bc7d450 b/.hypothesis/examples/ecc7e8764d8d8b88/19f62e888bc7d450
deleted file mode 100644
index beac5aa..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/19f62e888bc7d450
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ÙÛäôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/1d44b73102dd8c98 b/.hypothesis/examples/ecc7e8764d8d8b88/1d44b73102dd8c98
deleted file mode 100644
index 91ef48b..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/1d44b73102dd8c98
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000 £ÃÙÛäôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/2a7437fadafc45ce b/.hypothesis/examples/ecc7e8764d8d8b88/2a7437fadafc45ce
deleted file mode 100644
index 7fc6f46..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/2a7437fadafc45ce
+++ /dev/null
@@ -1 +0,0 @@
-I000000000i £ÃÙÛäôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/36ed65683e3a3efd b/.hypothesis/examples/ecc7e8764d8d8b88/36ed65683e3a3efd
deleted file mode 100644
index d4e7d86..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/36ed65683e3a3efd
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ𐀀𐀀𒆌
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/37f8a6c9a01c54f1 b/.hypothesis/examples/ecc7e8764d8d8b88/37f8a6c9a01c54f1
deleted file mode 100644
index 29170ff..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/37f8a6c9a01c54f1
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ𐀀𐀀𒆄
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/39da675e7d50741a b/.hypothesis/examples/ecc7e8764d8d8b88/39da675e7d50741a
deleted file mode 100644
index 6aac79c..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/39da675e7d50741a
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/3b04ee6988d4b46f b/.hypothesis/examples/ecc7e8764d8d8b88/3b04ee6988d4b46f
deleted file mode 100644
index 3232e79..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/3b04ee6988d4b46f
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ𐀀𐀀𑲎
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/3b1a7cdbf68230dc b/.hypothesis/examples/ecc7e8764d8d8b88/3b1a7cdbf68230dc
deleted file mode 100644
index 8959882..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/3b1a7cdbf68230dc
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ðúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/431ed9f80364a313 b/.hypothesis/examples/ecc7e8764d8d8b88/431ed9f80364a313
deleted file mode 100644
index ec71b3e..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/431ed9f80364a313
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000½ÙÛäôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/48f15e048f30c735 b/.hypothesis/examples/ecc7e8764d8d8b88/48f15e048f30c735
deleted file mode 100644
index 4b8b8d4..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/48f15e048f30c735
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ÃÙÛäôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/510d2cf15e561bac b/.hypothesis/examples/ecc7e8764d8d8b88/510d2cf15e561bac
deleted file mode 100644
index ac51097..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/510d2cf15e561bac
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ÕÛäôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/5854c771f9166bfa b/.hypothesis/examples/ecc7e8764d8d8b88/5854c771f9166bfa
deleted file mode 100644
index 006296d..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/5854c771f9166bfa
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000Ûäôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/59485746ee4866ef b/.hypothesis/examples/ecc7e8764d8d8b88/59485746ee4866ef
deleted file mode 100644
index 4183fa2..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/59485746ee4866ef
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ𐀀𐀀𐀀𐙿
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/6175cae069b6b104 b/.hypothesis/examples/ecc7e8764d8d8b88/6175cae069b6b104
deleted file mode 100644
index 6490ddb..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/6175cae069b6b104
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000 £ÃÙÛäôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/651a4843d51dcfa1 b/.hypothesis/examples/ecc7e8764d8d8b88/651a4843d51dcfa1
deleted file mode 100644
index be64950..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/651a4843d51dcfa1
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ𐀀𐀀𐀞
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/77d767d4803a5a08 b/.hypothesis/examples/ecc7e8764d8d8b88/77d767d4803a5a08
deleted file mode 100644
index 6c20044..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/77d767d4803a5a08
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/8f0ddcfa634ad488 b/.hypothesis/examples/ecc7e8764d8d8b88/8f0ddcfa634ad488
deleted file mode 100644
index 3d12897..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/8f0ddcfa634ad488
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ𐀀𐀀𐀀𐀀𐀉
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/8fbf43963f34dcb1 b/.hypothesis/examples/ecc7e8764d8d8b88/8fbf43963f34dcb1
deleted file mode 100644
index 6c5855f..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/8fbf43963f34dcb1
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000÷ﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/94ea48606f394621 b/.hypothesis/examples/ecc7e8764d8d8b88/94ea48606f394621
deleted file mode 100644
index 5998366..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/94ea48606f394621
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ𐀭
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/aac4432fea72bbeb b/.hypothesis/examples/ecc7e8764d8d8b88/aac4432fea72bbeb
deleted file mode 100644
index eac2455..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/aac4432fea72bbeb
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ𐀀𐀀𐀀𐀀𐑇
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/af08050831086ce7 b/.hypothesis/examples/ecc7e8764d8d8b88/af08050831086ce7
deleted file mode 100644
index 872edb7..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/af08050831086ce7
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ùþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/b53b2ea17bf8e9e7 b/.hypothesis/examples/ecc7e8764d8d8b88/b53b2ea17bf8e9e7
deleted file mode 100644
index d383e10..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/b53b2ea17bf8e9e7
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/bba3269ddda3d3cb b/.hypothesis/examples/ecc7e8764d8d8b88/bba3269ddda3d3cb
deleted file mode 100644
index c9e4211..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/bba3269ddda3d3cb
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ𐀀𐀀𐀀𐀀𐀅
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/bce5c48547379b69 b/.hypothesis/examples/ecc7e8764d8d8b88/bce5c48547379b69
deleted file mode 100644
index 2211866..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/bce5c48547379b69
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000®ÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/becbc776c3f638e6 b/.hypothesis/examples/ecc7e8764d8d8b88/becbc776c3f638e6
deleted file mode 100644
index 7b2a7b6..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/becbc776c3f638e6
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000¯ﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/c04299f7af42a0e4 b/.hypothesis/examples/ecc7e8764d8d8b88/c04299f7af42a0e4
deleted file mode 100644
index 0a9d6bb..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/c04299f7af42a0e4
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ𐀀𐏕
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/c0bc38404d4ce421 b/.hypothesis/examples/ecc7e8764d8d8b88/c0bc38404d4ce421
deleted file mode 100644
index c6a3100..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/c0bc38404d4ce421
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000õ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/c218906a54bba0d1 b/.hypothesis/examples/ecc7e8764d8d8b88/c218906a54bba0d1
deleted file mode 100644
index 488c6cc..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/c218906a54bba0d1
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000õ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/c417736446764939 b/.hypothesis/examples/ecc7e8764d8d8b88/c417736446764939
deleted file mode 100644
index cdaddda..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/c417736446764939
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000×äôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/d06efb89f32aacbb b/.hypothesis/examples/ecc7e8764d8d8b88/d06efb89f32aacbb
deleted file mode 100644
index d62bdc3..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/d06efb89f32aacbb
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000 £ÃÙÛäôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/d47f5466101799ef b/.hypothesis/examples/ecc7e8764d8d8b88/d47f5466101799ef
deleted file mode 100644
index f15ce12..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/d47f5466101799ef
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/d80586ecdeb84e25 b/.hypothesis/examples/ecc7e8764d8d8b88/d80586ecdeb84e25
deleted file mode 100644
index e51b8cb..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/d80586ecdeb84e25
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000±Ûäôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/de7c1669ce5d6c22 b/.hypothesis/examples/ecc7e8764d8d8b88/de7c1669ce5d6c22
deleted file mode 100644
index b5d18ef..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/de7c1669ce5d6c22
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ÃÙÛäôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/e05a764e49ba2780 b/.hypothesis/examples/ecc7e8764d8d8b88/e05a764e49ba2780
deleted file mode 100644
index 2c0f284..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/e05a764e49ba2780
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ𐀀𐀀𐀀
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/e2fdf4a908828683 b/.hypothesis/examples/ecc7e8764d8d8b88/e2fdf4a908828683
deleted file mode 100644
index 8b51129..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/e2fdf4a908828683
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ𐀀𐀀𐀀
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/f03c12d6c855da70 b/.hypothesis/examples/ecc7e8764d8d8b88/f03c12d6c855da70
deleted file mode 100644
index a686aed..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/f03c12d6c855da70
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/f735ef6a9da615b7 b/.hypothesis/examples/ecc7e8764d8d8b88/f735ef6a9da615b7
deleted file mode 100644
index 56fb5af..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/f735ef6a9da615b7
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ôõ÷øúýþÿﻩ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/fab69520c19dbec6 b/.hypothesis/examples/ecc7e8764d8d8b88/fab69520c19dbec6
deleted file mode 100644
index 49a99bf..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/fab69520c19dbec6
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ࠀ
\ No newline at end of file
diff --git a/.hypothesis/examples/ecc7e8764d8d8b88/fd5f59ae70b5c817 b/.hypothesis/examples/ecc7e8764d8d8b88/fd5f59ae70b5c817
deleted file mode 100644
index 3d96f73..0000000
--- a/.hypothesis/examples/ecc7e8764d8d8b88/fd5f59ae70b5c817
+++ /dev/null
@@ -1 +0,0 @@
-I0000000000ýﻩ
\ No newline at end of file
diff --git a/.hypothesis/unicode_data/16.0.0/codec-utf-8.json.gz b/.hypothesis/unicode_data/16.0.0/codec-utf-8.json.gz
index 642f0df..5027f34 100644
Binary files a/.hypothesis/unicode_data/16.0.0/codec-utf-8.json.gz and b/.hypothesis/unicode_data/16.0.0/codec-utf-8.json.gz differ
diff --git a/.test-deck.ini.swp b/.test-deck.ini.swp
deleted file mode 100644
index ba91eb9..0000000
Binary files a/.test-deck.ini.swp and /dev/null differ
diff --git a/README.md b/README.md
index 3ea2440..ad47cc5 100644
--- a/README.md
+++ b/README.md
@@ -490,6 +490,30 @@ See [`test-full.ini`](test-full.ini) — covers all 25 services across 10 role-t
---
+## Environment Configuration (.env)
+
+DECNET supports loading configuration from `.env.local` and `.env` files located in the project root. This is useful for securing secrets like the JWT key and configuring default ports without passing flags every time.
+
+An example `.env.example` is provided:
+
+```ini
+# API Options
+DECNET_API_HOST=0.0.0.0
+DECNET_API_PORT=8000
+DECNET_JWT_SECRET=supersecretkey12345
+DECNET_INGEST_LOG_FILE=/var/log/decnet/decnet.log
+
+# Web Dashboard Options
+DECNET_WEB_HOST=0.0.0.0
+DECNET_WEB_PORT=8080
+DECNET_ADMIN_USER=admin
+DECNET_ADMIN_PASSWORD=admin
+```
+
+Copy `.env.example` to `.env.local` and modify it to suit your environment.
+
+---
+
## Logging
All attacker interactions are forwarded off the decoy network to an isolated logging sink. The log pipeline lives on a separate internal Docker bridge (`decnet_logs`) that is not reachable from the fake LAN.
diff --git a/decnet.db b/decnet.db
index 880a9aa..0944b8e 100644
Binary files a/decnet.db and b/decnet.db differ
diff --git a/decnet.log b/decnet.log
index cffe3ec..870ebf2 100644
--- a/decnet.log
+++ b/decnet.log
@@ -361,3 +361,446 @@
<134>1 2026-04-08T03:29:47.490394+00:00 decky-webmail pop3 - startup - POP3 server starting as decky-webmail
<134>1 2026-04-08T03:29:47.642795+00:00 decky-webmail imap - startup - IMAP server starting as decky-webmail
<134>1 2026-04-08T03:29:47.694889+00:00 decky-webmail http - startup - HTTP server starting as decky-webmail
+<134>1 2026-04-08T04:18:50.195876+00:00 decky-webmail http - startup - HTTP server starting as decky-webmail
+<134>1 2026-04-08T04:18:50.250767+00:00 decky-webmail imap - startup - IMAP server starting as decky-webmail
+<134>1 2026-04-08T04:18:50.349723+00:00 decky-webmail pop3 - startup - POP3 server starting as decky-webmail
+<134>1 2026-04-08T04:18:50.507767+00:00 decky-webmail smtp - startup - SMTP server starting as decky-webmail
+<134>1 2026-04-08T04:19:42.933390+00:00 decky-webmail snmp - startup - SNMP server starting as decky-webmail
+<134>1 2026-04-08T04:19:43.015625+00:00 decky-webmail rdp - startup - RDP server starting as decky-webmail on port 3389
+<134>1 2026-04-08T04:21:14.872728+00:00 decky-webmail vnc - startup - VNC server starting as decky-webmail
+<134>1 2026-04-08T04:21:14.922524+00:00 decky-webmail mysql - startup - MySQL server starting as decky-webmail
+<134>1 2026-04-08T04:21:30.999239+00:00 decky-webmail tftp - startup - TFTP server starting as decky-webmail
+<134>1 2026-04-08T04:21:31.045857+00:00 decky-webmail snmp - startup - SNMP server starting as decky-webmail
+<134>1 2026-04-08T04:31:57.249873+00:00 decky-webmail imap - startup - IMAP server starting as decky-webmail
+<134>1 2026-04-08T04:31:57.429939+00:00 decky-webmail pop3 - startup - POP3 server starting as decky-webmail
+<134>1 2026-04-08T04:31:57.529212+00:00 decky-webmail smtp - startup - SMTP server starting as decky-webmail
+<134>1 2026-04-08T04:31:57.630505+00:00 decky-webmail http - startup - HTTP server starting as decky-webmail
+<134>1 2026-04-08T04:32:28.201534+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="46314"]
+<134>1 2026-04-08T04:32:28.201533+00:00 decky-webmail imap - connect [decnet@55555 src="192.168.1.5" src_port="58706"]
+<134>1 2026-04-08T04:32:28.201533+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="52752"]
+<134>1 2026-04-08T04:32:28.204354+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:34.208463+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="GET / HTTP/1.0"]
+<134>1 2026-04-08T04:32:34.208463+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd=""]
+<134>1 2026-04-08T04:32:34.208779+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd=""]
+<134>1 2026-04-08T04:32:34.208799+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/" remote_addr="192.168.1.5" headers="{}" body=""]
+<134>1 2026-04-08T04:32:39.213936+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:39.214047+00:00 decky-webmail imap - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:39.214360+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="49084"]
+<134>1 2026-04-08T04:32:39.214382+00:00 decky-webmail imap - connect [decnet@55555 src="192.168.1.5" src_port="46786"]
+<134>1 2026-04-08T04:32:39.214547+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="OPTIONS / HTTP/1.0"]
+<134>1 2026-04-08T04:32:39.214632+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd=""]
+<134>1 2026-04-08T04:32:44.216934+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:44.216934+00:00 decky-webmail imap - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.500361+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="49086"]
+<134>1 2026-04-08T04:32:45.502004+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="39446"]
+<134>1 2026-04-08T04:32:45.502741+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="49096"]
+<134>1 2026-04-08T04:32:45.502819+00:00 decky-webmail imap - connect [decnet@55555 src="192.168.1.5" src_port="46800"]
+<134>1 2026-04-08T04:32:45.503064+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="49100"]
+<134>1 2026-04-08T04:32:45.505187+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="39462"]
+<134>1 2026-04-08T04:32:45.506648+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.506887+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/" remote_addr="192.168.1.5" headers="{'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.507420+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/nmaplowercheck1775622765" remote_addr="192.168.1.5" headers="{'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.509431+00:00 decky-webmail smtp - ehlo [decnet@55555 src="192.168.1.5" domain="nmap.scanme.org"]
+<134>1 2026-04-08T04:32:45.509415+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="STLS"]
+<134>1 2026-04-08T04:32:45.509673+00:00 decky-webmail smtp - ehlo [decnet@55555 src="192.168.1.5" domain="nmap.scanme.org"]
+<134>1 2026-04-08T04:32:45.509692+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="STLS"]
+<134>1 2026-04-08T04:32:45.507695+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.508029+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/.git/HEAD" remote_addr="192.168.1.5" headers="{'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.508303+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/robots.txt" remote_addr="192.168.1.5" headers="{'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.508606+00:00 decky-webmail http - request [decnet@55555 method="POST" path="/" remote_addr="192.168.1.5" headers="{'Content-Length': '88', 'Connection': 'close', 'Content-Type': 'application/x-www-form-urlencoded', 'Host': '192.168.1.110', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=" system.listMethods "]
+<134>1 2026-04-08T04:32:45.507559+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/" remote_addr="192.168.1.5" headers="{}" body=""]
+<134>1 2026-04-08T04:32:45.508180+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Origin': 'example.com', 'Connection': 'close', 'Access-Control-Request-Method': 'HEAD', 'Host': '192.168.1.110', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""]
+<134>1 2026-04-08T04:32:45.507206+00:00 decky-webmail http - request [decnet@55555 method="PROPFIND" path="/" remote_addr="192.168.1.5" headers="{'Depth': '0', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.507859+00:00 decky-webmail http - request [decnet@55555 method="POST" path="/sdk" remote_addr="192.168.1.5" headers="{'Content-Length': '441', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body="00000001-00000001<_this xsi:type=\"ManagedObjectReference\" type=\"ServiceInstance\">ServiceInstance"]
+<134>1 2026-04-08T04:32:45.508429+00:00 decky-webmail http - request [decnet@55555 method="PROPFIND" path="/" remote_addr="192.168.1.5" headers="{'Depth': '0', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.512673+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.512833+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="AUTH NTLM"]
+<134>1 2026-04-08T04:32:45.512718+00:00 decky-webmail imap - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.512839+00:00 decky-webmail smtp - unknown_command [decnet@55555 src="192.168.1.5" command="HELP"]
+<134>1 2026-04-08T04:32:45.512946+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.512953+00:00 decky-webmail http - request [decnet@55555 method="PROPFIND" path="/" remote_addr="192.168.1.5" headers="{'Content-Length': '0', 'Connection': 'close', 'Depth': '1', 'Host': '192.168.1.110', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""]
+<134>1 2026-04-08T04:32:45.513069+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="39468"]
+<134>1 2026-04-08T04:32:45.513162+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/NmapUpperCheck1775622765" remote_addr="192.168.1.5" headers="{'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.513355+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Origin': 'example.com', 'Connection': 'close', 'Access-Control-Request-Method': 'GET', 'Host': '192.168.1.110', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""]
+<134>1 2026-04-08T04:32:45.513603+00:00 decky-webmail http - request [decnet@55555 method="AOGT" path="/" remote_addr="192.168.1.5" headers="{'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.514852+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="TlRMTVNTUAABAAAAB4IIoAAAAAAAAAAAAAAAAAAAAAA="]
+<134>1 2026-04-08T04:32:45.514886+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.515015+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.514996+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/" remote_addr="192.168.1.5" headers="{'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.516930+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="39484"]
+<134>1 2026-04-08T04:32:45.517101+00:00 decky-webmail smtp - ehlo [decnet@55555 src="192.168.1.5" domain="nmap.scanme.org"]
+<134>1 2026-04-08T04:32:45.517216+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.517249+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Origin': 'example.com', 'Connection': 'close', 'Access-Control-Request-Method': 'POST', 'Host': '192.168.1.110', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""]
+<134>1 2026-04-08T04:32:45.517429+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/Nmap/folder/check1775622765" remote_addr="192.168.1.5" headers="{'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.517595+00:00 decky-webmail http - request [decnet@55555 method="POST" path="/" remote_addr="192.168.1.5" headers="{'Content-Length': '0', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.518030+00:00 decky-webmail smtp - ehlo [decnet@55555 src="192.168.1.5" domain="nmap.scanme.org"]
+<134>1 2026-04-08T04:32:45.518736+00:00 decky-webmail smtp - auth_attempt [decnet@55555 src="192.168.1.5" command="AUTH NTLM"]
+<134>1 2026-04-08T04:32:45.518832+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.518681+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Origin': 'example.com', 'Connection': 'close', 'Access-Control-Request-Method': 'PUT', 'Host': '192.168.1.110', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""]
+<134>1 2026-04-08T04:32:45.518908+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.518882+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/favicon.ico" remote_addr="192.168.1.5" headers="{'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Host': '192.168.1.110', 'Connection': 'close'}" body=""]
+<134>1 2026-04-08T04:32:45.522434+00:00 decky-webmail imap - connect [decnet@55555 src="192.168.1.5" src_port="46808"]
+<134>1 2026-04-08T04:32:45.522593+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Origin': 'example.com', 'Connection': 'close', 'Access-Control-Request-Method': 'DELETE', 'Host': '192.168.1.110', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""]
+<134>1 2026-04-08T04:32:45.523103+00:00 decky-webmail imap - connect [decnet@55555 src="192.168.1.5" src_port="46824"]
+<134>1 2026-04-08T04:32:45.523193+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Origin': 'example.com', 'Connection': 'close', 'Access-Control-Request-Method': 'TRACE', 'Host': '192.168.1.110', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""]
+<134>1 2026-04-08T04:32:45.526709+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="000b AUTHENTICATE NTLM"]
+<134>1 2026-04-08T04:32:45.526838+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Origin': 'example.com', 'Connection': 'close', 'Access-Control-Request-Method': 'OPTIONS', 'Host': '192.168.1.110', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""]
+<134>1 2026-04-08T04:32:45.527952+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="TlRMTVNTUAABAAAAB4IIoAAAAAAAAAAAAAAAAAAAAAA="]
+<134>1 2026-04-08T04:32:45.528983+00:00 decky-webmail imap - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.529094+00:00 decky-webmail imap - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.529093+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Origin': 'example.com', 'Connection': 'close', 'Access-Control-Request-Method': 'CONNECT', 'Host': '192.168.1.110', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""]
+<134>1 2026-04-08T04:32:45.532765+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Origin': 'example.com', 'Connection': 'close', 'Access-Control-Request-Method': 'PATCH', 'Host': '192.168.1.110', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""]
+<134>1 2026-04-08T04:32:45.544239+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="39490"]
+<134>1 2026-04-08T04:32:45.544576+00:00 decky-webmail smtp - ehlo [decnet@55555 src="192.168.1.5" domain="nmap.scanme.org"]
+<134>1 2026-04-08T04:32:45.544692+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/" remote_addr="192.168.1.5" headers="{}" body=""]
+<134>1 2026-04-08T04:32:45.545200+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110'}" body=""]
+<134>1 2026-04-08T04:32:45.545544+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.545703+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="39494"]
+<134>1 2026-04-08T04:32:45.545844+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="39496"]
+<134>1 2026-04-08T04:32:45.545941+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.546026+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.546115+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="49108"]
+<134>1 2026-04-08T04:32:45.546344+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="STLS"]
+<134>1 2026-04-08T04:32:45.546453+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"]
+<134>1 2026-04-08T04:32:45.546550+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="49124"]
+<134>1 2026-04-08T04:32:45.546634+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="( $m|0�Z�bR���"]
+<134>1 2026-04-08T04:32:45.546720+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="T�"]
+<134>1 2026-04-08T04:32:45.546774+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="�l�S��Z}:�� y��^���ҡ�b
k}c��t+m)G_�s�1;�> r 3 9 5 /�,�0 �̨̩̪�����\]�a�S�+�/ ������\\�`�R�$�( k�s�w ��#�' g�r�v ��"]
+<134>1 2026-04-08T04:32:45.546841+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="� �� � E ����Q ����P = � <