diff --git a/README.md b/README.md
index a2f8cd3..a41192b 100644
--- a/README.md
+++ b/README.md
@@ -15,25 +15,27 @@ A software distribution platform for assets built and hosted on Gitea. Built wit
- **Throttling**: Tiered download speed limits and global API rate limiting.
- **RSS Feed**: XML feed for tracking new software releases.
- **i18n**: Support for English, German, Italian, and Russian.
+- **Documentation**: Support for documentation for software station and each software project in `.svx` and `.md` files.
## Upcoming
-- S3, SFTP, WebDAV for software assets.
+- Admin panel.
+- Authentication for certain software and containers.
+- Automatic torrent generation and seeding for software assets.
+- CDN support.
+- Container scanning.
- Gitea Packages support (containers, npm, etc.).
-- ISOs support (Linux distributions)
-- Automatic Torrent generation and seeding for software assets.
-- Software dependencies page and licenses information.
-- SBOM and SPDX viewer.
-- CDN support
-- OSV integration for vulnerability scanning.
-- Container scanning
-- Authentication for certain software/containers
-- Admin panel
+- GPG and SBOM client-side verification via WASM.
- Infisical support for secrets management.
-- Sqlite for database
-- Webhook support to force refresh of specific software/containers or add a new software/container.
-- Reticulum Network Stack support
-- GPG, SBOM client-side verification via WASM.
+- ISOs support (Linux distributions).
+- OSV integration for vulnerability scanning.
+- Reticulum Network Stack support.
+- S3, SFTP, and WebDAV support for software assets.
+- SBOM and SPDX viewer.
+- Software dependencies page and license information.
+- Sqlite database support.
+- Webhook support to force refresh or add specific software/containers.
+- Software caching for popular assets.
## Getting Started
diff --git a/frontend/src/lib/components/SoftwareCard.svelte b/frontend/src/lib/components/SoftwareCard.svelte
index 2890161..fed5089 100644
--- a/frontend/src/lib/components/SoftwareCard.svelte
+++ b/frontend/src/lib/components/SoftwareCard.svelte
@@ -21,6 +21,7 @@
Copy,
Check,
Calendar,
+ BookOpen,
} from 'lucide-svelte';
import type { Software, Asset } from '$lib/types';
import VerificationModal from './VerificationModal.svelte';
@@ -94,7 +95,20 @@
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
}
- function getOSIcon(os: string) {
+ function getOSIcon(os: string, assetName?: string) {
+ if (assetName) {
+ const lowerName = assetName.toLowerCase();
+ if (lowerName.endsWith('.whl')) {
+ return 'python';
+ }
+ if (
+ lowerName.endsWith('.zip') ||
+ lowerName.endsWith('.tar.gz') ||
+ lowerName.endsWith('.tgz')
+ ) {
+ return 'zip';
+ }
+ }
switch (os.toLowerCase()) {
case 'macos':
return 'apple';
@@ -216,6 +230,15 @@
/>
{/if}
+ {#if software.has_docs}
+
+
+ Software Station nutzt modernste Browser-Technologie, um sicherzustellen, dass Ihre Downloads zu 100 % authentisch und unverfälscht sind. +
++ Jede Datei hat einen einzigartigen „digitalen Fingerabdruck“ (SHA256). Bevor Sie eine Datei speichern, berechnet unser Verifizierer diesen Fingerabdruck in Ihrem Browser neu, um sicherzustellen, dass er mit der Originalversion des Entwicklers übereinstimmt. +
++ Die Verifizierung erfolgt in einer „Sandbox“ – einem sicheren, isolierten Bereich in Ihrem Browser. Das bedeutet, dass die Datei auf Sicherheit geprüft wird, bevor sie jemals den permanenten Speicher Ihres Computers berührt. +
++ Wir verifizieren die Verbindung zur Quelle mit industrieller Sicherheit (TLS). Dies stellt sicher, dass Sie direkt mit dem echten Repository kommunizieren und nicht mit einem Betrüger. +
++ Jede Veröffentlichung zeigt die tatsächlichen Mitwirkenden aus dem Gitea-Repository. Sie können genau sehen, wer den Code geschrieben hat, den Sie gerade herunterladen möchten. +
+
+ Der Verifizierer ist in **Go** geschrieben und zu **WebAssembly** kompiliert. Durch die Verwendung von WASM anstelle von Standard-JavaScript nutzen wir die crypto/sha256-Implementierung der Go-Standardbibliothek, was hochperformante kryptografische Operationen ermöglicht, die resistent gegen Prototyp-Pollution auf JS-Ebene oder Umgebungsmanipulationen sind.
+
+ Software Station arbeitet nach einem Zero-Trust-Modell in Bezug auf die Antwort des Servers. Der Browser ruft den rohen Binärstream in ein Uint8Array ab. Dieser Puffer wird dann direkt in den WASM-Speicherbereich übergeben. Die Hash-Berechnung erfolgt **clientseitig**, was bedeutet, dass selbst wenn der Server kompromittiert wäre und bösartige Binärdateien ausliefern würde, der Verifizierer die Hash-Abweichung sofort erkennen würde.
+
+ Die Binärdatei wird über einen sicheren TLS-Tunnel von der Quelle (Gitea/S3) gestreamt. +
++ Die WASM-Engine liest den Byte-Stream und berechnet den SHA256-Digest lokal. +
++ Der berechnete Digest wird mit dem kryptografisch signierten Manifest verglichen. +
+
+ Nur bei erfolgreicher Übereinstimmung wird das Blob-Objekt erstellt und der Download ausgelöst.
+
+ Wir arbeiten ständig daran, die Transparenz zu verbessern. Unsere nächsten Meilensteine umfassen: +
++ Software Station utilizza una tecnologia browser all'avanguardia per garantire che i tuoi download siano autentici al 100% e non manomessi. +
++ Ogni file ha un'impronta digitale unica (SHA256). Prima di salvare un file, il nostro verificatore ricalcola quell'impronta all'interno del tuo browser per assicurarsi che corrisponda alla versione originale dello sviluppatore. +
++ La verifica avviene in una "sandbox", un'area sicura e isolata nel tuo browser. Ciò significa che il file viene controllato prima ancora di toccare la memoria permanente del tuo computer. +
++ Verifichiamo la connessione alla sorgente utilizzando una sicurezza di livello industriale (TLS). Questo assicura che tu stia parlando direttamente con il vero repository e non con un impostore. +
++ Ogni rilascio mostra i collaboratori effettivi dal repository Gitea. Puoi vedere esattamente chi ha scritto il codice che stai per scaricare. +
+
+ Il verificatore è scritto in **Go** e compilato in **WebAssembly**. Utilizzando WASM invece del JavaScript standard, sfruttiamo l'implementazione crypto/sha256 della libreria standard di Go, garantendo operazioni crittografiche ad alte prestazioni resistenti all'inquinamento dei prototipi a livello JS o alla manipolazione dell'ambiente.
+
+ Software Station opera su un modello zero-trust per quanto riguarda la risposta del server. Il browser recupera il flusso binario grezzo in un Uint8Array. Questo buffer viene poi passato direttamente nello spazio di memoria WASM. Il calcolo dell'hash viene eseguito **lato client**, il che significa che anche se il server fosse compromesso e servisse binari dannosi, il verificatore rileverebbe immediatamente la mancata corrispondenza dell'hash.
+
+ Il binario viene trasmesso in streaming dalla sorgente (Gitea/S3) tramite un tunnel TLS sicuro. +
++ Il motore WASM legge il flusso di byte e calcola localmente l'hash SHA256. +
++ L'hash calcolato viene confrontato con il manifesto firmato crittograficamente. +
+
+ Solo in caso di corrispondenza positiva viene creato l'oggetto Blob e attivato il download.
+
+ Lavoriamo costantemente per migliorare la trasparenza. I nostri prossimi traguardi includono: +
++ Software Station использует передовые технологии браузера, чтобы гарантировать 100% подлинность ваших загрузок. +
++ У каждого файла есть уникальный «цифровой отпечаток» (SHA256). Перед тем как сохранить файл, наш верификатор заново вычисляет этот отпечаток в вашем браузере, чтобы убедиться, что он совпадает с оригинальной версией разработчика. +
++ Верификация происходит в «песочнице» — безопасной изолированной области вашего браузера. Это означает, что файл проверяется на безопасность еще до того, как он попадет в постоянное хранилище вашего компьютера. +
++ Мы проверяем соединение с источником, используя защиту промышленного класса (TLS). Это гарантирует, что вы общаетесь напрямую с реальным репозиторием, а не с самозванцем. +
++ В каждом релизе указаны реальные контрибьюторы из репозитория Gitea. Вы можете точно видеть, кто написал код, который вы собираетесь скачать. +
+
+ Верификатор написан на **Go** и скомпилирован в **WebAssembly**. Используя WASM вместо стандартного JavaScript, мы задействуем реализацию crypto/sha256 из стандартной библиотеки Go, обеспечивая высокую производительность криптографических операций, устойчивых к загрязнению прототипов на уровне JS или манипуляциям с окружением.
+
+ Software Station работает по модели «нулевого доверия» в отношении ответов сервера. Браузер загружает необработанный двоичный поток в Uint8Array. Затем этот буфер передается напрямую в пространство памяти WASM. Расчет хэша выполняется на **стороне клиента**, что означает, что даже если сервер будет взломан и начнет выдавать вредоносные файлы, верификатор немедленно обнаружит несовпадение хэша.
+
+ Бинарный файл передается из источника (Gitea/S3) через защищенный TLS-туннель. +
++ Движок WASM считывает поток байтов и локально вычисляет дайджест SHA256. +
++ Вычисленный дайджест сравнивается с манифестом, подписанным криптографически. +
+
+ Только при успешном совпадении создается объект Blob и инициируется загрузка.
+
+ Мы постоянно работаем над улучшением прозрачности. Наши следующие вехи включают: +
++ Everything you need to know about Software Station, from verification internals to API + integration. +
++ {card.description} +
+ + {/each} ++ Software Station is a specialized platform designed for the secure distribution + of software binaries. In an era where supply chain attacks are increasing, we provide a + Zero-Trust architecture that shifts the responsibility of verification to the + client browser. +
++ Our core philosophy is that the server serving the software should not be the sole authority + on its integrity. By leveraging WebAssembly and + SHA256 cryptography, we ensure that every byte you download matches the + original manifest signed by the developers. +
+