Containerized Treebird FE Build ======================================== This git repo contains the files needed to builder a docker containerized setup of nekobit's C FCGI based Treebird Front End for Pleroma or other Mastodon compatibles. ## How to build the container image The build is divided into two parts to allow you to make custom configuration changes. Run the following to prepare the container build configuration. ./configure_build.sh instance_domain treebird_domain [treebird_fcgi_port (optional)] options: - `instance_domain`: domain of the instance for Treebird FE to connect to (ex: sleepy.cafe) - `treebird_domain`: domain you plan serve Treebird on (ex: treebird.mysite.com) - `treebird_fcgi_port`: internal FCGI port for your http server to communicate with Treebird *DO NOT* set this unless you have a port conflict (default: 4008) The script will generate a folder named `configs/` containing configuration files you can edit further as needed before starting the build. Once ready, run the following: ./build_container.sh [image_name (optional)] [container_name (optional)] NOTE: Unless your user is a member of the `docker` group, you will need root for this! The build _should_ complete without errors and if you run `docker image ls` you should see `treebird:latest` (or whatever alt image tag you set in the previous command). ## Troubleshooting Various issues I have seen and solutions ### Random Issue I Saw - I On older versions of debian you need to install `docker.io` to get docker (the container software) rather than docker (some utility for docking widgets in GUIs I think). ### Random Issue I Saw - II If the container build fails and you get the following message: The key(s) in the keyring /etc/apt/trusted.gpg.d/debian-archive-bullseye-automatic.gpg are ignored as the file is not readable by user '_apt' executing Try building the container locally or on another system. I saw this when running from debian stable VPS. I think it is some kind of permission issue due to kernel or docker version differences because the exact same image runs fine on other host distros. After building elsewhere you can do the following: docker save treebird:latest -o treebird.dsave rsync -avP treebird.dsave name@myserver:~/ ssh name@myserver docker load -i treebird.dsave ### Random Issue I Saw - III In the nginx config it handles more than one set of a `fastcgi_param` very poorly so if you `include fastcgi.conf` and try to set SCRIPTNAME after, it will fail to update it and you will get the usual fastcgi cryptic error.