refactor(deployment): Remove WireGuard VPN dependency and restore public service access
Remove WireGuard integration from production deployment to simplify infrastructure: - Remove docker-compose-direct-access.yml (VPN-bound services) - Remove VPN-only middlewares from Grafana, Prometheus, Portainer - Remove WireGuard middleware definitions from Traefik - Remove WireGuard IPs (10.8.0.0/24) from Traefik forwarded headers All monitoring services now publicly accessible via subdomains: - grafana.michaelschiemer.de (with Grafana native auth) - prometheus.michaelschiemer.de (with Basic Auth) - portainer.michaelschiemer.de (with Portainer native auth) All services use Let's Encrypt SSL certificates via Traefik.
This commit is contained in:
61
tests/debug/test-rs-final-fix.php
Normal file
61
tests/debug/test-rs-final-fix.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
require_once __DIR__ . '/../../vendor/autoload.php';
|
||||
|
||||
use App\Framework\QrCode\ErrorCorrection\ReedSolomonEncoder;
|
||||
|
||||
echo "=== Final RS Fix Test ===\n\n";
|
||||
|
||||
// The key insight: In QR codes, the polynomial representation might be different
|
||||
// Standard RS: c(x) = c[0] + c[1]*x + c[2]*x^2 + ... + c[n-1]*x^(n-1)
|
||||
// QR code RS: c(x) = c[0]*x^(n-1) + c[1]*x^(n-2) + ... + c[n-1]*x^0 (MSB-first)
|
||||
|
||||
// This means we might need to reverse the codewords for RS encoding/decoding
|
||||
|
||||
$data = [64, 180, 132, 84, 196, 196, 242, 5, 116, 245, 36, 196, 64, 236, 17, 236];
|
||||
$ecCodewords = 10;
|
||||
|
||||
echo "Data codewords: " . implode(', ', $data) . "\n\n";
|
||||
|
||||
// Try encoding with data in reverse order (LSB-first representation)
|
||||
$reversedData = array_reverse($data);
|
||||
echo "Reversed data (for RS encoding): " . implode(', ', $reversedData) . "\n\n";
|
||||
|
||||
$rs = new ReedSolomonEncoder();
|
||||
$ec = $rs->encode($reversedData, $ecCodewords);
|
||||
|
||||
echo "EC codewords (from reversed data): " . implode(', ', $ec) . "\n\n";
|
||||
|
||||
// Reverse EC codewords back
|
||||
$ecReversed = array_reverse($ec);
|
||||
echo "EC codewords (reversed back): " . implode(', ', $ecReversed) . "\n\n";
|
||||
|
||||
// Test with decoder - need to reverse everything
|
||||
require_once __DIR__ . '/test-reed-solomon-decoder.php';
|
||||
|
||||
// For decoder, we also need to reverse
|
||||
$decoder = new SimpleRSDecoder();
|
||||
$fullCodeword = array_merge($data, $ecReversed);
|
||||
$fullReversed = array_reverse($fullCodeword);
|
||||
|
||||
$syndromes = $decoder->calculateSyndromes($fullReversed, $ecCodewords);
|
||||
|
||||
echo "Syndromes (with reversed codeword): " . implode(', ', $syndromes) . "\n";
|
||||
$allZero = true;
|
||||
foreach ($syndromes as $s) {
|
||||
if ($s !== 0) {
|
||||
$allZero = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($allZero) {
|
||||
echo "\n✅ ALL SYNDROMES ARE ZERO!\n";
|
||||
echo "\nThis means we need to reverse codewords for RS encoding!\n";
|
||||
} else {
|
||||
echo "\n❌ Still wrong\n";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user