Git
You actually don't need a software package like github or gitlab to host your own repositories, if the command line is good enough for you, all you need is git itself and a remote machine that you can ssh into.
You simply
git init --bare
on the host and on the local you
git init
and then set the remote location with
git remote set-url remoteip:path/to/repo
then you can push from local with
git push --set-upstream origin master
and then you're set and can use it normally from your command line.