フリーソフトウェアで法律事務所を運営する(2026年版)
Running a law firm on Free software (decoded.legal)
要約
インターネット、通信、技術法に特化した小規模な英国の法律事務所decoded.legalの所長が、5年以上にわたりクライアント・サーバーサイド双方でフリーソフトウェアのみを使用して事務所を運営してきた経験を共有しています。DebianとGNOMEをクライアントOSとして使用し、Thunderbird、LibreOffice、vim、Firefoxなどのツールを活用。サーバーサイドでは、Postfix/Dovecot、Syncthing、Forgejoなどを自己ホストしています。AIツールは使用していませんが、GrapheneOS搭載のPixelをモバイルデバイスとして利用しています。
全文翻訳
Running a law firm on Free software (2026 edition)
Published on: 2026-11-06 12:18:47 by Neil Brown
I started running decoded.legal - a small English law firm, focussing on Internet, telecoms, and tech law - on Free software, both client and server side, around five years ago. I have used Free software in my personal life for a lot longer than that.
Back in 2022, I wrote about my experiences after the first year or so.
I wrote an update in 2024.
Someone asked me recently what I am doing now, and, while it is mostly the same, some bits have changed. So here is the 2026 update.
Client-side stuff
I am still using Debian, with GNOME, and it works well for me.
I’m using it on a ThinkPad X1 Yoga Gen 6, as my primary machine, and, being a “Yoga” version, I rather like being able to fold the screen back and write on it to mark up documents. (Here are my thoughts on the different “Active Pens” available for it.)
However, the machine itself seems to have a hardware problem with the Thunderbolt / USB-C ports (fine for power, very flaky for data), and so I might need to replace it. And I have no idea what laptop I might get.
-
Email (MUA): Thunderbird and mutt, depending on what I am doing
- Quick Folder Move and Move Message And Yourself are particularly useful add-ons for Thunderbird, for rapid filing of email with keyboard shortcuts
- Thunderbird seems to be having a problem with some recurring calendar invitations, while
ikhalis handling them fine. I’ve not dug into it, but it is a nuisance.
-
Document production: LibreOffice’s Writer if I want a “Word” document (e.g. I am exchanging documents with other lawyers), and I am using
pandocandtypstto convert Markdown files that I tend to write in vim for some other bits. I’d like to exploretexat some point, as I have a client who likes diffs to their .tex files, and that looks rather neat. -
Presentations: reveal.js
- I absolutely love this.
- I have a bash script which sets up a template for a new presentation, and then I just write the presentation using Markdown. I get a nicely-formatted presentation (using a css template) with very little effort, and no distracting GUI
- Blogpost about reveal.js
- Here are some presentations I’ve given, using reveal.js
-
File manager: Nautilus
- Mainly because it is GNOME’s default, although, especially when combined with some useful bash scripts, it works well for my needs
-
PDFs: evince for most reading; Xournal++ for marking up PDFs; PDFarranger and pdftk for interfering with PDFs
-
Text expansion: espanso
- This is a fantastic shortcut for me, saving me from typing the same thing multiple times. I have loads of shortcuts set up, and I’d be lost without them.
-
Browser: Firefox or links
- I am still using Firefox. It is … fine? I should probably look at LibreWolf or another fork, as I’m not enamoured by Mozilla’s direction of travel but, for now, Firefox it is.
- I use Firefox for joining people’s Teams and Zoom etc. meetings, if someone else sets up the meeting, and that works fine
-
Local wiki / knowledge management: vimwiki
- because I use vim so much,
vimwikiwas quite an obvious choice. - I use this for keeping track of my professional development, and for various notes
- because I use vim so much,
-
Disk encryption: LUKS
-
Client-side encryption of files before syncing them with Syncthing: Cryptomator
-
Fediverse: I tend to use the Mastodon advanced web UI or, when I want fewer images, the TUI toot.
- I schedule toots - for example, about blogposts, using a simple bash script and a cron job; it has moved on a bit since I wrote that post, but it is the same principle
-
Password manager: Bitwarden, using the
vaultwardenserver, with YubiKeys for managing more sensitive credentials -
Markdown editor (for blogposts; I do presentations in vim or gedit): Apostrophe
-
Scanning: paperless-ngx
-
Label printing: there’s a great FOSS web UI for Brother (and perhaps other) label printers. I don’t print many labels, as we aim to be paperless, but it’s convenient when I need to do so
Why so many terminal-based tools? The simple answer is that I am very comfortable in a terminal, and I like them. They have fewer distractions and, when compared with most GUI software, are just - IMHO - easier to use, especially when I don’t need to move my hands away from the keyboard. So, while I don’t use them exclusively, I use mutt, vim, ikhal, ncmpcpp, newsboat, toot, links, and various other TUIs, frequently.
Server-side stuff
Everything here - other than Signal - is self-hosted, and I’m mostly using Intel NUCs now. I still have some Raspberry Pi devices, but fewer than I did.
(Again, this doesn’t list everything; just the main applications.)
-
Email (MTA): postfix / dovecot
- I need to move our mail infrastructure at some point, and I want to look at Stalwart.
-
File synchronisation: Syncthing
- One of the bigger changes since last time was moving away from Nextcloud. I just was not getting on with it, and it was causing me more problems than it solved. So I switched to Syncthing for file sync, and radicale for CalDAV / CardDAV. I’ve been more than happy with this combination.
-
Video conferencing: Signal
- I ran jitsi for years, but stopped using it a few months back. Jitsi is great, and I remain a fan, but most of the time I am joining other people’s Teams or Zoom meetings, so I was running the Jitsi server for very little usage. I turned it off, and instead offer Signal. I have had no grumbles.
-
Invoicing and tracking payments: InvoicePlane, just for generating PDF invoices. Clients don’t interact with it
-
Time tracking: Kimai
- v2 of Kimai is excellent, and I had a very pleasant exchange with the developer, which is always nice.
-
“Case management” / “Matter management”: EspoCRM
-
VPN: WireGuard, using trailofbit’s algo ansible scripts on one machine, and PiVPN on another (albeit not on a Pi)
-
Vulnerability scanning: greenbone/OpenVAS
-
Monitoring: Uptime Kuma
- I implemented this not long after the last update. It … just works?
-
Forge / hosted git repository: Forgejo
- I use this for version tracking the website, and for a couple of template projects
- I do not host anything particularly important on it - for that, I have a git process running on another machine, which is not accessible over the Internet, and I just push to that
-
SIEM: Wazuh
-
Password manager: vaultwarden
-
Website: it is a static site built via mkdocs, hosted on apache2
- It got even simpler and even faster to load. Yes, it’s basic, but I like it!
- We still have an .onion version. If you visit decoded.legal in Tor Browser, it should re-direct your automatically
-
Blog: BSSG
- After a couple of annoyances with hugo, I moved to BSSG - a bash static site generator. The developer, Stefano, is amazing, and it is working incredibly well. I’ve gone for a very basic, easy to read, theme - which should be very similar to what was there before - and there’s still an RSS feed for it, of course
- I blog quite frequently, and, rather than keep private / internal “knowhow” files, I tend to just blog things and share the learnings
- I tend to use my personal blog for posts about the more technical bits and pieces
- I have automated the most common actions - templates, and publishing - using bash scripts, so that I can focus on writing (in Markdown); getting it online is the easiest bit
-
Fediverse: I am using the glitch-soc Mastodon* fork
- Switching from normal Mastodon to glitch-soc Mastodon was easy
- I stopped using Markdown in toots, even though I like the rendered output (i.e. as html not as markdown), but this is not supported consistently well across clients, so I stopped using it.
- I turned off decoded.legal’s own fedi instance. I had been on the fence as to whether this is worthwhile or not for a while, and decided that, really, it was not.
-
Knowledge management, and managing our law firm’s (numerous) policies and procedures: dokuwiki with the Markdown plugin
-
DNS: unbound, with Pi-Hole in front of it
- I used to run a doh server, but I’ve stopped doing that.
-
Backups: restic and rsync
-
Forms: LiberaForms
- I have been really happy with LiberaForms, for easy-to-create and easy-to-use forms, especially since they implemented encryption, so that the form responses are stored encrypted on the server. I still delete them as soon as I can, but knowing that they are encrypted in the database is welcome.
- I use LiberaForms for our “Know Your Client” pre-engagement questionnaire, and for various other bits
-
Collaborative document editing: I don’t.
- I used to run CryptPad, but it just didn’t get much use, so I turned it off.
AI tools
Mobile device
I’m using a Pixel running GrapheneOS for my mobile device.
I use F-Droid as the main app store.
Using Android doesn’t thrill me, especially given Google’s direction of travel, but at the moment - despite trying quite a lot of different OSs and devices, including postmarketOS and Ubuntu Touch, as well as SailfishOS previously - I have not found something that does what I need better than GrapheneOS.
Working with others (who don’t use FOSS tools)
No change here: zero problems.
Many of my clients use Microsoft’s software, or Apple’s software.
All posts CC BY-SA-NC 4.0 or any later version, unless otherwise stated.
This blog is for interest only; nothing here is legal advice.
This blog was written by a human, without AI.
This site was generated with BSSG, a Bash Static Site Generator.
Home · Archives · Tags · Subscribe via RSS