<?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>Forem: DanielBetterDevelopers</title>
    <description>The latest articles on Forem by DanielBetterDevelopers (@danielbetterdevelopers).</description>
    <link>https://forem.com/danielbetterdevelopers</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%2F1462996%2F027f2356-f640-4df9-ace3-b9075595216e.png</url>
      <title>Forem: DanielBetterDevelopers</title>
      <link>https://forem.com/danielbetterdevelopers</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/danielbetterdevelopers"/>
    <language>en</language>
    <item>
      <title>The Lovable.dev Migration Guide: Moving from personal GitHub to an organization (without breaking sync)</title>
      <dc:creator>DanielBetterDevelopers</dc:creator>
      <pubDate>Sun, 07 Dec 2025 18:06:40 +0000</pubDate>
      <link>https://forem.com/danielbetterdevelopers/the-lovabledev-migration-guide-moving-from-personal-github-to-an-organization-without-breaking-100n</link>
      <guid>https://forem.com/danielbetterdevelopers/the-lovabledev-migration-guide-moving-from-personal-github-to-an-organization-without-breaking-100n</guid>
      <description>&lt;p&gt;You’ve built a Lovable app. It’s growing. You’re ready to move from your personal GitHub account to a &lt;strong&gt;GitHub Organization&lt;/strong&gt; (maybe for the Pro plan, or just to collaborate with a team).&lt;/p&gt;

&lt;p&gt;Naturally, you open your GitHub repository settings, scroll down to the "Danger Zone," and reach for the &lt;strong&gt;Transfer Ownership&lt;/strong&gt; button.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STOP.&lt;/strong&gt; 🛑&lt;/p&gt;

&lt;p&gt;If you transfer that repository while it is connected to Lovable, you will break your sync, likely permanently. Lovable does not support "Bringing Your Own Repository" (BYOR) for existing projects. If you transfer the repo first, Lovable will refuse to reconnect to it and will insist on creating a duplicate.&lt;/p&gt;

&lt;p&gt;Here is why the standard migration fails and the correct strategy to move your Lovable project to a GitHub Organization without losing your mind.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Lovable is the "Source of Truth"
&lt;/h2&gt;

&lt;p&gt;Most developer tools (like Vercel or Netlify) treat GitHub as the source of truth. You point them to a repo, and they deploy it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lovable works the other way around.&lt;/strong&gt;&lt;br&gt;
Lovable treats its own internal editor as the source of truth. When you "sync" to GitHub, Lovable pushes code &lt;em&gt;out&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Because of this architecture:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; You &lt;strong&gt;cannot&lt;/strong&gt; simply link a Lovable project to an existing, transferred repository.&lt;/li&gt;
&lt;li&gt; You &lt;strong&gt;must&lt;/strong&gt; let Lovable create the repository itself during the connection process.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you transfer your repo &lt;code&gt;my-app&lt;/code&gt; to &lt;code&gt;my-org/my-app&lt;/code&gt; manually, Lovable sees that remote repo as a stranger. When you try to reconnect, Lovable will say, &lt;em&gt;"I need to create a repo,"&lt;/em&gt; and you'll end up with &lt;code&gt;my-org/my-app-1&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Strategy: The "Fresh Start" Migration
&lt;/h2&gt;

&lt;p&gt;To migrate successfully, we have to accept a trade-off: &lt;strong&gt;We will sacrifice the Git commit history to ensure the sync works perfectly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We will &lt;em&gt;not&lt;/em&gt; move the repo. Instead, we will archive the old one and let Lovable generate a fresh one in the new Organization.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 1: The Safety Net (Backups)
&lt;/h3&gt;

&lt;p&gt;Before touching anything, secure your data.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Code Backup:&lt;/strong&gt; Run a &lt;code&gt;git pull&lt;/code&gt; locally and zip the folder. Keep this safe.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Database Backup:&lt;/strong&gt; Go to your &lt;strong&gt;Supabase Dashboard&lt;/strong&gt; -&amp;gt; Project Settings -&amp;gt; Database -&amp;gt; Backups. Create a fresh backup.

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Good news:&lt;/em&gt; Your Supabase database is loosely coupled. It connects via Project ID, not the GitHub repo. Moving your code will &lt;strong&gt;not&lt;/strong&gt; delete your data.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Rename the Old Repo:&lt;/strong&gt; Go to your personal GitHub repo and rename it to &lt;code&gt;my-app-legacy&lt;/code&gt;. This frees up your preferred name (&lt;code&gt;my-app&lt;/code&gt;) for the new organization.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Phase 2: Sever the Connections
&lt;/h3&gt;

&lt;p&gt;You need to disconnect the services to prevent errors during the switch.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Pause Deployments:&lt;/strong&gt; If you use Coolify, Vercel, or Netlify, pause "Auto Deploy" to stop them from trying to pull from the old URL.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Disconnect Lovable:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Go to Lovable Project Settings -&amp;gt; Integrations -&amp;gt; GitHub.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Disconnect&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Note:&lt;/em&gt; Your code remains safe inside Lovable.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Phase 3: The "New" Transfer
&lt;/h3&gt;

&lt;p&gt;This is where the magic happens. We don't "transfer" in GitHub. We "reconnect" in Lovable.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; In Lovable, go to &lt;strong&gt;Settings -&amp;gt; Integrations -&amp;gt; GitHub&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt; Click &lt;strong&gt;Connect Project&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Crucial Step:&lt;/strong&gt; Select your &lt;strong&gt;Organization&lt;/strong&gt; as the target.

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Tip:&lt;/em&gt; If you don't see your Org, you may need to click "Add Organization" to install the Lovable GitHub App on it.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; Lovable will ask to create a repository. Name it &lt;code&gt;my-app&lt;/code&gt; (since we renamed the old one, this name is available).&lt;/li&gt;
&lt;li&gt; Confirm.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Lovable will now push the entire current state of your app to &lt;code&gt;github.com/my-org/my-app&lt;/code&gt; as a fresh "Initial Commit". The sync is now live and healthy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 4: Re-wiring the Infrastructure
&lt;/h3&gt;

&lt;p&gt;Now that the code has a new home, point your other tools to it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Hosting (Coolify/Vercel/Netlify):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update the &lt;strong&gt;Git Source&lt;/strong&gt; URL to the new organization repo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Important:&lt;/strong&gt; Ensure the hosting provider's GitHub App is installed on your new Organization, not just your personal account.&lt;/li&gt;
&lt;li&gt;Trigger a manual deployment to verify the pipe is flowing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Supabase (Branching):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your database connection (URL/Anon Key) stays the same—no changes needed there!&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;However&lt;/em&gt;, if you use &lt;strong&gt;Supabase Branching&lt;/strong&gt;, you must go to Supabase -&amp;gt; Integrations -&amp;gt; GitHub and reinstall the integration on your new Organization repo.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Migrating a Lovable app isn't just about moving files; it's about respecting the sync engine.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DON'T&lt;/strong&gt; use the GitHub "Transfer Ownership" button.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DO&lt;/strong&gt; disconnect and let Lovable create a fresh repo in the Org.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ACCEPT&lt;/strong&gt; that your Git commit history will reset (but keep the old repo as a read-only archive).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By following this "Lovable-First" approach, you avoid the "Ghost Repository" trap and keep your project shipping smoothly.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Have you migrated a Lovable project recently? Let me know in the comments if you hit any other snags!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>lovable</category>
      <category>devops</category>
      <category>migration</category>
      <category>github</category>
    </item>
    <item>
      <title>Fixing Traefik Misconfiguration When Changing Domains</title>
      <dc:creator>DanielBetterDevelopers</dc:creator>
      <pubDate>Thu, 30 Jan 2025 09:17:30 +0000</pubDate>
      <link>https://forem.com/danielbetterdevelopers/fixing-traefik-misconfiguration-when-changing-domains-2kof</link>
      <guid>https://forem.com/danielbetterdevelopers/fixing-traefik-misconfiguration-when-changing-domains-2kof</guid>
      <description>&lt;p&gt;Deploying a Next.js application on Coolify should be a smooth experience, but we recently ran into an issue when changing the autogenerated domain to a custom one. Despite configuring the correct DNS records, we encountered a &lt;code&gt;No server detected&lt;/code&gt; error when trying to access the domain. The root cause? Coolify did not properly update Traefik’s container labels to reflect the new domain.&lt;/p&gt;

&lt;p&gt;In this post, I’ll walk through our deployment process, the issue we faced, and the solution we found to fix it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Deployment Flow
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Set up the project&lt;/strong&gt;: We deployed our Next.js app on Coolify as usual.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Changed the domain&lt;/strong&gt;: We updated the automatically generated domain to our desired custom domain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Successful deployment&lt;/strong&gt;: The Coolify dashboard showed that the deployment was successful.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Encountered an error&lt;/strong&gt;: When accessing the custom domain, we got a “No server found” error, despite having the correct DNS records pointing to our server’s IP.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Issue
&lt;/h2&gt;

&lt;p&gt;Looking at the Traefik configuration, we found that the labels still referenced the autogenerated domain instead of our custom one. Here’s what the incorrect labels looked like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;traefik.enable=true
traefik.http.middlewares.gzip.compress=true
traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
traefik.http.routers.http-0-autogenerated.entryPoints=http
traefik.http.routers.http-0-autogenerated.middlewares=gzip
traefik.http.routers.http-0-autogenerated.rule=Host(`autogenerated.example.com`) &amp;amp;&amp;amp; PathPrefix(`/`)
traefik.http.routers.http-0-autogenerated.service=http-0-autogenerated
traefik.http.services.http-0-autogenerated.loadbalancer.server.port=3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Despite the DNS being configured correctly, Traefik was still expecting requests for the old autogenerated domain, leading to a failed resolution for our custom domain.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution
&lt;/h2&gt;

&lt;p&gt;To resolve the issue, we manually updated the Traefik labels to reflect our custom domain. The correct configuration looked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;traefik.enable=true
traefik.http.middlewares.gzip.compress=true
traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
traefik.http.routers.http-0-custom.entryPoints=http
traefik.http.routers.http-0-custom.middlewares=redirect-to-https
traefik.http.routers.http-0-custom.rule=Host(`customdomain.com`) &amp;amp;&amp;amp; PathPrefix(`/`)
traefik.http.routers.http-0-custom.service=http-0-custom
traefik.http.routers.https-0-custom.entryPoints=https
traefik.http.routers.https-0-custom.middlewares=gzip
traefik.http.routers.https-0-custom.rule=Host(`customdomain.com`) &amp;amp;&amp;amp; PathPrefix(`/`)
traefik.http.routers.https-0-custom.service=https-0-custom
traefik.http.routers.https-0-custom.tls.certresolver=letsencrypt
traefik.http.routers.https-0-custom.tls=true
traefik.http.services.http-0-custom.loadbalancer.server.port=3000
traefik.http.services.https-0-custom.loadbalancer.server.port=3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What Changed?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Updated the Host rule&lt;/strong&gt;: We replaced the old autogenerated domain with our custom domain (customdomain.com).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Added HTTPS routing&lt;/strong&gt;: The original misconfiguration only handled HTTP, but proper HTTPS routing was necessary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ensured TLS settings were applied&lt;/strong&gt;: We explicitly enabled TLS and Let’s Encrypt for SSL certificates.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Coolify’s automated domain changes didn’t properly propagate to Traefik’s labels, leading to a misconfiguration that prevented our custom domain from resolving correctly. By manually updating the Traefik labels, we were able to restore proper routing.&lt;/p&gt;

&lt;p&gt;If you’re running into similar issues, double-check Traefik’s labels and make sure they match your intended domain settings. This can save you a lot of troubleshooting time!&lt;/p&gt;

</description>
      <category>coolify</category>
      <category>traefik</category>
      <category>docker</category>
      <category>dns</category>
    </item>
    <item>
      <title>Add new server to Coolify instance</title>
      <dc:creator>DanielBetterDevelopers</dc:creator>
      <pubDate>Fri, 11 Oct 2024 14:39:15 +0000</pubDate>
      <link>https://forem.com/danielbetterdevelopers/add-new-server-to-coolify-instance-15h6</link>
      <guid>https://forem.com/danielbetterdevelopers/add-new-server-to-coolify-instance-15h6</guid>
      <description>&lt;p&gt;When managing multiple servers and deploying applications, it’s crucial to have a streamlined system that simplifies server management and deployment workflows. Coolify is a powerful, self-hosted platform that allows you to deploy applications with minimal setup. In this guide, we’ll walk through the steps to connect a new server to your Coolify instance and set it up for seamless application deployment. Whether you're using a VPS provider like Hetzner or DigitalOcean, this guide will help you configure secure SSH access, set up key authentication, and validate the server with Coolify for future deployments.&lt;/p&gt;

&lt;p&gt;By the end of this tutorial, you’ll have everything in place to deploy your solutions to a newly connected server with ease.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Server A&lt;/strong&gt;: Running a Coolify instance for managing deployments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server B&lt;/strong&gt;: A VPS with SSH access via port 22 (e.g., from Hetzner).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: Purchase and Set Up Server B
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Purchase Server B from your preferred VPS provider (e.g., Hetzner, DigitalOcean).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make sure Server B is up and running. You can access it using SSH:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh root@your-server-ip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;   &lt;strong&gt;Note&lt;/strong&gt;: Ensure port 22 is open to enable SSH access.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;[Optional]: Update and secure Server B by running:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 2: Generate RSA SSH Key in Coolify
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;On Server A, open Coolify and navigate to &lt;strong&gt;Keys and Tokens&lt;/strong&gt; in the side menu.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Add&lt;/strong&gt; to create a new SSH key.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Generate new RSA SSH Key&lt;/strong&gt;. Coolify will create the key for you.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy the &lt;strong&gt;Public Key&lt;/strong&gt; that was generated, and then click &lt;strong&gt;Continue&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 3: Add the Public Key to Server B
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;On Server B, navigate to the &lt;code&gt;.ssh&lt;/code&gt; directory:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd ~/.ssh/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Open the &lt;code&gt;authorized_keys&lt;/code&gt; file with a text editor (e.g., &lt;code&gt;nano&lt;/code&gt;):
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano authorized_keys
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Paste the Public Key you copied earlier at the bottom of the file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Save the file with &lt;code&gt;Ctrl + O&lt;/code&gt;, press &lt;code&gt;Enter&lt;/code&gt;, and exit with &lt;code&gt;Ctrl + X&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Verification&lt;/strong&gt;: After adding the key, try logging into Server B again using SSH:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh root@your-server-ip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you log in without being prompted for a password, the key was added successfully.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Add Server B to Coolify
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Return to Coolify on Server A, and navigate to &lt;strong&gt;Servers&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Add&lt;/strong&gt;, and provide the following information:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;   - &lt;strong&gt;Name&lt;/strong&gt;: A descriptive name for Server B.&lt;/p&gt;

&lt;p&gt;   - &lt;strong&gt;IP Address/Domain&lt;/strong&gt;: The public IP or domain of Server B.&lt;/p&gt;

&lt;p&gt;   - &lt;strong&gt;Private Key&lt;/strong&gt;: Select the RSA key generated earlier.&lt;/p&gt;

&lt;p&gt;   - &lt;strong&gt;Username&lt;/strong&gt;: Set to &lt;code&gt;root&lt;/code&gt;, unless you’ve changed the default username.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;After filling in the details, click &lt;strong&gt;Continue&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the next screen, click &lt;strong&gt;Validate Server &amp;amp; Install Docker Engine&lt;/strong&gt; to complete the setup.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;Now that you’ve added Server B to Coolify, you can start deploying applications or Docker containers. Enjoy! &lt;/p&gt;

</description>
      <category>selfhosting</category>
      <category>coolify</category>
      <category>linux</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
