В случае с Go возьмите просто Google AppEngine.
Там можно бесплатно даже небольшой, но вполне полноценный сервис заводить.
Даже несколько.
Плюс в том, что все админовские вещи - перекладываются на AppEngine, а ты сосредотачиваешься только на собственно разработке.
Файлы там не копируются вручную.
Используется специальный SDK
Как это сделать см. тут:
https://cloud.google.com/appengine/docs/standard/g...
Если же вы хотите вручную запускать Go-программу на сервере, то:
1. Программу нужно скомпилировать. С помощью go build. Причем скопилировать именно под ту операционную систему, которая на вашем сервере. Переключать выбор ОС можно через GOOS= и GOARCH=
Другой вариант - компилировать сразу на сервере, тогда будет правильно компилироваться безо всяких GOOS= и GOARCH=
2. Копируем полученный в результате компиляции бинарный файл (не исходный файл Go) на сервер.
Все готово к запуску.
3. Запускаете. Просто написав имя файла в консоли.
Другой вариант - запускать демона через утилиту daemon, например.
Третий вариант -
сделать на Go демона и запускать как обычного демона
4. В production все же перед бинарником Go все же стоит как правило nginx.
Но это не обязательно