<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vegard Bjørsvik</title>
    <description>The latest articles on DEV Community by Vegard Bjørsvik (@kuzat).</description>
    <link>https://dev.to/kuzat</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1797669%2F23411e70-82ed-4409-b7bb-c01e12a60d51.jpeg</url>
      <title>DEV Community: Vegard Bjørsvik</title>
      <link>https://dev.to/kuzat</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kuzat"/>
    <language>en</language>
    <item>
      <title>Hosting a simple Laravel application using Turso on Laravel Forge</title>
      <dc:creator>Vegard Bjørsvik</dc:creator>
      <pubDate>Thu, 18 Jul 2024 14:10:12 +0000</pubDate>
      <link>https://dev.to/kuzat/hosting-a-simple-laravel-application-using-turso-on-laravel-forge-4ep6</link>
      <guid>https://dev.to/kuzat/hosting-a-simple-laravel-application-using-turso-on-laravel-forge-4ep6</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;After learning that Turso made a Laravel driver for LibSQL I just knew I had to try it. So in this short tutorial I will setup a simple Laravel example application with Breeze, using Turso and libsql as the database. I will then show how to prepare a server on Forge to be able to host the application. Specifically I will show how we can install the LibSQL extension for php. &lt;/p&gt;

&lt;h1&gt;
  
  
  Preparing the Turso Database
&lt;/h1&gt;

&lt;p&gt;Lets start by getting a Turso database ready for the example. Let's create it using the Turso CLI&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

turso db create turso-laravel-example


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;We should now have a fresh new database we can use for this example. Run the following commands to get the url and generate a token to access the database.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

turso db show &lt;span class="nt"&gt;--url&lt;/span&gt; turso-laravel-example
turso db tokens create turso-laravel-example


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Save these for later as we will need them in the .env file for our Laravel application.&lt;/p&gt;

&lt;h1&gt;
  
  
  Preparing the Laravel Application
&lt;/h1&gt;

&lt;p&gt;Since the point of this article is to explore how we host it and not the application it self. So it will be just a standard breeze Laravel template application.&lt;br&gt;
Let's start by creating a new Laravel project.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

composer create-project laravel/laravel turso-laravel-example


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;We now have a Laravel project named &lt;code&gt;turso-laravel-example&lt;/code&gt; and can continue by adding breeze and installing it.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;cd &lt;/span&gt;turso-laravel-example/
composer require laravel/breeze &lt;span class="nt"&gt;--dev&lt;/span&gt;
php artisan breeze:install


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;When installing breeze we can just use the default options as they don't really matter for this tutorial.&lt;br&gt;
We should now have a example application. What is missing is to install the &lt;code&gt;turso-libsql-driver&lt;/code&gt; and make some changes so that we can use the database we created earlier.&lt;br&gt;
First step is to composer require the driver. &lt;a href="https://docs.turso.tech/sdk/php/guides/laravel" rel="noopener noreferrer"&gt;[1]&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

composer require tursodatabase/turso-driver-laravel


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now we also need to do some more changes to our project code for it to work. We need to Add the &lt;code&gt;LibSQLDriverServiceProvider&lt;/code&gt; class to &lt;code&gt;bootstrap/providers.php&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;After that we need to add this configuration to the &lt;code&gt;connections&lt;/code&gt; array in &lt;code&gt;config/database.php&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;

&lt;span class="s1"&gt;'libsql'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;'driver'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'libsql'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'url'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'file:'&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'DB_DATABASE'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'database.sqlite'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'authToken'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'DB_AUTH_TOKEN'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'syncUrl'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'DB_SYNC_URL'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'syncInterval'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'DB_SYNC_INTERVAL'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'read_your_writes'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'DB_READ_YOUR_WRITES'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'encryptionKey'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'DB_ENCRYPTION_KEY'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'remoteOnly'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'DB_REMOTE_ONLY'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'database'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'prefix'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;],&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;You could now also setup your .env file and install the libsql extension/driver binary locally to test. However, since it is not yet supported in Herd I decided to skip this for now. &lt;/p&gt;

&lt;p&gt;Final step before setting up the server is to create a git repo and add all the changes. Then push it to a repository at Github. I will not show how to do this in this tutorial. &lt;/p&gt;

&lt;h1&gt;
  
  
  Installing LibSQL PHP Extension on Forge Server
&lt;/h1&gt;

&lt;p&gt;After the last section we should have a Github repository with our &lt;code&gt;turso-laravel-example&lt;/code&gt; project. &lt;br&gt;
Which means we are now ready to deploy it to a server. &lt;/p&gt;

&lt;p&gt;Before we create a new server in Forge we should first create a recipe for installing the libsql extension. &lt;br&gt;
Here is a simple bash script I made that should fetch the Turso libsql php extension. It then extracts it and sets the required &lt;code&gt;extension=&lt;/code&gt; variable in the &lt;code&gt;php.ini&lt;/code&gt; files before reloading the php-fpm to pickup the changes. You should check the &lt;a href="https://github.com/tursodatabase/turso-client-php/releases" rel="noopener noreferrer"&gt;Release&lt;/a&gt; page on Github to find the libsql version and php version that will work for you. &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nv"&gt;PHP_VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"8.3"&lt;/span&gt;
&lt;span class="nv"&gt;TURSO_LIBSQL_VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"v1.2.6"&lt;/span&gt;
&lt;span class="nv"&gt;DIR_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"libsql_php-turso-php-extension-&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;TURSO_LIBSQL_VERSION&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;-php-&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;PHP_VERSION&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;-x86_64-unknown-linux-gnu"&lt;/span&gt;
&lt;span class="nv"&gt;ARCHIVE_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;DIR_NAME&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.tar.gz"&lt;/span&gt;

&lt;span class="nb"&gt;cd&lt;/span&gt; /home/forge

curl &lt;span class="nt"&gt;-L&lt;/span&gt; https://github.com/tursodatabase/turso-client-php/releases/download/turso-php-extension-&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;TURSO_LIBSQL_VERSION&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ARCHIVE_NAME&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; &lt;span class="nv"&gt;$ARCHIVE_NAME&lt;/span&gt;

&lt;span class="nb"&gt;tar&lt;/span&gt; &lt;span class="nt"&gt;-xzvf&lt;/span&gt; &lt;span class="nv"&gt;$ARCHIVE_NAME&lt;/span&gt;

&lt;span class="c"&gt;# Add the extension to the php ini files&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"extension=/home/forge/&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;DIR_NAME&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/liblibsql_php.so"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; /etc/php/&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;PHP_VERSION&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/fpm/php.ini
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"extension=/home/forge/&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;DIR_NAME&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/liblibsql_php.so"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; /etc/php/&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;PHP_VERSION&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/cli/php.ini

service php&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;PHP_VERSION&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="nt"&gt;-fpm&lt;/span&gt; reload


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;If you save it as a Recipe in Forge you can then use it when creating a server.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7zgi0ek2k7byznbitnx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7zgi0ek2k7byznbitnx.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For server provider I am using Hetzner, but you are free to choose your own. Since it is just an example project I just run a App Server with the smallest size. In &lt;code&gt;Advanced Settings&lt;/code&gt; I set &lt;code&gt;Database&lt;/code&gt; as &lt;code&gt;None&lt;/code&gt; as we are going to use Turso. Finally we can choose a &lt;code&gt;Post-Provision Recipe&lt;/code&gt; to run after the server is setup. Here we select the recipe we created earlier.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxy80voueimyppivoz8j6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxy80voueimyppivoz8j6.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Deploying the Application to Forge
&lt;/h1&gt;

&lt;p&gt;By this point we should have a Laravel application in Github and a Server in Forge with Turso LibSQL php extension. &lt;br&gt;
Since this is just an example I will deploy it to the default site for the server in Forge. Choosing the Github repo and create the site. &lt;/p&gt;

&lt;p&gt;Before we can deploy the site we need to do some changes. Firstly we should change the deployment script to also include a &lt;code&gt;npm ci&lt;/code&gt; and &lt;code&gt;npm run build&lt;/code&gt;. The full deployment script I use is:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;cd&lt;/span&gt; /home/forge/default
git pull origin &lt;span class="nv"&gt;$FORGE_SITE_BRANCH&lt;/span&gt;

&lt;span class="nv"&gt;$FORGE_COMPOSER&lt;/span&gt; &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--no-dev&lt;/span&gt; &lt;span class="nt"&gt;--no-interaction&lt;/span&gt; &lt;span class="nt"&gt;--prefer-dist&lt;/span&gt; &lt;span class="nt"&gt;--optimize-autoloader&lt;/span&gt;
npm ci
npm run build

&lt;span class="o"&gt;(&lt;/span&gt; flock &lt;span class="nt"&gt;-w&lt;/span&gt; 10 9 &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;exit &lt;/span&gt;1
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'Restarting FPM...'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="nt"&gt;-S&lt;/span&gt; service &lt;span class="nv"&gt;$FORGE_PHP_FPM&lt;/span&gt; reload &lt;span class="o"&gt;)&lt;/span&gt; 9&amp;gt;/tmp/fpmlock

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; artisan &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
    &lt;span class="nv"&gt;$FORGE_PHP&lt;/span&gt; artisan migrate &lt;span class="nt"&gt;--force&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Then secondly we need to configure our application to use the Turso database we created earlier. &lt;br&gt;
I set these environment variables in the .env file for the site.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

DB_CONNECTION=libsql
DB_AUTH_TOKEN=&amp;lt;your-database-auth-token-from-turso&amp;gt;
DB_SYNC_URL=&amp;lt;your-database-url-from-turso&amp;gt;
DB_REMOTE_ONLY=true


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;I am not sure if the &lt;code&gt;DB_REMOTE_ONLY&lt;/code&gt; is needed all the time, but at least I was not able to do the initial migration without having it set. &lt;/p&gt;

&lt;p&gt;The site should now be ready to deploy. We can then access it using the IP address of the server. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmaeghyukephb8t3vo0k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmaeghyukephb8t3vo0k.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And you should now see the default Laravel Breeze welcome page. You can try register and login and it should work, using your Turso database. We should also see it in the analytics for the database&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxkzumztdazm78ero3iu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxkzumztdazm78ero3iu.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;We should now have a working Laravel deployment on Forge using a Turso libsql database. &lt;/p&gt;

&lt;p&gt;The experience was not the easiest, and I bumped into a few errors when following the Turso guide for Laravel. Like they tell you to use the provider &lt;code&gt;Turso\Driver\Laravel\LibSQLServiceProvider::class&lt;/code&gt; but what I found was a provider called &lt;code&gt;Turso\Driver\Laravel\LibSQLDriverServiceProvider::class&lt;/code&gt; which was easy enough to fix. There was also the need to use the &lt;code&gt;DB_REMOTE_ONLY=true&lt;/code&gt; when deploying to Forge, which gave me not so useful error message. &lt;/p&gt;

&lt;p&gt;The biggest thing stopping me from fully using this for my Laravel projects is that it is not supported in Herd yet. So, working with it locally is not as smooth as it could be. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Thank you for reading my article 😊 If you found it useful you can also follow me on &lt;a href="https://x.com/vegardbjoersvik" rel="noopener noreferrer"&gt;twitter&lt;/a&gt; or check out my uptime monitoring SaaS I am currently working on &lt;a href="https://200.sh" rel="noopener noreferrer"&gt;200.sh&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>laravel</category>
      <category>php</category>
      <category>sqlite</category>
      <category>turso</category>
    </item>
  </channel>
</rss>
