wiki:

FATE

/

Fateserver


Version 4 (modified by Timothy_Gu, 5 years ago) (diff)

Title

fateserver

fateserver is the server software used to power http://fate.ffmpeg.org. It is written by FFmpeg in 2011, in Perl CGI. The main repo for fateserver is located at git://git.ffmpeg.org/fateserver, with a GitHub mirror.

Instructions on Installing fateserver

When you make a change in fateserver, it is always a good idea to test whether everything work on your own work PC.

  1. Get Apache httpd. On Debian derivatives do
    sudo apt-get install apache2
    
  2. Get fateserver (from now on I'll assume fateserver is located under /var/www/fateserver).
    cd /var/www
    git clone git://git.ffmpeg.org/fateserver
    
  1. Make /var/www/fateserver the root of the server. This is OS-dependant, but on Ubuntu you have to modify /etc/apache2/sites-available/000-default.conf: From
    DocumentRoot /var/www
    
    to
    DocumentRoot /var/www/fateserver
    
  1. Allow CGI to be executed in Apache, add this to /etc/apache2/apache2.conf:
    LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
    <Directory /var/www/fateserver>
            Options +ExecCGI
            AddHandler cgi-script .cgi .pl
    </Directory>
    
  1. Create an user for people to report using ssh with.
    sudo adduser fate
    
  1. In that user's .ssh/authorized_keys, add one entry for each submitter with the following:
    command="FATEDIR=/var/www/fateweb FATE_USER=<some identifier of your choice for that submitter> /var/www/fateweb/fate-recv.sh" <submitter's public key>
    

This makes sure they get identified for fateweb and they can only run that one command, so they don't get a shell.

  1. Edit FATE.pm, set the $fatedir variable to the fateweb path
    our $fatedir = "/var/www/fateweb";
    

Thanks to Ramiro Polla for writing this guide. Major updates made by Timothy Gu.

Notes: fateserver can't be on a sub-dir. So it must be something like fate.ffmpeg.org, but can't be ffmpeg.org/fate. Otherwise the links are wrong and it won't load the CSS. Some tools are also needed on the server, like xz.