Next: Configuration, Previous: Images, Up: SGBlog
SGBlog’s is written on Go and uses its modules. Hopefully you can install it just by running:
$ go get go.stargrave.org/sgblog/cmd/sgblog $ go get go.stargrave.org/sgblog/cmd/sgblog-comment-add # if you need commenting
Unfortunately by default it uses HTTPS and Go’s third party servers
(sum.golang.org
, proxy.golang.org
) that trust neither
CACert.org
’s CA (used previously) nor ca.cypherpunks.su
CAs. So either disable their usage and trust that certificate:
GOPRIVATE=go.stargrave.org/sgblog
, or clone its source code
manually and build in place:
git://git.stargrave.org/sgblog.git,
anongit@master.git.stargrave.org:stargrave.org/sgblob.git
,
anongit@slave.git.stargrave.org:stargrave.org/sgblob.git
,
anongit@master.git.cypherpunks.su:stargrave.org/sgblob.git
,
anongit@slave.git.cypherpunks.su:stargrave.org/sgblob.git
,
git://git.cypherpunks.su/sgblob.git,
git://y.git.stargrave.org/sgblob.git,
git://y.git.cypherpunks.su/sgblob.git.
For enabling blog availability you have to use HTTP server with CGI interface. Example part of lighttpd’s configuration:
$HTTP["host"] == "blog.example.com" { server.document-root = www_dir + "/blog.example.com" $HTTP["url"] =~ "^/example" { alias.url += ("/example" => "/path/to/sgblog") cgi.assign = ("sgblog" => "/path/to/sgblog") setenv.add-environment = ( "SGBLOG_CFG" => "/path/to/example.hjson", ) } }
And be sure that you have read access to the Git repository, for example
by placing lighttpd
user into git
group.
Example inetd
configuration (for phlog):
gopher stream tcp6 nowait lighttpd /path/to/sgblog sgblog -gopher /path/to/gopher.hjson
Example UCSPI-TCP
service running under
daemontools:
# mkdir -p /var/service/.phlog-ipv6/log # cd /var/service/.phlog-ipv6 # cat > run <<EOF #!/bin/sh -e uid=\`id -u lighttpd\` gid=\`id -g git\` addr=2001::123 exec tcpserver -DHR -u $uid -g $gid -l 0 $addr gopher \ sgblog -gopher /path/to/gopher.hjson EOF # cat > log/run <<EOF #!/bin/sh -e exec setuidgid whatever-user multilog t ./main EOF # chmod -R 755 /var/service/.phlog-ipv6 # mv /var/service/.phlog-ipv6 /var/service/phlog-ipv6
Gemlog uses Gemini protocol that requires TLS usage, that can be achieved with go.cypherpunks.su/ucspi tools:
exec tcpserver -DRH -u $uid -g $gid -l 0 ::0 1965 \ tlss -key gemlog.key.pem -cert gemlog.pem \ sgblog -gemini /home/sgblog/gemlog.hjson 2>&1
For comments workability you have to configure your SMTP server to feed
incoming messages to sgblog-comment-add
utility. For example,
Postfix’es /etc/aliases can contain:
comment: "| /path/to/sgblog-comment-add -git-dir /path/to/blog.git -committer-email comment@blog.example.com"
to run that utility for all comment@
address messages.
You must have enough permission to be able to write to Git repository,
but Postfix by default runs all that commands from a nobody
user.
So possibly you will need to setuid
that executable give
permission for nobody
running:
-rwsr-x--- git:nobody sgblog-comment-add
And also do not forget about lighttpd
user’s (possibly in
git
group) read permission permissions. Make sure
sgblog-comment-add
runs with correctly set -umask
(027
by default) for newly created Git objects/files.
Next: Configuration, Previous: Images, Up: SGBlog