Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierKorben

FrankenPHP – Le serveur PHP surpuissant écrit en Go

Par : Korben
30 mai 2024 à 13:04

Concocté par le français Kévin Dunglas, contributeur de longue date à l’écosystème PHP et membre de la Core Team Symfony, FrankenPHP va peut-être dépoussiérer un peu votre bon vieux serveur LAMP tout fatigué.

Il s’agit d’un serveur d’applications PHP moderne développé en Go qui s’appuie sur le serveur web de pointe Caddy. D’après son auteur, tous vos projets PHP, y compris Laravel, Symfony, Drupal, WordPress, Sulu et API Platform, seront optimisés comme jamais grâce à l’intégration native du mode worker.

Moins de lenteurs, plus de perf, et surtout pas mal de fonctionnalités avancées telles que les Early Hints pour un affichage éclair, la prise en charge d’HTTP/2 et HTTP/3 pour une navigation optimale, la compression Brotli, Zstandard et Gzip, les logs structurés, le support de Prometheus pour les métriques, et même du temps réel avec Mercure. Que vous soyez accro à Symfony, fan d’API Platform ou un inconditionnel de Laravel, FrankenPHP s’occupera de tout et d’après les benchmarks visibles sur le site officiel, il booste même les performances jusqu’à 3,5 fois plus vite que FPM sur les applications de type API Platform.

Conçu dans un souci de simplicité, ce serveur PHP n’a besoin que d’un seul service et d’un seul binaire. Pas besoin de PHP-FPM, il utilise son propre SAPI (Server API) spécialement conçu pour les serveurs web Go. Il peut être déployé facilement comme une application Cloud Native via une image Docker, et est compatible avec Kubernetes et toutes les plateformes Cloud modernes. Vous pouvez même packager votre application PHP comme un binaire statique autonome et auto-exécutable.

Si vous voulez le tester, vous pouvez soit lancer le binaire, soit utiliser Docker comme ceci :

docker run -v $PWD:/app/public -p 80:80 -p 443:443 -p 443:443/udp dunglas/frankenphp

En deux temps trois mouvements, vous voilà avec un serveur web + PHP 8.2 aux petits oignons ! Y’a plus qu’à mettre votre PHP dans le répertoire de Franken et tadaaa…

Si c’est le binaire que vous récupérez, vous pouvez servir le contenu du répertoire courant avec la commande suivante :

./frankenphp php-server

Ou lancer vos scripts en ligne de commande comme ceci :

./frankenphp php-cli /chemin/vers/votre/script.php

Bref, vous démarrez votre app une fois, et hop, elle reste en mémoire, prête à faire tourner votre site. Caddy gère l’HTTPS automatiquement avec génération, renouvellement et révocation des certificats. Il sert aussi les assets, pendant que PHP fait ce qu’il fait de mieux : exécuter votre code sans faillir. Vous pouvez même intégrer PHP dans n’importe quelle application Go en mode bibliothèque.

Et pour démarrer un serveur Caddy en prod avec FrankenPHP sans utiliser Docker, il suffit de cette configuration ultra simple:

{
    # Activer FrankenPHP 
    frankenphp
    order php_server before file_server
}

localhost {
    # Activer la compression (optionnel)
    encode zstd br gzip  
    # Exécuter les fichiers PHP dans le répertoire courant et servir les ressources
    php_server
}

Ça change un peu !

En tout cas, c’est à tester ! Bravo Kévin, j’ai hâte de voir comment ça va évoluer pour la suite !

Sink – Un raccourcisseur d’URL simple et sécurisé avec des statistiques

Par : Korben
27 mai 2024 à 15:20

Vous cherchez une méthode simple et efficace pour raccourcir vos URLs tout en gardant un œil sur les statistiques ? Sink peut vous aider ! Ce raccourcisseur d’URL nouvelle génération combine simplicité d’utilisation, rapidité et sécurité, et il est entièrement déployable sur Cloudflare, donc pas besoin de gérer de serveurs !

Avec cet outil, les URLs longues et illisibles laissent la place à des liens propres et mémorisables, que vous pouvez personnaliser avec vos slugs comme bon vous semble. Et si l’inspiration vous manque, pas de souci puisque Sink dispose d’un assistant IA intégré pour vous suggérer des slugs intelligents basés sur le contenu de votre page.

Maintenant parlons analytics… Avec Sink, vous pouvez suivre les statistiques de vos liens comme un pro : Combien de clics, d’où viennent-ils, à quelle heure sont-ils arrivés…etc, vous aurez toutes les stats pour frimer (ou optimiser vos campagnes, au choix).

Sink utilise les dernières technologies à la mode :

  • Nuxt pour le framework
  • Cloudflare Workers KV pour la base de données
  • Cloudflare Workers Analytics Engine pour les analytiques
  • Shadcn-vue pour les composants d’interface
  • Tailwind CSS pour le style
  • Et bien sûr, le tout est déployé sur Cloudflare !

Avec un combo pareil, vous êtes parés à affronter le trafic le plus intense et vos liens tiendront la route !

En plus c’est open source, alors pourquoi hésiter ?

Pour déployer cet outil, c’est simple :

Étape 1 – Forkez le Dépôt
1. Rendez-vous sur la page GitHub de Sink.
2. Cliquez sur le bouton « Fork » en haut à droite pour forker le dépôt dans votre propre compte GitHub.

Étape 2 – Créez un Projet Cloudflare Pages
1. Accédez à Cloudflare Pages.
2. Cliquez sur « Create a project ».
3. Sélectionnez le dépôt « Sink » forké précédemment.
4. Choisissez le preset « Nuxt.js ».

Étape 3 – Configurez les Variables d’Environnement
Ajoutez les variables environnementales suivantes :
NUXT_SITE_TOKEN : configurez un token de site supérieur à 8 caractères.
NUXT_CF_ACCOUNT_ID : trouvez votre Cloudflare Account ID ici.
NUXT_CF_API_TOKEN : générez un token d’API Cloudflare avec les permissions nécessaires en suivant ce guide.

Étape 4 – Déploiement Initial
Cliquez sur « Save and deploy ». Si le déploiement échoue, annulez-le et passez à l’étape suivante.

Étape 5 – Configurez les Fonctionnalités

1. Allez dans Settings -> Functions dans Cloudflare Pages.
2. KV namespace bindings : Associez KV à une namespace KV existante ou nouvelle.
3. Workers AI Bindings (optionnel) : Associez AI au catalogue Workers AI.
4. Analytics Engine Binding : Associez ANALYTICS au dataset sink et activez le Cloudflare Analytics Engine Beta pour votre compte.

Étape 6 – Redéployez le Projet : Après avoir configuré les bindings, redéployez le projet depuis Cloudflare Pages.

Étape 7 : y’a plus qu’à accédez à votre tableau de bord déployé, à raccourcir un lien en utilisant l’interface, à le personnaliser avec un slug, à le diffuser puis à consulter l’analytique de vos liens pour suivre les clics et l’engagement.

Pour tester Sink c’est par ici !

❌
❌