treebird/docs/INSTALL.md
nekobit 7d0de2754f Titles, Emojis, Greentexts, and more
FossilOrigin-Name: 7166edf7fcd136ffbda39d2f36e96832690cf978a1c5df4bb6d172f8a2e905ac
2022-07-31 05:59:21 +00:00

2.7 KiB

Installing Treebird

This is a stub and isn't complete, please update it!

Compiling

For the following GNU/Linux distributions, you will need the following libraries/packages:

Debian

# apt install libcurl4-gnutls-dev libpcre2-dev libfcgi-dev base-devel

Void GNU/Linux

# xbps-install libcurl libcurl-devel base-devel pcre2 pcre2-devel fcgi fcgi-devel

Arch

# pacman -S curl base-devel

Create a copy of config.def.h at config.h, edit the file with your information

Run make. This will also clone mastodont-c, and compile both it and Treebird.

If you fossil update any changes, make update should be run after updating

Perl dependencies

Treebird renders most of the content that you see in Perl using the Template Toolkit.

You can install it by running make install_deps

If that doesn't work, you can open a CPAN shell

perl -MCPAN -e shell
install Template::Toolkit
install HTML::Escape

Installation

Run # make install

If this succeeds (assuming you used default variables), you can now find Treebird at the following

  • /usr/local/share/treebird/ - Contains CSS, images, and other meta files
  • /usr/local/bin/treebird - Regular executable CGI file, test it by running it as is, it shouldn't spit anything out

Using NGINX

Treebird can be served over nginx by using a FastCGI daemon such as spawn-fcgi.

The example static files will be in /usr/local/share/treebird/, with treebird.cgi at /usr/local/bin/treebird.

After running make, Treebird's files will be in the dist/ directory. Copy, DO NOT MOVE, everything but treebird.cgi of this folder to your web server. Copy treebird.cgi to another directory of your choosing.

Nginx

An example Nginx configuration is available in treebird.nginx.conf.

  • Make sure to change example.com to your instance's domain.
  • Make sure to change the root to wherever the static files are being stored

Using Apache and mod_proxy_fcgi

Apache hasn't caused many troubles, and is in fact, what I use for development. You can see how to start spawn-fcgi in scripts/fcgistarter.sh.

Example Apache configuration is available in treebird.apache.conf.

spawn-fcgi

spawn-fcgi can be used for both Apache and Nginx. Read the manual for it to see how to work it, or view the testing script at scripts/fcgistarter.sh

  • Please, at all costs, avoid FCGIWrap. It's caused nothing but headaches and has proved no real use other than spitting Cannot get script name, are DOCUMENT_ROOT and SCRIPT_NAME (or SCRIPT_FILENAME) set and is the script executable? at you (even if those variables are set and the script is executable)