Skip to content

Use some distribution format for software deployment

Currently we build all software we need on the system, as the target user. This produces no problem for all the go software, except for special cases like salsa-ansible#1. However for the main Rails application, it is a problem.

Deploying the Rails application takes a long time. It includes several long running steps, where asset building is the longest. During this build time, the on-disk files are out of sync with the running application. So everything that's loaded on demand, assets and (more critical) views, will not fit and often produce 500 responses to users. Also it makes it impractical to have more then one instance of the software running.

So we should think about switching to some distribution format. To mind comes either Debian packages, which can be installed by non-root if configured correctly, or Docker containers and then use something like podman.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information