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:
65
tests/debug/test-reed-solomon-ec.php
Normal file
65
tests/debug/test-reed-solomon-ec.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
require_once __DIR__ . '/../../vendor/autoload.php';
|
||||
|
||||
use App\Framework\QrCode\ErrorCorrection\ReedSolomonEncoder;
|
||||
use App\Framework\QrCode\QrCodeGenerator;
|
||||
use App\Framework\QrCode\ValueObjects\ErrorCorrectionLevel;
|
||||
use App\Framework\QrCode\ValueObjects\QrCodeConfig;
|
||||
use App\Framework\QrCode\ValueObjects\QrCodeVersion;
|
||||
use App\Framework\QrCode\ValueObjects\EncodingMode;
|
||||
|
||||
echo "=== Reed-Solomon Error Correction Test ===\n\n";
|
||||
|
||||
// Test with known data
|
||||
$testData = 'HELLO WORLD';
|
||||
$config = new QrCodeConfig(
|
||||
version: QrCodeVersion::fromNumber(1),
|
||||
errorCorrectionLevel: ErrorCorrectionLevel::M,
|
||||
encodingMode: EncodingMode::BYTE
|
||||
);
|
||||
|
||||
// Manually encode data
|
||||
$encoder = new \ReflectionClass(QrCodeGenerator::class);
|
||||
$method = $encoder->getMethod('encodeData');
|
||||
$method->setAccessible(true);
|
||||
|
||||
$tempGenerator = new QrCodeGenerator(new \App\Framework\QrCode\QrCodeRenderer());
|
||||
$dataCodewords = $method->invoke($tempGenerator, $testData, $config);
|
||||
|
||||
echo "Data codewords: " . count($dataCodewords) . "\n";
|
||||
echo "First 5 data codewords: " . implode(', ', array_slice($dataCodewords, 0, 5)) . "\n\n";
|
||||
|
||||
// Generate EC codewords
|
||||
$reedSolomon = new ReedSolomonEncoder();
|
||||
$ecInfo = ReedSolomonEncoder::getECInfo(1, 'M');
|
||||
echo "EC info:\n";
|
||||
echo " Data codewords: {$ecInfo['dataCodewords']}\n";
|
||||
echo " EC codewords: {$ecInfo['ecCodewords']}\n\n";
|
||||
|
||||
$ecCodewords = $reedSolomon->encode($dataCodewords, $ecInfo['ecCodewords']);
|
||||
|
||||
echo "EC codewords: " . count($ecCodewords) . "\n";
|
||||
echo "First 5 EC codewords: " . implode(', ', array_slice($ecCodewords, 0, 5)) . "\n\n";
|
||||
|
||||
// Expected for Version 1, Level M:
|
||||
// Data: 16 codewords
|
||||
// EC: 10 codewords
|
||||
// Total: 26 codewords
|
||||
|
||||
$allCodewords = array_merge($dataCodewords, $ecCodewords);
|
||||
echo "Total codewords: " . count($allCodewords) . " (expected: 26)\n";
|
||||
|
||||
if (count($allCodewords) === 26) {
|
||||
echo "✅ Codeword count is correct\n";
|
||||
} else {
|
||||
echo "❌ Codeword count is wrong!\n";
|
||||
}
|
||||
|
||||
// Verify known values for "HELLO WORLD" (if available)
|
||||
echo "\n=== Codeword Verification ===\n";
|
||||
echo "Note: This is a basic check. Full verification requires reference implementation.\n";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user