I recently stumbled across the Gogs project whilst looking for self-hosted Git solutions. I run a FreeNAS server at home so I thought I would get the app up and running in a jail. Here is how I did it.
Create a new jail named
gogs and make sure that the jail is up to date by running.
pkg update && pkg upgrade
Now install the required packages.
pkg install go git gcc
Next add a user
git and switch to the new user.
pw useradd git -m su git -
Set the Go env variables both for this session and for future sessions.
GOPATH=$HOME/go; export GOPATH echo 'GOPATH=$HOME/go; export GOPATH' >> ~/.profile
Installation and Initial Configuration
Gogs using the
Go package manager.
go get -u --tags sqlite github.com/gogs/gogs
Create a symbolic link to the
gogs directory to make it easier to manage.
ln -s ~/go/src/github.com/gogs/gogs ~/gogs
cd into the source directory and issue the build command.
cd ~/gogs go build --tags sqlite
Issue the following command to start
gogs for the first time and then browse to the jails IP address at port
3000 and complete the initial configuration via the web GUI.
Once you have completed the installation terminate the
gogs process from the terminal using
Finally, we need to switch back to the root user and configure an init script to set the
gogs service to start at boot.
exit cp /home/git/gogs/scripts/init/freebsd/gogs /usr/local/etc/rc.d/ chmod a+x /usr/local/etc/rc.d/gogs
We also need to add
gogs_enable="YES" to the
/etc/rc.conf file. Now we can start the service and test that it is working via a web browser.
service gogs start
Updating is a piece of cake! But take a jail snapshot first!!!!
SSH into the gogs jail and run the following commands.
su git cd /home/git/gogs go get -u --tags sqlite github.com/gogs/gogs go build --tags sqlite exit service gogs start