[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f1hk1ajmxp64xe":3,"$fanuq43nlrv5g":50},{"slug":4,"title":5,"body":6,"summary":7,"tags":8,"author":12,"cover_url":13,"published_at":14,"seo_title":5,"seo_description":7,"reading_minutes":15,"related":16},"secured-web-server-in-5-minutes","Fortify Web Server Security in 5 Minutes with Tailscale","\u003Cp>\u003Cimg alt=\"tailwind-nextjs-banner\" src=\"https:\u002F\u002Fmedia.stufio.com\u002Fmedia\u002Fifcodes\u002Fblog\u002Fta\u002Ftailscale-logo-black-4bc15a01.png\" \u002F>\u003C\u002Fp>\n\u003Ch3>Introduction\u003C\u002Fh3>\n\u003Cp>I regularly create small cloud servers for developing APIs and running small scripts that need testing in real Linux environments before being deployed to clients. This process is cost-effective and can be set up within minutes using various providers such as Hetzner, OVH, DigitalOcean, and others.\u003C\u002Fp>\n\u003Cp>Throughout development and for most projects, I find it essential to have direct access to services like MySQL, MongoDB, PostgreSQL, Elasticsearch, Redis, RabbitMQ, Typesense, and others, in order to use GUI clients for connections and debugging.\u003C\u002Fp>\n\u003Cp>The following are the steps I typically follow to set up a secure environment accessible only to myself and authorized individuals.\u003C\u002Fp>\n\u003Cp>Tailscale revolutionizes secure networking with its user-friendly approach, effortlessly connecting devices across diverse networks. This innovative platform simplifies VPN complexities, providing seamless and secure connections for users, regardless of their location or network setup.\u003C\u002Fp>\n\u003Cp>Tailscale supports various platforms, including Windows, macOS, Linux, iOS, and Android. Within minutes, it can be set up on devices such as a MacBook, iPad Pro, iPhone, and others, enabling access to any server.\n\u003Cstrong>Tailscale generously provides its services for free, catering to the needs of individuals and small teams.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch3>Setup Tailscale on Ubuntu\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>Installing Tailscale Packages for Ubuntu\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cpre>\u003Ccode class=\"language-bash\">curl -fsSL https:\u002F\u002Fpkgs.tailscale.com\u002Fstable\u002Fubuntu\u002Ffocal.noarmor.gpg | sudo tee \u002Fusr\u002Fshare\u002Fkeyrings\u002Ftailscale-archive-keyring.gpg &gt;\u002Fdev\u002Fnull \ncurl -fsSL https:\u002F\u002Fpkgs.tailscale.com\u002Fstable\u002Fubuntu\u002Ffocal.tailscale-keyring.list | sudo tee \u002Fetc\u002Fapt\u002Fsources.list.d\u002Ftailscale.list\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Col start=\"2\">\n\u003Cli>\u003Cstrong>Update Packages and Install Tailscale\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cpre>\u003Ccode class=\"language-bash\">sudo apt-get update\nsudo apt-get install tailscale\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Col start=\"3\">\n\u003Cli>\u003Cstrong>Connect Your Machine to Tailscale Network and Authenticate\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cpre>\u003Ccode class=\"language-bash\">sudo tailscale up\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Col start=\"4\">\n\u003Cli>\u003Cstrong>Authenticate Through Your Browser\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>After executing the \u003Ccode>sudo tailscale up\u003C\u002Fcode> command, a link will be generated for authentication. You will see a message in your terminal:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-shell-session\">ubuntu@ubuntu-8gb-dev-1:~# sudo tailscale up\n\nTo authenticate, visit:\n    https:\u002F\u002Flogin.tailscale.com\u002Fa\u002Fa46489f67c00\nSuccess.\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Col start=\"5\">\n\u003Cli>\u003Cstrong>Confirm Connection and Retrieve Tailscale IPv4 for Your Server\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Visit the provided link in your browser for authentication. After confirmation, to view the Tailscale IPv4 for your server, use the command:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-shell-session\">root@ubuntu-8gb-dev-1:~# sudo tailscale ip -4\n100.01.01.111\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Col start=\"6\">\n\u003Cli>\u003Cstrong>Now let's activate firewall and allow only Tailscale IPv4 to access our server.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cpre>\u003Ccode class=\"language-shell\">sudo ufw allow in on tailscale0\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Col start=\"7\">\n\u003Cli>\u003Cstrong>Enable Firewall\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Let's install set of commands to enable firewall and allow only HTTP and HTTPS traffic for everyone and protect our server from any other traffic.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-shell\">sudo ufw default deny incoming\nsudo ufw default allow outgoing\nsudo ufw allow http\nsudo ufw allow https\nsudo ufw enable\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Col start=\"8\">\n\u003Cli>\u003Cstrong>Check Firewall Status\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cpre>\u003Ccode class=\"language-shell-session\">ubuntu@ubuntu-8gb-dev-1:~# ufw status\nStatus: active\n\nTo                         Action      From\n--                         ------      ----\nAnywhere on tailscale0     ALLOW       Anywhere\n80\u002Ftcp                     ALLOW       Anywhere\n443                        ALLOW       Anywhere\nAnywhere (v6) on tailscale0 ALLOW       Anywhere (v6)\n80\u002Ftcp (v6)                ALLOW       Anywhere (v6)\n443 (v6)                   ALLOW       Anywhere (v6)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Col start=\"9\">\n\u003Cli>\u003Cstrong>Let's reload firewall and restart ssh service\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cpre>\u003Ccode class=\"language-shell\">sudo ufw reload\nsudo service ssh restart\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>When attempting to connect using the global IP after exiting, you'll encounter a timeout error.\u003C\u002Fp>\n\u003Ch3>Connecting to Devices on the Tailscale Network\u003C\u002Fh3>\n\u003Cp>However, this situation changes when your computer is connected to Tailscale.\u003C\u002Fp>\n\u003Cp>\u003Cimg alt=\"tailwind-nextjs-banner\" src=\"https:\u002F\u002Fmedia.stufio.com\u002Fmedia\u002Fifcodes\u002Fblog\u002Ftv\u002Ftv2qbop-30e03e99.png\" \u002F>\u003C\u002Fp>\n\u003Cp>In your network devices, you can connect using the local Tailscale IP address or the hostname, both of which are accessible through the Tailscale devices list:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-Shell\">❯ ssh root@ubuntu-8gb-dev-1\n\nWelcome to Ubuntu 22.04.3 LTS (GNU\u002FLinux 5.15.0-87-generic aarch64)\n\n * Documentation:  https:\u002F\u002Fhelp.ubuntu.com\n * Management:     https:\u002F\u002Flandscape.canonical.com\n * Support:        https:\u002F\u002Fubuntu.com\u002Fadvantage\n...\n\nroot@ubuntu-8gb-dev-1:~#\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Similarly, accessing databases and other services while connected to the Tailscale network can be achieved using internal IP addresses. These services remain safely disabled for public access.\u003C\u002Fp>\n\u003Cp>If necessary, additional ports can be allowed using the sudo ufw allow command.\u003C\u002Fp>\n\u003Cp>In just five minutes, these steps enable a more secure and efficient working environment. Implement these strategies and witness their positive impact on your workflow. Continue to strive for greatness!\u003C\u002Fp>","Tailscale revolutionizes secure networking with its user-friendly approach, effortlessly connecting devices across diverse networks.",[9,10,11],"firewall","tailscale","webserver","if.codes","https:\u002F\u002Fmedia.stufio.com\u002Fmedia\u002Fifcodes\u002Fblog\u002Fta\u002Ftailscale-logo-black-4bc15a01.png","2023-11-03T00:00:00Z",3,[17,28,40],{"slug":18,"title":19,"type":20,"summary":21,"tags":22,"author":12,"cover_url":25,"published_at":26,"updated_at":27},"lets-encrypt-free-ssl","How to Secure Your Website with Free SSL Certificates for a Lifetime","blog","Let’s Encrypt certificates have revolutionized internet security by providing free, automated, and widely trusted SSL\u002FTLS certificates. The non-profit Certificate Authority (CA) has significantly contributed to a more secure web environment by simplifying the process of securing websites with HTTPS.",[23,24,11],"ssl","https","https:\u002F\u002Fmedia.stufio.com\u002Fmedia\u002Fifcodes\u002Fblog\u002Fce\u002Fcertbot-logo-7d6d4311.png","2023-11-01T00:00:00Z","2026-09-26T22:29:53.839Z",{"slug":29,"title":30,"type":20,"summary":31,"tags":32,"author":12,"cover_url":37,"published_at":38,"updated_at":39},"openai-embeddings-python-mongodb","Transforming Text into Vectors: OpenAI Embeddings in Python","Learn how to generate text embeddings with the OpenAI API in Python to power semantic search, recommendations, and more. Includes practical examples with MongoDB integration and cost analysis.",[33,34,35,36],"openai","ai","python","mongodb","https:\u002F\u002Fmedia.stufio.com\u002Fmedia\u002Fifcodes\u002Fblog\u002Fge\u002Fgetty-2-69fd9cb7.jpg","2024-11-23T00:00:00Z","2026-09-26T22:29:53.912Z",{"slug":41,"title":42,"type":20,"summary":43,"tags":44,"author":12,"cover_url":47,"published_at":48,"updated_at":49},"check-pricing-availability-ing-domains","Last Chance to Grab Short .ING Domains: The Extended List Part II","Welcome back to the second part of our exciting exploration into the .ING domain zone! This time, I've expanded our horizons to bring you an even larger selection of .ING domain names. List of over 24,000 domain names inside.",[45,46],"domains","business","https:\u002F\u002Fmedia.stufio.com\u002Fmedia\u002Fifcodes\u002Fblog\u002Fdo\u002Fdosmthgreat-60b31838.png","2023-12-14T00:00:00Z","2026-09-26T22:29:53.739Z",[51,53,56,65,68],{"slug":29,"title":30,"type":20,"summary":31,"tags":52,"author":12,"cover_url":37,"published_at":38,"updated_at":39,"reading_minutes":15},[33,34,35,36],{"slug":41,"title":42,"type":20,"summary":43,"tags":54,"author":12,"cover_url":47,"published_at":48,"updated_at":49,"reading_minutes":55},[45,46],1,{"slug":57,"title":58,"type":20,"summary":59,"tags":60,"author":12,"cover_url":61,"published_at":62,"updated_at":63,"reading_minutes":64},"impressive-ing-domains","Unveiling the Impressive .ING Domains","Discover the vast potential of the new .ING domain zone in my latest blog post! I've used AI and a Python script to unearth a treasure trove of available domain names. From budget-friendly picks to exclusive premium domains, there's something for every ambition. Plus, a special list of unique, lesser-known domains awaits.",[45,46],"https:\u002F\u002Fmedia.stufio.com\u002Fmedia\u002Fifcodes\u002Fblog\u002Fin\u002Fing-zone-092f42bc.jpg","2023-12-11T00:00:00Z","2026-09-26T22:29:53.788Z",2,{"slug":4,"title":5,"type":20,"summary":7,"tags":66,"author":12,"cover_url":13,"published_at":14,"updated_at":67,"reading_minutes":15},[9,10,11],"2026-09-26T22:29:53.977Z",{"slug":18,"title":19,"type":20,"summary":21,"tags":69,"author":12,"cover_url":25,"published_at":26,"updated_at":27,"reading_minutes":70},[23,24,11],6]