# Hetzner

Published articles for Hetzner.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Opentofu + Tailscale = Bootstrapped DevOps environment with VPN

DevFeed: [Opentofu + Tailscale = Bootstrapped DevOps environment with VPN](<https://devfeed.tech/articles/opentofu-tailscale-bootstrapped-devops-environment-with-vpn-39788.md>)

Original publisher: [Read original article](<https://anuragbhatia.com/post/2026/opentofu-tailscale/>)

Published: 2026-01-17T21:28:46Z

Content type: tutorial

Language: en

Sources: [Personal blog of Anurag Bhatia](<https://devfeed.tech/sources/personal-blog-of-anurag-bhatia.md>)

Topics: [opentofu](<https://devfeed.tech/topics/opentofu.md>), [tailscale](<https://devfeed.tech/topics/tailscale.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [Virtual Private Network](<https://devfeed.tech/topics/vpn.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Server](<https://devfeed.tech/topics/server.md>), [Terraform](<https://devfeed.tech/topics/terraform.md>)

Tags: [cloud](<https://devfeed.tech/tags/cloud.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [devops](<https://devfeed.tech/tags/devops.md>), [hetzner](<https://devfeed.tech/tags/hetzner.md>), [opentofu](<https://devfeed.tech/tags/opentofu.md>), [tailscale](<https://devfeed.tech/tags/tailscale.md>), [terraform](<https://devfeed.tech/tags/terraform.md>), [vpn](<https://devfeed.tech/tags/vpn.md>)

### AI overview

The article demonstrates using OpenTofu with Tailscale to bootstrap a private network across development VMs. It presents configuration for deploying three IPv6-only servers and installing Tailscale with cloud-init, while noting that the approach is intended mainly for quick testing rather than permanent production servers.

### Source excerpt

For the last few days, I have been playing with OpenTofu. For those who may not know, it's a fork of last Terraform as Terraform's license was changed due to IBM's acquisition of Hashicorp and is a Cloud Native Foundation project. It can be used to quickly deploy (and remove) resources from various cloud players. Yesterday came across this tweet from Tailscale about tailscale's module for deployment. Cloud-init can be tough, and we've heard all about it. So we built an open-source Terraform module, one that helps provide a more consistent Tailscale experience across AWS, Azure, GCP, and everywhere. No more surprises, OS quirks, or other mysteries: https://t.co/vn1ITU7Fgz pic.twitter.com/stcF6WuiD7 -- Tailscale (@Tailscale) January 15, 2026 It's cool and useful, though I find Cloud init way more useful since for me these tools are more useful for quick testing rather than a permanent production server. The idea of tailscale on devops VMs as they come up is pretty powerful, as it takes care of the private network between these machines, plus underlay doesn't matter, and hence one can use (cheaper) IPv6-only VMs. An example of OpenTofu config (which is similar to Terraform) to deploy three IPv6 only servers on players like Hetzner across Nuremberg, Helsinki, and Ashburn: main.tf terraform { required_providers { hcloud = { source = "hetznercloud/hcloud" version = "~> 1.59.0" } } } provider "hcloud" { token = var.hcloud_token } data "hcloud_ssh_key" "desktop" { name = "desktop" } data "hcloud_image" "ubuntu" { name = "debian-13" most_recent = true } resource "hcloud_server" "vms" { for_each = var.vms name = each.key image = data.hcloud_image.ubuntu.id server_type = each.value.server_type location = each.value.location ssh_keys = [data.hcloud_ssh_key.desktop.id] user_data = <<-EOF #cloud-config package_upgrade: true packages: - curl runcmd: - curl -fsSL https://tailscale.com/install.sh | sh - tailscale up --authkey=${var.tailscale_authkey} --accept-routes EOF public_net {