Firefly III and Actual are the usual answers here and both are great, worth trying first.
Throwing my own in for transparency since I built it: Finlynq (github.com/finlynq/finlynq, AGPL). Runs on docker + postgres. The differentiator vs firefly/actual is it ships an MCP server, so you can hook up an LLM (Claude, ChatGPT, whatever) and just ask it about your finances or have it log stuff for you. Also does proper multi-currency (stocks/crypto/metals) and encrypts account names at rest.
It's younger so a smaller community than firefly, being upfront. I'm actively building it and ship often, so if there's a self-host feature you'd want (specific reverse-proxy setup, backup format, etc) tell me and I'll prioritize. Demo if you want to click around before pulling the image: finlynq.com/cloud