Blog
-
September 22, 2026
IIS on DigitalOcean for .NET? Here's the Linux + nginx path (and how to move)DigitalOcean has no Windows Droplet image -- a Windows Server image is a costly custom upload. ASP.NET Core runs first-class on Ubuntu with Kestrel behind nginx instead, and here's how every IIS concept maps over.
-
September 20, 2026
Coolify vs Dokploy (2026): which self-hosted PaaS, and when neither is the right fit for .NETCoolify and Dokploy compared feature by feature -- pricing, tech stack, Docker requirements -- plus where a Docker-based self-hosted PaaS stops being the right tool for an ASP.NET Core or Blazor app.
-
September 20, 2026
Heroku vs Azure App Service vs a VPS for ASP.NET Core: cost and lock-in in 2026What Heroku, Azure App Service, and a plain VPS actually cost per month for an ASP.NET Core app with a database, from each provider's own published prices, plus what Heroku's .NET support does and doesn't cover.
-
September 20, 2026
DeployHQ pricing and alternatives for .NET teamsDeployHQ's current pricing tiers, what its deployment automation does and doesn't cover for an ASP.NET Core app, and where a .NET-native alternative like DotDeployer fits instead.
-
September 20, 2026
.NET database migration tools compared: EF Core Migrations, DbUp, FluentMigrator, Flyway/LiquibaseHow EF Core Migrations, DbUp, FluentMigrator, and Flyway/Liquibase differ for a .NET app, plus how to handle seeding, Npgsql connection pooling, and running the migration itself as part of every deploy.
-
September 20, 2026
Hetzner Cloud Console walkthrough for .NET developers: project, API token, firewall, and what to do during a Hetzner outageA tour of the Hetzner Cloud Console -- projects, servers, API tokens, and firewall rules -- plus what to actually do if Hetzner has an outage while your ASP.NET Core app is running on it.
-
September 12, 2026
Azure App Service vs a $5 VPS for ASP.NET Core: real monthly cost in 2026What Azure App Service tiers actually cost per month for ASP.NET Core on Linux, compared to a Hetzner or DigitalOcean VPS, from each provider's own published prices.
-
September 12, 2026
Deploy ASP.NET Core to DigitalOcean, the manual way and the one-click wayThe full manual walkthrough for a $6 DigitalOcean Droplet -- plus DigitalOcean's firewall and reserved IP -- then the one-click version with DotDeployer.
-
September 12, 2026
ASP.NET Core as a systemd service: the unit file, restarts, logs and environmentThe systemd unit that keeps an ASP.NET Core app running -- Restart=always, KillSignal=SIGINT for a graceful shutdown, EnvironmentFile, and reading its logs with journalctl.
-
September 12, 2026
Zero-downtime deployments for ASP.NET Core: releases, symlinks and a health checkThe exact pattern -- releases/<timestamp>, a current symlink, a health check before you call it done, and rollback as a symlink swap -- that DotDeployer runs on every deploy.
-
September 12, 2026
.NET + PostgreSQL in production: Npgsql setup, connection pooling, migrations, backupsInstall PostgreSQL 16 on Ubuntu 24.04, create a scoped role and database, connect from Npgsql/EF Core, tune connection pooling, and take a pg_dump backup you've actually restored.
-
September 12, 2026
Blazor nginx config: the Blazor WebAssembly hosting setup that actually works on a VPSThe exact Blazor nginx config for WebAssembly hosting -- correct MIME type for .wasm, pre-compressed brotli/gzip, try_files for client-side routing, and long-cache _framework headers.
-
September 12, 2026
How to deploy an ASP.NET Core app to a Hetzner VPSThe full manual walkthrough -- CX22, SSH key, .NET runtime, systemd, nginx and Let's Encrypt -- for putting ASP.NET Core on a Hetzner Cloud Server.
-
September 12, 2026
Running SQL Server on Linux for a .NET app (and why you should not open port 1433)Install mssql-server on Ubuntu 24.04, set a memory limit, create a database and login, then reach it through an SSH tunnel instead of opening the port to the internet.
-
September 10, 2026
Blazor hosting on a $6 VPSA Blazor app fits comfortably on the smallest DigitalOcean droplet -- the catch is everything around it that has to be configured correctly first.