{"request":{"options":["mode=llm"],"pageUrl":"https://theorangeone.net/","api":"article","version":3},"objects":[{"date":"Thu, 16 Apr 2026 00:00:00 GMT","images":[{"title":"\nBuilding a Dashboard for my Fridge","url":"https://theorangeone.net/images/FDDqGq0uV1S3AI3v-8dnpeOoJG-TNoAGKrOQ_3omVQo/400/posts/fridge-tablet/tablet.webp"},{"title":"\nProcess names: The forgotten Observability channel","url":"https://images.unsplash.com/photo-1485936791407-c48cafed8213?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3OTI3OTQ5MjN8&ixlib=rb-4.1.0&q=80&w=400"},{"title":"\nFirewalling Docker with nftables","url":"https://images.unsplash.com/photo-1638896379589-eb1b3fd1f33c?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3OTI4MzcxNTF8&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=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3OTMwMDk3MDh8&ixlib=rb-4.1.0&q=80&w=400"},{"title":"\nMoving on from Gandi: Registrar and DNS migration","url":"https://images.unsplash.com/photo-1614000531369-40de532d00bf?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3OTMwNTEyNDJ8&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=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3OTMwNTEyNDJ8&ixlib=rb-4.1.0&q=80&w=400"}],"author":"TheOrangeOne","shareLinks":false,"estimatedDate":"Thu, 16 Apr 2026 00:00:00 GMT","icon":"https://theorangeone.net/static/img/favicon.b36806dd1565.ico","diffbotUri":"article|3|559349757","siteName":"TheOrangeOne","type":"article","title":"Scaling the database - using multiple databases with Django","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://theorangeone.net/images/FDDqGq0uV1S3AI3v-8dnpeOoJG-TNoAGKrOQ_3omVQo/400/posts/fridge-tablet/tablet.webp) Building a Dashboard for my Fridge](https://theorangeone.net/posts/fridge-tablet/) [![](https://images.unsplash.com/photo-1485936791407-c48cafed8213?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3OTI3OTQ5MjN8&ixlib=rb-4.1.0&q=80&w=400) Process names: The forgotten Observability channel](https://theorangeone.net/posts/process-name-observability/) [![](https://images.unsplash.com/photo-1638896379589-eb1b3fd1f33c?crop=entropy&cs=tinysrgb&fit=max&fm=webp&ixid=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3OTI4MzcxNTF8&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=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3OTMwMDk3MDh8&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=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3OTMwNTEyNDJ8&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=M3wzNjExNzd8MHwxfGFsbHx8fHx8fHx8fDE3OTMwNTEyNDJ8&ixlib=rb-4.1.0&q=80&w=400) Extracting directories into their own repositories](https://theorangeone.net/posts/git-directory-extraction/) [View all posts »](https://theorangeone.net/posts/) \n\n## Recent Talks [![](https://i.ytimg.com/vi/D0YiozqFzlI/hqdefault.jpg)](https://theorangeone.net/talks/django-multiple-databases/) \n\n## [Scaling the database - using multiple databases with Django](https://theorangeone.net/talks/django-multiple-databases/) \n-  2026-04-16 \n-  30 minutes \n- [Slides](https://slides.jakehoward.tech/dceu26-django-multiple-databases/#/1) \n- [Video](https://www.youtube.com/watch?v=D0YiozqFzlI) \n- [Djangocon Europe 2026](https://2026.djangocon.eu/) \n\nAs your Django application gets popular, you'll need to scale up. Maybe you need to run more web workers, more CPU cores, or even spread across more servers. This works great, up to a point. Your database is likely at the core of your application, but whilst it's easy to throw more resources at a database, it's much harder to scale to multiple. After a while, you'll outgrow a single database. Maybe performance isn't\u2026 \n- [#django](https://theorangeone.net/tags/django/) \n[![](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[View all talks »](https://theorangeone.net/talks/) \n\n### Popular right now \n- [Revert Arch linux packages to specific date](https://theorangeone.net/posts/arch-revert-to-date/) \n- [Forcing dark mode in Android Auto Maps](https://theorangeone.net/posts/dark-android-auto-maps/) \n- [Building an ESP32 camera with ESPHome](https://theorangeone.net/posts/esp-home-camera/) \n- [Exposing your Homelab](https://theorangeone.net/posts/exposing-your-homelab/) \n- [Nvidia GPU passthrough in LXC](https://theorangeone.net/posts/lxc-nvidia-gpu-passthrough/) \n\n### Common Tags \n- [#self-hosting 54](https://theorangeone.net/tags/self-hosting/) \n- [#linux 45](https://theorangeone.net/tags/linux/) \n- [#programming 37](https://theorangeone.net/tags/programming/) \n- [#security 35](https://theorangeone.net/tags/security/) \n- [#containers 22](https://theorangeone.net/tags/containers/) \n- [#website 16](https://theorangeone.net/tags/website/) \n- [#django 15](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"}]}]}