You are able to host all these services and more on the same domain. I do a similar thing with different services at different subdomains. I don't believe the username@ portion can help point to different services, that syntax is usually associated with email addresses.
I think the best way to go about it would be having different subdomains such as lemmy.domain.tld, matrix.domain.tld, etc.
To accomplish that, I have a wildcard subdomain point to my server, my reverse proxy (Caddy) handles figuring out which subdomain maps to which service on top of handling TLS certificates for me.
All of my services are in containers, I use Docker usually via Docker Compose. That gives me one file to establish all of my services, update/start/stop/check logs with consistent command formats for all services, and keeps the data separate from the application. If I need to rebuild, put a backup of my data in the right spot and change names in filepaths as needed, run a backup of the Docker Compose file and I'm up and running again.
The only things I don't have in a container is Fail2Ban on my rented, public facing server to minimize noise of bots trying to login.