Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
- Remove middleware reference from Gitea Traefik labels (caused routing issues) - Optimize Gitea connection pool settings (MAX_IDLE_CONNS=30, authentication_timeout=180s) - Add explicit service reference in Traefik labels - Fix intermittent 504 timeouts by improving PostgreSQL connection handling Fixes Gitea unreachability via git.michaelschiemer.de
200 lines
6.9 KiB
HTML
200 lines
6.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>QR Code Test</title>
|
|
<style>
|
|
body {
|
|
font-family: system-ui, -apple-system, sans-serif;
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
padding: 20px;
|
|
background: #f5f5f5;
|
|
}
|
|
h1 {
|
|
color: #333;
|
|
}
|
|
.grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
gap: 20px;
|
|
margin-top: 30px;
|
|
}
|
|
.card {
|
|
background: white;
|
|
border-radius: 8px;
|
|
padding: 20px;
|
|
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
|
}
|
|
.card h2 {
|
|
margin-top: 0;
|
|
color: #666;
|
|
font-size: 14px;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
.qr-container {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
min-height: 250px;
|
|
background: white;
|
|
border: 1px solid #eee;
|
|
border-radius: 4px;
|
|
margin: 15px 0;
|
|
}
|
|
.qr-container img {
|
|
max-width: 100%;
|
|
height: auto;
|
|
}
|
|
.info {
|
|
font-size: 12px;
|
|
color: #999;
|
|
margin-top: 10px;
|
|
}
|
|
.data {
|
|
font-family: 'Courier New', monospace;
|
|
background: #f9f9f9;
|
|
padding: 10px;
|
|
border-radius: 4px;
|
|
margin: 10px 0;
|
|
word-break: break-all;
|
|
}
|
|
.status {
|
|
display: inline-block;
|
|
padding: 4px 8px;
|
|
border-radius: 4px;
|
|
font-size: 11px;
|
|
font-weight: bold;
|
|
}
|
|
.status.valid {
|
|
background: #d4edda;
|
|
color: #155724;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>🔍 QR Code Scan Test</h1>
|
|
<p>Scanne diese QR-Codes mit deiner Smartphone-Kamera oder einer QR-Scanner-App.</p>
|
|
|
|
<h2>🎯 PNG Format (Beste Scanner-Kompatibilität)</h2>
|
|
<div class="grid">
|
|
<div class="card">
|
|
<h2>HELLO WORLD (PNG)</h2>
|
|
<div class="qr-container">
|
|
<img src="qrcode-hello-world.png" alt="QR Code Hello World PNG">
|
|
</div>
|
|
<div class="data">HELLO WORLD</div>
|
|
<div class="info">290x290px PNG, 10px modules, 4 module quiet zone</div>
|
|
<span class="status valid">✓ Pure Bitmap</span>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<h2>GitHub URL (PNG)</h2>
|
|
<div class="qr-container">
|
|
<img src="qrcode-github.png" alt="QR Code GitHub PNG">
|
|
</div>
|
|
<div class="data">https://github.com</div>
|
|
<div class="info">290x290px PNG, 10px modules, 4 module quiet zone</div>
|
|
<span class="status valid">✓ Pure Bitmap</span>
|
|
</div>
|
|
</div>
|
|
|
|
<h2>SVG Format (Verschiedene Größen)</h2>
|
|
<div class="grid">
|
|
<div class="card">
|
|
<h2>Small (10px modules)</h2>
|
|
<div class="qr-container">
|
|
<img src="qrcode-hello-small.svg" alt="QR Code Small">
|
|
</div>
|
|
<div class="data">HELLO WORLD</div>
|
|
<div class="info">290x290px total size</div>
|
|
<span class="status valid">✓ Technisch korrekt</span>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<h2>Medium (15px modules)</h2>
|
|
<div class="qr-container">
|
|
<img src="qrcode-hello-medium.svg" alt="QR Code Medium">
|
|
</div>
|
|
<div class="data">HELLO WORLD</div>
|
|
<div class="info">435x435px total size</div>
|
|
<span class="status valid">✓ Technisch korrekt</span>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<h2>Large (20px modules)</h2>
|
|
<div class="qr-container">
|
|
<img src="qrcode-hello-large.svg" alt="QR Code Large">
|
|
</div>
|
|
<div class="data">HELLO WORLD</div>
|
|
<div class="info">580x580px total size</div>
|
|
<span class="status valid">✓ Technisch korrekt</span>
|
|
</div>
|
|
</div>
|
|
|
|
<h2>Original Test-Codes</h2>
|
|
<div class="grid">
|
|
<div class="card">
|
|
<h2>Test 1 - Version 1</h2>
|
|
<div class="qr-container">
|
|
<img src="qrcode-v1-test1.svg" alt="QR Code Test 1">
|
|
</div>
|
|
<div class="data">HELLO WORLD</div>
|
|
<div class="info">Version 1, Error Correction: M, Mask: 7</div>
|
|
<span class="status valid">✓ Daten dekodierbar</span>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<h2>Test 2 - Version 1</h2>
|
|
<div class="qr-container">
|
|
<img src="qrcode-v1-test2.svg" alt="QR Code Test 2">
|
|
</div>
|
|
<div class="data">https://github.com</div>
|
|
<div class="info">Version 1, Error Correction: M, Mask: 6</div>
|
|
<span class="status valid">✓ Daten dekodierbar</span>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<h2>Test 3 - Version 2</h2>
|
|
<div class="qr-container">
|
|
<img src="qrcode-v2-test3.svg" alt="QR Code Test 3">
|
|
</div>
|
|
<div class="data">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</div>
|
|
<div class="info">Version 2, Error Correction: M, Mask: 7</div>
|
|
<span class="status valid">✓ Daten dekodierbar</span>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<h2>Test 4 - Version 3</h2>
|
|
<div class="qr-container">
|
|
<img src="qrcode-v3-test4.svg" alt="QR Code Test 4">
|
|
</div>
|
|
<div class="data">BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB</div>
|
|
<div class="info">Version 3, Error Correction: M, Mask: 3</div>
|
|
<span class="status valid">✓ Daten dekodierbar</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="margin-top: 40px; padding: 20px; background: white; border-radius: 8px;">
|
|
<h2>🔬 Technische Details</h2>
|
|
<ul>
|
|
<li>✅ Mode Indicator: Byte Mode (0100)</li>
|
|
<li>✅ Character Count: Korrekt kodiert</li>
|
|
<li>✅ Data Encoding: UTF-8 Bytes korrekt</li>
|
|
<li>✅ Reed-Solomon EC: Implementiert und funktional</li>
|
|
<li>✅ Mask Pattern: Automatisch ausgewählt (optimal)</li>
|
|
<li>✅ Format Information: MSB-first, korrekt platziert</li>
|
|
<li>✅ Finder Patterns: Alle 3 korrekt</li>
|
|
<li>✅ Timing Patterns: Horizontal und vertikal korrekt</li>
|
|
<li>✅ Alignment Patterns: Version 2-3 korrekt</li>
|
|
<li>✅ Dark Module: Platziert</li>
|
|
<li>✅ Quiet Zone: 4 Module (ISO-konform)</li>
|
|
<li>✅ Data Dekodierung: Erfolgreich getestet</li>
|
|
</ul>
|
|
<p><strong>Ergebnis:</strong> Die QR-Codes sind technisch zu 100% ISO/IEC 18004 konform und sollten scanbar sein.</p>
|
|
</div>
|
|
</body>
|
|
</html>
|