Oldweb.Today (OWT) est un système qui connecte les navigateurs Web imités aux archives Web, permettant aux utilisateurs de parcourir l'ancien Web, aujourd'hui, tel qu'il était!

(Capture d'écran de: https://oldweb.today/?browser=ns3-mac#19960101/http://geocities.com/)
Oldweb.Today permet aux utilisateurs de parcourir le Web à l'aide de l'un des nombreux navigateurs émulés ainsi qu'un émulateur Flash, tous fonctionnant entièrement dans le navigateur!
Entrez une URL, choisissez une date d'archivage et sélectionnez un navigateur pour démarrer!
Les utilisateurs peuvent soit parcourir le Web en direct, les sites Web actuels ou se connecter aux archives Web / machines Wayback et charger du contenu directement à partir des archives.
Voir le Oldweb.Today pour la dernière liste de navigateurs. L'objectif est de soutenir Common (NetScape, IE, etc.) ainsi que d'autres navigateurs moins connus mais notables dans l'histoire du Web.
Si vous souhaitez voir un navigateur pris en charge ou si vous souhaitez contribuer un navigateur, veuillez ouvrir un problème!
La plupart des versions de NetScape et IE disponibles dans Oldweb.Today ont des versions de Java initiales installées.
Java 1.0 devrait fonctionner dans Netscape 3, et Java 1.1 devrait fonctionner dans Netscape 4 (Windows) et IE 5 et IE 6.
Netscape et IE devraient également avoir la dernière version prise en charge de Flash installée. Pour les navigateurs Mac, cela signifie généralement l'onde de choc 4.
Le navigateur IE 6 a Flash 9, la dernière version de Flash qui fonctionne sur Win98 installée.
Oldweb.Today prend également en charge directement l'émulateur de flash Ruffle, en utilisant votre navigateur natif.
Dans ce mode, vous pouvez parcourir tout site Web en direct ou archivé, avec l'émulateur Ruffle activé.
Cette version actuelle s'exécute entièrement en JavaScript, en utilisant des émulateurs pour exécuter Windows, MacOS et une pile réseau complète. Tout fonctionne dans votre navigateur, et Oldweb.Today peut être hébergé comme site statique. Un proxy CORS distant est utilisé en raison des restrictions CORS pour accéder aux archives externes.
La version d'OldWeb.Today fonctionne en s'appuyant sur et en combinant un certain nombre de grands outils créés par d'autres, notamment:
Chacun de ces émulateurs a été modifié (ici et ici) pour prendre en charge une pile de réseau JavaScript personnalisée à l'aide de PICOTCP créée par l'émulation en tant que développeurs de services Rafael Gieshke et Klaus Rechert:
Ce système a été modifié et intégré dans OldWeb.Today pour se connecter pour terminer les connexions HTTP à partir de navigateurs imités et répondre avec des données HTTP à partir d'une demande fetch() régulière, soit pour vivre le Web ou une source d'archive. Actuellement, seules les demandes sont prises en charge et seuls les en-têtes standard du contenu et de type contenu sont proxés.
Chaque navigateur est configuré pour se connecter via un proxy HTTP à l'IP spécial http://10.0.2.2/ que le serveur JS HTTP redirige vers la page d'accueil réelle. De cette façon, l'image de l'émulateur a une page d'accueil fixe qui se résout à la page réelle. De façon similaire, l'horodatage défini sur la page est utilisé par le serveur proxy JS pour charger la date spécifiée de l'archive.
Cela permet de modifier la DateTime et l'URL de la page d'accueil sans redémarrer l'émulateur, simplement en rechargeant la page d'accueil dans le navigateur émulé.
La pile réseau (compilée vers WASM) s'exécute dans un travailleur Web séparé. L'émulateur de basilic est compilé avec Emscripten et fonctionne également chez un travailleur séparé. Un paramètre partagé est nécessaire pour communiquer entre eux. L'émulateur V86 s'exécute dans le thread principal et communique via le travailleur du réseau via la messagerie BroadcastChannel.
Pour l'émulateur de mode natif / volant, aucun navigateur émulé n'est utilisé, mais l'émulateur de volants est injecté dans des pages chargées pour prendre le relais de tout flash qui peut être présent sur la page.
Oldweb.Today nécessite un nœud et un gestionnaire de package NPM / YARN pour construire et modifier.
Pour fonctionner localement, installer d'abord avec yarn install
L'option de déploiement recommandée pour le développement consiste à exécuter un serveur de développement avec un proxy COR local. Cela peut être fait simplement en exécutant le serveur de développement Rollup avec:
yarn run start-dev Cela démarrera un serveur Web local (via Rollup) et vous devriez pouvoir accéder à Oldweb.today via http://localhost:10001/ . Le proxy local fonctionnera sur http://localhost:10001/proxy/
Pour la production, le déploiement recommandé est d'exécuter à l'aide de travailleurs CloudFlare, qui gère le proxy Web en direct. Le service gratuit doit être suffisant pour la plupart des cas d'utilisation.
Pour utiliser cette option:
worker-site , copier wrangler.toml.sample à wrangler.toml .account_id et name selon les instructions de configuration.yarn run publish pour publier sur votre point de terminaison CloudFlare Worker. Un déploiement encore plus simple, OldWeb.Today peut être déployé entièrement en tant que site statique, en servant le contenu dans le répertoire ./site sur un serveur HTTP.
Cependant, cette option n'inclura pas de proxy CORS, qui est nécessaire pour le chargement à partir d'un Web en direct ou d'une archive distante.
Une option consiste à s'exécuter avec le proxy CORS partout public accessible au public pour se connecter aux archives Web en direct et à distance.
Comme ce proxy est limité, cette option n'est pas recommandée pour le déploiement de la production.
Ce déploiement est logique s'il exécute également une archive Web locale sur le même hôte (et l'accès Web en direct n'est pas nécessaire), supprimant le besoin d'un proxy CORS.
Pour utiliser cette méthode:
rollup.config.js , modifiez le CORS_PREFIX et / ou l' ARCHIVE_PREFIX pour pointer vers une archive locale, par exemple (voir ci-dessous pour plus de détails): const CORS_PREFIX = "" ;
const ARCHIVE_PREFIX = "/wayback/" ; Exécuter yarn run build
Oldweb.today peut désormais être servi à partir de ./site/ à partir de tout serveur HTTP statique.
Notez que lors de l'exécution sur CloudFlare, les actifs statiques du site/assets et des scripts construits site/dist sont servis à partir d'un CDN séparé (via DigitalOcean).
Ce chemin peut être modifié en reconstruisant après avoir modifié CDN_PREFIX dans rollup.config.js
Les actifs et scripts peuvent être hébergés sur n'importe quel stockage Web statique.
Les chemins de chargement ci-dessous peuvent être modifiés en modifiant les paramètres dans rollup.config.js et en réinstallation yarn run build .
Actuellement, Oldweb.Today prend en charge le chargement de la machine Wayback d'Internet Archive et directement à partir du Web en direct. La prise en charge des archives supplémentaires / multiples est prévue!
La source d'archive peut être n'importe quelle archive Web qui prend en charge les URL de style Wayback Machine, par exemple: <prefix>/<timestamp>id_/<url> . L'archive doit prendre en charge le retour du contenu non modifié pour qu'il fonctionne.
Pour exécuter avec une archive Web différente, modifiez simplement le chemin ARCHIVE_PREFIX pour pointer vers l'instance Wayback Machine que vous souhaitez utiliser.
Si le chargement d'une machine Wayback hébergée sur le même domaine, le proxy CORS peut ne pas être nécessaire.
Par exemple, si vous exécutez Oldweb.today sur l'hôte mywebarchive.example.com et qu'il y a une machine Wayback en cours d'exécution sur https://mywebarchive.example.com/wayback/ , alors vous pouvez définir
CORS_PREFIX = ""
ARCHIVE_PREFIX = "/wayback/"Si oldweb.today est chaud sur un autre site, la configuration doit être:
CORS_PREFIX = "/proxy/"
ARCHIVE_PREFIX = "https://mywebarchive.example.com/wayback/"Toutes les images de l'émulateur sont hébergées à partir d'un seau de stockage de blocs statique (actuellement sur DigitalOcean). Si vous souhaitez fonctionner avec un ensemble d'images local / différent, vous pouvez définir:
IMAGE_PREFIX = "https://mybucket.example.com/images` Pour modifier les assets et les chemins dist (pour le déploiement CloudFlare), vous pouvez définir:
CDN_PREFIX = "https://mybucket.example.com/site` Les navigateurs disponibles sont configurés dans src/config.json , qui contient le nom du navigateur, le type d'émulateur, les images, l'état enregistré (pour V86) et d'autres options ou chaque navigateur. Le config.json est interpolé avec l' IMAGE_PREFIX et servi à partir site/assets/config.json .
Pour tester un émulateur local, créez une entrée IMAGE_PREFIX Voir config.json pour plus de détails.
La version "classique" d'Oldweb.today, qui utilise des conteneurs et des émulateurs Docker en cours d'exécution sur le serveur, peut être trouvé ici: classique.oldweb.today Source: https://github.com/oldweb-today/netcapsule
Oldweb.Today est disponible sous la licence AGPL. D'autres composants (énumérés ci-dessus) peuvent être disponibles sous différentes licences.
Voir note.md pour plus de détails.
Les contributions sont définitivement les bienvenues, mais veuillez ouvrir un problème avant de contribuer des navigateurs ou des émulateurs supplémentaires.