{"request":{"options":["mode=llm"],"pageUrl":"https://theorangeone.net/","api":"article","version":3},"objects":[{"date":"Wed, 15 Apr 2026 00:00:00 GMT","images":[{"title":"\nFirewalling Docker with nftables","url":"https://images.unsplash.com/photo-1638896379589-eb1b3fd1f33c?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3ODE5MTc1MDV8&ixlib=rb-4.1.0&q=80&w=400"},{"title":"\nMy not-so-static new static website","url":"https://images.unsplash.com/photo-1650648065204-0b8d52b18447?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3ODE0ODQzODJ8&ixlib=rb-4.1.0&q=80&w=400"},{"title":"\nExtracting directories into their own repositories","url":"https://images.unsplash.com/photo-1550090597-753fa061fc6a?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3NzgzMjQyNzJ8&ixlib=rb-4.1.0&q=80&w=400"},{"title":"\nState of the Server 2026","url":"https://images.unsplash.com/photo-1760411538002-62e66adec844?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3NzgzMjQyNzJ8&ixlib=rb-4.1.0&q=80&w=400"}],"author":"TheOrangeOne","shareLinks":false,"estimatedDate":"Wed, 15 Apr 2026 00:00:00 GMT","icon":"https://theorangeone.net/static/img/favicon.b36806dd1565.ico","diffbotUri":"article|3|-1352832652","siteName":"TheOrangeOne","type":"article","title":"Jake Howard","interactive_elements":[{"searchTemplate":"https://theorangeone.net/search/go/?q={searchTerms}","type":"search"}],"content":"Home :: TheOrangeOne [/home/theorangeone](https://theorangeone.net/) ≡ × \n- [~/contact](https://theorangeone.net/contact/) \n- [~/posts](https://theorangeone.net/posts/) \n- [~/projects](https://theorangeone.net/projects/) \n- [~/talks](https://theorangeone.net/talks/) \n\n# Jake Howard \n\n## Latest Posts [![](https://images.unsplash.com/photo-1638896379589-eb1b3fd1f33c?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3ODE5MTc1MDV8&ixlib=rb-4.1.0&q=80&w=400) Firewalling Docker with nftables](https://theorangeone.net/posts/docker-nftables-firewall/) [![](https://images.unsplash.com/photo-1650648065204-0b8d52b18447?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3ODE0ODQzODJ8&ixlib=rb-4.1.0&q=80&w=400) My not-so-static new static website](https://theorangeone.net/posts/not-so-static-website/) [![](https://images.unsplash.com/photo-1614000531369-40de532d00bf?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3NzgzMjQyNzJ8&ixlib=rb-4.1.0&q=80&w=400) Moving on from Gandi: Registrar and DNS migration](https://theorangeone.net/posts/moving-on-from-gandi/) [![](https://images.unsplash.com/photo-1550090597-753fa061fc6a?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3NzgzMjQyNzJ8&ixlib=rb-4.1.0&q=80&w=400) Extracting directories into their own repositories](https://theorangeone.net/posts/git-directory-extraction/) [![](https://images.unsplash.com/photo-1760411538002-62e66adec844?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3NzgzMjQyNzJ8&ixlib=rb-4.1.0&q=80&w=400) State of the Server 2026](https://theorangeone.net/posts/state-of-the-server-2026/) [![](https://live.staticflickr.com/65535/54799637116_0fe5569afe.jpg) Jake versus 2025](https://theorangeone.net/posts/jake-versus-2025/) [View all posts »](https://theorangeone.net/posts/) \n\n## Recent Talks [![](https://i.ytimg.com/vi/6rwlhrXb_sQ/hqdefault.jpg)](https://theorangeone.net/talks/django-chat-200/) \n\n## [Django Tasks - Django Chat #200](https://theorangeone.net/talks/django-chat-200/) \n-  2026-04-15 \n-  2 hours \n- [Video](https://www.youtube.com/watch?v=6rwlhrXb_sQ) \n- [Django Chat](https://djangochat.com/) \n\nI was invited to an episode of Django Chat, to chat about Django Tasks, the Security Team and much more. I'm well aware that a podcast isn't really a \"talk\", but it's appropriate enough. \n- [#django](https://theorangeone.net/tags/django/) \n[![](https://i.ytimg.com/vi/DkWHdLu97uk/hqdefault.jpg)](https://theorangeone.net/talks/forcefully-stopping-python/) \n\n## [Halt and Catch Fire: Forcefully Stopping Python](https://theorangeone.net/talks/forcefully-stopping-python/) \n-  2025-09-20 \n-  25 minutes \n- [Slides](https://slides.jakehoward.tech/pyuk25-stopping-your-python-code/) \n- [Video](https://www.youtube.com/watch?v=DkWHdLu97uk) \n- [PyCon UK 2025](https://2025.pyconuk.org/) \n\nAs developers, we're tasked with writing code, with the intention of running it. In most cases, we want to run said code for as long as possible - either until completion or until something external restarts us. But in some cases, we want to run until another part of our program tells us not to. When defining background reusable tasks, you don't want them to run forever. If the task takes too long, for\u2026 \n- [#programming](https://theorangeone.net/tags/programming/) \n- [#python](https://theorangeone.net/tags/python/) \n[![](https://theorangeone.net/images/5LyKCMVHkV5bGHiND9wJ-MMAl8NbzfofdxJCDkSCAg4/400/talks/public-tailnet-services/tailscale-london-meet.webp)](https://theorangeone.net/talks/public-tailnet-services/) \n\n## [Unleashing Tailscale with Public and Private Services](https://theorangeone.net/talks/public-tailnet-services/) \n-  2025-07-03 \n-  20 minutes \n- [Slides](https://slides.jakehoward.tech/tscm25-public-tailnet-services/) \n- [Tailscale London Meetup](https://tailscale.com/events-webinars/tailscale-community-meetup-London/) \n\nA talk about how I use Tailscale (well, technically Headscale) and why. Tailscale's promise is making networking easier, which I hate. But sometimes it's necessary to achieve something cool (building Funnel myself), and something not recommended (Private Funnel). The talk wasn't recorded, but my slides are available. However, I'd recommend reading the related post, instead. \n- [#self-hosting](https://theorangeone.net/tags/self-hosting/) \n\n## [Bringing Background Workers to Django](https://theorangeone.net/talks/bringing-background-workers-to-django/) \n-  2024-09-10 \n-  20 minutes \n- [Slides](https://slides.jakehoward.tech/dls24-bringing-background-workers-to-django/) \n- [Django London](https://www.meetup.com/djangolondon/) \n\nThis talk was almost identical to the one I gave at Djangocon Europe 2024. Django London isn't recorded, but the slides are linked. If you want to watch the talk, I recommend watching the Djangocon version. There's a lot more to a web application than just the request/response cycle. Running tasks in the background, whether on a trigger or schedule unlocks a lot of extra functionality, performance and reliability.\u2026 \n- [#django](https://theorangeone.net/tags/django/) \n[View all talks »](https://theorangeone.net/talks/) \n\n### Popular right now \n- [Building an ESP32 camera with ESPHome](https://theorangeone.net/posts/esp-home-camera/) \n- [Exposing Docker's internal DNS with CoreDNS](https://theorangeone.net/posts/expose-docker-internal-dns/) \n- [Exposing your Homelab](https://theorangeone.net/posts/exposing-your-homelab/) \n- [Mount NFS inside LXC containers](https://theorangeone.net/posts/mount-nfs-inside-lxc/) \n- [WireGuard HAProxy Gateway](https://theorangeone.net/posts/wireguard-haproxy-gateway/) \n\n### Common Tags \n- [#self-hosting 54](https://theorangeone.net/tags/self-hosting/) \n- [#linux 44](https://theorangeone.net/tags/linux/) \n- [#programming 36](https://theorangeone.net/tags/programming/) \n- [#security 34](https://theorangeone.net/tags/security/) \n- [#containers 22](https://theorangeone.net/tags/containers/) \n- [#website 16](https://theorangeone.net/tags/website/) \n- [#django 14](https://theorangeone.net/tags/django/) \n- [#server-2020 14](https://theorangeone.net/tags/server-2020/) \n- [#docker 13](https://theorangeone.net/tags/docker/) \n- [#privacy 12](https://theorangeone.net/tags/privacy/) \n[View all tags »](https://theorangeone.net/tags/) \n\n### Social \n\n[View more »](https://theorangeone.net/accounts/) \n\n### Pages \n- [/accounts](https://theorangeone.net/accounts/) \n- [/contact](https://theorangeone.net/contact/) \n- [/feeds](https://theorangeone.net/feeds/) \n- [/guestbook](https://theorangeone.net/guestbook/) \n- [/posts/all](https://theorangeone.net/posts/all/) \n- [/support](https://theorangeone.net/support/) \n[View sitemap »](https://theorangeone.net/sitemap/) \n- [Contact](https://theorangeone.net/contact/) \n- [Support](https://theorangeone.net/support/) \n- [Feeds](https://theorangeone.net/feeds/) \n- [Search](https://theorangeone.net/search/) \n- [Sitemap](https://theorangeone.net/sitemap/) \n\n© 2026  [TheOrangeOne](https://theorangeone.net/contact/) \n\n[To top](https://theorangeone.net/#) [*in style*](https://theorangeone.net/#)","humanLanguage":"en","authorUrl":"https://theorangeone.net/contact/","pageUrl":"https://theorangeone.net/","authors":[{"name":"TheOrangeOne","link":"https://theorangeone.net/contact"}]}]}