<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Provisore blog</title>
    <link>https://provisore.com/blog</link>
    <atom:link href="https://provisore.com/blog/rss.xml" rel="self" type="application/rss+xml" />
    <description>Deploying and running Laravel, PHP, Node and Swift applications on servers you own.</description>
    <language>en</language>
    <item>
      <title>Patch PHP for CVE-2026-109618 on Ubuntu</title>
      <link>https://provisore.com/blog/php-cve-2026-109618</link>
      <guid isPermaLink="true">https://provisore.com/blog/php-cve-2026-109618</guid>
      <description>Two CVSS 9.2 PHP flaws allow remote code execution. The fixed builds on Ubuntu 24.04 and 26.04, and why PPA PHP never updates itself.</description>
      <pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Harden a new Ubuntu 24.04 or 26.04 server</title>
      <link>https://provisore.com/blog/harden-ubuntu-server</link>
      <guid isPermaLink="true">https://provisore.com/blog/harden-ubuntu-server</guid>
      <description>A deploy user, SSH keys only, UFW, fail2ban and unattended security upgrades, in the order that cannot lock you out. Tested on Ubuntu 24.04 and 26.04.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Laravel queue workers and Horizon with systemd</title>
      <link>https://provisore.com/blog/laravel-queue-workers-systemd</link>
      <guid isPermaLink="true">https://provisore.com/blog/laravel-queue-workers-systemd</guid>
      <description>Run queue:work and Horizon as systemd services instead of Supervisor: template units, restarts on deploy, journalctl logs and memory limits.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Deploy Laravel to a Hetzner Cloud server</title>
      <link>https://provisore.com/blog/deploy-laravel-hetzner</link>
      <guid isPermaLink="true">https://provisore.com/blog/deploy-laravel-hetzner</guid>
      <description>Server types and locations, Cloud Firewall and UFW, cloud-init for PHP-FPM and Nginx, the database, Object Storage backups, snapshots and volumes.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Zero-downtime Laravel deploys with a symlink</title>
      <link>https://provisore.com/blog/zero-downtime-laravel-deploys</link>
      <guid isPermaLink="true">https://provisore.com/blog/zero-downtime-laravel-deploys</guid>
      <description>Build each release in its own directory, share storage and .env, swap one symlink, health-check the site and roll back on failure. A complete script.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Laravel scheduler cron: setup and fixes</title>
      <link>https://provisore.com/blog/laravel-scheduler-cron</link>
      <guid isPermaLink="true">https://provisore.com/blog/laravel-scheduler-cron</guid>
      <description>The one crontab line Laravel needs, which user and PHP binary it must use, why it runs by hand but not from cron, and how it fits a release layout.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Back up MySQL and Postgres to S3 or R2</title>
      <link>https://provisore.com/blog/database-backups-s3</link>
      <guid isPermaLink="true">https://provisore.com/blog/database-backups-s3</guid>
      <description>A cron script that dumps MySQL or PostgreSQL and uploads it to S3, Cloudflare R2 or Hetzner Object Storage, with retention and a tested restore.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Deploy Laravel to Ubuntu 24.04 or 26.04</title>
      <link>https://provisore.com/blog/deploy-laravel-ubuntu</link>
      <guid isPermaLink="true">https://provisore.com/blog/deploy-laravel-ubuntu</guid>
      <description>Nginx, PHP-FPM, MySQL or Postgres, Composer, permissions, .env, SSL, queue workers and the scheduler: a production Laravel server, step by step.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Nginx config for Laravel, explained</title>
      <link>https://provisore.com/blog/nginx-laravel-config</link>
      <guid isPermaLink="true">https://provisore.com/blog/nginx-laravel-config</guid>
      <description>A complete Nginx server block for Laravel with PHP-FPM, explained line by line, with fixes for 404s, &quot;File not found&quot;, subdirectories and Reverb.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Deploy Vapor or Hummingbird to Ubuntu</title>
      <link>https://provisore.com/blog/deploy-swift-server-ubuntu</link>
      <guid isPermaLink="true">https://provisore.com/blog/deploy-swift-server-ubuntu</guid>
      <description>Install Swift with swiftly, build Vapor or Hummingbird in release mode, and run it under systemd behind Nginx with TLS and zero-downtime releases.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Deploy a Node.js app to a VPS with systemd</title>
      <link>https://provisore.com/blog/deploy-node-vps-systemd</link>
      <guid isPermaLink="true">https://provisore.com/blog/deploy-node-vps-systemd</guid>
      <description>Run Next.js, Nuxt or any Node server on Ubuntu as a systemd service behind Nginx, with per-project Node versions, restarts, logs and TLS. No PM2.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Let's Encrypt with Nginx on Ubuntu 26.04</title>
      <link>https://provisore.com/blog/certbot-nginx-ubuntu</link>
      <guid isPermaLink="true">https://provisore.com/blog/certbot-nginx-ubuntu</guid>
      <description>Install certbot, issue a certificate for Nginx, confirm the renewal timer, and avoid the two-certbots trap. For Ubuntu 26.04 and 24.04.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Leaving Heroku for your own server</title>
      <link>https://provisore.com/blog/leave-heroku</link>
      <guid isPermaLink="true">https://provisore.com/blog/leave-heroku</guid>
      <description>What Heroku's 2026 change means, and how to move a Laravel or Node app to a VPS: Postgres, Redis, workers, scheduler, config vars and DNS, in order.</description>
      <pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>
