<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Self-Hosted on SelfVPS Guide</title><link>https://selfvps.net/en/tags/self-hosted/</link><description>Recent content in Self-Hosted on SelfVPS Guide</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><lastBuildDate>Sun, 17 May 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://selfvps.net/en/tags/self-hosted/index.xml" rel="self" type="application/rss+xml"/><item><title>Weekly Self-Hosted Roundup: N8N, Open-Source AI Tools &amp; VPS Saving Hacks (Week 2, May 2026)</title><link>https://selfvps.net/en/post/weekly-roundup-may-week2/</link><pubDate>Sun, 17 May 2026 10:00:00 +0800</pubDate><guid>https://selfvps.net/en/post/weekly-roundup-may-week2/</guid><description>&lt;h2 id="-this-week-at-selfvps"&gt;📅 This Week at SelfVPS
&lt;/h2&gt;&lt;p&gt;Welcome to the first edition of the SelfVPS &lt;strong&gt;Weekly Roundup&lt;/strong&gt;! This week we published three in-depth guides covering the &lt;strong&gt;three biggest pain points&lt;/strong&gt; in the self-hosting world: workflow automation, open-source AI deployment, and cloud cost optimization. This article distills everything into an essential digest, plus adds the hottest self-hosted projects trending in the community this week.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-top-5-self-hosted-tools-this-week"&gt;🥇 Top 5 Self-Hosted Tools This Week
&lt;/h2&gt;&lt;h3 id="1-n8n--the-king-of-open-source-workflow-automation"&gt;1️⃣ N8N — The King of Open-Source Workflow Automation
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Read the full guide&lt;/strong&gt;: &lt;a class="link" href="https://selfvps.net/en/post/n8n-deployment-guide/" &gt;N8N Deployment Guide&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;N8N is this week&amp;rsquo;s most-read tool. Dubbed the &amp;ldquo;open-source Zapier,&amp;rdquo; it supports &lt;strong&gt;400+ integrations&lt;/strong&gt; — from Slack and Gmail to GitHub and Discord.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cost Comparison:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Plan&lt;/th&gt;
 &lt;th&gt;Monthly Cost&lt;/th&gt;
 &lt;th&gt;Task Limit&lt;/th&gt;
 &lt;th&gt;Data Control&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Zapier Free&lt;/td&gt;
 &lt;td&gt;$0&lt;/td&gt;
 &lt;td&gt;100 tasks/mo&lt;/td&gt;
 &lt;td&gt;❌ Cloud&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Zapier Professional&lt;/td&gt;
 &lt;td&gt;$29.99&lt;/td&gt;
 &lt;td&gt;750 tasks/mo&lt;/td&gt;
 &lt;td&gt;❌ Cloud&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Make Free&lt;/td&gt;
 &lt;td&gt;$0&lt;/td&gt;
 &lt;td&gt;1000 ops/mo&lt;/td&gt;
 &lt;td&gt;❌ Cloud&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;N8N Self-Hosted&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;$0&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Unlimited&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;✅ &lt;strong&gt;Full Control&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Bottom line&lt;/strong&gt;: If you run more than 1,000 workflow tasks per month, self-hosting N8N saves you &lt;strong&gt;$360+ in the first year alone&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="2-localai--private-llm-inference"&gt;2️⃣ LocalAI — Private LLM Inference
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Read the full guide&lt;/strong&gt;: &lt;a class="link" href="https://selfvps.net/en/post/deploying-open-source-ai-tools/" &gt;Deploying Open-Source AI Tools&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;LocalAI is a fully OpenAI API-compatible, open-source alternative. Deploy it, and simply replace &lt;code&gt;api.openai.com&lt;/code&gt; in your code with your own server address.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# One-line LocalAI launch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run -p 8080:8080 --name localai &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -v &lt;span class="nv"&gt;$PWD&lt;/span&gt;/models:/build/models &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; localai/localai:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Why LocalAI over ChatGPT?&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Aspect&lt;/th&gt;
 &lt;th&gt;ChatGPT Plus&lt;/th&gt;
 &lt;th&gt;LocalAI Self-Hosted&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Monthly cost&lt;/td&gt;
 &lt;td&gt;$20/mo&lt;/td&gt;
 &lt;td&gt;VPS ~$8-15/mo&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Data privacy&lt;/td&gt;
 &lt;td&gt;OpenAI can inspect&lt;/td&gt;
 &lt;td&gt;Fully private&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Rate limits&lt;/td&gt;
 &lt;td&gt;50 msgs/3 hours&lt;/td&gt;
 &lt;td&gt;Unlimited&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Model choice&lt;/td&gt;
 &lt;td&gt;Limited&lt;/td&gt;
 &lt;td&gt;Any open model&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="3-ollama--easiest-llm-runner"&gt;3️⃣ Ollama — Easiest LLM Runner
&lt;/h3&gt;&lt;p&gt;If LocalAI feels too complex, Ollama is the ultimate &amp;ldquo;batteries included&amp;rdquo; option:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Install Ollama&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -fsSL https://ollama.com/install.sh &lt;span class="p"&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Run Mistral 7B in seconds&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ollama run mistral
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ollama has exploded in popularity — now &lt;strong&gt;150K+ GitHub Stars&lt;/strong&gt;. It supports 100+ models from 3B to 70B parameters.&lt;/p&gt;
&lt;h3 id="4-uptime-kuma--self-hosted-monitoring-dashboard"&gt;4️⃣ Uptime Kuma — Self-Hosted Monitoring Dashboard
&lt;/h3&gt;&lt;p&gt;Uptime Kuma is a beautiful, feature-rich self-hosted uptime monitor that&amp;rsquo;s been trending hard this week.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# One-click deploy with Docker Compose&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;3.8&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;services&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;uptime-kuma&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;louislam/uptime-kuma:latest&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;container_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;uptime-kuma&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;restart&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;unless-stopped&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;3001:3001&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;volumes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;uptime_kuma_data:/app/data&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;volumes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;uptime_kuma_data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Vs. Commercial Alternatives:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Feature&lt;/th&gt;
 &lt;th&gt;Uptime Kuma (Self-Hosted)&lt;/th&gt;
 &lt;th&gt;Better Uptime&lt;/th&gt;
 &lt;th&gt;Pingdom&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Price&lt;/td&gt;
 &lt;td&gt;Free&lt;/td&gt;
 &lt;td&gt;$24+/mo&lt;/td&gt;
 &lt;td&gt;$14.99+/mo&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Monitors&lt;/td&gt;
 &lt;td&gt;Unlimited&lt;/td&gt;
 &lt;td&gt;5 (free tier)&lt;/td&gt;
 &lt;td&gt;10 (free tier)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Notification channels&lt;/td&gt;
 &lt;td&gt;90+&lt;/td&gt;
 &lt;td&gt;20+&lt;/td&gt;
 &lt;td&gt;15+&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Status page&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;td&gt;✅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="5-vaultwarden--lightweight-password-manager"&gt;5️⃣ Vaultwarden — Lightweight Password Manager
&lt;/h3&gt;&lt;p&gt;A Rust implementation of Bitwarden that&amp;rsquo;s &lt;strong&gt;10x lighter&lt;/strong&gt; than the official server — runs on just 256MB RAM.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run -d --name vaultwarden &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -v /vw-data/:/data/ &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 80:80 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; vaultwarden/server:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Resource savings:&lt;/strong&gt; Compared to the official Bitwarden self-hosted edition (needs 2GB+ RAM), Vaultwarden uses &lt;strong&gt;1/10th the resources&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-cost-saving-highlights"&gt;💰 Cost-Saving Highlights
&lt;/h2&gt;&lt;h3 id="hetzner--best-bang-for-your-buck-in-2026"&gt;Hetzner — Best Bang for Your Buck in 2026
&lt;/h3&gt;&lt;p&gt;Key data from our VPS cost-saving guide:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Provider&lt;/th&gt;
 &lt;th&gt;2 vCPU / 4GB&lt;/th&gt;
 &lt;th&gt;4 vCPU / 8GB&lt;/th&gt;
 &lt;th&gt;Annual Discount&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Hetzner&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;€4.15/mo&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;€8.85/mo&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Already the lowest&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;DigitalOcean&lt;/td&gt;
 &lt;td&gt;$24/mo&lt;/td&gt;
 &lt;td&gt;$48/mo&lt;/td&gt;
 &lt;td&gt;10-20% annual&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Vultr&lt;/td&gt;
 &lt;td&gt;$24/mo&lt;/td&gt;
 &lt;td&gt;$48/mo&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Linode/Akamai&lt;/td&gt;
 &lt;td&gt;$24/mo&lt;/td&gt;
 &lt;td&gt;$48/mo&lt;/td&gt;
 &lt;td&gt;None&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;The annual cost gap is staggering:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hetzner 2 vCPU / 4GB: €4.15 × 12 = &lt;strong&gt;€49.80/year&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;DigitalOcean equivalent: $24 × 12 = &lt;strong&gt;$288/year&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Difference: &lt;strong&gt;5.8x more expensive&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="three-golden-rules-of-cloud-savings"&gt;Three Golden Rules of Cloud Savings
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Pick the right provider&lt;/strong&gt;: Hetzner&amp;rsquo;s 4 vCPU / 8GB at €8.85/mo runs N8N + LocalAI + Ollama + Uptime Kuma simultaneously without breaking a sweat&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consolidate with Docker&lt;/strong&gt;: Run multiple services on one VPS to maximize resource utilization&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Match pricing to usage&lt;/strong&gt;: Stable traffic → fixed plan. Spikey traffic → pay-as-you-go&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="-weekly-devops-tips"&gt;🛠 Weekly DevOps Tips
&lt;/h2&gt;&lt;h3 id="1-manage-everything-with-a-unified-docker-compose"&gt;1. Manage Everything with a Unified Docker Compose
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# Unified management for all your self-hosted services&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;3.8&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;services&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;n8n&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;extends&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./n8n/docker-compose.yml&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;service&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;n8n&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ollama&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ollama/ollama:latest&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;container_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ollama&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;restart&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;unless-stopped&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;11434:11434&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;volumes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;ollama_data:/root/.ollama&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;uptime-kuma&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;extends&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./uptime-kuma/docker-compose.yml&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;service&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;uptime-kuma&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;volumes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;n8n_data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ollama_data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;uptime_kuma_data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-automated-backup-script"&gt;2. Automated Backup Script
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Weekly auto-backup for all Docker data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;BACKUP_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/backups/&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date +%Y-%m-%d&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir -p &lt;span class="nv"&gt;$BACKUP_DIR&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Backup all Docker volumes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; volume in &lt;span class="k"&gt;$(&lt;/span&gt;docker volume ls -q&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; docker run --rm -v &lt;span class="nv"&gt;$volume&lt;/span&gt;:/data -v &lt;span class="nv"&gt;$BACKUP_DIR&lt;/span&gt;:/backup &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; alpine tar czf /backup/&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;volume&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;.tar.gz -C /data .
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Keep last 30 days only&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;find /backups -type d -mtime +30 -exec rm -rf &lt;span class="o"&gt;{}&lt;/span&gt; &lt;span class="se"&gt;\;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-monitor-resource-usage"&gt;3. Monitor Resource Usage
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Check all container resource usage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker stats --no-stream
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Install Netdata — one-command monitoring&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;bash &amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;curl -Ss https://my-netdata.io/kickstart.sh&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="-coming-next-week"&gt;🔮 Coming Next Week
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Day&lt;/th&gt;
 &lt;th&gt;Topic&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Monday&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Affine Deployment&lt;/strong&gt; — Open-source Notion alternative, self-host your knowledge base&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Tuesday&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;CDN Cost-Saving&lt;/strong&gt; — Cloudflare + self-hosted CDN hybrid strategy&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Wednesday&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;ComfyUI Guide&lt;/strong&gt; — The most powerful Stable Diffusion workflow tool&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Thursday&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Docker Security Hardening&lt;/strong&gt; — 10 best practices for container security&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Friday&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Spot Instance Survival Guide&lt;/strong&gt; — AWS/Azure spot instance savings tricks&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Saturday&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Self-Hosted vs SaaS: Total Cost Analysis&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Sunday&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Weekly Roundup #2&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="-final-thoughts"&gt;💬 Final Thoughts
&lt;/h2&gt;&lt;p&gt;The self-hosted ecosystem is thriving. This week we saw how N8N can replace Zapier and save &lt;strong&gt;95%+ on workflow costs&lt;/strong&gt;, how LocalAI and Ollama make private AI truly accessible, and how a &lt;strong&gt;€4.15/mo Hetzner VPS&lt;/strong&gt; can run it all.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It&amp;rsquo;s not about having many tools — it&amp;rsquo;s about having the right ones.&lt;/strong&gt; One VPS + Docker + the right open-source tools are all you need to build infrastructure that rivals any SaaS solution.&lt;/p&gt;
&lt;p&gt;Got a tool you&amp;rsquo;d like us to cover? Reach out — we read every suggestion. See you next Sunday! 👋&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Published on &lt;a class="link" href="https://selfvps.net" target="_blank" rel="noopener"
 &gt;SelfVPS Guide&lt;/a&gt;. Share freely — knowledge wants to be free.&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>