Small Libravatar implementation in C.
Warning: This software is not compatible with rust zealots.
libravatar.cgi is an open source CGI written in C implementing the Libravatar protocol. Its goal is to be minimal, secure and BCHS.
This implementation only serves existing avatars in the PNG format located in /var/www/htdocs/avatars
and does not provide any way to upload a file. This should be the responsability of a separate system.
To request an avatar the following steps should be done :
- Create a hash of a lowercased email address using md5 or sha256 ;
- Call the CGI with a HTTP request on the path
/avatar/$hash
.
A few options are accepted as GET parameters :
size
: control the size of the image, must be between 1 and 512 with a default value of 80 ;default
:404
,mm
andblank
are supported ;rating
: only kept for compatibility with Gravatar this option does nothing ;forcedefault
:y
orn
.
The current version is only tested on OpenBSD but builds without errors on FreeBSD and Alpine.
- C compiler ;
- kcgi ;
- libpng.
- curl ;
- sharness ;
- pnginfo (optional).
Configure your http server of choice to receive this CGI. An example and minimalistic configuration file is provided in the config/
folder for OpenBSD httpd(8).
# mkdir /var/www/htdocs/avatars/
# cp config/default.png /var/www/htdocs/avatars/
$ ./configure
$ make
# make install
Regression tests are provided in the regress/
folder. They test this implementation and two others: the old Libravatar from Francois Marier and ivatar from Oliver Falk.
Either send send GitHub pull requests or send patches on SourceHut.
All sources use the ISC license excepts oil_libpng.{c,h}
, and oil_resample.{c,h}
which use the MIT license. These files are sourced from the liboil project.