<?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: Alexander Neitzel</title>
    <description>The latest articles on Forem by Alexander Neitzel (@therealfloatdev).</description>
    <link>https://forem.com/therealfloatdev</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%2F2399141%2Fdafa8e30-21c6-413a-b533-29e9c8f5da14.jpg</url>
      <title>Forem: Alexander Neitzel</title>
      <link>https://forem.com/therealfloatdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/therealfloatdev"/>
    <language>en</language>
    <item>
      <title>Facebook Outage 2021: What You Missed (And How External Monitoring Keeps You Safe)</title>
      <dc:creator>Alexander Neitzel</dc:creator>
      <pubDate>Wed, 09 Jul 2025 11:06:25 +0000</pubDate>
      <link>https://forem.com/therealfloatdev/facebook-outage-2021-what-you-missed-and-how-external-monitoring-keeps-you-safe-4mbl</link>
      <guid>https://forem.com/therealfloatdev/facebook-outage-2021-what-you-missed-and-how-external-monitoring-keeps-you-safe-4mbl</guid>
      <description>&lt;p&gt;On &lt;strong&gt;October 4, 2021&lt;/strong&gt;, Facebook, Instagram, WhatsApp and Messenger all went dark for over &lt;strong&gt;6 hours&lt;/strong&gt;, affecting billions worldwide.&lt;br&gt;&lt;br&gt;
The outage wasn’t just a blip—it was a wake-up call:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Even the biggest platforms go down. Are you ready if yours does?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  ⚠️ What Actually Happened
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A faulty update to Facebook’s backbone network routers caused DNS disruptions
&lt;/li&gt;
&lt;li&gt;This sealed off Facebook’s internal systems — including monitoring, recovery tools, internal dashboards and even office access
&lt;/li&gt;
&lt;li&gt;The issue persisted for ~6 hours, with global knock-on effects across digital businesses and workflows&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 Why Internal Tools Fell Short
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Internal monitoring died with the network&lt;/strong&gt; — no visibility when your infra “transforms into a black box”
&lt;/li&gt;
&lt;li&gt;Even internal response teams couldn’t login or use tools
&lt;/li&gt;
&lt;li&gt;No fallback — everything was dead until the network was fixed&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✅ Why External Monitoring + Status Pages Matter
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benefit&lt;/th&gt;
&lt;th&gt;Why It Helps&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;✅ External alerts&lt;/td&gt;
&lt;td&gt;Get notified even if your entire network is down&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌍 Global checks&lt;/td&gt;
&lt;td&gt;Detect DNS or routing failures anywhere&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌐 Public status pages&lt;/td&gt;
&lt;td&gt;Inform customers transparently&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📊 SLA and uptime tracking&lt;/td&gt;
&lt;td&gt;Build trust with data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📄 PDF reports &amp;amp; compliance&lt;/td&gt;
&lt;td&gt;Use in postmortem and legal audits&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🛠️ How Garmingo Status Keeps You Covered
&lt;/h2&gt;

&lt;p&gt;With &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;&lt;strong&gt;Garmingo Status&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🚨 Externally located monitors across geos
&lt;/li&gt;
&lt;li&gt;🔔 Alerts to Slack, Email, Telegram, Discord, Webhooks
&lt;/li&gt;
&lt;li&gt;🌐 Optional public &amp;amp; private status pages
&lt;/li&gt;
&lt;li&gt;📉 Historical uptime + SLA dashboards
&lt;/li&gt;
&lt;li&gt;🧾 Exportable PDF reports for teams
&lt;/li&gt;
&lt;li&gt;🆓 Lifetime AppSumo deal (&amp;lt;$50) or free forever plan&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Secure your lifetime monitoring today&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Final Takeaway
&lt;/h2&gt;

&lt;p&gt;Facebook taught us: &lt;strong&gt;failure can be existential—even at scale&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Relying only on internal tools? That’s a risk you can’t (and shouldn’t) afford.&lt;/p&gt;

&lt;p&gt;External monitoring and status pages are essential resilience infrastructure.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Try Garmingo Status free&lt;/a&gt; or get &lt;strong&gt;lifetime access now&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Lifetime AppSumo Deal&lt;/a&gt;&lt;/p&gt;

</description>
      <category>outage</category>
      <category>cloud</category>
      <category>monitoring</category>
      <category>devops</category>
    </item>
    <item>
      <title>What You Can Learn from the AWS US‑East‑1 Outage</title>
      <dc:creator>Alexander Neitzel</dc:creator>
      <pubDate>Wed, 09 Jul 2025 10:56:27 +0000</pubDate>
      <link>https://forem.com/therealfloatdev/what-you-can-learn-from-the-aws-us-east-1-outage-3edl</link>
      <guid>https://forem.com/therealfloatdev/what-you-can-learn-from-the-aws-us-east-1-outage-3edl</guid>
      <description>&lt;p&gt;On &lt;strong&gt;December 7, 2021&lt;/strong&gt;, AWS suffered a major outage in its &lt;strong&gt;US‑East‑1 region&lt;/strong&gt;, impacting tens of thousands of services—from streaming apps to SaaS dashboards to smart home devices. The outage lasted approximately &lt;strong&gt;5 hours&lt;/strong&gt; and demonstrated a critical truth:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When your cloud provider fails, so does your application—unless &lt;em&gt;you&lt;/em&gt; detect it externally.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  ⚠️ What Happened
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AWS reported a &lt;strong&gt;severe disruption to several Amazon services and partner apps&lt;/strong&gt;, including Amazon website, Elastic Compute Cloud (EC2), Elastic Load Balancer (ELB), Alexa, etc.
&lt;/li&gt;
&lt;li&gt;The root cause was an &lt;strong&gt;I/O degradation in Kinesis&lt;/strong&gt;, which triggered a series of reliance failures across internal services.
&lt;/li&gt;
&lt;li&gt;The issue took ~5 hours to fully resolve, with recovery beginning in the US‑East‑1 area and spilling over to other regions.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚨 Why This Matters to You
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Most monitoring is &lt;strong&gt;inside&lt;/strong&gt; your AWS account—so if AWS itself fails, your monitoring &lt;em&gt;dies with it.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Deploy pipelines, dashboards, and even incident responders didn’t know until users started complaining.
&lt;/li&gt;
&lt;li&gt;You need &lt;strong&gt;external alerting&lt;/strong&gt; to truly know when your app is impacted.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔍 How Garmingo Status Protects You
&lt;/h2&gt;

&lt;p&gt;Using &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;&lt;strong&gt;Garmingo Status&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌍 &lt;strong&gt;Health checks from multiple global locations&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🚨 Instant alerts through Slack, Email, Telegram, Discord, Webhook
&lt;/li&gt;
&lt;li&gt;🧾 &lt;strong&gt;Public or private status pages&lt;/strong&gt; to communicate during outages
&lt;/li&gt;
&lt;li&gt;📈 &lt;strong&gt;SLA tracking &amp;amp; PDF reports&lt;/strong&gt; for compliance or transparency
&lt;/li&gt;
&lt;li&gt;🆓 One-time payment on AppSumo or free forever plan&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Grab the Lifetime Deal on AppSumo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Or try Garmingo for free&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Lessons Learned
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Insight&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Don’t rely only on provider-side monitoring&lt;/td&gt;
&lt;td&gt;Add external uptime checks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Public status pages build trust&lt;/td&gt;
&lt;td&gt;Share live updates with users&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Track SLA over time&lt;/td&gt;
&lt;td&gt;Hold yourself (not AWS) accountable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Use multi-location monitoring&lt;/td&gt;
&lt;td&gt;Catch regional cloud issues fast&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🧘 TL;DR
&lt;/h2&gt;

&lt;p&gt;Cloud providers fail. That’s not a surprise—it’s a fact.&lt;br&gt;&lt;br&gt;
But you don’t need to fail with them.&lt;br&gt;&lt;br&gt;
External, global monitoring with proactive alerting is your buffer.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Lifetime Lifetime Deal – Garmingo Status on AppSumo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Free forever demo available&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>devops</category>
      <category>monitoring</category>
      <category>cloud</category>
    </item>
    <item>
      <title>CrowdStrike Outage 2024: Lessons Learned and Why You Need External Monitoring</title>
      <dc:creator>Alexander Neitzel</dc:creator>
      <pubDate>Wed, 09 Jul 2025 10:51:04 +0000</pubDate>
      <link>https://forem.com/therealfloatdev/crowdstrike-outage-2024-lessons-learned-and-why-you-need-external-monitoring-11i7</link>
      <guid>https://forem.com/therealfloatdev/crowdstrike-outage-2024-lessons-learned-and-why-you-need-external-monitoring-11i7</guid>
      <description>&lt;p&gt;On &lt;strong&gt;July 19, 2024&lt;/strong&gt;, a faulty configuration update from &lt;strong&gt;CrowdStrike&lt;/strong&gt; triggered a &lt;em&gt;blue screen of death&lt;/em&gt; on approximately &lt;strong&gt;8.5 million Windows devices&lt;/strong&gt;, causing the largest IT outage in history. From airline systems to banks, hospitals to broadcasters — the fallout was global  &lt;a href="https://en.wikipedia.org/wiki/2024_CrowdStrike-related_IT_outages" rel="noopener noreferrer"&gt;Source&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;The incident lasted for days in some cases, grounding flights, crippling emergency services, and taking down critical systems.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 What Happened
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A flawed Falcon sensor update (Channel File 291) caused &lt;strong&gt;BSOD crashes&lt;/strong&gt; on Windows hosts
&lt;/li&gt;
&lt;li&gt;Initial rollout began at &lt;strong&gt;04:09 UTC&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;An estimated &lt;strong&gt;8.5 million devices&lt;/strong&gt; crashed, with ripple effects through Azure and other services  &lt;a href="https://en.wikipedia.org/wiki/CrowdStrike" rel="noopener noreferrer"&gt;Source&lt;/a&gt; &lt;a href="https://en.wikipedia.org/wiki/2024_CrowdStrike-related_IT_outages" rel="noopener noreferrer"&gt;Source&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Recovery was slow — manual fixes and patch rollouts took &lt;em&gt;days or weeks&lt;/em&gt; in many environments  &lt;a href="https://en.wikipedia.org/wiki/2024_CrowdStrike-related_IT_outages" rel="noopener noreferrer"&gt;Source&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🌍 Global Disruption
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Delta Air Lines&lt;/strong&gt; canceled over &lt;strong&gt;7,000 flights&lt;/strong&gt; and lost an estimated &lt;strong&gt;\$500 million&lt;/strong&gt; — more days of disruption followed  &lt;a href="https://en.wikipedia.org/wiki/2024_Delta_Air_Lines_disruption" rel="noopener noreferrer"&gt;Source&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;UK financial regulators reported firms must improve resilience after the event  &lt;a href="https://www.reuters.com/technology/cybersecurity/uk-finance-firms-told-beef-up-buffers-against-crowdstrike-like-events-2024-10-31/" rel="noopener noreferrer"&gt;Source&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;CrowdStrike’s market cap dropped by over a third, costing investors tens of billions, before partially recovering later in the year  &lt;a href="https://www.investors.com/research/sp500-ai-stock-crowdstrike-crwd/" rel="noopener noreferrer"&gt;Source&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 Why Internal Monitoring Failed
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The crash happened on the &lt;strong&gt;endpoint side&lt;/strong&gt; — internal servers and services were unaffected
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-hosted tools can't watch themselves:&lt;/strong&gt; If the entire machine crashes, there's no one to alert you
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No multi-region or external visibility&lt;/strong&gt;, so admins had no clue until users reported failures&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✅ Why External Monitoring Matters
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benefit&lt;/th&gt;
&lt;th&gt;Why It Helps&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🌍 Multi-location checks&lt;/td&gt;
&lt;td&gt;Detect regional or endpoint-level failures&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔔 External alerts&lt;/td&gt;
&lt;td&gt;You’ll know when the machine or service is offline&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📈 SLA &amp;amp; history&lt;/td&gt;
&lt;td&gt;Show reliability over time and pinpoint fault&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌐 Public / private status pages&lt;/td&gt;
&lt;td&gt;Communicate transparently with users/stakeholders&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📄 Reports &amp;amp; compliance&lt;/td&gt;
&lt;td&gt;Essential for audits, insurance, and recovery guidelines&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🛠️ Enter Garmingo Status
&lt;/h2&gt;

&lt;p&gt;With &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;&lt;strong&gt;Garmingo Status&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌍 Monitoring from multiple global locations
&lt;/li&gt;
&lt;li&gt;🔔 Alerts via Slack, Email, Telegram, Discord, Webhooks
&lt;/li&gt;
&lt;li&gt;📊 Uptime dashboards and SLA tracking
&lt;/li&gt;
&lt;li&gt;🧾 PDF and compliance-ready reports
&lt;/li&gt;
&lt;li&gt;📣 Public or internal status pages to keep everyone informed
&lt;/li&gt;
&lt;li&gt;🆓 A &lt;strong&gt;one-time‑purchase Lifetime Deal (~\$50)&lt;/strong&gt; or Free Demo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Get Garmingo Status Lifetime Deal on AppSumo&lt;/a&gt;  &lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Final Takeaway
&lt;/h2&gt;

&lt;p&gt;The CrowdStrike outage was a wake-up call — even the backbone of enterprise security can fail.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Internal tools alone can’t give you that external check&lt;/strong&gt; when disaster strikes.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;External, multi-location, SLA-tracked monitoring with instant alerts and status pages&lt;/strong&gt; is no longer optional — it’s essential.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Try Garmingo Status for free&lt;/a&gt; or secure lifetime uptime with the &lt;strong&gt;AppSumo Lifetime Deal&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧘 TL;DR
&lt;/h2&gt;

&lt;p&gt;A single faulty update broke millions of systems and cost billions.&lt;br&gt;&lt;br&gt;
External monitoring is your safety net — don’t wait until it’s too late.&lt;br&gt;&lt;br&gt;
&lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Grab Garmingo Status today — lifetime access or free trial.&lt;/a&gt;  &lt;/p&gt;

</description>
      <category>crowdstrike</category>
      <category>cloud</category>
      <category>monitoring</category>
      <category>sla</category>
    </item>
    <item>
      <title>Lessons from the June 2025 Google Cloud Outage (And How Monitoring Could Have Saved You)</title>
      <dc:creator>Alexander Neitzel</dc:creator>
      <pubDate>Wed, 09 Jul 2025 10:42:30 +0000</pubDate>
      <link>https://forem.com/therealfloatdev/lessons-from-the-june-2025-google-cloud-outage-and-how-monitoring-could-have-saved-you-25oi</link>
      <guid>https://forem.com/therealfloatdev/lessons-from-the-june-2025-google-cloud-outage-and-how-monitoring-could-have-saved-you-25oi</guid>
      <description>&lt;h1&gt;
  
  
  🚨 Lessons from the June 2025 Google Cloud Outage (And How Monitoring Could Have Saved You)
&lt;/h1&gt;

&lt;p&gt;On &lt;strong&gt;June 12, 2025&lt;/strong&gt;, a faulty quota configuration in Google Cloud’s API management system triggered widespread &lt;strong&gt;503 errors&lt;/strong&gt; across &lt;strong&gt;Google Cloud&lt;/strong&gt;, &lt;strong&gt;Workspace&lt;/strong&gt;, and many third-party apps like &lt;strong&gt;Spotify&lt;/strong&gt;, &lt;strong&gt;Discord&lt;/strong&gt;, and &lt;strong&gt;Cloudflare&lt;/strong&gt;  &lt;a href="https://www.theguardian.com/australia-news/article/2024/jul/19/microsoft-windows-pcs-outage-blue-screen-of-death" rel="noopener noreferrer"&gt;*0&lt;/a&gt; &lt;a href="https://status.cloud.google.com/incidents/ow5i3PPK96RduMcb1SsW" rel="noopener noreferrer"&gt;*1&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Duration:&lt;/strong&gt; ~3 hours (10:49 AM–1:49 PM Pacific)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Global impact&lt;/strong&gt;: DNS failures, deployment blocks, broken identity services — chaos.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 What Went Wrong
&lt;/h2&gt;

&lt;p&gt;Google published that an &lt;strong&gt;invalid automated quota update&lt;/strong&gt; was pushed globally, overloading the policy system since quota checks are regional.&lt;br&gt;&lt;br&gt;
They ultimately bypassed the faulty policy, but recovery took 2‑3 hours, with regions like us‑central1 taking longest  &lt;a href="https://status.cloud.google.com/incidents/ow5i3PPK96RduMcb1SsW" rel="noopener noreferrer"&gt;*2&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚫 Who Got Hit
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Nearly &lt;strong&gt;70+ Google services&lt;/strong&gt; disrupted (e.g. Gmail, Drive, Cloud Console)  &lt;a href="https://www.silicon.co.uk/cloud/cloud-management/google-resolves-global-cloud-outage-618254" rel="noopener noreferrer"&gt;*3&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;External platforms like &lt;strong&gt;Spotify&lt;/strong&gt;, &lt;strong&gt;Discord&lt;/strong&gt;, &lt;strong&gt;OpenAI&lt;/strong&gt; went dark  &lt;a href="https://www.silicon.co.uk/cloud/cloud-management/google-resolves-global-cloud-outage-618254" rel="noopener noreferrer"&gt;*4&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dev teams couldn’t deploy, support tools failed, authentication systems broke — widespread infra paralysis.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🕵️ Why Monitoring Doesn’t Guarantee Availability, But Helps Fast Recovery
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Internal checks&lt;/strong&gt; on a single region don’t reveal &lt;strong&gt;external user impact&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;external monitoring tool&lt;/strong&gt; could have alerted you in minutes — not hours&lt;/li&gt;
&lt;li&gt;You wouldn’t need to build your own status page around broken tools&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-location checks&lt;/strong&gt; ensure visibility even if your provider or region is down&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛠️ How Garmingo Status Protects You
&lt;/h2&gt;

&lt;p&gt;With &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;&lt;strong&gt;Garmingo Status&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌍 &lt;strong&gt;Global checks&lt;/strong&gt; from multiple regions&lt;/li&gt;
&lt;li&gt;📉 Track uptime &amp;amp; SLA performance&lt;/li&gt;
&lt;li&gt;📣 Get instant alerts via Slack, Email, Telegram, Discord…&lt;/li&gt;
&lt;li&gt;👁️‍🗨️ Publish public/private status pages&lt;/li&gt;
&lt;li&gt;📄 Generate incident reports &amp;amp; PDF uptime history&lt;/li&gt;
&lt;li&gt;🆓 Lifetime access under $50 (AppSumo Deal) or free forever option&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Grab your Garmingo Status Lifetime Deal&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Key Takeaways
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Lesson&lt;/th&gt;
&lt;th&gt;What You Can Do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Real-time external monitoring is a must&lt;/td&gt;
&lt;td&gt;Set up global uptime checks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Status pages speed up user trust recovery&lt;/td&gt;
&lt;td&gt;Publish incident updates proactively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SLA tracking ensures accountability&lt;/td&gt;
&lt;td&gt;Report uptime to stakeholders&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-location ensures resilience&lt;/td&gt;
&lt;td&gt;Detect regional P0 outages early&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In a world where &lt;strong&gt;cloud providers fail&lt;/strong&gt;, don’t be the last to know.&lt;/p&gt;

&lt;p&gt;👉 Ready for uptime you control?&lt;br&gt;&lt;br&gt;
&lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Try Garmingo Status free&lt;/a&gt; or lock in the &lt;strong&gt;AppSumo Lifetime Deal&lt;/strong&gt; below.&lt;/p&gt;




&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;A ~3‑hour Google Cloud outage wreaked havoc on global services. With &lt;strong&gt;external monitoring&lt;/strong&gt;, five-minute alerts, SLA tracking, and status page capabilities, &lt;strong&gt;Garmingo Status&lt;/strong&gt; could help you be the first to know — and keep your users informed.&lt;br&gt;&lt;br&gt;
Lifetime access = 💸 under $50 one-time.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Lifetime Deal on AppSumo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>googlecloud</category>
      <category>monitoring</category>
      <category>outage</category>
    </item>
    <item>
      <title>How to Self-Host AnythingLLM — Your Own AI Knowledge Base with Monitoring</title>
      <dc:creator>Alexander Neitzel</dc:creator>
      <pubDate>Tue, 08 Jul 2025 15:08:57 +0000</pubDate>
      <link>https://forem.com/therealfloatdev/how-to-self-host-anythingllm-your-own-ai-knowledge-base-with-monitoring-5d28</link>
      <guid>https://forem.com/therealfloatdev/how-to-self-host-anythingllm-your-own-ai-knowledge-base-with-monitoring-5d28</guid>
      <description>&lt;h1&gt;
  
  
  🤖 How to Self-Host AnythingLLM — Your Own AI Knowledge Base with Monitoring
&lt;/h1&gt;

&lt;p&gt;Want ChatGPT, but trained on your own docs?&lt;br&gt;&lt;br&gt;
Want to host it yourself, with no limits or spying?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AnythingLLM&lt;/strong&gt; gives you that:&lt;br&gt;&lt;br&gt;
→ Self-hosted RAG (Retrieval-Augmented Generation) with OpenAI or Local LLMs&lt;br&gt;&lt;br&gt;
→ Drop in PDFs, Docs, Markdown, Notion pages, websites&lt;br&gt;&lt;br&gt;
→ Slick UI, document management, even team features&lt;/p&gt;

&lt;p&gt;In this guide, you’ll learn how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run AnythingLLM on your own Linux server
&lt;/li&gt;
&lt;li&gt;Use Docker to keep it isolated
&lt;/li&gt;
&lt;li&gt;Load up your docs
&lt;/li&gt;
&lt;li&gt;Monitor your LLM uptime like a pro&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🧰 What You’ll Need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A Linux server (Ubuntu/Debian)
👉 We recommend &lt;a href="https://hetzner.cloud/?ref=p2RIVbX5Qapw" rel="noopener noreferrer"&gt;Hetzner Cloud&lt;/a&gt; — great pricing &amp;amp; performance
&lt;/li&gt;
&lt;li&gt;Docker + Docker Compose
&lt;/li&gt;
&lt;li&gt;OpenAI API key or Local LLM (e.g. Ollama)
&lt;/li&gt;
&lt;li&gt;Docs you want to load
&lt;/li&gt;
&lt;li&gt;5–10 minutes&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🛠️ Step 1: Clone AnythingLLM
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/Mintplex-Labs/anything-llm.git  
cd anything-llm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ⚙️ Step 2: Configure the Environment
&lt;/h2&gt;

&lt;p&gt;Copy the example file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cp .env.example .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;code&gt;.env&lt;/code&gt; and update:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;OPENAI_API_KEY=your-openai-key&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Or set Ollama / Local LLM variables
&lt;/li&gt;
&lt;li&gt;Choose vector DB (Supabase is default)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📦 Step 3: Run with Docker
&lt;/h2&gt;

&lt;p&gt;Build and start:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker compose up -d --build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cool! Now visit:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;http://your-server-ip:3001&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Set up your admin account and log in.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Step 4: Load Your Documents
&lt;/h2&gt;

&lt;p&gt;You can now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload PDFs
&lt;/li&gt;
&lt;li&gt;Paste text
&lt;/li&gt;
&lt;li&gt;Connect Notion or URLs
&lt;/li&gt;
&lt;li&gt;Create multiple workspaces&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once ingested, you can chat with the content via the UI.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Step 5: (Optional) Run Ollama Locally
&lt;/h2&gt;

&lt;p&gt;If you don’t want OpenAI, install &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt; on the same or another server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -fsSL https://ollama.com/install.sh | sh  
ollama run llama3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then point AnythingLLM to your local endpoint in &lt;code&gt;.env&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  📡 Step 6: Monitor AnythingLLM with Garmingo Status
&lt;/h2&gt;

&lt;p&gt;Your AI knowledge base is now running — but is it reliable?&lt;/p&gt;

&lt;p&gt;If it goes down, your productivity (or users) go with it.&lt;br&gt;&lt;br&gt;
Make sure it stays up with &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;&lt;strong&gt;Garmingo Status&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;✅ Monitor your IP or domain&lt;br&gt;&lt;br&gt;
✅ Set alerts (Slack, Email, Telegram, Discord, etc.)&lt;br&gt;&lt;br&gt;
✅ Multi-location uptime checks&lt;br&gt;&lt;br&gt;
✅ Public or private status pages&lt;br&gt;&lt;br&gt;
✅ SLA tracking + monthly reports&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;One-time payment → Lifetime Deal!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🎁 &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Grab it on AppSumo here&lt;/a&gt; — under $50, no subscription.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧘 TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🧠 AnythingLLM gives you private ChatGPT with your docs
&lt;/li&gt;
&lt;li&gt;🐳 Self-host it with Docker
&lt;/li&gt;
&lt;li&gt;📊 Monitor it with Garmingo Status
&lt;/li&gt;
&lt;li&gt;💸 No monthly fees — forever&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Get Lifetime Access to Garmingo on AppSumo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Or test it free&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://hetzner.cloud/?ref=p2RIVbX5Qapw" rel="noopener noreferrer"&gt;Run it on Hetzner&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>openai</category>
      <category>docker</category>
      <category>llm</category>
    </item>
    <item>
      <title>How to Self-Host Coolify (Open Source Heroku) — With Monitoring &amp; Free Lifetime Alerts</title>
      <dc:creator>Alexander Neitzel</dc:creator>
      <pubDate>Tue, 08 Jul 2025 15:05:19 +0000</pubDate>
      <link>https://forem.com/therealfloatdev/how-to-self-host-coolify-open-source-heroku-with-monitoring-free-lifetime-alerts-4p9</link>
      <guid>https://forem.com/therealfloatdev/how-to-self-host-coolify-open-source-heroku-with-monitoring-free-lifetime-alerts-4p9</guid>
      <description>&lt;h1&gt;
  
  
  🚀 How to Self-Host Coolify (Open Source Heroku) — With Monitoring &amp;amp; Free Lifetime Alerts
&lt;/h1&gt;

&lt;p&gt;Coolify is a brilliant open-source platform that lets you self-host your own Heroku-style PaaS.&lt;br&gt;&lt;br&gt;
Deploy apps, databases, workers, and more — all from one dashboard.&lt;/p&gt;

&lt;p&gt;In this guide, you’ll learn how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploy Coolify using Docker
&lt;/li&gt;
&lt;li&gt;Host it on a budget-friendly server
&lt;/li&gt;
&lt;li&gt;Monitor it from the outside with &lt;strong&gt;Garmingo Status&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;All without paying monthly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s build your own mini-PaaS 👇&lt;/p&gt;


&lt;h2&gt;
  
  
  🧰 What You’ll Need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A Linux server (Ubuntu/Debian)
👉 We recommend &lt;a href="https://hetzner.cloud/?ref=p2RIVbX5Qapw" rel="noopener noreferrer"&gt;Hetzner Cloud&lt;/a&gt; — fast, reliable, cheap (€3/month)
&lt;/li&gt;
&lt;li&gt;Docker + Docker Compose
&lt;/li&gt;
&lt;li&gt;Domain (optional but recommended)
&lt;/li&gt;
&lt;li&gt;5–10 minutes&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🛠️ Step 1: Prepare Your Server
&lt;/h2&gt;

&lt;p&gt;Update &amp;amp; install Docker:&lt;br&gt;
&lt;/p&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 install docker.io docker-compose -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add your user to the docker group:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo usermod -aG docker $USER  
newgrp docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📦 Step 2: Deploy Coolify
&lt;/h2&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d \  
  --name coolify \  
  -p 3000:3000 \  
  -v /var/run/docker.sock:/var/run/docker.sock \  
  -v coolify-data:/app/data \  
  ghcr.io/coollabsio/coolify
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once it's running, go to:&lt;br&gt;&lt;br&gt;
&lt;code&gt;http://your-server-ip:3000&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Create your account and log in to the dashboard.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 Step 3: Add Domain &amp;amp; HTTPS (Recommended)
&lt;/h2&gt;

&lt;p&gt;Coolify supports automatic Let's Encrypt provisioning if you point a domain (e.g. &lt;code&gt;coolify.yourdomain.com&lt;/code&gt;) to the server IP.&lt;/p&gt;

&lt;p&gt;Set this in the dashboard or behind a reverse proxy.&lt;/p&gt;




&lt;h2&gt;
  
  
  📈 Step 4: Start Deploying Stuff
&lt;/h2&gt;

&lt;p&gt;Coolify can handle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Static apps
&lt;/li&gt;
&lt;li&gt;Dockerfiles &amp;amp; Git repos
&lt;/li&gt;
&lt;li&gt;Databases like PostgreSQL &amp;amp; MySQL
&lt;/li&gt;
&lt;li&gt;Background workers &amp;amp; CRON jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can even build CI/CD pipelines with webhooks or Git integration.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚨 Step 5: Monitor Coolify with Garmingo Status
&lt;/h2&gt;

&lt;p&gt;Coolify is your app platform. If it goes down, &lt;strong&gt;everything&lt;/strong&gt; breaks.&lt;br&gt;&lt;br&gt;
You need visibility outside your own stack.&lt;/p&gt;

&lt;p&gt;That’s where &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;&lt;strong&gt;Garmingo Status&lt;/strong&gt;&lt;/a&gt; comes in:&lt;/p&gt;

&lt;p&gt;✅ External uptime monitoring&lt;br&gt;&lt;br&gt;
✅ Multi-location checks&lt;br&gt;&lt;br&gt;
✅ Slack, Email, Discord &amp;amp; Webhook alerts&lt;br&gt;&lt;br&gt;
✅ Private or public status pages&lt;br&gt;&lt;br&gt;
✅ PDF reports &amp;amp; SLA logs&lt;br&gt;&lt;br&gt;
✅ Forever free tier &lt;strong&gt;or&lt;/strong&gt; one-time payment → Lifetime deal!&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Grab the Lifetime Deal here&lt;/a&gt; (under $50!)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You host your own PaaS. Now make sure it's always up.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧘 TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🧰 Install Coolify with Docker
&lt;/li&gt;
&lt;li&gt;🌐 Add a domain + TLS
&lt;/li&gt;
&lt;li&gt;🚀 Deploy your apps
&lt;/li&gt;
&lt;li&gt;📡 Monitor it with Garmingo Status
&lt;/li&gt;
&lt;li&gt;💸 Never pay monthly again&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Try the Lifetime Plan on AppSumo&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Or start free here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>selfhosted</category>
      <category>docker</category>
      <category>coolify</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>How to Self-Host SonarQube for Code Quality Analysis (with Monitoring)</title>
      <dc:creator>Alexander Neitzel</dc:creator>
      <pubDate>Tue, 08 Jul 2025 14:59:25 +0000</pubDate>
      <link>https://forem.com/therealfloatdev/how-to-self-host-sonarqube-for-code-quality-analysis-with-monitoring-1eld</link>
      <guid>https://forem.com/therealfloatdev/how-to-self-host-sonarqube-for-code-quality-analysis-with-monitoring-1eld</guid>
      <description>&lt;h1&gt;
  
  
  🧪 How to Self-Host SonarQube for Code Quality Analysis (with Monitoring)
&lt;/h1&gt;

&lt;p&gt;SonarQube is one of the best tools to catch bugs, security issues, and code smells — especially for larger projects and teams.&lt;br&gt;&lt;br&gt;
Good news: it’s open-source and easy to self-host.&lt;/p&gt;

&lt;p&gt;In this guide, you’ll learn how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set up SonarQube on your own server
&lt;/li&gt;
&lt;li&gt;Run it with Docker
&lt;/li&gt;
&lt;li&gt;Monitor it externally to keep your CI/CD reliable
&lt;/li&gt;
&lt;li&gt;Do all of this for a &lt;strong&gt;one-time lifetime price&lt;/strong&gt;, no monthly bill&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s go 👇&lt;/p&gt;


&lt;h2&gt;
  
  
  🧰 What You’ll Need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A Linux server (Ubuntu/Debian)
👉 &lt;em&gt;If you need one, we recommend &lt;a href="https://hetzner.cloud/?ref=p2RIVbX5Qapw" rel="noopener noreferrer"&gt;Hetzner Cloud&lt;/a&gt; — fast, reliable and cheap VPS starting at €3.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Docker + Docker Compose
&lt;/li&gt;
&lt;li&gt;5–10 minutes&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  ⚙️ Step 1: Create a Project Folder
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir sonarqube &amp;amp;&amp;amp; cd sonarqube
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📦 Step 2: Create a &lt;code&gt;docker-compose.yml&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Paste this config:&lt;br&gt;
&lt;/p&gt;

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

services:
  sonarqube:
    image: sonarqube:lts
    ports:
      - "9000:9000"
    environment:
      - SONAR_JDBC_URL=jdbc:postgresql://db:5432/sonarqube
      - SONAR_JDBC_USERNAME=sonar
      - SONAR_JDBC_PASSWORD=sonar
    depends_on:
      - db

  db:
    image: postgres:13
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
      - POSTGRES_DB=sonarqube
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🚀 Step 3: Start SonarQube
&lt;/h2&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After a minute, open:&lt;br&gt;&lt;br&gt;
&lt;code&gt;http://your-server-ip:9000&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Default credentials:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;User:&lt;/strong&gt; admin
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pass:&lt;/strong&gt; admin&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔐 Step 4: Secure Your Instance
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Change the default password
&lt;/li&gt;
&lt;li&gt;Add HTTPS using a reverse proxy (e.g. NGINX + Let’s Encrypt)
&lt;/li&gt;
&lt;li&gt;Use a firewall (e.g. UFW) to restrict access if needed&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔍 Step 5: Start Analyzing Code
&lt;/h2&gt;

&lt;p&gt;You can now connect your GitHub/GitLab/Bitbucket repos or run CLI scans.&lt;br&gt;&lt;br&gt;
Check code coverage, vulnerabilities, bugs, complexity and more.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Step 6: Monitor SonarQube with Garmingo Status
&lt;/h2&gt;

&lt;p&gt;SonarQube is often tied into your CI/CD pipeline.&lt;br&gt;&lt;br&gt;
If it goes down, builds fail and productivity suffers.&lt;/p&gt;

&lt;p&gt;Here’s how to prevent that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;&lt;strong&gt;Garmingo Status&lt;/strong&gt;&lt;/a&gt; to:

&lt;ul&gt;
&lt;li&gt;Monitor &lt;code&gt;http(s)://yourdomain.com:9000&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Track uptime &amp;amp; receive real-time alerts (Email, Slack, Telegram, etc.)
&lt;/li&gt;
&lt;li&gt;Maintain SLA logs and export reports
&lt;/li&gt;
&lt;li&gt;Set up internal or public status pages
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;It even has &lt;strong&gt;Ping&lt;/strong&gt;, &lt;strong&gt;Port&lt;/strong&gt;, &lt;strong&gt;DNS&lt;/strong&gt;, &lt;strong&gt;Keyword&lt;/strong&gt;, and &lt;strong&gt;SSL&lt;/strong&gt; checks&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;🎉 Right now, you can get &lt;strong&gt;Lifetime Access&lt;/strong&gt; for under $50 on AppSumo:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Grab the Garmingo Status Lifetime Deal&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧘 TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🐳 Spin up SonarQube in Docker
&lt;/li&gt;
&lt;li&gt;🔒 Secure your instance
&lt;/li&gt;
&lt;li&gt;📈 Monitor it with Garmingo Status
&lt;/li&gt;
&lt;li&gt;✅ Pay once — not monthly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Peace of mind = priceless. But in this case, it's actually just $49.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://appsumo.com/products/garmingo-status?utm_source=partner-link&amp;amp;utm_medium=referral&amp;amp;utm_campaign=partner-243639" rel="noopener noreferrer"&gt;Get Lifetime Monitoring on AppSumo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>codequality</category>
      <category>monitoring</category>
      <category>selfhosted</category>
      <category>docker</category>
    </item>
    <item>
      <title>How to Self-Host PostgreSQL (with Monitoring)</title>
      <dc:creator>Alexander Neitzel</dc:creator>
      <pubDate>Sun, 11 May 2025 15:55:59 +0000</pubDate>
      <link>https://forem.com/therealfloatdev/how-to-self-host-postgresql-with-monitoring-5apc</link>
      <guid>https://forem.com/therealfloatdev/how-to-self-host-postgresql-with-monitoring-5apc</guid>
      <description>&lt;p&gt;PostgreSQL is the backbone of tons of modern apps — powerful, reliable, and open-source.&lt;br&gt;&lt;br&gt;
And yes, self-hosting it is totally doable.&lt;/p&gt;

&lt;p&gt;In this guide, we’ll go through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installing PostgreSQL on a Linux server
&lt;/li&gt;
&lt;li&gt;Basic security &amp;amp; setup
&lt;/li&gt;
&lt;li&gt;Optional access via pgAdmin
&lt;/li&gt;
&lt;li&gt;Monitoring your database with &lt;strong&gt;Garmingo Status&lt;/strong&gt; for full visibility&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🧰 What You’ll Need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A Linux server (Ubuntu, Debian, etc.)
&lt;/li&gt;
&lt;li&gt;sudo/root access
&lt;/li&gt;
&lt;li&gt;~10 minutes&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  ⚡ Step 1: Install PostgreSQL
&lt;/h2&gt;

&lt;p&gt;Update your server:&lt;br&gt;
&lt;/p&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;p&gt;Install PostgreSQL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install postgresql postgresql-contrib -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check status:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl status postgresql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🛡️ Step 2: Set a Password for the &lt;code&gt;postgres&lt;/code&gt; User
&lt;/h2&gt;

&lt;p&gt;Switch to the postgres user:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo -i -u postgres
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then access the PostgreSQL shell:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Set a password:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;\password postgres  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exit with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;\q  
exit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🧱 Step 3: Create a Database &amp;amp; User
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo -i -u postgres  
createdb myappdb  
createuser myappuser  
psql  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the shell:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ALTER USER myappuser WITH ENCRYPTED PASSWORD 'strongpass';  
GRANT ALL PRIVILEGES ON DATABASE myappdb TO myappuser;  
\q  
exit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔐 Step 4: Enable Remote Access (Optional)
&lt;/h2&gt;

&lt;p&gt;Edit config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/postgresql/*/main/postgresql.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;listen_addresses = '*'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/postgresql/*/main/pg_hba.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;host    all             all             0.0.0.0/0            md5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restart:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl restart postgresql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🌐 Step 5: (Optional) Use pgAdmin for GUI Access
&lt;/h2&gt;

&lt;p&gt;Install pgAdmin via Docker, Snap, or locally.&lt;br&gt;&lt;br&gt;
Connect using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Host: your-server-ip
&lt;/li&gt;
&lt;li&gt;Port: 5432
&lt;/li&gt;
&lt;li&gt;User: &lt;code&gt;myappuser&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Password: the one you set&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✅ Step 6: Monitor PostgreSQL with Garmingo Status
&lt;/h2&gt;

&lt;p&gt;Postgres is mission-critical. If it goes down, everything breaks.&lt;/p&gt;

&lt;p&gt;Here’s how to make sure that never happens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Garmingo Status&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Add a &lt;strong&gt;Port monitor&lt;/strong&gt; for &lt;code&gt;5432&lt;/code&gt; on your server’s IP
&lt;/li&gt;
&lt;li&gt;Get alerts via Email, Slack, Telegram, Discord, or Webhooks
&lt;/li&gt;
&lt;li&gt;View historical uptime
&lt;/li&gt;
&lt;li&gt;Log incidents
&lt;/li&gt;
&lt;li&gt;Generate monthly SLA reports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🆓 All available on the &lt;strong&gt;forever free plan&lt;/strong&gt;, no credit card required.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Set up your DB monitoring now&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧘 TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ Install PostgreSQL
&lt;/li&gt;
&lt;li&gt;🔐 Secure + configure remote access
&lt;/li&gt;
&lt;li&gt;🛠️ Create user + DB
&lt;/li&gt;
&lt;li&gt;📊 Monitor uptime and availability with Garmingo Status&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because databases don’t break often —&lt;br&gt;&lt;br&gt;
…but when they do, it hurts.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Get real monitoring now&lt;/a&gt;&lt;/p&gt;

</description>
      <category>sql</category>
      <category>postgres</category>
      <category>monitoring</category>
      <category>devops</category>
    </item>
    <item>
      <title>How to Self-Host Uptime Kuma (And When You Should Use Something Better)</title>
      <dc:creator>Alexander Neitzel</dc:creator>
      <pubDate>Sun, 11 May 2025 15:48:09 +0000</pubDate>
      <link>https://forem.com/therealfloatdev/how-to-self-host-uptime-kuma-and-when-you-should-use-something-better-6d7</link>
      <guid>https://forem.com/therealfloatdev/how-to-self-host-uptime-kuma-and-when-you-should-use-something-better-6d7</guid>
      <description>&lt;p&gt;&lt;strong&gt;Uptime Kuma&lt;/strong&gt; is a great open-source tool — simple, fast, and easy to run on your own server.&lt;/p&gt;

&lt;p&gt;If you’re just getting started with monitoring or want something lightweight for internal use, it’s an awesome choice.&lt;/p&gt;

&lt;p&gt;But if you’re running &lt;strong&gt;production infrastructure&lt;/strong&gt;, working with &lt;strong&gt;SLAs&lt;/strong&gt;, or need &lt;strong&gt;real visibility and compliance&lt;/strong&gt;, you’ll eventually hit its limits.&lt;/p&gt;

&lt;p&gt;Let’s start by showing you how to set it up — and then we’ll explain where it stops short 👇&lt;/p&gt;




&lt;h2&gt;
  
  
  🧰 What You’ll Need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Linux server (Ubuntu, Debian, etc.)
&lt;/li&gt;
&lt;li&gt;Docker + Docker Compose
&lt;/li&gt;
&lt;li&gt;Optional: domain + SSL
&lt;/li&gt;
&lt;li&gt;5 minutes&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Step 1: Project Setup
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir uptime-kuma &amp;amp;&amp;amp; cd uptime-kuma
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ⚙️ Step 2: Docker Compose Config
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: '3.3'

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    restart: always
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🧱 Step 3: Deploy It
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now access Kuma at:&lt;br&gt;&lt;br&gt;
&lt;code&gt;http://your-server-ip:3001&lt;/code&gt;&lt;br&gt;&lt;br&gt;
Create an admin user and you’re ready to go.&lt;/p&gt;




&lt;h2&gt;
  
  
  📊 Step 4: Add Monitors
&lt;/h2&gt;

&lt;p&gt;Kuma supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP(s), Ping, Port, DNS, Keyword
&lt;/li&gt;
&lt;li&gt;Alerts via Email, Telegram, Discord, Slack &amp;amp; more&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🌐 Step 5: Optional – Add a Custom Domain
&lt;/h2&gt;

&lt;p&gt;Point &lt;code&gt;status.yourdomain.com&lt;/code&gt; to your server.&lt;br&gt;&lt;br&gt;
Use a reverse proxy with Let’s Encrypt for HTTPS.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤔 But Here’s the Catch
&lt;/h2&gt;

&lt;p&gt;Uptime Kuma is &lt;strong&gt;self-hosted monitoring&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
It only works as long as your server works.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which means:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;❌ No alerts if the entire server is offline
&lt;/li&gt;
&lt;li&gt;❌ No geo-distributed checks
&lt;/li&gt;
&lt;li&gt;❌ No SLA reports or compliance features
&lt;/li&gt;
&lt;li&gt;❌ No multi-tenant team management
&lt;/li&gt;
&lt;li&gt;❌ No support, no guarantees, no roadmap
&lt;/li&gt;
&lt;li&gt;❌ No easy public status pages or incident comms&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✅ The Better Alternative: Garmingo Status
&lt;/h2&gt;

&lt;p&gt;If you need &lt;strong&gt;real monitoring&lt;/strong&gt; that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌍 Checks from multiple global locations
&lt;/li&gt;
&lt;li&gt;📈 Tracks uptime history &amp;amp; SLA targets
&lt;/li&gt;
&lt;li&gt;🧾 Generates automated PDF reports
&lt;/li&gt;
&lt;li&gt;🔐 Supports compliance &amp;amp; access control
&lt;/li&gt;
&lt;li&gt;💬 Offers status pages (public or private)
&lt;/li&gt;
&lt;li&gt;📣 Sends alerts via Slack, Email, Telegram, Webhooks, etc.
&lt;/li&gt;
&lt;li&gt;🙌 Has a responsive support team &amp;amp; active roadmap
&lt;/li&gt;
&lt;li&gt;💡 Stays online even when your infra crashes
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then &lt;a href="https://garmingo.com/status" rel="noopener noreferrer"&gt;&lt;strong&gt;Garmingo Status&lt;/strong&gt;&lt;/a&gt; is the better choice — full stop.&lt;/p&gt;

&lt;p&gt;And yes: there’s a &lt;strong&gt;forever free plan&lt;/strong&gt;, no credit card needed.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Try it free here&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧘 TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🟢 Uptime Kuma is a great open-source tool for small setups
&lt;/li&gt;
&lt;li&gt;🔴 But self-hosted monitoring can’t monitor itself
&lt;/li&gt;
&lt;li&gt;🔥 Garmingo Status gives you &lt;strong&gt;external, reliable, production-ready monitoring&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your uptime actually matters — Garmingo is what you want watching it.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Start your free monitoring stack today&lt;/a&gt;&lt;/p&gt;

</description>
      <category>selfhost</category>
      <category>devops</category>
      <category>monitoring</category>
      <category>docker</category>
    </item>
    <item>
      <title>How to Self-Host Kimai (Time Tracking) on Linux (with Monitoring)</title>
      <dc:creator>Alexander Neitzel</dc:creator>
      <pubDate>Sun, 11 May 2025 15:39:43 +0000</pubDate>
      <link>https://forem.com/therealfloatdev/how-to-self-host-kimai-time-tracking-on-linux-with-monitoring-59ba</link>
      <guid>https://forem.com/therealfloatdev/how-to-self-host-kimai-time-tracking-on-linux-with-monitoring-59ba</guid>
      <description>&lt;p&gt;Kimai is a slick, open-source time tracking tool — great for freelancers, teams, and agencies who want full control and privacy.&lt;/p&gt;

&lt;p&gt;In this guide, I’ll show you how to self-host Kimai using Docker on any Linux server (Ubuntu, Debian…), get it up and running in minutes, and make sure it stays online 24/7 with monitoring from Garmingo.&lt;/p&gt;

&lt;p&gt;Let’s go 👇&lt;/p&gt;




&lt;h2&gt;
  
  
  🧰 What You’ll Need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A Linux server with Docker + Docker Compose
&lt;/li&gt;
&lt;li&gt;Basic terminal access (SSH)
&lt;/li&gt;
&lt;li&gt;Optional: domain + HTTPS
&lt;/li&gt;
&lt;li&gt;10 minutes&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Step 1: Create a Project Directory
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir kimai &amp;amp;&amp;amp; cd kimai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ⚙️ Step 2: Create a &lt;code&gt;docker-compose.yml&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Paste this into &lt;code&gt;docker-compose.yml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: '3.7'

services:
  kimai:
    image: kimai/kimai2:apache
    restart: unless-stopped
    ports:
      - "8001:8001"
    environment:
      - ADMINMAIL=admin@yourdomain.com
      - DATABASE_URL=mysql://kimai:kimai@db/kimai
    depends_on:
      - db

  db:
    image: mysql:5.7
    restart: unless-stopped
    environment:
      - MYSQL_DATABASE=kimai
      - MYSQL_USER=kimai
      - MYSQL_PASSWORD=kimai
      - MYSQL_ROOT_PASSWORD=rootpass
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🧱 Step 3: Launch Kimai
&lt;/h2&gt;

&lt;p&gt;Run the stack:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wait a minute, then open:&lt;br&gt;&lt;br&gt;
&lt;code&gt;http://your-server-ip:8001&lt;/code&gt;&lt;br&gt;&lt;br&gt;
Login with:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Username: &lt;code&gt;admin&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Password: &lt;code&gt;changeme&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Change your password immediately.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 Step 4: Optional – Add Domain + SSL
&lt;/h2&gt;

&lt;p&gt;Point &lt;code&gt;time.yourdomain.com&lt;/code&gt; to your server.&lt;br&gt;&lt;br&gt;
Use a reverse proxy like &lt;strong&gt;Caddy&lt;/strong&gt;, &lt;strong&gt;Nginx Proxy Manager&lt;/strong&gt;, or &lt;strong&gt;Traefik&lt;/strong&gt; to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Forward HTTPS requests to port 8001
&lt;/li&gt;
&lt;li&gt;Secure the connection with Let’s Encrypt&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧪 Step 5: Start Tracking Time
&lt;/h2&gt;

&lt;p&gt;Log in → create customers, projects, and time entries.&lt;br&gt;&lt;br&gt;
You can also invite your team and enable timesheets, exports, and invoice generation.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Step 6: Monitor Your Kimai Instance with Garmingo Status
&lt;/h2&gt;

&lt;p&gt;Kimai handles critical workflows — especially for clients, timesheets, and billing.&lt;br&gt;&lt;br&gt;
If it goes offline and you don’t know… you’ve got problems.&lt;/p&gt;

&lt;p&gt;Set up &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Garmingo Status&lt;/a&gt; to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitor &lt;code&gt;https://time.yourdomain.com&lt;/code&gt; or your IP
&lt;/li&gt;
&lt;li&gt;Alert you via Slack, Email, Telegram, Discord, or Webhook
&lt;/li&gt;
&lt;li&gt;Show uptime history &amp;amp; log incidents
&lt;/li&gt;
&lt;li&gt;Share a public or private status page
&lt;/li&gt;
&lt;li&gt;Get monthly uptime reports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🆓 All available on the &lt;strong&gt;forever free plan&lt;/strong&gt; — no credit card needed.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Set up your monitoring now&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧘 TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ Deploy Kimai with Docker
&lt;/li&gt;
&lt;li&gt;🔐 Secure with domain + HTTPS
&lt;/li&gt;
&lt;li&gt;🕵️ Track your time
&lt;/li&gt;
&lt;li&gt;📈 Monitor with Garmingo Status&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Time tracking shouldn’t stop when your server crashes.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Monitor your Kimai instance today&lt;/a&gt;&lt;/p&gt;

</description>
      <category>selfhost</category>
      <category>monitoring</category>
      <category>devops</category>
      <category>docker</category>
    </item>
    <item>
      <title>How to Self-Host Infisical (with Monitoring)</title>
      <dc:creator>Alexander Neitzel</dc:creator>
      <pubDate>Sun, 11 May 2025 15:36:20 +0000</pubDate>
      <link>https://forem.com/therealfloatdev/how-to-self-host-infisical-with-monitoring-3ol4</link>
      <guid>https://forem.com/therealfloatdev/how-to-self-host-infisical-with-monitoring-3ol4</guid>
      <description>&lt;p&gt;Infisical is a modern, open-source secret manager for developers — think self-hosted Doppler or Vault, but simpler and actually enjoyable to use.&lt;/p&gt;

&lt;p&gt;In this guide, I’ll show you how to deploy Infisical using Docker on any Linux server (Ubuntu, Debian, etc.), configure your environment, and keep your setup online and secure with &lt;strong&gt;uptime monitoring&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Let’s go 👇&lt;/p&gt;




&lt;h2&gt;
  
  
  🧰 What You’ll Need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A Linux server (Debian/Ubuntu preferred)
&lt;/li&gt;
&lt;li&gt;Docker &amp;amp; Docker Compose installed
&lt;/li&gt;
&lt;li&gt;A domain + SSL (optional but recommended)
&lt;/li&gt;
&lt;li&gt;10 minutes&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Step 1: Clone the Infisical Repo
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/infisical/infisical.git  
cd infisical/self-host
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ⚙️ Step 2: Configure the .env File
&lt;/h2&gt;

&lt;p&gt;Copy the example file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cp .env.template .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Edit values in &lt;code&gt;.env&lt;/code&gt; to match your setup. At minimum, update:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NODE_ENV=production  
ENCRYPTION_KEY=generate-strong-key  
DATABASE_URL=postgresql://infisical:password@db:5432/infisical  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can generate a strong encryption key with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;openssl rand -hex 32
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🛢️ Step 3: Set Up Docker Compose
&lt;/h2&gt;

&lt;p&gt;Infisical includes a ready-to-use &lt;code&gt;docker-compose.yml&lt;/code&gt;. Just run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This launches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Infisical server
&lt;/li&gt;
&lt;li&gt;A PostgreSQL database
&lt;/li&gt;
&lt;li&gt;A Redis cache&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After a few seconds, your instance should be available at:&lt;br&gt;&lt;br&gt;
&lt;code&gt;http://your-server-ip:8080&lt;/code&gt; or your custom domain.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 Step 4: Add HTTPS and a Domain (Optional)
&lt;/h2&gt;

&lt;p&gt;Use a reverse proxy (Caddy, Nginx, Traefik) to expose Infisical securely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Point &lt;code&gt;secrets.yourdomain.com&lt;/code&gt; to your VPS
&lt;/li&gt;
&lt;li&gt;Use Let’s Encrypt for SSL
&lt;/li&gt;
&lt;li&gt;Proxy port &lt;code&gt;8080&lt;/code&gt; to HTTPS&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧪 Step 5: Login &amp;amp; Create Your First Project
&lt;/h2&gt;

&lt;p&gt;Head to the web UI → sign up → create your first workspace.&lt;br&gt;&lt;br&gt;
Infisical lets you securely store &lt;code&gt;.env&lt;/code&gt; variables, share secrets between team members, and integrate into CI/CD pipelines.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Step 6: Add Monitoring with Garmingo Status
&lt;/h2&gt;

&lt;p&gt;Your secrets system is now live. But what happens when it goes down?&lt;/p&gt;

&lt;p&gt;💡 &lt;em&gt;Secret managers are core infra. Downtime = deploys break, apps crash, teams blocked.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here’s how to make sure that never happens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a free account at &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Garmingo Status&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Add a monitor for your Infisical URL (&lt;code&gt;https://secrets.yourdomain.com&lt;/code&gt;)
&lt;/li&gt;
&lt;li&gt;Set alerting to Slack, Email, Telegram, Discord, or Webhooks
&lt;/li&gt;
&lt;li&gt;(Optional) Create a private status page for internal visibility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You’ll get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Realtime alerts
&lt;/li&gt;
&lt;li&gt;Incident logs
&lt;/li&gt;
&lt;li&gt;SLA tracking
&lt;/li&gt;
&lt;li&gt;Monthly uptime reports
&lt;/li&gt;
&lt;li&gt;Peace of mind&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Get started here&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧘 TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ Clone Infisical
&lt;/li&gt;
&lt;li&gt;⚙️ Configure .env + secrets
&lt;/li&gt;
&lt;li&gt;🚀 Run with Docker
&lt;/li&gt;
&lt;li&gt;🔐 Secure with HTTPS
&lt;/li&gt;
&lt;li&gt;📈 Monitor with Garmingo Status&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Managing secrets is serious business — treat it like core infrastructure.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Monitor your Infisical instance now&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>selfhost</category>
      <category>docker</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>How to Install MySQL and phpMyAdmin on Ubuntu (with Monitoring)</title>
      <dc:creator>Alexander Neitzel</dc:creator>
      <pubDate>Sun, 11 May 2025 15:31:59 +0000</pubDate>
      <link>https://forem.com/therealfloatdev/how-to-install-mysql-and-phpmyadmin-on-ubuntu-with-monitoring-jl2</link>
      <guid>https://forem.com/therealfloatdev/how-to-install-mysql-and-phpmyadmin-on-ubuntu-with-monitoring-jl2</guid>
      <description>&lt;p&gt;MySQL and phpMyAdmin are the go-to combo for managing databases in web projects.&lt;br&gt;&lt;br&gt;
Whether you're building something serious or just tinkering, self-hosting your own stack gives you full control — and it’s easier than you think.&lt;/p&gt;

&lt;p&gt;In this guide, I’ll show you how to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install MySQL on Ubuntu
&lt;/li&gt;
&lt;li&gt;Secure your database
&lt;/li&gt;
&lt;li&gt;Set up phpMyAdmin
&lt;/li&gt;
&lt;li&gt;Add real uptime monitoring — so you know when something breaks&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  🧰 What You’ll Need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A fresh Ubuntu 22.04 server
&lt;/li&gt;
&lt;li&gt;sudo/root access
&lt;/li&gt;
&lt;li&gt;A domain name (optional, but recommended for phpMyAdmin)
&lt;/li&gt;
&lt;li&gt;10–15 minutes&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  ⚡ Step 1: Install MySQL Server
&lt;/h2&gt;

&lt;p&gt;Update your server:&lt;br&gt;
&lt;/p&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;p&gt;Install MySQL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install mysql-server -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Secure your installation:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Answer the prompts to remove anonymous users, disallow remote root login, etc.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔐 Step 2: Create a MySQL User and Database
&lt;/h2&gt;

&lt;p&gt;Log in to MySQL:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Then run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE DATABASE myapp_db;  
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'strongpassword';  
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myuser'@'localhost';  
FLUSH PRIVILEGES;  
EXIT;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🌐 Step 3: Install phpMyAdmin
&lt;/h2&gt;

&lt;p&gt;Install required dependencies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;During setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose Apache (if prompted)&lt;/li&gt;
&lt;li&gt;Configure a MySQL application password&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enable extensions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo phpenmod mbstring  
sudo systemctl restart apache2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now access it at:&lt;br&gt;&lt;br&gt;
&lt;code&gt;http://your-server-ip/phpmyadmin&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🌍 Step 4: (Optional) Set Up a Domain for phpMyAdmin
&lt;/h2&gt;

&lt;p&gt;Point a subdomain (like &lt;code&gt;db.yourdomain.com&lt;/code&gt;) to your server’s IP.&lt;br&gt;&lt;br&gt;
Then set up a reverse proxy (e.g. with NGINX) and secure it with HTTPS via Let’s Encrypt.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛡️ Step 5: Secure phpMyAdmin Access
&lt;/h2&gt;

&lt;p&gt;Protect access by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding &lt;code&gt;.htpasswd&lt;/code&gt; authentication
&lt;/li&gt;
&lt;li&gt;Restricting by IP
&lt;/li&gt;
&lt;li&gt;Moving it to a non-obvious path (&lt;code&gt;/mydbadmin&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✅ Step 6: Monitor Your MySQL Stack with Garmingo Status
&lt;/h2&gt;

&lt;p&gt;Congrats — your DB stack is running.&lt;br&gt;&lt;br&gt;
But what happens if it goes down?&lt;/p&gt;

&lt;p&gt;💡 Don’t wait to find out the hard way. Add uptime monitoring now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a free &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Garmingo Status&lt;/a&gt; account&lt;/li&gt;
&lt;li&gt;Add a monitor for:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;http(s)://yourdomain.com/phpmyadmin&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Port 3306 (MySQL)
&lt;/li&gt;
&lt;li&gt;Your public IP (Ping monitor)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;You’ll get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time alerts (Slack, Email, Telegram, etc.)
&lt;/li&gt;
&lt;li&gt;Public or private status pages
&lt;/li&gt;
&lt;li&gt;Downtime logs &amp;amp; SLA tracking
&lt;/li&gt;
&lt;li&gt;PDF uptime reports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🆓 100% free plan. No credit card. Instant peace of mind.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Get started here&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧘 TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ Install MySQL
&lt;/li&gt;
&lt;li&gt;✅ Set up phpMyAdmin
&lt;/li&gt;
&lt;li&gt;🔒 Secure everything
&lt;/li&gt;
&lt;li&gt;📈 Monitor it with Garmingo Status&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your database goes down and no one's watching… is it really running?&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://garmingo.com/status#free-demo" rel="noopener noreferrer"&gt;Start monitoring your stack today&lt;/a&gt;&lt;/p&gt;

</description>
      <category>selfhosted</category>
      <category>devops</category>
      <category>docker</category>
      <category>mysql</category>
    </item>
  </channel>
</rss>
