<rss
      xmlns:atom="http://www.w3.org/2005/Atom"
      xmlns:media="http://search.yahoo.com/mrss/"
      xmlns:content="http://purl.org/rss/1.0/modules/content/"
      xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
      xmlns:dc="http://purl.org/dc/elements/1.1/"
      version="2.0"
    >
      <channel>
        <title><![CDATA[♔ 𝕾𝖊𝖙𝖙𝖊 𝕭𝖊𝖑𝖑𝖔 ♔ 🇨🇦]]></title>
        <description><![CDATA[Unusquisque vult mundum regere]]></description>
        <link>https://settebello.npub.pro/tag/selfhosted/</link>
        <atom:link href="https://settebello.npub.pro/tag/selfhosted/rss/" rel="self" type="application/rss+xml"/>
        <itunes:new-feed-url>https://settebello.npub.pro/tag/selfhosted/rss/</itunes:new-feed-url>
        <itunes:author><![CDATA[Settebello]]></itunes:author>
        <itunes:subtitle><![CDATA[Unusquisque vult mundum regere]]></itunes:subtitle>
        <itunes:type>episodic</itunes:type>
        <itunes:owner>
          <itunes:name><![CDATA[Settebello]]></itunes:name>
          <itunes:email><![CDATA[Settebello]]></itunes:email>
        </itunes:owner>
            
      <pubDate>Mon, 05 Jan 2026 21:45:10 GMT</pubDate>
      <lastBuildDate>Mon, 05 Jan 2026 21:45:10 GMT</lastBuildDate>
      
      <itunes:image href="https://image.nostr.build/33564f1fde7e552cae8b6e3a60250e0343992c1094322180b034cd689f7c66b1.jpg" />
      <image>
        <title><![CDATA[♔ 𝕾𝖊𝖙𝖙𝖊 𝕭𝖊𝖑𝖑𝖔 ♔ 🇨🇦]]></title>
        <link>https://settebello.npub.pro/tag/selfhosted/</link>
        <url>https://image.nostr.build/33564f1fde7e552cae8b6e3a60250e0343992c1094322180b034cd689f7c66b1.jpg</url>
      </image>
      <item>
      <title><![CDATA[Mealie - Your Sovereign Recipe Manager for a Self-Hosted Kitchen]]></title>
      <description><![CDATA[Mealie is more than just a recipe app; it's a statement. It's a tool that aligns with the principles of the self-sovereign individual, giving you ownership and control over one more piece of your digital life. Fire up a Docker container, import your favorite recipes, and take the first step towards a more sovereign kitchen.]]></description>
             <itunes:subtitle><![CDATA[Mealie is more than just a recipe app; it's a statement. It's a tool that aligns with the principles of the self-sovereign individual, giving you ownership and control over one more piece of your digital life. Fire up a Docker container, import your favorite recipes, and take the first step towards a more sovereign kitchen.]]></itunes:subtitle>
      <pubDate>Mon, 05 Jan 2026 21:45:10 GMT</pubDate>
      <link>https://settebello.npub.pro/post/9eea66cc/</link>
      <comments>https://settebello.npub.pro/post/9eea66cc/</comments>
      <guid isPermaLink="false">naddr1qqyrjet9vymrvcmrqgszpcta6rkphvyry6ywwwdd39cf6praav37652xsgh0m5kj9tjsf4crqsqqqa287ss2ct</guid>
      <category>nostr</category>
      
        <media:content url="https://blossom.band/77c24db3580d375095589f8bcd1f077320665dcc247801a669ec2839b1a83522.png" medium="image"/>
        <enclosure 
          url="https://blossom.band/77c24db3580d375095589f8bcd1f077320665dcc247801a669ec2839b1a83522.png" length="0" 
          type="image/png" 
        />
      <noteId>naddr1qqyrjet9vymrvcmrqgszpcta6rkphvyry6ywwwdd39cf6praav37652xsgh0m5kj9tjsf4crqsqqqa287ss2ct</noteId>
      <npub>npub1yrshm58vrwcgxf5guuu6mztsn5z8m6era4g5dq3wlhfdy2h9qntsp0ja94</npub>
      <dc:creator><![CDATA[Settebello]]></dc:creator>
      <content:encoded><![CDATA[<p>For those of us who value sovereignty in our digital lives, the control extends beyond our finances into our daily tools. We run our own nodes, manage our own keys, and seek to minimize our reliance on third-party services. Yet, a seemingly mundane part of life—managing recipes—often remains shackled to cloud services, tracking, and proprietary platforms.</p>
<p>Enter Mealie. It's a self-hosted recipe manager and meal planner built for privacy and control. It's the perfect addition to the sovereign homestead's digital toolkit, putting your culinary data back where it belongs: under your ownership.</p>
<h2>Why Self-Host Your Recipes?</h2>
<p>Before we dive into the "how," let's cover the "why." As a Bitcoiner or Monero enthusiast, you already understand the principles:</p>
<ul>
<li><strong>Data Ownership:</strong> Your recipes, meal plans, and shopping lists are your data. With Mealie, they are stored in a database you control, on hardware you control. No company can mine this data, sell it, or lock you out of your own account.</li>
<li><strong>Privacy:</strong> No tracking pixels, no analytics, no "smart" recommendations based on your dietary habits. Your cooking habits remain private.</li>
<li><strong>Censorship Resistance:</strong> Your service can't be de-platformed. As long as your server runs, Mealie runs.</li>
<li><strong>Offline-First Mindset:</strong> Hosted on your local network, Mealie is fast and accessible even when your internet connection is flaky. It's a truly resilient system.</li>
<li><strong>Customization and Control:</strong> You control the environment, the backups, and the integrations.</li>
</ul>
<h2>Installing Mealie with Docker Compose</h2>
<p>For a bare metal server, Docker Compose is the cleanest and most manageable way to deploy Mealie. It isolates the application and its dependencies, making updates and maintenance straightforward.</p>
<p>This guide assumes you have a server running a Linux distribution with Docker and Docker Compose installed.</p>
<h3>Step 1: Create the Project Directory</h3>
<p>SSH into your server and create a dedicated directory for Mealie.</p>
<pre><code class="language-bash">mkdir mealie
cd mealie
</code></pre>
<h3>Step 2: Create the ,<code>docker-compose.yml</code>, File</h3>
<p>This file defines the Mealie service and its configuration. Create a new file named <code>docker-compose.yml</code> and paste the following content into it.</p>
<pre><code class="language-yaml">version: '3.8'

services:
  mealie:
    image: hkotel/mealie:latest
    container_name: mealie
    restart: unless-stopped
    ports:
      - "80:80" # Exposes Mealie on port 80. Change if needed.
    volumes:
      - ./data:/app/data/ # Persists all Mealie data.
    environment:
      # 
      # Using SQLite is the simplest for a single-user setup.
      # For multi-user or more robust setups, consider PostgreSQL.
      DB_TYPE: sqlite
      # 
      # The default API token for the initial setup. Change this immediately.
      DEFAULT_EMAIL: admin@example.com
      # 
      # Set your initial admin credentials.
      # These are only used on first run if the database is empty.
      # IMPORTANT: Change these before your first run!
      INITIAL_ADMIN_EMAIL: your-admin@email.com
      INITIAL_ADMIN_PASSWORD: your-secure-password
</code></pre>
<p><strong>Key Configuration Points:</strong></p>
<ul>
<li><p><code>ports</code>: This maps port 80 on your host to the Mealie container. If you have another service using port 80 (like a reverse proxy), change the host port (e.g., <code>"8090:80"</code>).</p>
</li>
<li><p><code>volumes</code>: This is crucial. It maps the <code>./data</code> directory on your host to the <code>/app/data</code> directory inside the container. This is where all your recipes, user data, and the database will live. <strong>Back up this directory regularly.</strong></p>
</li>
<li><p><code>environment</code>:</p>
</li>
<li><p><code>DEFAULT_EMAIL</code>: This is the default email for API access. It's good practice to set it to your admin email.</p>
</li>
<li><p><code>INITIAL_ADMIN_EMAIL</code> &amp; <code>INITIAL_ADMIN_PASSWORD</code>: <strong>Change these now.</strong> These credentials are used to create the first administrator account the first time Mealie starts up. After the initial setup, these variables are ignored.</p>
</li>
</ul>
<h3>Step 3: Launch Mealie</h3>
<p>With the <code>docker-compose.yml</code> file in place, you can start the service.</p>
<pre><code class="language-bash">docker-compose up -d
</code></pre>
<p>The <code>-d</code> flag runs the container in detached mode (in the background). Docker will pull the latest Mealie image and start the container. This may take a few minutes on the first run as it initializes the database.</p>
<h3>Step 4: Initial Setup and Hardening</h3>
<ol>
<li>Navigate to <code>http://your-server-ip</code> in your browser.</li>
<li>You should see the Mealie setup screen. Create your admin account using the <code>INITIAL_ADMIN_EMAIL</code> and <code>INITIAL_ADMIN_PASSWORD</code> you set in the compose file.</li>
<li>Once logged in, immediately go to the Admin Settings and change the default API token (<code>DEFAULT_EMAIL</code>).</li>
<li>Explore the settings and configure Mealie to your liking.</li>
</ol>
<p>Your sovereign recipe manager is now running.</p>
<hr>
<h2>Understanding the Recipe JSON Structure</h2>
<p>One of Mealie's most powerful features for the sovereignty-minded is its transparent and structured data format. Recipes are stored as simple JSON objects, making them easy to back up, edit manually, and even script. This is the antithesis of opaque, proprietary formats.</p>
<p>Here is an overview of the main sections in a recipe's JSON structure. You can view this by editing any recipe in Mealie and looking at its raw data.</p>
<h3>Core Recipe Object</h3>
<pre><code class="language-json">{
  "name": "Classic Beef Tacos",
  "description": "A simple and flavorful ground beef taco recipe.",
  "image": "images/recipes/12345678-1234-1234-1234-123456789012.jpg",
  "recipeYield": "4 servings",
  "recipeIngredient": [
    "1 lb ground beef",
    "1 packet taco seasoning",
    "1/2 cup water",
    "8 taco shells",
    "1 cup shredded cheese",
    "1 cup shredded lettuce",
    "1 tomato, diced",
    "1/2 cup sour cream"
  ],
  "recipeInstructions": [
    {
      "text": "Brown the ground beef in a skillet over medium-high heat."
    },
    {
      "text": "Drain the excess fat from the skillet."
    },
    {
      "text": "Add the taco seasoning and water to the beef. Stir and simmer until thickened."
    },
    {
      "text": "Warm the taco shells according to package directions."
    },
    {
      "text": "Fill the shells with the beef mixture and top with your favorite toppings."
    }
  ],
  "nutrition": {
    "calories": "350 kcal",
    "proteinContent": "25 g"
  },
  "orgURL": "https://example.com/original-recipe",
  "categories": ["Main Dish", "Beef", "Mexican"],
  "tags": ["quick", "weeknight", "kid-friendly"]
}
</code></pre>
<h3>Key JSON Fields Breakdown</h3>
<ul>
<li><code>name</code>: The title of your recipe.</li>
<li><code>description</code>: A short summary or notes about the recipe.</li>
<li><code>image</code>: A relative path to the recipe's image file, stored within your <code>./data</code> volume.</li>
<li><code>recipeYield</code>: How much the recipe makes (e.g., "4 servings", "1 loaf").</li>
<li><code>recipeIngredient</code>: An array of strings, where each string is a single ingredient. This is perfect for parsing into a shopping list.</li>
<li><code>recipeInstructions</code>: An array of instruction objects. Each object has a <code>text</code> field containing a step. This structured approach is far superior to a single block of text.</li>
<li><code>nutrition</code>: An object containing nutritional information like calories, protein, fat, etc. All are optional.</li>
<li><code>orgURL</code>: If you imported the recipe from a website, Mealie keeps a link to the original source.</li>
<li><code>categories</code>: An array of strings for broad categorization (e.g., "Dessert", "Dinner").</li>
<li><code>tags</code>: An array of strings for more specific, searchable tags (e.g., "gluten-free", "spicy", "grilling").</li>
</ul>
<p>This simple, human-readable structure is the foundation of Mealie's power. You can export your entire recipe collection as a single JSON file, providing a true, vendor-agnostic backup of your culinary knowledge.</p>
]]></content:encoded>
      <itunes:author><![CDATA[Settebello]]></itunes:author>
      <itunes:summary><![CDATA[<p>For those of us who value sovereignty in our digital lives, the control extends beyond our finances into our daily tools. We run our own nodes, manage our own keys, and seek to minimize our reliance on third-party services. Yet, a seemingly mundane part of life—managing recipes—often remains shackled to cloud services, tracking, and proprietary platforms.</p>
<p>Enter Mealie. It's a self-hosted recipe manager and meal planner built for privacy and control. It's the perfect addition to the sovereign homestead's digital toolkit, putting your culinary data back where it belongs: under your ownership.</p>
<h2>Why Self-Host Your Recipes?</h2>
<p>Before we dive into the "how," let's cover the "why." As a Bitcoiner or Monero enthusiast, you already understand the principles:</p>
<ul>
<li><strong>Data Ownership:</strong> Your recipes, meal plans, and shopping lists are your data. With Mealie, they are stored in a database you control, on hardware you control. No company can mine this data, sell it, or lock you out of your own account.</li>
<li><strong>Privacy:</strong> No tracking pixels, no analytics, no "smart" recommendations based on your dietary habits. Your cooking habits remain private.</li>
<li><strong>Censorship Resistance:</strong> Your service can't be de-platformed. As long as your server runs, Mealie runs.</li>
<li><strong>Offline-First Mindset:</strong> Hosted on your local network, Mealie is fast and accessible even when your internet connection is flaky. It's a truly resilient system.</li>
<li><strong>Customization and Control:</strong> You control the environment, the backups, and the integrations.</li>
</ul>
<h2>Installing Mealie with Docker Compose</h2>
<p>For a bare metal server, Docker Compose is the cleanest and most manageable way to deploy Mealie. It isolates the application and its dependencies, making updates and maintenance straightforward.</p>
<p>This guide assumes you have a server running a Linux distribution with Docker and Docker Compose installed.</p>
<h3>Step 1: Create the Project Directory</h3>
<p>SSH into your server and create a dedicated directory for Mealie.</p>
<pre><code class="language-bash">mkdir mealie
cd mealie
</code></pre>
<h3>Step 2: Create the ,<code>docker-compose.yml</code>, File</h3>
<p>This file defines the Mealie service and its configuration. Create a new file named <code>docker-compose.yml</code> and paste the following content into it.</p>
<pre><code class="language-yaml">version: '3.8'

services:
  mealie:
    image: hkotel/mealie:latest
    container_name: mealie
    restart: unless-stopped
    ports:
      - "80:80" # Exposes Mealie on port 80. Change if needed.
    volumes:
      - ./data:/app/data/ # Persists all Mealie data.
    environment:
      # 
      # Using SQLite is the simplest for a single-user setup.
      # For multi-user or more robust setups, consider PostgreSQL.
      DB_TYPE: sqlite
      # 
      # The default API token for the initial setup. Change this immediately.
      DEFAULT_EMAIL: admin@example.com
      # 
      # Set your initial admin credentials.
      # These are only used on first run if the database is empty.
      # IMPORTANT: Change these before your first run!
      INITIAL_ADMIN_EMAIL: your-admin@email.com
      INITIAL_ADMIN_PASSWORD: your-secure-password
</code></pre>
<p><strong>Key Configuration Points:</strong></p>
<ul>
<li><p><code>ports</code>: This maps port 80 on your host to the Mealie container. If you have another service using port 80 (like a reverse proxy), change the host port (e.g., <code>"8090:80"</code>).</p>
</li>
<li><p><code>volumes</code>: This is crucial. It maps the <code>./data</code> directory on your host to the <code>/app/data</code> directory inside the container. This is where all your recipes, user data, and the database will live. <strong>Back up this directory regularly.</strong></p>
</li>
<li><p><code>environment</code>:</p>
</li>
<li><p><code>DEFAULT_EMAIL</code>: This is the default email for API access. It's good practice to set it to your admin email.</p>
</li>
<li><p><code>INITIAL_ADMIN_EMAIL</code> &amp; <code>INITIAL_ADMIN_PASSWORD</code>: <strong>Change these now.</strong> These credentials are used to create the first administrator account the first time Mealie starts up. After the initial setup, these variables are ignored.</p>
</li>
</ul>
<h3>Step 3: Launch Mealie</h3>
<p>With the <code>docker-compose.yml</code> file in place, you can start the service.</p>
<pre><code class="language-bash">docker-compose up -d
</code></pre>
<p>The <code>-d</code> flag runs the container in detached mode (in the background). Docker will pull the latest Mealie image and start the container. This may take a few minutes on the first run as it initializes the database.</p>
<h3>Step 4: Initial Setup and Hardening</h3>
<ol>
<li>Navigate to <code>http://your-server-ip</code> in your browser.</li>
<li>You should see the Mealie setup screen. Create your admin account using the <code>INITIAL_ADMIN_EMAIL</code> and <code>INITIAL_ADMIN_PASSWORD</code> you set in the compose file.</li>
<li>Once logged in, immediately go to the Admin Settings and change the default API token (<code>DEFAULT_EMAIL</code>).</li>
<li>Explore the settings and configure Mealie to your liking.</li>
</ol>
<p>Your sovereign recipe manager is now running.</p>
<hr>
<h2>Understanding the Recipe JSON Structure</h2>
<p>One of Mealie's most powerful features for the sovereignty-minded is its transparent and structured data format. Recipes are stored as simple JSON objects, making them easy to back up, edit manually, and even script. This is the antithesis of opaque, proprietary formats.</p>
<p>Here is an overview of the main sections in a recipe's JSON structure. You can view this by editing any recipe in Mealie and looking at its raw data.</p>
<h3>Core Recipe Object</h3>
<pre><code class="language-json">{
  "name": "Classic Beef Tacos",
  "description": "A simple and flavorful ground beef taco recipe.",
  "image": "images/recipes/12345678-1234-1234-1234-123456789012.jpg",
  "recipeYield": "4 servings",
  "recipeIngredient": [
    "1 lb ground beef",
    "1 packet taco seasoning",
    "1/2 cup water",
    "8 taco shells",
    "1 cup shredded cheese",
    "1 cup shredded lettuce",
    "1 tomato, diced",
    "1/2 cup sour cream"
  ],
  "recipeInstructions": [
    {
      "text": "Brown the ground beef in a skillet over medium-high heat."
    },
    {
      "text": "Drain the excess fat from the skillet."
    },
    {
      "text": "Add the taco seasoning and water to the beef. Stir and simmer until thickened."
    },
    {
      "text": "Warm the taco shells according to package directions."
    },
    {
      "text": "Fill the shells with the beef mixture and top with your favorite toppings."
    }
  ],
  "nutrition": {
    "calories": "350 kcal",
    "proteinContent": "25 g"
  },
  "orgURL": "https://example.com/original-recipe",
  "categories": ["Main Dish", "Beef", "Mexican"],
  "tags": ["quick", "weeknight", "kid-friendly"]
}
</code></pre>
<h3>Key JSON Fields Breakdown</h3>
<ul>
<li><code>name</code>: The title of your recipe.</li>
<li><code>description</code>: A short summary or notes about the recipe.</li>
<li><code>image</code>: A relative path to the recipe's image file, stored within your <code>./data</code> volume.</li>
<li><code>recipeYield</code>: How much the recipe makes (e.g., "4 servings", "1 loaf").</li>
<li><code>recipeIngredient</code>: An array of strings, where each string is a single ingredient. This is perfect for parsing into a shopping list.</li>
<li><code>recipeInstructions</code>: An array of instruction objects. Each object has a <code>text</code> field containing a step. This structured approach is far superior to a single block of text.</li>
<li><code>nutrition</code>: An object containing nutritional information like calories, protein, fat, etc. All are optional.</li>
<li><code>orgURL</code>: If you imported the recipe from a website, Mealie keeps a link to the original source.</li>
<li><code>categories</code>: An array of strings for broad categorization (e.g., "Dessert", "Dinner").</li>
<li><code>tags</code>: An array of strings for more specific, searchable tags (e.g., "gluten-free", "spicy", "grilling").</li>
</ul>
<p>This simple, human-readable structure is the foundation of Mealie's power. You can export your entire recipe collection as a single JSON file, providing a true, vendor-agnostic backup of your culinary knowledge.</p>
]]></itunes:summary>
      <itunes:image href="https://blossom.band/77c24db3580d375095589f8bcd1f077320665dcc247801a669ec2839b1a83522.png"/>
      </item>
      
      <item>
      <title><![CDATA[The Sovereign Author - Building a Nostr Publishing Pipeline with Tailscale]]></title>
      <description><![CDATA[Imagine a workflow where your notes are never trapped in a corporate silo, your ideas are backed up on hardware you physically own, and your connection to that hardware is private and seamless. This is the promise of a truly sovereign authoring stack, built on your own terms.

This guide will walk you through the three architectural pillars of this system: a personal database running on your own server, your Obsidian vault for writing, and the Nostr network for publishing. We will focus on the high-level concepts, using Tailscale to create a simple, private network that eliminates the need for complex DNS and HTTPS certificates.]]></description>
             <itunes:subtitle><![CDATA[Imagine a workflow where your notes are never trapped in a corporate silo, your ideas are backed up on hardware you physically own, and your connection to that hardware is private and seamless. This is the promise of a truly sovereign authoring stack, built on your own terms.

This guide will walk you through the three architectural pillars of this system: a personal database running on your own server, your Obsidian vault for writing, and the Nostr network for publishing. We will focus on the high-level concepts, using Tailscale to create a simple, private network that eliminates the need for complex DNS and HTTPS certificates.]]></itunes:subtitle>
      <pubDate>Tue, 30 Dec 2025 23:45:58 GMT</pubDate>
      <link>https://settebello.npub.pro/post/1281812a/</link>
      <comments>https://settebello.npub.pro/post/1281812a/</comments>
      <guid isPermaLink="false">naddr1qqyrzv3cxyurzvnpqgszpcta6rkphvyry6ywwwdd39cf6praav37652xsgh0m5kj9tjsf4crqsqqqa28tmd738</guid>
      <category>#nostr</category>
      
        <media:content url="https://blossom.band/8c00acb866807b2607be11b96cab7dfafc17ae79326e603be4a6093fa55dfced.png" medium="image"/>
        <enclosure 
          url="https://blossom.band/8c00acb866807b2607be11b96cab7dfafc17ae79326e603be4a6093fa55dfced.png" length="0" 
          type="image/png" 
        />
      <noteId>naddr1qqyrzv3cxyurzvnpqgszpcta6rkphvyry6ywwwdd39cf6praav37652xsgh0m5kj9tjsf4crqsqqqa28tmd738</noteId>
      <npub>npub1yrshm58vrwcgxf5guuu6mztsn5z8m6era4g5dq3wlhfdy2h9qntsp0ja94</npub>
      <dc:creator><![CDATA[Settebello]]></dc:creator>
      <content:encoded><![CDATA[<h2>Part 1: The Secure Foundation – Your Self-Hosted CouchDB on Your Own Server</h2>
<p>The first piece of our infrastructure is a personal database running on a server that you control. Think of this as your digital filing cabinet, sitting right in your own home or office.</p>
<ul>
<li><strong>What it is:</strong> We'll use a database server called CouchDB. It's lightweight, reliable for storing documents, and designed for replication—the perfect partner for syncing your notes.</li>
<li><strong>How it's hosted:</strong> You will run CouchDB on your own server. This could be a spare desktop computer, a dedicated small-form-factor PC, or a single-board computer like a Raspberry Pi. The key is that the hardware is yours.</li>
<li><strong>How it's secured:</strong> This is where we break from traditional methods. Instead of dealing with public IP addresses, domain names, and complex HTTPS certificates, we will use <strong>Tailscale</strong>. Tailscale creates a private, encrypted network between your devices, kind of like your own personal internet. Your laptop and your office server will be on this "Tailnet," allowing them to communicate securely without ever exposing your database to the public internet.</li>
</ul>
<p>The outcome of this stage is a secure, always-on database running on your own hardware, accessible only to you.</p>
<h2>Part 2: The Private Bridge – Connecting Obsidian via Tailscale</h2>
<p>With a secure filing cabinet in place on your Tailnet, the next step is to connect your Obsidian vault to it. This bridge uses your private Tailscale network, making the connection both simple and incredibly secure.</p>
<ul>
<li><strong>The Tool:</strong> We will use the "LiveSync" plugin for Obsidian. This is the specialized tool that knows how to talk to a CouchDB database.</li>
<li><strong>The Concept:</strong> After you've installed Tailscale on both your writing computer and your server, they can see each other using simple, private names. LiveSync will connect to your CouchDB instance through this secure Tailscale tunnel. It works in the background, automatically sending any new notes or changes you make in Obsidian directly to your server.</li>
<li><strong>The Magic of Sync:</strong> This remains a two-way street. It keeps your local vault and the remote database perfectly in sync. Whether you edit on your laptop or a desktop in another room, LiveSync ensures all your data is consistent and backed up on your own server, all traffic protected by Tailscale's end-to-end encryption.</li>
</ul>
<p>The outcome of this stage is a continuously backed-up Obsidian vault, with your data flowing securely over a private network to your own physical hardware.</p>
<h2>Part 3: The Public Megaphone – Publishing from Obsidian to Nostr</h2>
<p>Your thoughts are now safe, synchronized, and completely under your control on your own infrastructure. The final step is to turn select parts of that private vault into a public broadcast for the decentralized web.</p>
<ul>
<li><strong>The Plugin:</strong> We will install the "Nostr Writer" plugin into Obsidian. Its sole purpose is to format your notes and publish them to the Nostr network as permanent articles.</li>
<li><strong>The Protocol:</strong> Nostr is a decentralized, censorship-resistant social protocol. When you publish, your content is distributed across thousands of relays run by different people around the world. It effectively cannot be de-platformed or removed.</li>
<li><strong>The Workflow:</strong> The process is beautifully simple. You write an article within your synced vault. You add a small block of metadata at the top of the note (called frontmatter) to specify its title, summary, and tags. Then, with a single command from within Obsidian, the Nostr Writer plugin sends that note out to the Nostr network as a long-form, immutable event.</li>
</ul>
<p>The outcome is the ultimate goal: a thought born in your private mind, organized in your private vault on your private network, is now broadcast to the entire world as a permanent public record—all on your own terms and without ever leaving the comfort of your editor.</p>
<h2>Conclusion: You Hold the Hardware and the Keys</h2>
<p>By leveraging your own server and the simplicity of Tailscale, you have built a system that is the epitome of data sovereignty. Your work is private by default, backed up on hardware you own, and instantly publishable on your own terms. You are no longer just a writer; you are the master of your digital domain, from the steel of your server to the fabric of the decentralized internet.</p>
]]></content:encoded>
      <itunes:author><![CDATA[Settebello]]></itunes:author>
      <itunes:summary><![CDATA[<h2>Part 1: The Secure Foundation – Your Self-Hosted CouchDB on Your Own Server</h2>
<p>The first piece of our infrastructure is a personal database running on a server that you control. Think of this as your digital filing cabinet, sitting right in your own home or office.</p>
<ul>
<li><strong>What it is:</strong> We'll use a database server called CouchDB. It's lightweight, reliable for storing documents, and designed for replication—the perfect partner for syncing your notes.</li>
<li><strong>How it's hosted:</strong> You will run CouchDB on your own server. This could be a spare desktop computer, a dedicated small-form-factor PC, or a single-board computer like a Raspberry Pi. The key is that the hardware is yours.</li>
<li><strong>How it's secured:</strong> This is where we break from traditional methods. Instead of dealing with public IP addresses, domain names, and complex HTTPS certificates, we will use <strong>Tailscale</strong>. Tailscale creates a private, encrypted network between your devices, kind of like your own personal internet. Your laptop and your office server will be on this "Tailnet," allowing them to communicate securely without ever exposing your database to the public internet.</li>
</ul>
<p>The outcome of this stage is a secure, always-on database running on your own hardware, accessible only to you.</p>
<h2>Part 2: The Private Bridge – Connecting Obsidian via Tailscale</h2>
<p>With a secure filing cabinet in place on your Tailnet, the next step is to connect your Obsidian vault to it. This bridge uses your private Tailscale network, making the connection both simple and incredibly secure.</p>
<ul>
<li><strong>The Tool:</strong> We will use the "LiveSync" plugin for Obsidian. This is the specialized tool that knows how to talk to a CouchDB database.</li>
<li><strong>The Concept:</strong> After you've installed Tailscale on both your writing computer and your server, they can see each other using simple, private names. LiveSync will connect to your CouchDB instance through this secure Tailscale tunnel. It works in the background, automatically sending any new notes or changes you make in Obsidian directly to your server.</li>
<li><strong>The Magic of Sync:</strong> This remains a two-way street. It keeps your local vault and the remote database perfectly in sync. Whether you edit on your laptop or a desktop in another room, LiveSync ensures all your data is consistent and backed up on your own server, all traffic protected by Tailscale's end-to-end encryption.</li>
</ul>
<p>The outcome of this stage is a continuously backed-up Obsidian vault, with your data flowing securely over a private network to your own physical hardware.</p>
<h2>Part 3: The Public Megaphone – Publishing from Obsidian to Nostr</h2>
<p>Your thoughts are now safe, synchronized, and completely under your control on your own infrastructure. The final step is to turn select parts of that private vault into a public broadcast for the decentralized web.</p>
<ul>
<li><strong>The Plugin:</strong> We will install the "Nostr Writer" plugin into Obsidian. Its sole purpose is to format your notes and publish them to the Nostr network as permanent articles.</li>
<li><strong>The Protocol:</strong> Nostr is a decentralized, censorship-resistant social protocol. When you publish, your content is distributed across thousands of relays run by different people around the world. It effectively cannot be de-platformed or removed.</li>
<li><strong>The Workflow:</strong> The process is beautifully simple. You write an article within your synced vault. You add a small block of metadata at the top of the note (called frontmatter) to specify its title, summary, and tags. Then, with a single command from within Obsidian, the Nostr Writer plugin sends that note out to the Nostr network as a long-form, immutable event.</li>
</ul>
<p>The outcome is the ultimate goal: a thought born in your private mind, organized in your private vault on your private network, is now broadcast to the entire world as a permanent public record—all on your own terms and without ever leaving the comfort of your editor.</p>
<h2>Conclusion: You Hold the Hardware and the Keys</h2>
<p>By leveraging your own server and the simplicity of Tailscale, you have built a system that is the epitome of data sovereignty. Your work is private by default, backed up on hardware you own, and instantly publishable on your own terms. You are no longer just a writer; you are the master of your digital domain, from the steel of your server to the fabric of the decentralized internet.</p>
]]></itunes:summary>
      <itunes:image href="https://blossom.band/8c00acb866807b2607be11b96cab7dfafc17ae79326e603be4a6093fa55dfced.png"/>
      </item>
      
      </channel>
      </rss>
    