Oldweb.Today(OWT)は、エミュレートされたWebブラウザーをWebアーカイブに接続するシステムであり、ユーザーが今日のように古いWebを閲覧できるようにします!

(スクリーンショット:https://oldweb.today/?browser=ns3-mac#19960101/http://geocities.com/)
OldWeb.Todayを使用すると、ユーザーはいくつかのエミュレートされたブラウザのいずれかを使用してWebを閲覧できます。フラッシュエミュレーターは、すべてブラウザで完全に実行されます。
URLを入力して、アーカイブ日を選択し、起動するブラウザを選択してください!
ユーザーは、ライブWeb、現在のWebサイトを閲覧するか、Webアーカイブ / Waybackマシンに接続して、アーカイブから直接コンテンツをロードできます。
ブラウザの最新リストについては、oldweb.todayを参照してください。目標は、Common(Netscape、IEなど)と、あまり知られていないが、Webの歴史の中で顕著なブラウザをサポートすることです。
ブラウザがサポートされていることを確認したい場合、またはブラウザを提供したい場合は、問題を開いてください!
netscapeのほとんどのバージョンとIEは、oldweb.todayで利用可能です。
Java 1.0はNetscape 3で動作し、Java 1.1はNetscape 4(Windows)およびIE 5およびIE 6で動作するはずです。
NetscapeとIEには、Flashの最新バージョンもインストールされている必要があります。 Macブラウザーの場合、これは通常、衝撃波4を意味します。
IE 6ブラウザには、win98で実行される最新バージョンのフラッシュ9があります。
Oldweb.Todayは、ネイティブブラウザを使用して、Ruffle Flash Emulatorを直接サポートしています。
このモードでは、Ruffle Emulatorを有効にして、ライブまたはアーカイブされたWebサイトを閲覧できます。
この現在のバージョンは、エミュレータを使用してWindows、MacOS、およびフルネットワークスタックを使用して、JavaScriptで完全に実行されます。すべてがブラウザで実行され、oldweb.todayは静的サイトとしてホストできます。外部アーカイブにアクセスするためのCORS制限により、リモートCORSプロキシが使用されます。
Oldweb.todayのバージョンは、他の人によって作成された多くの優れたツールを構築し、組み合わせて機能します。
これらの各エミュレーターは、サービス開発者のRafael GieshkeとKlaus Rechertとしてエミュレーションによって作成されたPicoTCPを使用して、カスタムJavaScriptネットワークスタックをサポートするために(こちらおよびこちら)修正されました。
このシステムはさらに変更され、oldweb.todayに統合され、エミュレートブラウザーからHTTP接続を終了し、ライブWebまたはアーカイブソースのいずれかに通常のfetch()リクエストからHTTPデータを使用して応答しました。現在、GETリクエストのみがサポートされており、標準のコンテンツレングスとコンテンツタイプのヘッダーのみが再生されます。
各ブラウザは、JS HTTPサーバーが実際のホームページにリダイレクトする特別なIP http://10.0.2.2/にHTTPプロキシを介して接続するように構成されています。このように、エミュレータイメージには、実際のページに解決する固定ホームページがあります。同様に、ページに設定されたタイムスタンプは、JS Proxyサーバーによって使用されて、指定された日付をアーカイブからロードします。
これにより、エミュレータのホームページをリロードするだけで、エミュレータを再起動せずにDateTimeとホームページURLを変更できます。
ネットワークスタック(WASMにコンパイル)は、別のWebワーカーで実行されています。バジリスクエミュレーターはemscriptenと編集されており、別の労働者でも実行されます。それらの間で通信するには、共有Arraybufferが必要です。 V86エミュレーターはメインスレッドで実行され、BroadcastChannelメッセージングを介してネットワークワーカーを介して通信します。
ネイティブモード /フリルエミュレータの場合、エミュレートブラウザーは使用されませんが、フリルエミュレータがロードされたページに注入され、ページに存在する可能性のあるフラッシュをレンダリングします。
Oldweb.Todayは、ノードとパッケージマネージャーNPM/YARNを構築および変更する必要があります。
ローカルで実行するには、最初にyarn install
開発に推奨される展開オプションは、ローカルCORSプロキシを備えた開発サーバーを実行することです。これは、次のようにロールアップDEVサーバーを実行するだけで実行できます。
yarn run start-devこれにより、ローカルWebサーバーが(RollUp経由)を開始し、 http://localhost:10001/を介してoldweb.todayにアクセスできるはずです。ローカルプロキシhttp://localhost:10001/proxy/で実行されます
生産のために、推奨される展開は、ライブWebプロキシを処理するCloudFlareワーカーを使用して実行することです。ほとんどのユースケースでは、無料のサービスで十分です。
このオプションを使用するには:
worker-siteでは、 wrangler.toml.sample wrangler.tomlにコピーします。account_idとname設定のように設定します。yarn run publishて、CloudFlareワーカーエンドポイントに公開します。さらにシンプルな展開であるOldWeb.Todayは、HTTPサーバーを介して./siteディレクトリにコンテンツを提供することにより、静的サイトとして完全に展開できます。
ただし、このオプションには、ライブWebまたはリモートアーカイブからのロードに必要なCORSプロキシは含まれません。
1つのオプションは、ライブWebおよびリモートアーカイブに接続するために、公開されているCORS Anywhere Proxyで実行することです。
このプロキシはレート制限されているため、このオプションは生産展開には推奨されません。
この展開は、同じホストでローカルWebアーカイブを実行している場合(およびライブWebアクセスは必要ありません)、CORSプロキシの必要性を削除する場合に理にかなっています。
この方法を使用するには:
rollup.config.jsで、 CORS_PREFIXおよび/またはARCHIVE_PREFIXを変更して、たとえばローカルアーカイブを指す(詳細については以下を参照)。 const CORS_PREFIX = "" ;
const ARCHIVE_PREFIX = "/wayback/" ; yarn run build
OldWeb.Todayは、任意の静的HTTPサーバーから./site/から提供できるようになりました。
CloudFlareで実行する場合、 site/assetsおよびビルドスクリプトsite/distの静的資産が別のCDN(DigitalOcean経由)から提供されることに注意してください。
このパスは、 rollup.config.jsでCDN_PREFIX変更した後、再構築することで変更できます
資産とスクリプトは、静的なWebストレージでホストできます。
rollup.config.jsの設定と再実行yarn run buildを変更することにより、以下の読み込みパスを変更できます。
現在、OldWeb.Todayは、Internet ArchiveのWayback Machineから、そしてライブWebから直接ロードすることをサポートしています。追加 /複数のアーカイブのサポートが計画されています!
アーカイブソースは<prefix>/<timestamp>id_/<url> Wayback Machine Styleをサポートする任意のWebアーカイブを除去するURLをサポートできます。アーカイブは、修正されていないコンテンツの返却をサポートする必要があります。
別のWebアーカイブで実行するには、 ARCHIVE_PREFIXパスを変更して、使用するWaybackマシンインスタンスを指すだけです。
同じドメインでホストされているウェイバックマシンからロードする場合、CORSプロキシは必要ない場合があります。
たとえば、ホストmywebarchive.example.comでoldweb.todayを実行していて、 https://mywebarchive.example.com/wayback/で実行されているウェイバックマシンがある場合、設定できます
CORS_PREFIX = ""
ARCHIVE_PREFIX = "/wayback/"OldWeb.Todayが別のサイトでホットされている場合、構成は次のとおりです。
CORS_PREFIX = "/proxy/"
ARCHIVE_PREFIX = "https://mywebarchive.example.com/wayback/"すべてのエミュレータ画像は、静的ブロックストレージバケット(現在DigitalOcean)からホストされています。ローカル/異なる画像セットで実行したい場合は、次のことを設定できます。
IMAGE_PREFIX = "https://mybucket.example.com/images` assetsとdistパスを変更するには(CloudFlare展開用)、次のことを設定できます。
CDN_PREFIX = "https://mybucket.example.com/site`Availble Browserは、ブラウザ名、エミュレータタイプ、画像、保存状態(V86用)およびその他のオプションまたは各ブラウザを含むsrc/config.jsonで構成されています。 config.json IMAGE_PREFIXに補間され、 site/assets/config.jsonから提供されます。
ローカルエミュレータをテストするには、 IMAGE_PREFIXを使用してエントリを作成します。詳細については、 config.json参照してください。
サーバーで実行されているDockerコンテナとエミュレーターを使用するOldweb.todayの「クラシック」バージョンは、classic.oldweb.todayソース:https://github.com/oldweb-today/netcapsuleにあります。
OldWeb.Todayは、AGPLライセンスの下で入手できます。他のコンポーネント(上記のリスト)は、さまざまなライセンスで利用できます。
詳細については、Notice.mdを参照してください。
貢献は大歓迎ですが、追加のブラウザやエミュレーターを寄付する前に問題を開いてください。