Adresse du projet : https://github.com/ray-d-song/web-archive
Je suis un utilisateur fidèle d'ArchiveBox depuis longtemps. ArchiveBox est un très bon outil d'archivage Web, mais il nécessite un auto-hébergement et des exigences de serveur élevées (nécessite un navigateur sans tête). J'ai déjà utilisé un Raspberry Pi et les performances n'étaient pas bonnes.
Et pour les sites Web comme x et Medium, qui nécessitent une connexion, ArchiveBox doit configurer manuellement les jetons ou les cookies, ce qui est gênant.
Alors j'ai pensé : peut-il exister un outil d'archivage Web qui ne nécessite pas d'auto-hébergement, ne nécessite pas de navigateur sans tête, n'a aucune exigence de serveur et peut être multiplateforme ? Je peux ensuite accéder à mes pages archivées n'importe où, n'importe quand et sur n'importe quel appareil.
Le service Workers de Cloudflare est très puissant et gratuit, avec de nombreuses bases de données D1 et des compartiments de stockage R2, ce qui est très approprié pour créer cet outil.
Plus important encore, l'écosystème de Cloudflare est complet et prend en charge le déploiement et la migration des données en un clic. Le service CDN mondial de Cloudflare peut également être utilisé.
web-archive est composé des parties suivantes :
J'ai utilisé le code open source de SingleFile pour enregistrer la page sous la forme d'un seul fichier HTML (incluant même des images et des vidéos).
Le serveur est entièrement basé sur le service Workers de Cloudflare, avec une base de données D1 pour stocker les métadonnées et un compartiment de stockage R2 pour stocker les instantanés.
Bien que le nombre d'interfaces ne soit pas petit, je n'ai pas utilisé ORM, en fait j'ai essayé prisma et drizzle, car ils ont causé beaucoup de problèmes de déploiement, donc ils n'ont finalement pas été utilisés.
Le client Web est construit avec React, Vite, TailwindCSS et shadcn/ui, et la taille du package est étonnamment petite, seulement 1,5 Mo. Le produit packagé sera intégré dans le dossier des actifs du serveur, il n'a donc pas besoin d'être déployé séparément lors du déploiement du serveur.
J'aime beaucoup les services gratuits de Cloudflare, mais il y a certaines limitations.
Ces limitations ont affecté la construction du site Web dans une certaine mesure, comme l'analyse ssr ou dom lors de l'exploration.
Cependant, peu importe comment cela est dit, merci, Cloudflare !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!