It sounds like what you're talking about is more aligned with High Availability.
If you are already on SQL Server 2012, or you have the ability to upgrade then it sounds like AlwaysOn Availability Groups could be right up your alley. This is a technology that will allow you to create a cluster and you could have two geographically separate servers (i.e. your current database server and your remote database server that you're planning on standing up). If the network latency isn't a performance impact between the two servers you could set up a two node cluster and have each of those nodes hosting a replica of the Availability Group (or Groups). With synchronous commit, you could configure automatic failover when there is a network outage or some other service-hindering event.
By creating an Availability Group Listener you could have the client applications connecting to the listener which will direct traffic to the current primary replica.
If you don't have the ability to get onto SQL Server 2012 to leverage AlwaysOn Availability Groups, then Database Mirroring could also be another high availability solution for you. If the session is operating synchronously with a witness server, you could also have the ability for automatic failover in the event of the principal becoming disconnected.
The reason I am recommending these two is two-fold: replication is pushing out articles, and it sounds like you want your entire database (or databases) to be ready for a failover. Traditional failover clusters could also be another solution but you would have to also consider shared storage between the two nodes. That might get complicated with the geographically separate servers.
if the network fails or the software throws a bug, it is very hard to come back to office and fix the problem.
What do you mean by "the software throws a bug"? There will need to be the proper error handling and error recovery in order to ensure this type of behavior doesn't cause an outage.