<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Notes on Rafael Cosquiere</title><link>https://rafaelcosquiere.com/en/notes/</link><description>Recent content in Notes on Rafael Cosquiere</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 22 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://rafaelcosquiere.com/en/notes/index.xml" rel="self" type="application/rss+xml"/><item><title>Migrating from WordPress to Hugo: my reasons</title><link>https://rafaelcosquiere.com/en/notes/migrating-from-wordpress-to-hugo-my-reasons/</link><pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate><guid>https://rafaelcosquiere.com/en/notes/migrating-from-wordpress-to-hugo-my-reasons/</guid><description>&lt;p&gt;&lt;em&gt;This article was originally written in Spanish. The English version was translated with Claude Opus 4.7 and reviewed by me personally.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;With the rise of AI, and especially with Claude Code helping to write code, the way people build personal blogs and websites is shifting. One of those shifts is the migration from WordPress sites to static sites.&lt;/p&gt;
&lt;p&gt;A well-known example is the creator of Yoast SEO, who moved his personal site from WordPress to Astro: &lt;a href="https://joost.blog/do-you-need-a-cms/" target="_blank" rel="noopener noreferrer"&gt;Do you need a CMS?&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Why I Sponsor WordCamp Málaga 2026</title><link>https://rafaelcosquiere.com/en/notes/why-i-sponsor-wordcamp-malaga-2026/</link><pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate><guid>https://rafaelcosquiere.com/en/notes/why-i-sponsor-wordcamp-malaga-2026/</guid><description>&lt;p&gt;I&amp;rsquo;m generally the kind of person who prefers to do things quietly. Work, build, and not necessarily broadcast it. But for some time now I&amp;rsquo;ve been running this personal blog where I want to gradually share my ideas and experiences.&lt;/p&gt;
&lt;p&gt;And on that path, &lt;a href="https://wordpress.org/" target="_blank" rel="noopener noreferrer"&gt;WordPress&lt;/a&gt;
 is always there. The CMS to which I owe a large part of my professional career and one I&amp;rsquo;ve been working with daily for over 7 years. This year I&amp;rsquo;m proud to sponsor WordCamp Málaga 2026, something I already did in 2025 but in a more low-key way.&lt;/p&gt;</description></item><item><title>TryHackMe – Takeover: Subdomain Enumeration with dnschef and Gobuster VHost</title><link>https://rafaelcosquiere.com/en/notes/tryhackme-takeover-subdomain-enumeration-dnschef-gobuster/</link><pubDate>Sun, 10 Aug 2025 00:00:00 +0000</pubDate><guid>https://rafaelcosquiere.com/en/notes/tryhackme-takeover-subdomain-enumeration-dnschef-gobuster/</guid><description>&lt;p&gt;In this post I&amp;rsquo;ll document how I solved the &lt;strong&gt;&lt;a href="https://tryhackme.com/room/takeover" target="_blank" rel="noopener noreferrer"&gt;Takeover&lt;/a&gt;
&lt;/strong&gt; machine on TryHackMe. It&amp;rsquo;s not a step-by-step write-up to follow blindly, but rather a review of what I did, what didn&amp;rsquo;t work, what I learned, and why I made certain decisions.&lt;/p&gt;
&lt;h2 id="setting-up-dnschef"&gt;Setting up dnschef&lt;/h2&gt;
&lt;p&gt;The first step was to set up a local DNS server with &lt;strong&gt;&lt;a href="https://github.com/iphelix/dnschef" target="_blank" rel="noopener noreferrer"&gt;dnschef&lt;/a&gt;
&lt;/strong&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo dnschef --fakeip 10.10.202.15 --fakedomains futurevera.thm --nameservers 9.9.9.9
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I still need to dig deeper into dnschef, but it seems like a very useful tool. Basically, it acts as a DNS proxy: if a query matches the rules you define, it returns the response you specify; otherwise, it forwards the request to the &lt;em&gt;nameservers&lt;/em&gt; you set (by default it uses Google, but here I prefer 9.9.9.9).&lt;br&gt;
It requires root permissions. By default it also resolves &lt;strong&gt;*.futurevera.thm&lt;/strong&gt;, although you can set this explicitly, and it listens on &lt;em&gt;127.0.0.1&lt;/em&gt; unless you specify a different interface.&lt;/p&gt;</description></item><item><title>How to Set Up a VPN with WireGuard</title><link>https://rafaelcosquiere.com/en/notes/how-to-set-up-a-vpn-with-wireguard/</link><pubDate>Sun, 06 Jul 2025 00:00:00 +0000</pubDate><guid>https://rafaelcosquiere.com/en/notes/how-to-set-up-a-vpn-with-wireguard/</guid><description>&lt;p&gt;In another article I cover the process of signing up with Hetzner and the server creation and basic hardening.&lt;/p&gt;
&lt;p&gt;In this article I want to show how to set up a VPN connection with WireGuard. Specifically on a Hetzner server. I want to go a step further with the VPN configuration and create two setups:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A basic profile to have a private connection to the server through the VPN. This way I can enable SSH only via VPN and not expose it publicly.&lt;/li&gt;
&lt;li&gt;A second profile that not only connects to the server, but routes all traffic and uses the server as an exit point, like a commercial VPN, so you can browse while hiding your IP and showing the server&amp;rsquo;s IP instead.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="initial-idea"&gt;Initial Idea&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Server on Hetzner, in this case running Debian 12.&lt;/li&gt;
&lt;li&gt;Client: You can use whichever you prefer, since the result is a configuration file. In this case I&amp;rsquo;ll show you how to connect from a MacBook.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In my case, I&amp;rsquo;ve used it to connect to the cloud server, but you could use it to connect to your homelab server and access services on your network, like Jellyfin, Seafile, etc. Or to make your exit IP your home IP, to avoid issues with Netflix/Disney and similar services, or even to work remotely while appearing to be connected from home.&lt;/p&gt;</description></item><item><title>Pi-Hole on a Homelab with Docker and macvlan Network</title><link>https://rafaelcosquiere.com/en/notes/pi-hole-dns-server-homelab-docker-macvlan/</link><pubDate>Thu, 12 Jun 2025 00:00:00 +0000</pubDate><guid>https://rafaelcosquiere.com/en/notes/pi-hole-dns-server-homelab-docker-macvlan/</guid><description>&lt;p&gt;It&amp;rsquo;s been over a year since I started with the homelab project. To be honest, in the beginning I overcomplicated everything: I installed Proxmox with several containers, a virtual router, services I didn&amp;rsquo;t need, and an endless number of rabbit holes that, while not particularly useful in the end, helped me learn and eventually simplify things quite a bit.&lt;/p&gt;
&lt;p&gt;If Google or some AI brought you here, you probably already know what a DNS server is and what &lt;a href="https://pi-hole.net/" target="_blank" rel="noopener noreferrer"&gt;Pi-Hole&lt;/a&gt;
 is, but just in case, here&amp;rsquo;s a quick intro.&lt;/p&gt;</description></item><item><title>Artificial Intelligence and SEO at BECOSAN.com</title><link>https://rafaelcosquiere.com/en/notes/artificial-intelligence-and-seo-at-becosan/</link><pubDate>Thu, 05 Jun 2025 00:00:00 +0000</pubDate><guid>https://rafaelcosquiere.com/en/notes/artificial-intelligence-and-seo-at-becosan/</guid><description>&lt;p&gt;&lt;strong&gt;Language models and real-time search agents&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="1-introduction"&gt;1. Introduction&lt;/h2&gt;
&lt;p&gt;In this report I&amp;rsquo;m going to analyze, from a close and critical perspective, how the arrival of artificial intelligence (AI) is rapidly transforming the world of SEO, and specifically how this will affect our website (BECOSAN.com). It&amp;rsquo;s important to clarify from the outset that we are in the middle of a constant process of change, full of uncertainty, where new technologies and user habits are evolving non-stop.&lt;/p&gt;</description></item><item><title>TryHackMe - Simple CTF - Walkthrough</title><link>https://rafaelcosquiere.com/en/notes/tryhackme-simple-ctf-walkthrough/</link><pubDate>Wed, 04 Jun 2025 00:00:00 +0000</pubDate><guid>https://rafaelcosquiere.com/en/notes/tryhackme-simple-ctf-walkthrough/</guid><description>&lt;p&gt;This is one of the simple machines on TryHackMe, and it&amp;rsquo;s a guided CTF. Here I show the write-up of the machine resolution — I won&amp;rsquo;t include the answered questions, just the process.&lt;/p&gt;
&lt;p&gt;Link to the machine: &lt;a href="https://tryhackme.com/room/easyctf" target="_blank" rel="noopener noreferrer"&gt;https://tryhackme.com/room/easyctf&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="reconnaissance"&gt;Reconnaissance&lt;/h2&gt;
&lt;p&gt;A full service scan is performed on the machine using nmap.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nmap 10.10.124.41 -sSV -p- -T5 --min-rate 50000 -Pn -n
Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-04 06:35 CEST
Nmap scan report for 10.10.124.41
Host is up (0.054s latency).
Not shown: 65532 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
2222/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.78 seconds
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Several services are detected: ftp, httpd, and ssh on port 2222.&lt;/p&gt;</description></item></channel></rss>