<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Railyard</title><description>A PaaS on servers you own. Deploy full-stack apps with Postgres, workers and zero-downtime releases to your DigitalOcean, Hetzner or Vultr account. No markup.</description><link>https://railyard.run/</link><item><title>Elestio vs Railyard: two ways to buy a managed server, compared honestly</title><link>https://railyard.run/blog/elestio-vs-railyard-compared/</link><guid isPermaLink="true">https://railyard.run/blog/elestio-vs-railyard-compared/</guid><description>Elestio sells managed open-source hosting per service, with paid support tiers on top. Railyard sells a flat per-team platform. Here&apos;s what actually differs, and what doesn&apos;t.</description><pubDate>Tue, 10 Nov 2026 00:00:00 GMT</pubDate></item><item><title>Coolify vs Dokploy vs Railyard: three ways to run a self-hosted PaaS, compared honestly</title><link>https://railyard.run/blog/coolify-dokploy-railyard-compared/</link><guid isPermaLink="true">https://railyard.run/blog/coolify-dokploy-railyard-compared/</guid><description>Coolify and Dokploy are free, open-source panels you install and run yourself. Railyard is a hosted control plane for servers you still own. Here&apos;s what that difference actually costs you, in time and in dollars.</description><pubDate>Fri, 06 Nov 2026 00:00:00 GMT</pubDate></item><item><title>Railway and Heroku both got breached through shared infrastructure. Here&apos;s the actual pattern, not a sales pitch.</title><link>https://railyard.run/blog/paas-breaches-shared-infrastructure-risk/</link><guid isPermaLink="true">https://railyard.run/blog/paas-breaches-shared-infrastructure-risk/</guid><description>Railway&apos;s October 2026 environment-variable breach and Heroku&apos;s April 2022 OAuth token breach both trace back to the same kind of thing: a crack in shared platform infrastructure reaching many customers at once. What that pattern actually means, honestly.</description><pubDate>Thu, 05 Nov 2026 00:00:00 GMT</pubDate></item><item><title>Heroku is in sustaining engineering mode now, and that&apos;s a different kind of risk than a price increase</title><link>https://railyard.run/blog/heroku-sustaining-engineering/</link><guid isPermaLink="true">https://railyard.run/blog/heroku-sustaining-engineering/</guid><description>Heroku entered sustaining engineering mode in Feb. 2026: no new features, no new enterprise deals. What that risk means if you still run production there.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate></item><item><title>Fly.io&apos;s incident pattern through September and October 2026, verified against their own status page</title><link>https://railyard.run/blog/fly-io-incident-pattern/</link><guid isPermaLink="true">https://railyard.run/blog/fly-io-incident-pattern/</guid><description>Not one dramatic outage — a real pattern of 25 incidents on Fly.io&apos;s own status history in seven weeks. Here&apos;s what a shared multi-tenant edge network costs you, verified incident by incident.</description><pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Render&apos;s April 2026 repricing: no more per-seat fees, a lot less included bandwidth</title><link>https://railyard.run/blog/render-april-2026-repricing/</link><guid isPermaLink="true">https://railyard.run/blog/render-april-2026-repricing/</guid><description>Render cut included bandwidth up to 20x in its April 2026 repricing. What changed, before/after bill examples, and what flat per-team pricing avoids.</description><pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Vercel&apos;s October 2026 deployment-failures outage: what Vercel&apos;s own status page shows</title><link>https://railyard.run/blog/vercel-deployment-failures-outage/</link><guid isPermaLink="true">https://railyard.run/blog/vercel-deployment-failures-outage/</guid><description>Vercel&apos;s status page logged a 6.5-hour &apos;increased build and deployment failures&apos; incident on October 12, 2026. Here&apos;s what it says, and what a shared build pipeline costs you.</description><pubDate>Mon, 26 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Hatchbox raised its price from $10 to $15 a server, and that&apos;s a healthy sign for a small team</title><link>https://railyard.run/blog/hatchbox-price-increase/</link><guid isPermaLink="true">https://railyard.run/blog/hatchbox-price-increase/</guid><description>Hatchbox&apos;s price rose from $10 to $15 a server in Sept. 2026. What changed, why it&apos;s fair, and how per-server billing differs from flat per-team pricing.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Railway&apos;s environment-variable breach: what Railway confirmed, and what changes on a server you own</title><link>https://railyard.run/blog/railway-environment-variable-breach/</link><guid isPermaLink="true">https://railyard.run/blog/railway-environment-variable-breach/</guid><description>Railway disclosed that customer environment variables were exposed in October 2026 and paused all deployments. Here&apos;s what Railway itself confirmed, what&apos;s still secondhand, and what a BYO-server model actually changes.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate></item><item><title>One app plus Postgres: what it actually costs, platform by platform</title><link>https://railyard.run/blog/real-cost-rails-postgres-hosting/</link><guid isPermaLink="true">https://railyard.run/blog/real-cost-rails-postgres-hosting/</guid><description>The published prices for running a small app with a database, compared directly — including what you&apos;re actually renting versus what you&apos;re renting plus a markup.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Letting an AI agent deploy your app, safely</title><link>https://railyard.run/blog/mcp-deploy/</link><guid isPermaLink="true">https://railyard.run/blog/mcp-deploy/</guid><description>A scoped MCP server for Claude Code, Cursor, and any other MCP client: what it can do on its own, what it can&apos;t, and why destructive actions wait for a human.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Postgres automatic failover, self-hosted</title><link>https://railyard.run/blog/postgres-failover/</link><guid isPermaLink="true">https://railyard.run/blog/postgres-failover/</guid><description>What a live Postgres standby promotion actually looks like on your own servers: the 3-minute detection window, what gets copied, what doesn&apos;t, and how it compares to a managed database.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Self-hosted Plausible analytics, in one command</title><link>https://railyard.run/blog/self-hosted-analytics/</link><guid isPermaLink="true">https://railyard.run/blog/self-hosted-analytics/</guid><description>We had no idea who was actually reading railyard.run. Here&apos;s the one-click Plausible stack we launched on our own platform to fix that, and what it actually took.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate></item><item><title>What happens when your AI-built app reaches production</title><link>https://railyard.run/blog/vibe-coding-security/</link><guid isPermaLink="true">https://railyard.run/blog/vibe-coding-security/</guid><description>An agent can write a working app in an afternoon. It doesn&apos;t know your secrets shouldn&apos;t sit in plaintext, or that a deploy token shouldn&apos;t be able to delete things. The platform underneath has to know that instead.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Deploying a Next.js app without a Vercel account</title><link>https://railyard.run/blog/deploy-nextjs/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-nextjs/</guid><description>Next.js detects and builds itself on Railyard the same way it does anywhere else — the difference is the server underneath is yours, not a per-request bill.</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Canary deploys that actually watch error rate, not just a timer</title><link>https://railyard.run/blog/canary-deploys/</link><guid isPermaLink="true">https://railyard.run/blog/canary-deploys/</guid><description>Send a new release 5% of traffic, watch it against the rest of the app, and let it roll itself back if the 5xx rate climbs — on servers you own, not a managed platform&apos;s canary toggle.</description><pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate></item><item><title>The self-hosted PaaS timeline, and where the idea actually came from</title><link>https://railyard.run/blog/state-of-self-hosted-paas-2026/</link><guid isPermaLink="true">https://railyard.run/blog/state-of-self-hosted-paas-2026/</guid><description>Cloud 66 proved &apos;never host the customer&apos;s app&apos; in 2012. Here&apos;s the real lineage from Heroku through Fly, Render, Railway and Coolify — and why the idea keeps getting rebuilt instead of settling on one winner.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate></item><item><title>A status page that isn&apos;t a $29/month subscription</title><link>https://railyard.run/blog/self-hosted-status-page/</link><guid isPermaLink="true">https://railyard.run/blog/self-hosted-status-page/</guid><description>90-day uptime bars, incidents that open and close on their own, a JSON feed for your own tooling — built from the same uptime checks the platform already runs, not a separate product to pay for.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Deploying Phoenix when your job queue is already inside the release</title><link>https://railyard.run/blog/deploy-phoenix/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-phoenix/</guid><description>Oban runs in the same OTP supervision tree as the web endpoint — no second worker process to declare just to run background jobs.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate></item><item><title>A WAF and rate limiting without a separate edge vendor</title><link>https://railyard.run/blog/edge-rules-waf/</link><guid isPermaLink="true">https://railyard.run/blog/edge-rules-waf/</guid><description>OWASP Core Rule Set filtering, per-path rate limits, country blocking — configured on the app, enforced before the request reaches it. Here&apos;s exactly what&apos;s live today and what&apos;s still rolling out.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Deploying Laravel without hand-writing a queue worker config</title><link>https://railyard.run/blog/deploy-laravel/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-laravel/</guid><description>APP_KEY, migrations, Horizon, Reverb, Octane — Railyard reads what&apos;s already in composer.json and .env.example instead of asking you to declare it twice.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate></item><item><title>A stable outbound IP, without a NAT gateway bill</title><link>https://railyard.run/blog/stable-outbound-ip/</link><guid isPermaLink="true">https://railyard.run/blog/stable-outbound-ip/</guid><description>Putting your server&apos;s address on a third-party API&apos;s allowlist usually means standing up a NAT gateway on a multi-tenant platform. On a server you own, the IP was never shared to begin with.</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Deploying a Go service: the build that doesn&apos;t need a runtime</title><link>https://railyard.run/blog/deploy-go/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-go/</guid><description>A Go binary doesn&apos;t need an interpreter fetched, a runtime version resolved, or anything installed at deploy time — which makes it one of the simplest things to build correctly on a shared build server.</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Deploying Django without writing a Procfile by hand</title><link>https://railyard.run/blog/deploy-django/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-django/</guid><description>collectstatic, gunicorn, migrations, Celery — Railyard detects what&apos;s already in requirements.txt instead of asking you to declare the same information twice.</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Running your own ChatGPT-style interface, self-hosted</title><link>https://railyard.run/blog/self-hosted-chatgpt-librechat/</link><guid isPermaLink="true">https://railyard.run/blog/self-hosted-chatgpt-librechat/</guid><description>LibreChat connects to whichever model providers you give it keys for, with your conversations in a database you control. Two real gotchas we hit getting it verified, and how the template avoids them for you.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Deploying Spring Boot: why a Dockerfile is the right answer, not a fallback</title><link>https://railyard.run/blog/deploy-spring-boot/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-spring-boot/</guid><description>JVM build and run commands vary too much by project layout to guess safely — which is exactly why a Dockerfile is the deliberate, correct way to deploy a Spring Boot app, not a workaround for missing support.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Deploying Flask: a micro-framework needs micro-configuration, not none</title><link>https://railyard.run/blog/deploy-flask/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-flask/</guid><description>Flask doesn&apos;t assume a migration tool or a job queue the way Django does — which means a Flask deploy is honest about what&apos;s actually there instead of guessing a convention that doesn&apos;t exist.</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Running your own Mastodon instance, verified end to end</title><link>https://railyard.run/blog/self-hosted-mastodon/</link><guid isPermaLink="true">https://railyard.run/blog/self-hosted-mastodon/</guid><description>Built straight from Mastodon&apos;s own Dockerfile, Postgres and Redis wired up automatically, encryption secrets generated correctly the first time — not a simplified fork of the real thing.</description><pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Running Laravel on your own DigitalOcean droplet, without Forge</title><link>https://railyard.run/blog/laravel-on-digitalocean/</link><guid isPermaLink="true">https://railyard.run/blog/laravel-on-digitalocean/</guid><description>Forge configures a DigitalOcean droplet for you, for a monthly fee, on top of the droplet&apos;s own cost. Here&apos;s what actually has to happen on that droplet — and how to get it without the extra bill.</description><pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate></item><item><title>A deploy button for your README, pointed at servers people own</title><link>https://railyard.run/blog/deploy-button-open-source/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-button-open-source/</guid><description>The one-click deploy badge pattern, but landing on the visitor&apos;s own DigitalOcean or Hetzner account instead of a managed platform&apos;s metered billing.</description><pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate></item><item><title>A service reference that never breaks, even before you turn on private networking</title><link>https://railyard.run/blog/private-networking-wireguard/</link><guid isPermaLink="true">https://railyard.run/blog/private-networking-wireguard/</guid><description>&lt;name&gt;.railyard.internal resolves differently depending on where the two apps actually run — same container network, public HTTPS, or a cross-provider WireGuard mesh — without the app ever knowing which case applies.</description><pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Why a deploy actually fails, reason by reason</title><link>https://railyard.run/blog/why-deploys-fail/</link><guid isPermaLink="true">https://railyard.run/blog/why-deploys-fail/</guid><description>A build timeout isn&apos;t the same problem as the app answering on 127.0.0.1 instead of 0.0.0.0 — the real causes behind a failed deploy, and the specific fix for each.</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate></item><item><title>railyard.yml: your app&apos;s config as one file in git</title><link>https://railyard.run/blog/railyard-yml/</link><guid isPermaLink="true">https://railyard.run/blog/railyard-yml/</guid><description>Pull an app&apos;s current configuration as a file, validate it offline, apply it back — exactly what the three commands do today, and what they don&apos;t do yet.</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate></item><item><title>A preview environment per pull request, on servers you own</title><link>https://railyard.run/blog/pr-preview-environments/</link><guid isPermaLink="true">https://railyard.run/blog/pr-preview-environments/</guid><description>Every PR gets its own running copy, torn down automatically when it closes — and unlike most preview systems, it sleeps when nobody&apos;s looking at it instead of billing 24/7.</description><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Deploy Spring Boot to Hetzner</title><link>https://railyard.run/blog/deploy-spring-boot-to-hetzner/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-spring-boot-to-hetzner/</guid><description>Package a Spring Boot app as a layered Docker image, add Postgres and Caddy HTTPS, and run it on a Hetzner server with backups and a release step.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Finding the cloud waste nobody&apos;s looking for</title><link>https://railyard.run/blog/cloud-cost-waste-scanner/</link><guid isPermaLink="true">https://railyard.run/blog/cloud-cost-waste-scanner/</guid><description>Unattached disks, idle load balancers, servers running at 4% CPU — a scan of your actual cloud accounts, with a one-click fix for most of what it finds, not just a dashboard telling you to go look yourself.</description><pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Deploy SvelteKit to Hetzner</title><link>https://railyard.run/blog/deploy-sveltekit-to-hetzner/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-sveltekit-to-hetzner/</guid><description>Build a SvelteKit app with adapter-node, containerize it, and serve it behind Caddy with HTTPS on a Hetzner Cloud server you control.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>When a secret has to be a file, not an environment variable</title><link>https://railyard.run/blog/file-secrets-service-account-json/</link><guid isPermaLink="true">https://railyard.run/blog/file-secrets-service-account-json/</guid><description>A GCP service account JSON or a client certificate doesn&apos;t fit in a KEY=VALUE pair. Most PaaS env var screens have no good answer for that — here&apos;s the one that does.</description><pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Self-host MediaCMS for video hosting</title><link>https://railyard.run/blog/self-host-mediacms/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-mediacms/</guid><description>Run MediaCMS with Postgres, Redis and a separate Celery worker for transcoding in Docker Compose, behind Caddy HTTPS, with backups.</description><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate></item><item><title>SSO and an audit log, without an enterprise sales call</title><link>https://railyard.run/blog/sso-audit-log-small-team/</link><guid isPermaLink="true">https://railyard.run/blog/sso-audit-log-small-team/</guid><description>Single sign-on, SCIM provisioning and a real audit log aren&apos;t features a 6-person team should have to negotiate a contract to get.</description><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate></item><item><title>How to host a Telegram bot that&apos;s always online</title><link>https://railyard.run/blog/host-a-telegram-bot-always-online/</link><guid isPermaLink="true">https://railyard.run/blog/host-a-telegram-bot-always-online/</guid><description>A real python-telegram-bot bot, the long-polling vs webhook tradeoff explained honestly, a Dockerfile, restart policy, and the deploy path.</description><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Deploy Nuxt to Hetzner</title><link>https://railyard.run/blog/deploy-nuxt-to-hetzner/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-nuxt-to-hetzner/</guid><description>Build a Nuxt app with its Nitro node-server output, containerize it, and serve it behind Caddy with HTTPS on a Hetzner Cloud server.</description><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Why a custom domain doesn&apos;t start routing until you&apos;ve proven you own it</title><link>https://railyard.run/blog/subdomain-takeover-prevention/</link><guid isPermaLink="true">https://railyard.run/blog/subdomain-takeover-prevention/</guid><description>Subdomain takeover is a real, well-documented vulnerability class — pointing a DNS record at infrastructure you don&apos;t actually control. Here&apos;s the specific check that closes it off by default.</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate></item><item><title>10 SaaS subscriptions you can replace with one-click self-hosted apps</title><link>https://railyard.run/blog/open-source-saas-alternatives/</link><guid isPermaLink="true">https://railyard.run/blog/open-source-saas-alternatives/</guid><description>Real open-source projects, in the same category as the SaaS tool next to them, each launchable from Railyard&apos;s template catalog in one click — not a feature-by-feature promise, a working app you can actually try.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Castopod to publish a podcast</title><link>https://railyard.run/blog/self-host-castopod/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-castopod/</guid><description>Run Castopod with MariaDB and Redis in Docker Compose behind Caddy HTTPS, publish an RSS feed you own, and back up the audio volume.</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Connecting TablePlus or psql to a database that has no public port</title><link>https://railyard.run/blog/connect-local-tableplus-psql/</link><guid isPermaLink="true">https://railyard.run/blog/connect-local-tableplus-psql/</guid><description>Managed databases are private by design — only apps on the server can reach them. Here&apos;s how a GUI client on your laptop connects anyway, without opening the database to the internet to do it.</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Moving a Rails app off Heroku</title><link>https://railyard.run/blog/moving-off-heroku/</link><guid isPermaLink="true">https://railyard.run/blog/moving-off-heroku/</guid><description>A practical migration path from a managed platform to servers you own: buildpacks first, then a Dockerfile, addons and the release phase.</description><pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Self-host a Mastodon server</title><link>https://railyard.run/blog/self-host-mastodon/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-mastodon/</guid><description>Run a real Mastodon instance with Postgres, Redis, the streaming API and Sidekiq as separate services, behind Caddy HTTPS, with backups.</description><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Deploy an Express app to DigitalOcean</title><link>https://railyard.run/blog/deploy-express-to-digitalocean/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-express-to-digitalocean/</guid><description>Run an Express 5 app with a Postgres-backed route on a DigitalOcean droplet, behind Caddy for HTTPS, plus the shortcut that skips the setup.</description><pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Getting paged in Slack before a customer notices, not after</title><link>https://railyard.run/blog/slack-webhook-deploy-notifications/</link><guid isPermaLink="true">https://railyard.run/blog/slack-webhook-deploy-notifications/</guid><description>Deploy failures, crash loops, a disk filling up, a certificate about to expire — one rules engine, three channels, scoped per app or across the whole team.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Self-host LibreChat for your own ChatGPT-style app</title><link>https://railyard.run/blog/self-host-librechat/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-librechat/</guid><description>Run LibreChat with MongoDB in Docker Compose behind Caddy HTTPS, with real secrets generated, registration locked down and backups in place.</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Deploy a Go web app to Hetzner</title><link>https://railyard.run/blog/deploy-go-to-hetzner/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-go-to-hetzner/</guid><description>Build and ship a Go net/http service with Postgres on a Hetzner server using Docker, Compose and Caddy, with backups and a repeatable upgrade path.</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Workflow automation without the per-execution bill</title><link>https://railyard.run/blog/self-hosted-n8n-automation/</link><guid isPermaLink="true">https://railyard.run/blog/self-hosted-n8n-automation/</guid><description>n8n does what Zapier and Make do — connect APIs without writing glue code — except you own the server and nobody&apos;s counting how many times a workflow ran this month.</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Self-host AFFiNE, an open-source Notion alternative</title><link>https://railyard.run/blog/self-host-affine/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-affine/</guid><description>Run AFFiNE, the open-source Notion and Miro alternative, with Postgres and Redis in Docker Compose, Caddy HTTPS, backups and an upgrade path.</description><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate></item><item><title>A deploy isn&apos;t done when the container starts</title><link>https://railyard.run/blog/why-five-probes/</link><guid isPermaLink="true">https://railyard.run/blog/why-five-probes/</guid><description>A container being ready and your app actually being reachable are two different things. Railyard checks both, and rolls back if the new version never goes live.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Move a Django app from Heroku to DigitalOcean</title><link>https://railyard.run/blog/migrate-django-heroku-to-digitalocean/</link><guid isPermaLink="true">https://railyard.run/blog/migrate-django-heroku-to-digitalocean/</guid><description>Migrate a production Django app off Heroku to a DigitalOcean droplet: Dockerize it, pull the Postgres data across, map config vars, and cut DNS over.</description><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Meilisearch for fast search</title><link>https://railyard.run/blog/self-host-meilisearch/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-meilisearch/</guid><description>Run Meilisearch in Docker Compose behind Caddy HTTPS, with a real master key, a backup snapshot and an upgrade path you can repeat.</description><pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Run Sidekiq or Celery workers next to your web app</title><link>https://railyard.run/blog/background-workers-sidekiq-celery/</link><guid isPermaLink="true">https://railyard.run/blog/background-workers-sidekiq-celery/</guid><description>Set up a dedicated Sidekiq or Celery worker process alongside your web app, with Docker Compose, systemd, and real failure modes covered.</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Where Railyard actually wins against Heroku, Railway, Render and Fly — and where it doesn&apos;t</title><link>https://railyard.run/blog/where-railyard-actually-wins/</link><guid isPermaLink="true">https://railyard.run/blog/where-railyard-actually-wins/</guid><description>An honest look at the real comparison matrix: four things that follow directly from owning the server, and three things where a competitor is equal or ahead.</description><pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate></item><item><title>How to run a cron job without a server</title><link>https://railyard.run/blog/run-a-cron-job-without-a-server/</link><guid isPermaLink="true">https://railyard.run/blog/run-a-cron-job-without-a-server/</guid><description>You have a script, not an app, and need it on a schedule. The manual version (a cheap VM, crontab, monitoring that it ran), then Railyard&apos;s actual Cron mechanism, named accurately.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Deploy Phoenix to Hetzner</title><link>https://railyard.run/blog/deploy-phoenix-to-hetzner/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-phoenix-to-hetzner/</guid><description>Build a Phoenix release and run it in production on a Hetzner Cloud server, with Postgres and Caddy for HTTPS, all in Docker with mix release.</description><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Database addon or database server: the difference that actually matters</title><link>https://railyard.run/blog/managed-postgres-vs-addon/</link><guid isPermaLink="true">https://railyard.run/blog/managed-postgres-vs-addon/</guid><description>Both give you Postgres. Only one of them survives losing the machine it runs on. Here&apos;s exactly where the line is, and when to move.</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Migrating Heroku Postgres without a maintenance window</title><link>https://railyard.run/blog/import-heroku-database/</link><guid isPermaLink="true">https://railyard.run/blog/import-heroku-database/</guid><description>The database is the part of a Heroku migration teams actually worry about. Here&apos;s exactly how the data moves, and why there&apos;s no real downtime window to schedule.</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Self-host changedetection.io to watch web pages</title><link>https://railyard.run/blog/self-host-changedetection/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-changedetection/</guid><description>Run changedetection.io on a $6/month server to get notified when any web page changes: price drops, restocks, or a notice page updating.</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Move a Rails app from Heroku to Hetzner, step by step</title><link>https://railyard.run/blog/migrate-rails-heroku-to-hetzner/</link><guid isPermaLink="true">https://railyard.run/blog/migrate-rails-heroku-to-hetzner/</guid><description>Migrate a production Rails app off Heroku to Hetzner: Dockerize it, pull the Postgres data across, map config vars, and cut DNS over safely.</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Deploy Flask to DigitalOcean</title><link>https://railyard.run/blog/deploy-flask-to-digitalocean/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-flask-to-digitalocean/</guid><description>Run a Flask app in production on a DigitalOcean Droplet: gunicorn, Postgres and Flask-Migrate behind Caddy for HTTPS, all in Docker.</description><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Healthchecks.io to monitor cron jobs</title><link>https://railyard.run/blog/self-host-healthchecks/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-healthchecks/</guid><description>Run Healthchecks.io on your own server with Docker, Postgres and HTTPS: the full Compose setup, SMTP alerts, backups and the one-click shortcut.</description><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate></item><item><title>How to deploy Docker without managing a server</title><link>https://railyard.run/blog/deploy-docker-without-managing-a-server/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-docker-without-managing-a-server/</guid><description>You already have a Dockerfile. What &apos;managing a server&apos; actually means (OS updates, the reverse proxy, TLS renewal, monitoring), the manual version briefly, then the path that handles it for you.</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Replace Heroku review apps with pull request previews</title><link>https://railyard.run/blog/migrate-heroku-review-apps/</link><guid isPermaLink="true">https://railyard.run/blog/migrate-heroku-review-apps/</guid><description>Build your own per-PR preview environments with GitHub Actions and Docker, then see what a hosted version with sleep-on-idle looks like.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Memos for notes</title><link>https://railyard.run/blog/self-host-memos/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-memos/</guid><description>Run Memos, a lightweight self-hosted note-taking app, on your own $6/month droplet with HTTPS, backups and an upgrade path.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Run cron jobs for Dockerized apps</title><link>https://railyard.run/blog/cron-jobs-in-docker/</link><guid isPermaLink="true">https://railyard.run/blog/cron-jobs-in-docker/</guid><description>Add scheduled jobs to a containerized app with a dedicated scheduler container and Docker labels, no cron daemon baked into your image.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Deploy FastAPI to Hetzner</title><link>https://railyard.run/blog/deploy-fastapi-to-hetzner/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-fastapi-to-hetzner/</guid><description>Run a FastAPI app in production on a Hetzner Cloud server: Postgres, Alembic migrations and Caddy for HTTPS, all in Docker.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate></item><item><title>A Cloud 66 alternative that stays out of your way</title><link>https://railyard.run/blog/cloud-66-alternative/</link><guid isPermaLink="true">https://railyard.run/blog/cloud-66-alternative/</guid><description>Cloud 66 proved the bring-your-own-server model years ago. Here&apos;s the lighter, cheaper take on the same idea, and exactly what moving over looks like.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Rocket.Chat for team chat</title><link>https://railyard.run/blog/self-host-rocket-chat/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-rocket-chat/</guid><description>Run Rocket.Chat on your own Hetzner server with a MongoDB replica set, HTTPS, backups and an upgrade path, start to finish.</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>How to deploy a Node.js backend with Postgres</title><link>https://railyard.run/blog/deploy-node-backend-with-postgres/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-node-backend-with-postgres/</guid><description>Express and pg, real migrations, connection pooling that doesn&apos;t exhaust Postgres, Docker Compose for local dev, then the deploy path that provisions the database for you.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Move a Next.js app from Vercel to your own server</title><link>https://railyard.run/blog/migrate-vercel-nextjs-to-your-own-server/</link><guid isPermaLink="true">https://railyard.run/blog/migrate-vercel-nextjs-to-your-own-server/</guid><description>Take a Next.js app off Vercel and onto a server you own: environment variables, a standalone Docker build, HTTPS, cron jobs and a safe DNS cutover.</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Deploy Laravel to Hetzner</title><link>https://railyard.run/blog/deploy-laravel-to-hetzner/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-laravel-to-hetzner/</guid><description>Run Laravel in production on a Hetzner Cloud server with FrankenPHP, MySQL, a queue worker and the scheduler in Docker, with HTTPS set up automatically.</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate></item><item><title>What actually breaks moving off Render</title><link>https://railyard.run/blog/render-migration-gotchas/</link><guid isPermaLink="true">https://railyard.run/blog/render-migration-gotchas/</guid><description>Render&apos;s developer experience is genuinely good. Here&apos;s what survives the move to a server you own, and the handful of things that don&apos;t carry over automatically.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Metabase with Postgres</title><link>https://railyard.run/blog/self-host-metabase/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-metabase/</guid><description>Run Metabase, the open-source BI tool, on your own server with Docker, its own Postgres metadata database, and HTTPS through Caddy, no per-seat license.</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Replace Heroku Scheduler with cron jobs on your server</title><link>https://railyard.run/blog/migrate-heroku-scheduler-to-cron/</link><guid isPermaLink="true">https://railyard.run/blog/migrate-heroku-scheduler-to-cron/</guid><description>Heroku Scheduler&apos;s jobs aren&apos;t guaranteed to run on time or at all. Here&apos;s how to replace them with cron on your own server, with locking and real logs.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Jitsi Meet for video calls</title><link>https://railyard.run/blog/self-host-jitsi-meet/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-jitsi-meet/</guid><description>Run Jitsi Meet, the open-source video conferencing platform, on your own Docker server with HTTPS, and the one port that trips up most setups.</description><pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate></item><item><title>HTTPS for many apps on one server</title><link>https://railyard.run/blog/https-for-many-apps-on-one-server/</link><guid isPermaLink="true">https://railyard.run/blog/https-for-many-apps-on-one-server/</guid><description>Run several small apps on one VPS behind a single Caddy instance, each on its own subdomain with an automatic certificate, plus the automated version.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Deploy Next.js to DigitalOcean</title><link>https://railyard.run/blog/deploy-nextjs-to-digitalocean/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-nextjs-to-digitalocean/</guid><description>Run a production Next.js app on a DigitalOcean droplet: a standalone Docker build, Caddy for automatic HTTPS, and a repeatable way to ship updates.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Immich for your photo library</title><link>https://railyard.run/blog/self-host-immich/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-immich/</guid><description>Run Immich, the open-source Google Photos alternative, on your own server with Docker, Postgres and HTTPS through Caddy, and point your phone at it.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate></item><item><title>How to host a Discord bot 24/7</title><link>https://railyard.run/blog/host-a-discord-bot-24-7/</link><guid isPermaLink="true">https://railyard.run/blog/host-a-discord-bot-24-7/</guid><description>A real discord.js bot in a Dockerfile, why it needs an always-on process instead of a serverless function, restart policy, logging, and the one-click deploy path.</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate></item><item><title>The twelve factors, on a server you own</title><link>https://railyard.run/blog/twelve-factor-on-your-own-server/</link><guid isPermaLink="true">https://railyard.run/blog/twelve-factor-on-your-own-server/</guid><description>Heroku&apos;s 1.0 team wrote the twelve-factor manifesto to describe what their platform demanded of an app. Here&apos;s the same twelve factors, mapped to how they actually hold on infrastructure you own instead of rent.</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Move off Heroku Key-Value Store (Redis)</title><link>https://railyard.run/blog/migrate-heroku-redis/</link><guid isPermaLink="true">https://railyard.run/blog/migrate-heroku-redis/</guid><description>Heroku renamed its Redis add-on to Key-Value Store. Here&apos;s how to run your own Redis instead, move the data over, and keep your app working.</description><pubDate>Sun, 31 May 2026 00:00:00 GMT</pubDate></item><item><title>Deploy Next.js to Hetzner</title><link>https://railyard.run/blog/deploy-nextjs-to-hetzner/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-nextjs-to-hetzner/</guid><description>Build a Next.js app in standalone output mode, containerize it, and serve it behind Caddy with HTTPS on a Hetzner Cloud server.</description><pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Gitea for your own Git server</title><link>https://railyard.run/blog/self-host-gitea/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-gitea/</guid><description>Run Gitea on your own server with Docker Compose, HTTPS through Caddy and Git over SSH, plus a backup you have tested by restoring it.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate></item><item><title>Move from Fly.io to your own server</title><link>https://railyard.run/blog/migrate-fly-to-your-own-server/</link><guid isPermaLink="true">https://railyard.run/blog/migrate-fly-to-your-own-server/</guid><description>Export your app&apos;s image, secrets and Postgres data from Fly and run them on a server you own, with Docker Compose and Caddy.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Umami analytics</title><link>https://railyard.run/blog/self-host-umami/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-umami/</guid><description>Run Umami on your own server with Docker Compose, Postgres and automatic HTTPS through Caddy, with backups you have restored at least once.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate></item><item><title>Automatic Postgres backups you can actually restore</title><link>https://railyard.run/blog/automatic-postgres-backups/</link><guid isPermaLink="true">https://railyard.run/blog/automatic-postgres-backups/</guid><description>Script pg_dump, schedule it with cron, ship it off-server, prune old copies, and prove every backup restores cleanly before you need it.</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate></item><item><title>Deploy Django with Celery to Hetzner</title><link>https://railyard.run/blog/deploy-django-to-hetzner/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-django-to-hetzner/</guid><description>Run Django, gunicorn, Celery and Postgres on a Hetzner server with Docker Compose, Caddy and HTTPS, from scratch to production.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Vaultwarden, the Bitwarden-compatible password manager</title><link>https://railyard.run/blog/self-host-vaultwarden/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-vaultwarden/</guid><description>Run your own Bitwarden-compatible vault with Vaultwarden, Docker Compose and Caddy, with a hashed admin token and a working backup.</description><pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate></item><item><title>Rails autoscaling on CPU and response time, not guesswork</title><link>https://railyard.run/blog/autoscaling-rails/</link><guid isPermaLink="true">https://railyard.run/blog/autoscaling-rails/</guid><description>Set a floor and a ceiling, and let real load decide — plus how to pre-warm replicas ahead of a traffic spike you can actually predict.</description><pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate></item><item><title>Move from Railway to your own server</title><link>https://railyard.run/blog/migrate-railway-to-your-own-server/</link><guid isPermaLink="true">https://railyard.run/blog/migrate-railway-to-your-own-server/</guid><description>Export your Railway app and its Postgres database, stand them up on your own VPS behind Caddy, and the one-click import that does most of it for you.</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate></item><item><title>Deploy Django to DigitalOcean</title><link>https://railyard.run/blog/deploy-django-to-digitalocean/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-django-to-digitalocean/</guid><description>Run a Django app on a DigitalOcean droplet with Postgres, gunicorn and Caddy for HTTPS, plus the one-click path that skips the setup.</description><pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate></item><item><title>Cron jobs and background workers without a separate dyno</title><link>https://railyard.run/blog/scheduled-tasks/</link><guid isPermaLink="true">https://railyard.run/blog/scheduled-tasks/</guid><description>A scheduled command and a background worker are both just processes of your existing app — not a second thing to deploy, scale, or pay for separately.</description><pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Ghost with MySQL</title><link>https://railyard.run/blog/self-host-ghost/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-ghost/</guid><description>Run Ghost on your own server with MySQL, Docker Compose and Caddy, including real backups, HTTPS, and a tested upgrade path.</description><pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Move from Render to your own server</title><link>https://railyard.run/blog/migrate-render-to-your-own-server/</link><guid isPermaLink="true">https://railyard.run/blog/migrate-render-to-your-own-server/</guid><description>A full walkthrough for moving a Render web service and its Postgres database to a server you own, with HTTPS and backups set up at the end.</description><pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Uptime Kuma for status pages and alerts</title><link>https://railyard.run/blog/self-host-uptime-kuma/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-uptime-kuma/</guid><description>Run Uptime Kuma on your own server with Docker Compose and Caddy HTTPS, add backups and upgrades, and see the one-click path too.</description><pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Secure a new Ubuntu server before you put apps on it</title><link>https://railyard.run/blog/secure-ubuntu-server-for-production/</link><guid isPermaLink="true">https://railyard.run/blog/secure-ubuntu-server-for-production/</guid><description>Lock down a fresh Ubuntu 24.04 server before deploying: a sudo user, key-only SSH, ufw, fail2ban and automatic security updates, step by step.</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Deploy a Rails app to DigitalOcean</title><link>https://railyard.run/blog/deploy-rails-to-digitalocean/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-rails-to-digitalocean/</guid><description>A full walkthrough: deploy a Dockerized Rails app with Postgres and HTTPS on a $12/month DigitalOcean droplet, with backups and upgrades.</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Self-host Chatwoot with Postgres, Redis and Sidekiq</title><link>https://railyard.run/blog/self-host-chatwoot/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-chatwoot/</guid><description>Run your own Chatwoot support inbox on a VPS you control, with Postgres, Redis, a Sidekiq worker and HTTPS, from a bare server to a working login.</description><pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate></item><item><title>OpenTelemetry tracing without touching your infrastructure</title><link>https://railyard.run/blog/opentelemetry-rails/</link><guid isPermaLink="true">https://railyard.run/blog/opentelemetry-rails/</guid><description>Point your app at any OTLP collector and get traces, metrics and logs flowing — the platform sets the environment variables, your app&apos;s SDK does the rest.</description><pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Move off Heroku Postgres without losing data</title><link>https://railyard.run/blog/migrate-heroku-postgres/</link><guid isPermaLink="true">https://railyard.run/blog/migrate-heroku-postgres/</guid><description>Capture a Heroku Postgres backup, restore it into a new database, verify every row, and cut over without downtime or data loss.</description><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Deploy a Rails app to Hetzner</title><link>https://railyard.run/blog/deploy-rails-to-hetzner/</link><guid isPermaLink="true">https://railyard.run/blog/deploy-rails-to-hetzner/</guid><description>Deploy a Rails app to a Hetzner server with Postgres, Caddy HTTPS and nightly backups using Docker Compose, plus a repeatable release process.</description><pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Self-host n8n on a $6 server</title><link>https://railyard.run/blog/self-host-n8n/</link><guid isPermaLink="true">https://railyard.run/blog/self-host-n8n/</guid><description>Run n8n on your own $6/month droplet with Postgres and HTTPS: the full Docker Compose setup, backups, upgrades and the one-click shortcut.</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>What makes a deploy actually zero-downtime</title><link>https://railyard.run/blog/zero-downtime-deploys/</link><guid isPermaLink="true">https://railyard.run/blog/zero-downtime-deploys/</guid><description>Not marketing copy — the specific mechanical steps that mean there&apos;s never a moment your app has no working container answering a request.</description><pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Deploying Rails without writing a Dockerfile</title><link>https://railyard.run/blog/buildpacks-rails/</link><guid isPermaLink="true">https://railyard.run/blog/buildpacks-rails/</guid><description>Most Rails apps need zero container config to deploy. Here&apos;s what actually picks the build method, and when you do need to step in.</description><pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate></item></channel></rss>