<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[<FDFC/>]]></title><description><![CDATA[<FDFC/>]]></description><link>https://fdfc.dev</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Apr 2026 20:08:42 GMT</lastBuildDate><atom:link href="https://fdfc.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How Safeline WAF Helped Stabilize and Protect My Homelab After Fully Dropping Cloudflare With a Secure VPS Front Layer]]></title><description><![CDATA[Running a homelab is all about learning, experimenting, and taking control of your own infrastructure. For years, Cloudflare acted as my security and proxy layer, filtering traffic and masking my home IP. But eventually, I decided to drop Cloudflare ...]]></description><link>https://fdfc.dev/how-safeline-waf-helped-stabilize-and-protect-my-homelab-after-fully-dropping-cloudflare-with-a-secure-vps-front-layer</link><guid isPermaLink="true">https://fdfc.dev/how-safeline-waf-helped-stabilize-and-protect-my-homelab-after-fully-dropping-cloudflare-with-a-secure-vps-front-layer</guid><category><![CDATA[Homelab]]></category><category><![CDATA[waf]]></category><category><![CDATA[SafeLine]]></category><dc:creator><![CDATA[Filipe Clemente]]></dc:creator><pubDate>Mon, 24 Nov 2025 08:51:33 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/QVuBdXk-07I/upload/022a3a83eb5fe242b715d6fb6bbb02be.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Running a homelab is all about learning, experimenting, and taking control of your own infrastructure. For years, Cloudflare acted as my security and proxy layer, filtering traffic and masking my home IP. But eventually, I decided to drop Cloudflare entirely and build a fully self-hosted alternative.</p>
<p>That change meant one thing: I needed a new strategy to protect my services and keep my real home IP completely hidden.</p>
<p>That’s when I deployed Safeline WAF on a Hetzner VPS, turning it into a secure, self-hosted reverse-proxy layer sitting in front of my homelab. And honestly, it worked far better than I expected.</p>
<p>Leaving Cloudflare Meant I Needed a New Shield</p>
<p>The moment I moved away from Cloudflare, I lost: • Anycast edge routing • Automated bot filtering • DDoS mitigation • Hidden origin IP • Edge caching • Layer-7 attack protection</p>
<p>This meant that if I exposed my home IP directly, it would quickly become a target and any attack would hit my household connection and hardware.</p>
<p>So I needed a new “front layer” that: • Sat outside my home network • Masked my real IP • Filtered all incoming traffic • Stopped attacks before they reached my house • Was lightweight enough to self-manage</p>
<p>Deploying Safeline WAF on a remote VPS became the perfect solution.</p>
<p>Creating a Secure Front Layer on a Hetzner VPS</p>
<p>Instead of exposing my homelab directly, I deployed Safeline WAF on a Hetzner VPS, which now acts as the public-facing entry point for all my services.</p>
<h3 id="heading-how-the-architecture-works">How the architecture works:</h3>
<p>1. All external traffic hits the Hetzner VPS first The VPS has a public IP and runs Safeline WAF + a reverse proxy. 2. Safeline filters, analyses and sanitises requests Malicious traffic never reaches my home. 3. Only clean traffic is forwarded to my homelab Through an encrypted tunnel (WireGuard), the backend services remain fully hidden. 4. My real home IP is completely protected Nobody scanning the services ever sees it only the Hetzner VPS.</p>
<p>This setup essentially recreates the “origin shielding” that Cloudflare provided, but without relying on a third-party network or giving up control.</p>
<p>How Safeline WAF Performs as a Remote Shield</p>
<p>My Home IP Stays Completely Hidden</p>
<p>The biggest benefit of placing Safeline on a VPS is that:</p>
<ul>
<li>Scanners</li>
</ul>
<ul>
<li>Bots</li>
</ul>
<ul>
<li>Attackers</li>
</ul>
<ul>
<li><p>Vulnerability crawlers</p>
<p>  …never touch my home connection.</p>
</li>
</ul>
<p>All they ever see is the Hetzner IP, which filters everything through Safeline before forwarding anything to my private network.</p>
<p>If someone tries to attack it, it’s the VPS getting the hits not my house.</p>
<p>Safeline Handles Attacks Far From My Homelab</p>
<p>Since Safeline blocks malicious traffic right at the VPS: • My home bandwidth isn’t consumed • My self-hosted apps remain calm and responsive • My ISP never sees attack patterns • My homelab hardware isn’t stressed</p>
<p>Cloudflare used to do this at a global scale now Safeline does it on my own infrastructure.</p>
<p>Lightweight Enough for a Small VPS</p>
<p>Even with increased direct traffic: • No high CPU spikes • No RAM explosions • No delays in forwarding clean requests</p>
<p>Safeline is efficient enough to run on a small Hetzner VPS without issues.</p>
<p>Complete Control, Without External Dependencies</p>
<p>By using my own VPS: • No reliance on Cloudflare • No vendor lock-in • No “hidden rules” • No unexpected throttling • No external outages affecting my setup</p>
<p>Safeline works predictably, and I control everything from end to end.</p>
<p>A Clean, Stable Setup Without Cloudflare</p>
<p>While many people depend entirely on Cloudflare to protect their self-hosted apps, moving away from it didn’t break anything for me. Instead, it made my setup more resilient and more under my control.</p>
<p>With Safeline running on a Hetzner VPS: • My services stayed online • My real home IP stayed hidden • Malicious traffic got filtered at the edge • My homelab stayed lightweight and protected • I avoided Cloudflare outages, routing issues, or dependency risks</p>
<p>It’s a self-hosted approach that gives you the same benefits Cloudflare provides but fully under your control.</p>
<p>If You’re Dropping Cloudflare, This Hybrid VPS + Safeline Setup Is a Game-Changer</p>
<p>You get: • Real IP masking • Layer-7 protection • Full transparency • Strong filtering • Low resource usage • Independent infrastructure • Zero third-party dependency</p>
<p>A clean, powerful and reliable way to run a modern homelab with true self-hosting principles.</p>
<h2 id="heading-documentation-amp-support">Documentation &amp; Support</h2>
<p>SafeLine Website: <a target="_blank" href="https://ly.safepoint.cloud/ShZAy9x">https://ly.safepoint.cloud/ShZAy9x</a></p>
<p>Official Docs: <a target="_blank" href="https://docs.waf.chaitin.com/en/home">https://docs.waf.chaitin.com/en/home</a></p>
<p>SafeLine Demo: <a target="_blank" href="https://demo.waf.chaitin.com:9443">https://demo.waf.chaitin.com:9443</a></p>
<p>Community Discord: <a target="_blank" href="https://discord.gg/dy3JT7dkmY">https://discord.gg/dy3JT7dkmY</a></p>
]]></content:encoded></item><item><title><![CDATA[Beginner's Guide: Configuring Filament in Laravel in 5 Minutes]]></title><description><![CDATA[Start by explaining what Filament is and why it’s worth trying out for Laravel developers. Here’s an outline:
• What is Filament? Filament is a lightweight admin panel and form builder designed specifically for Laravel applications. It simplifies cre...]]></description><link>https://fdfc.dev/beginners-guide-configuring-filament-in-laravel-in-5-minutes</link><guid isPermaLink="true">https://fdfc.dev/beginners-guide-configuring-filament-in-laravel-in-5-minutes</guid><category><![CDATA[Filament]]></category><category><![CDATA[Laravel]]></category><category><![CDATA[filamentphp]]></category><dc:creator><![CDATA[Filipe Clemente]]></dc:creator><pubDate>Fri, 01 Nov 2024 11:47:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/8qEB0fTe9Vw/upload/5a0a40d232c9c28e91c8dc2470c4e863.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Start by explaining what Filament is and why it’s worth trying out for Laravel developers. Here’s an outline:</p>
<p>• <strong>What is Filament?</strong> Filament is a <strong>lightweight</strong> admin panel and form builder designed specifically for Laravel applications. It simplifies creating admin dashboards and managing resources without needing to write much custom code.</p>
<p>• <strong>Why Use Filament?</strong> For anyone who needs a user-friendly backend to manage data and settings, Filament offers a fast, developer-friendly solution. It’s particularly valuable for creating CRUD interfaces, handling complex forms, and adding various widgets with minimal setup.</p>
<p>•<strong>What Will This Guide Cover?</strong> This post will guide readers through setting up Filament in Laravel from scratch in under five minutes, providing them with a functional admin panel they can build upon.</p>
<h3 id="heading-set-the-stage"><strong>Set the Stage</strong></h3>
<p>Before diving into the steps, let’s quickly set up our environment to make sure everything runs smoothly.</p>
<p>• <strong>Docker &amp; Laravel Sail</strong></p>
<p>Instead of configuring a local web server manually, we’ll use Docker and Laravel Sail. This approach simplifies the setup, especially for developers working in different environments, as Docker ensures a consistent environment across all setups. Sail, Laravel’s official Docker environment, gives us a ready-to-go Laravel setup with just a few commands.</p>
<p>• <strong>Composer &amp; Filament</strong></p>
<p>Once our Laravel project is up and running with Sail, we’ll add Filament using Composer. This step is straightforward, thanks to Laravel’s package management. By the end, you’ll have a fully functional admin panel accessible through a single URL.</p>
<p>In the next steps, I’ll guide you through setting up a Laravel project with Docker and installing Filament—all in under five minutes!</p>
<p><strong>Step 1: Creating a Laravel Project with Sail</strong></p>
<p>1. <strong>Installing Laravel with Sail</strong></p>
<p>Start by explaining how to set up a new Laravel project with Sail in a single command. Using curl, we’ll download and configure Laravel with Docker support:</p>
<pre><code class="lang-bash">curl -s <span class="hljs-string">"https://laravel.build/my-project"</span> | bash
</code></pre>
<p>This command creates a new directory named project-name and sets up Laravel along with Docker containers needed for development, like MySQL, Redis, and others.</p>
<p>2. <strong>Navigating to the Project Directory</strong></p>
<p>Once the project is set up, navigate to the project’s directory:</p>
<pre><code class="lang-bash"><span class="hljs-built_in">cd</span> my-project
</code></pre>
<p>3. <strong>Starting Sail</strong></p>
<p>To bring up the development environment, use the following command:</p>
<pre><code class="lang-bash">./vendor/bin/sail up
</code></pre>
<p>This command initializes the Docker containers, so your Laravel application will be available on <strong>http://127.0.0.1</strong></p>
<p>4. <strong>Confirming Everything is Running</strong></p>
<p>Once Sail has started, you can verify the setup by opening <strong>http://127.0.0.1</strong> in your browser. You should see the default Laravel welcome page, confirming that Sail and Docker are up and running correctly.</p>
<p>This step-by-step guide will make it easy for readers to get a Laravel project running with Sail, creating a smooth foundation for the next steps with Filament.</p>
<p><strong>Step 2: Installing Filament in Your Laravel Project</strong></p>
<p>Now that we have our Laravel project running with Sail, let’s add Filament to get a basic admin panel up and running.</p>
<p>1. <strong>Installing Filament</strong></p>
<p>We’ll use Composer to install Filament. In the project’s root directory, run the following command:</p>
<pre><code class="lang-bash">./vendor/bin/sail composer require filament/filament
</code></pre>
<p>This will download and install Filament, making it ready to be configured in our Laravel app.</p>
<p>Create Your First Filament Panel</p>
<pre><code class="lang-bash">./vendor/bin/sail artisan filament:install
</code></pre>
<p>2. <strong>Setting Up the Database</strong></p>
<p>Since Filament requires a database connection, make sure your database is set up and that migrations have been run. In a new terminal, run:</p>
<pre><code class="lang-bash">./vendor/bin/sail artisan migrate
</code></pre>
<p>This will create all necessary tables for Laravel, including those needed for Filament’s authentication.</p>
<p>3. <strong>Creating Your First Admin User</strong></p>
<p>Filament requires an admin user to log into the dashboard. You can create one with the following command:</p>
<pre><code class="lang-bash">./vendor/bin/sail artisan make:filament-user
</code></pre>
<p>This command will prompt you to enter the email, name, and password for your new admin user.</p>
<p>4. <strong>Accessing the Filament Admin Panel</strong></p>
<p>Now, with your admin user created, open your browser and go to <strong>http://127.0.0.1/admin</strong>. Use the email and password you just set up to log in, and you’ll have access to the Filament admin dashboard.</p>
<p>This guide helps readers get Filament installed and configured quickly, leading to a fully functional admin panel that they can start exploring right away.</p>
]]></content:encoded></item></channel></rss>