Am 25.03.2016 um 02:45 schrieb Predrag Punosevac:
Hi Misc,
Is anybody running Gogs
https://gogs.io/
in production on OpenBSD using PostgreSQL as a backend. Any chance to
share the installation/configuration notes with me?
Predrag
Just compile it using the documentation. You don't have to set $GOROOT.
OpenBSD has the go files in the path already under /usr/local/bin
I mimiced the binary tar balls and copied all the files in there to my
installation location.
The directories public, scripts and templates and the README and LICENSE
files plus the gogs binary.
You want to setup up a git user account if that is not already
available. Set it up with a valid shell so that only public key
authentication is allowed and let gogs handle all the SSH keys. In that
way no user will get a login shell when connecting via SSH.
Setup a user and database in postgresql, I did that with user and
database name gogs.
Make the gogs user the owner of the gogs database and set a password.
Then on the installation page enter the username, password and database
name and you should be set. Gogs will create all tables in the database
during install.
Gogs listens on 0.0.0.0 by default, so I added the entry HTTP_ADDR =
127.0.0.1 in the server section of the app.ini file and setup nginx to
be a reverse proxy -> location /gogs/ { proxy_pass
http://127.0.0.1:3000/; }, remember to adjust the ROOT_URL entry to
match the nginx configuration.
I wrote a litte rc.d script to start it using nohup, it has to be run as
the git user account:
#! /bin/sh
user="git"
daemon="/home/${user}/gogs/gogs"
daemon_flags="web"
. /etc/rc.d/rc.subr
rc_reload=NO
rc_check() {
pkill -0 -f "${daemon} ${daemon_flags}"
}
rc_stop() {
pkill -f "${daemon} ${daemon_flags}"
}
rc_start() {
nohup su -l -c daemon ${user} -c "${daemon} ${daemon_flags}"
>/dev/null 2>&1 &
}
rc_cmd $1
HTH
Markus