Okay firstly, I am sorry for being unclear. Secondly, I donāt have the appropriate amount of time to learn fully before doing because I work a full-time gig as a museum handyperson, and this computational delusion of grandeur Iām creating is more of a retirement project now. Retirement is only 2 years away.
In the OP, I trailed off into a rant about my bad luck because no one in my offline life would understand a word of the troubles Iām having.
I can open Virtualmin on that new machine by typing in its static IP address + :10000. I should have mentioned that.
Iām about to erase the new machineās storage and start again, carrying with me all the memories of how I failed in different ways.
My real reason for this post is finding the definition for a minimal server.
Iāve been exclusively trying with Debian 13 due to many TB of storage, but I never change my pre-Virtualmin install choices of SSH server and standard system utilities.
Iām hoping somebody would say,
āMike, you would do better if you also selected the web server and Choose a Debian Blend for Installation optionsā, or
ādonāt change that part of what you did so far.ā
In this most recent buildout of the new server, I seemed to have things working okay. During a previous failure, I was trying to do a full import/restore of the Virtualmin servers and subservers from my old machine (that old machine is the one I shouldnāt have invited Captain Morgan to the distro upgrade party).
My restore option selections onto the new machine were thusly overwriting the freshly installed Virtualmin settings and other things with the badly working old serverās settings. I realized the error of my ways and made increasingly more restrictive backups of those virtual servers till I thought I had it squared away.
As I was putting new systems onto the new server, like a Nextcloud via the Manage web apps module, I started to see I still had cracks in my theory of migration.
In the past, I had POSTFIX send outgoing mail through the Mailgun service because I used to serve sites behind a DHCP internet connection and the DMZ setting on the router. All those weird settings I did to the old machinesā POSTFIX system got erroneously imported. I didnāt remember checking that box, but I do stupid stuff at times. I didnāt know about that POSTFIX misconfiguration till I was trying to triage Virtualmin warnings about missing SSL certs. I think the cert trouble stemmed from importing custom templates, then switching the virtual servers to different templates I created on the new machine. Anyway, after I got all the ssl complaints to go away, POSTFIX threw me one during the configuration check. I thought I fixed everything in it, but the same misconfiguration error persisted. I thought a reboot would solve it, but I was wrong.
Looking to the future, this next try, Iām going to manually build the virtual servers & subservers on the freshly installed new machine, remake all the email addresses by hand, then just reimport the home directories of the old serverās stuff.
Some takeaways I learned while in the chaosā¦
I have a fairly large & complex database with a lot of referential integrity, functions & procedures on the old servers. Trying to migrate either of the twins via sqldump, Virtualmin backup & restore, or PhpMyAdmin commands was taking ridiculous amounts of time and failing prior to finishing. Trying to put it on my slightly older Proliant DL360p G8 has been running for about 4 days or more now and hasnāt finished; nothing else is being run on that server right now.
The exact same database only took about half a day or less to import on this newest server before tossing me the error message about one very special table that seems to be what ruins all the imports. Except for that table and a few views, everything finished. Hereās the reason it went so fast:
/etc/mysql/mariadb.conf.d/50-server.cnf
#
key_buffer_size = 128M
max_allowed_packet = 1G
thread_stack = 192K
log_error = /var/log/mysql/error.log
# Enable the slow query log to see queries with especially long duration
log_slow_query_file = /var/log/mysql/mariadb-slow.log
log_slow_query_time = 360
log_slow_verbosity = query_plan,explain
log-queries-not-using-indexes
long_query_time = 36000
slow_query_log = 1
big-tables
myisam_sort_buffer_size = 64K
query_cache_size = 1G
sort_buffer_size = 1G
net_buffer_length = 500M
innodb_lock_wait_timeout = 3600
innodb_buffer_pool_size = 100G
I found that MariaDB info about how you can (depending on relative : absolute sizes of OS Memory Needs vs. total RAM) set the InnoDB to 80% of the available RAM.
With these settings Iām only dedicating about 50% of my RAM to MariaDB.
On that G8 server, I have way more RAM, but I never played with the default settings.
My big project has many complicated long-running operations, and I never knew I had the āRuby Slippersā to make it go faster!
It does seem that MariaDB has improved a lot over the last decade and does cleanly import older MySQL databases. My old Nextcloud site had its data on a different machine because a decade ago, when I tried migrating from MySQL to MariaDB, it wouldnāt cross over in a way that Nextcloud would work again.
The database migration failures Iām presently having are caused by MySQL & MariaDB being incompatible with themselves. My failing import has this one table with 5 similar columns that look like this:
`REDACTED` char(15) COLLATE utf8mb4_bin GENERATED ALWAYS AS (replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(`redacted-primary-key`,' pre ','p'),' pre','p'),' pref ','.PR'),' pref','.PR'),' prf ','p'),' prf','p'),' wrnt ','.WS.'),' wrnt','.WS'),' rts ','r'),' rts','r')) STORED COMMENT 'REDACTED.',
Each of those 5 columns has many dependent tables set to cascade on update, including delete. The table that doesnāt import is the root of a central tree in the ecosystem. Iām not sure how to replicate a system to test what happens if I change the columns to non GENERATE types. I should have done the text manipulations with triggers, 
Iāve been maintaining two copies of this system for almost a decade: MySQL on one machine and MariaDB on another old machine.
Iāve tried adding that missing table by parts (structure only | data only) to the new server, but it refuses to create it due to all the referential integrity spider webs I made. Iāll either have to detangle that before migrating, or start making a better one from scratch and then import the data one table at a time.
P.S. Virtualmin is so robust and stable that itās the only thing that saves me from myself. Iāve been impressed by it and promoting it for a very, very long time.