There many people much more knowledgeable than myself here. This guide might be a helpful reference. A few more details about your use case and future plans will help members give solid advice. This is my two cents, please take it with a pinch of salt.
I don’t think this is a required. A quick Google and I don’t see any other mandatory requirement.
Most of mirroring or RAIDZx is to provide drive redundancy increasing uptime. I can’t stress enough redundancy is not a backup! Backups are meant to save you from catastrophic data corruption and/or hardware failure when the system is not recoverable. To truly protect against both of those scenarios a off-line backup and/or cloud backup with the following strategy. Follow 321-backup-rule. How much redundancy and number of backup comes down to your risk tolerance and use case.
Backing up applications are immensely more complicated. Why? Because the application that ingests the data like pictures becomes just as important as the raw data itself. Think about it yet a terabyte of photos that tagged, organized into albums, shared with other users and so on. That data would be lost even if you could recover the pictures from a backup. Not to mention how these apps are deployed can have an impact on how easy it is to recover your data from a failed application.
Backing up an application and restoring is not really supported yet by truenas. A key piece to backups that are automated and actually tested.
If you implement a backup system take heed of the following advice before you invest utilizing your server. Backup the server and at least one other place, then wipe the server clean including the OS!
This will force you to prove your backup system and give you experience of how to actually restore from the worst-case scenario. I myself am holding off until there’s an official backup and restore method for applications.
You are correct that applications and data such as photos stored on ssd will have more performance. There is something to consider before committing to a ssd. SSD’s are expensive 1 terabyte drive this can be anywhere 60$-100$. What is the cost of expanding that storage in the future? What happens when you longer have physical space for a drive. You have to migrate the pool to larger ssd drives 1 TB to 4 TB for example. Something to think about.
RAM plays a critical role in ZFS performance. 16 GB is a good place to start but ZFS will utilize all RAM available. Calculating RAM requirements is something loosely based on “network throughput”, “number of active users”, “storage size” and x running applications/services.
Immich utilizes AI for image categorization and so forth. Your GPU AMD RX580 might be helpful there however there is a cost of power consumption. Others might have better advice. I’m not sure even cutting edge APU (CPU with integrated GPU) can be utilized as an alternative. The AI equipped APU market is still so new in the software might be under baked for support.