package builder-web

  1. Overview
  2. Docs
Web interface for builder

Install

Dune Dependency

Authors

Maintainers

Sources

builder-web-v0.1.0.tbz
sha256=aaf4964cb2f82bfd260cf501e5dd16629193c8f761b9bc7556bdf1e904dbfa19
sha512=f5dadeccead601f0b230d8bdd4ddde842ce4e353dcf38eb317e33d4a8ee9adda9aaae642277c75b460331ace8075bdc41ce0130ab045c97410a5f40aa3ea384c

Description

Builder-web takes in submissions of builds, typically from builder, and displays the produced artifacts in a way that makes it easy to compare checksums and build status. Produced binaries can be downloaded and executed. builds.robur.coop itself runs builder-web.

Published: 13 Nov 2021

README

Builder-web - a web frontend for reproducible builds

Builder-web takes in submissions of builds, typically from builder, and displays the produced artifacts in a way that makes it easy to compare checksums and build status. Produced binaries can be downloaded and executed. builds.robur.coop itself runs builder-web.

Overview

Builder-web is a single binary web server using a sqlite3 database with versioned schemas. Finished builds from builder are uploaded to builder-web, stored and indexed in the database and presented in the web interface to the user. Users can:

  • Get an overview of jobs - a job is typically script or opam package that is run and builds an artifact,

  • Browse all builds of a job - each job may have multiple builds, that are executed periodically by builder

  • Browse individual build and download artifacts and build information for reproducing the same binary.

  • Compare two builds, observing the differences in used opam packages, environment variables, and system packages.

  • Search for the SHA-256 hash of a binary to view a build that resulted in that binary.

Installation

Installing from source can be done with opam: opam install builder-web.

We also provide reproducible binary packages.

Setup

Builder-web consists of a binary builder-web that runs a web server on port 3000 listening on all interfaces by default. These values can be changed with the --port and --host flags respectively. See builder-web --help for more information.

Service scripts for FreeBSD and systemd are provided.

The web server expects a sqlite3 database in its data directory. An empty database can be created with builder-db migrate.

Database migrations

The sqlite3 database builder-web uses contains versioning information. On every schema change the database schema version is updated, and migration and rollback scripts are provided. The tool for database migrations is builder-migrations. See the builder-migrations --help output for each migration for further details.

Dependencies (31)

  1. omd
  2. fmt >= "0.8.7"
  3. uri
  4. cmdliner < "1.1.0"
  5. logs
  6. asn1-combinators < "0.3.0"
  7. mirage-crypto
  8. duration
  9. ptime
  10. tyxml >= "4.3.0"
  11. ipaddr
  12. metrics-rusage >= "0.3.0"
  13. metrics-influx >= "0.3.0"
  14. metrics-lwt >= "0.3.0"
  15. metrics >= "0.3.0"
  16. opam-format >= "2.1.0"
  17. opam-core
  18. scrypt-kdf
  19. mirage-crypto-rng
  20. pbkdf
  21. caqti-driver-sqlite3 < "1.7.0"
  22. caqti-lwt < "1.7.0"
  23. caqti < "1.7.0"
  24. lwt >= "5.3.0"
  25. hex
  26. bos
  27. cstruct >= "6.0.0"
  28. dream >= "1.0.0~alpha2" & < "1.0.0~alpha3"
  29. builder >= "0.2.0"
  30. dune >= "2.7.0"
  31. ocaml >= "4.10.0"

Dev Dependencies (1)

  1. alcotest with-test

Used by

None

Conflicts

None