My solution would be non-arduino based. Just order something like this. Then go into the bios and set the computer to power on after a power loss.
https://www.amazon.com/dp/B015NM0LKI/ref=cm_sw_r_cp_apa_i_I7pyFbKYHD18W
Edit: I would also make sure the computer Powers down cleanly using a battery backup.
Amazon shows something like this however i don't see it rated at 20amp. Most show 10amp. Maybe APC has something in 20amp?
I'm probably going with this one. Around the same price as the no-name networked power strip I found on amazon but with 4x as many power ports.
I've got something similar,
http://www.amazon.com/MSNSwitch-Newest-Internet-IPEnabled-Interface/dp/B015NM0LKI
Works pretty good, this one has 2 outlets that you can set differently, you can schedule reboots, there's various notifications and settings you can change etc. I had problems with my cable modem shitting out on me so now when it loses connectivity it reboots. I highly recommend it for anyone constantly having to go unplug your shit. Now almost every time I want to use the Internet it's working like it's supposed to.
Not sure how often it checks. The one I have below.
https://www.amazon.com/dp/B015NM0LKI?ref=ppx_pop_mob_ap_share
Correct. You should be able to use something like this on the router: https://smile.amazon.com/dp/B015NM0LKI/
There are devices available that can remotely control power outlets. Set the server to always power on using the BIOS. Setup your router to allow port forwarding to this and the server.
This one is inexpensive but not fully featured: https://www.amazon.com/MSNSwitch-Internet-Enabled-Outlets-Interface/dp/B015NM0LKI/ref=pd_sim_23_3?_encoding=UTF8&pd_rd_i=B015NM0LKI&pd_rd_r=9QW4VYQ37TESKE0M73RR&pd_rd_w=0Wfva&pd_rd_wg=xK7rZ&psc=1&refRID=9QW4VYQ37TESKE0M73RR
If you need a high end one or a lot of other options: https://www.servertech.com
Here's an MSNSwitch one, I'll let you know if I find an Amazon Basics branded one.