heroku-buildpack-tex

by shareforce

GitHub Readme.md

TeX Live buildpack for Heroku

Build Status Latest Release

This is a Heroku buildpack to run TeX Live inside a dyno.

This can be useful if you simply want to play around with TeX Live without having to build or install it yourself. You can pull it up on your instance easily in bash:

heroku run bash

As an alternative you can also use a local docker build:

docker build . -t heroku-tex
docker run -ti -v path/to/my/tex/files:/app heroku-tex

Setup

heroku buildpacks:add git://github.com/Thermondo/heroku-buildpack-tex.git#VERSION_NUMBER

How does it work?

  • In this form, it uses install-tl it installs a working TeX Live into your application into your Heroku app.
  • It installs scheme-small to have a working minimal setup.
  • It uses tlmgr to install custom packages.
  • On subsequent pushes it uses tlmgr to update all installed packages.

Since we are not using a prepackaged version of TeX Live, the initial install can take some time. But in doing so you also gain more freedom with the selection of your packages.

Custom packages

You can add a file called texlive.packages in your repo:

collection-bibtexextra
collection-fontsextra
collection-langgerman
collection-xetex

It looks similar to the default texlive.profile, but without the 1 or 0 at the end. The buildpack runs tlmgr install on every line in this file. So you can use single packages or these collections.

When you add custom packages, keep in mind that Heroku has a maximum compressed slug-size, see here. A full TeX Live installation is very large.

Custom TeX Live version

By default the latest TeX Live version will be installed. You can customize the path to the repository to be used by adding a file called texlive.repository to your project. It should contain only the path to the location of the TeX Live repository that you want to use without trailing /. For example:

ftp://tug.org/historic/systems/texlive/2016/tlnet-final

This will install the latest TeX Live 2016 release.