Commit Briefs

Omar Polo

move the buffering from the fastcgi layer to the template (main)

Reduces the indirection in fcgi.c, starts to make the struct template opaque, simplifies the template usage. All with a net negative :-) reads fine to stsp@ (thanks!)

Omar Polo

template: join subsequent tp_puts() calls

This greatly reduces the number of tp_puts() calls: gotwebd' pages.tmpl goes from 444 to 190. Otherwise, this doesn't produce other observable changes.

Omar Polo

add compat for endian.h

Omar Polo

sync imsg.




.gitignorecommits | blame
CHANGEScommits | blame
Makefilecommits | blame
READMEcommits | blame
TODOcommits | blame
config.ccommits | blame
configure*commits | blame
fcgi.ccommits | blame
fragments.tmplcommits | blame
galileo.8commits | blame
galileo.ccommits | blame
galileo.conf.5commits | blame
galileo.csscommits | blame
galileo.hcommits | blame
log.ccommits | blame
log.hcommits | blame
parse.ycommits | blame
proc.ccommits | blame
proc.hcommits | blame
proxy.ccommits | blame
xmalloc.ccommits | blame
xmalloc.hcommits | blame


Galileo is a Gemini proxy for the World Wide Web (www.)  It speaks
FastCGI and is intended to be run behind OpenBSD' httpd(8), but is known
to work also with nginx and lighttpd.

Galileo doesn't serve static files, it connects to an upstream Gemini
server and translate HTTP requests into Gemini requests.  It serves the
content as-is, with the only exception of translating text/gemini into

To compile Galileo run:

	$ ./configure
	$ make
	$ doas make install

To change the default user (`www`), the default configuration file
(`/etc/galileo.conf`) or the default socket location
(`/var/www/run/galileo.sock`), pass the the custom `USER`, `CONF` and
`SOCK` to the configure:

	$ ./configure USER=_galileo CONF=/usr/local/etc/galileo.conf

While a custom configuration file can be given using `-f`, the user
can only be set during compilation.

The `galileo.css` file is installed by default in `/var/www/htdocs`,
set a custom `WWWDIR` during the install to specify another location:

	$ doas make WWWDIR=/usr/local/www/htdocs install

The dependencies are

 - libasr
 - libevent
 - libtls or libretls

When *not* building from a release tarball:

 - (or if `parse.y' is modified) yacc or GNU bison are also needed.

 - cross-compiling requires `HOSTCC' and `HOSTCFLAGS' to be passed to
   the `configure' script, e.g.:

	$ ./configure CC=riscv64-unknown-elf-gcc HOSTCC=cc