Julia Evans

Migrating Mess With DNS to use PowerDNS

Mess With DNS is a platform for learning DNS functionality by creating and editing records. The original DNS implementation had limitations, including disallowed domain names with underscores, lack of CNAME record support, and absence of SVCB and HTTPS record types. To address these issues, the author integrated PowerDNS, an open source DNS server with an HTTP API, replacing the previous DNS implementation. This presented challenges in intercepting DNS queries and designing an API that met the frontend's needs. For error handling, the author tailored user-facing error messages to provide clearer information, handling PowerDNS API error responses and performing basic input validation. SQLite replaced Postgres for database management due to OOM kills experienced with Postgres. The Vue.js library was upgraded to version 3, accompanied by a transition to using built-in browser form validation tools and implementation of a global state management store for frontend management. The project was divided into phases for manageable implementation, including Vue upgrade, state management store creation, backend API redesign, and PowerDNS integration. The updated website has been released and functions well, resolving previous DNS issues reported by users.
favicon
jvns.ca
jvns.ca
Create attached notes ...