Gogs on Debian

Jan 10, 2016

Gogs also known as Go Git Server is an open source cross-platform self-hosted Git server written in Golang, similar to the GitLab which is written in Ruby. It is easy to install and configure and offers a lot of customization options while installing, it lets you choose between MySQL, SQLite, and PostgreSQL as a Database backend. It is also one of the lightest and fastest self-hosted Git server solution, it does not offer a lot of features like GitLab, but whatever it offers, it does it without pain. If you don’t already have a Debian server, you can get a VPS on Digital Ocean, by signing up with this referral you get $10 credit and I get $25 credit. Installing Gogs is easy it’s available as a pre-compiled package from Packager. It receives updates like every other package you would install on your system. So you can do the setup once and receive an update on new builds. This setup being pre-build, might not support SQLite, for this guide, I am using MariaDB. You can use PostgreSQL over MariaDB if you prefer it.

https://darryldias.me/2016/gogs-centos/
### Getting started.

Adding Gogs repository key.

wget -qO - https://deb.packager.io/key | sudo apt-key add -

Add Gogs packager.io repository to your sources.list.d directory/ For Jessie

sudo echo "deb https://deb.packager.io/gh/pkgr/gogs jessie pkgr" | sudo tee /etc/apt/sources.list.d/gogs.list

For Wheezy

sudo echo "deb https://deb.packager.io/gh/pkgr/gogs wheezy pkgr" | sudo tee /etc/apt/sources.list.d/gogs.list

Updating local package database to fetch meta of the new repository.

sudo apt-get update

Installing Gogs

sudo apt-get install gogs

Adding MariaDB repository, choose the setup depending on the version of Debian you are using and the closest mirror you prefer, from here.

sudo apt-get update

Logging into MariaDB console.

mysql -u root -p

Creating a new Database for Gogs.

CREATE DATABASE gogs;

Exiting MySQL console.

exit

Installing NGINX to reverse proxy Gogs to port 80.

sudo apt-get install nginx-full

Editing the NGINX config /etc/nginx/sites-enabled/default

sudo nano /etc/nginx/sites-enabled/default

Add the following lines to your NGINX config.

server {
listen 80;
server_name yourhostname;location / {
proxy_pass http://127.0.0.1:3000;
    }
}```

Restart NGINX.

sudo service nginx restart


You can access the newly setup Gogs Server at [http://127.0.0.1/](http://127.0.0.1/), and further configure it to your preference and create your new user, you can now store your projects on your private Git server. Have a question, leave a comment below.

 

If you like this content, please consider buying me a coffee.

Buy me a coffeeBuy me a coffee

You will get access to contributer exclusive resources and content.

Thank you!



Darryl Dias

I am a student, artist, and author currently living in Florida. My interests range from technology to arts. I am also interested in programming, writing

Analytics by GoSquared