package builder-web
Install
Dune Dependency
Authors
Maintainers
Sources
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)
- omd
-
fmt
>= "0.8.7"
- uri
-
cmdliner
< "1.1.0"
- logs
-
asn1-combinators
< "0.3.0"
-
mirage-crypto
< "1.0.0"
- duration
- ptime
-
tyxml
>= "4.3.0"
- ipaddr
-
metrics-rusage
>= "0.3.0"
-
metrics-influx
>= "0.3.0"
-
metrics-lwt
>= "0.3.0"
-
metrics
>= "0.3.0" & < "0.5.0"
-
opam-format
>= "2.1.0"
- opam-core
- scrypt-kdf
-
mirage-crypto-rng
< "1.0.0"
- pbkdf
-
caqti-driver-sqlite3
< "1.7.0"
-
caqti-lwt
< "1.7.0"
-
caqti
< "1.7.0"
-
lwt
>= "5.3.0"
- hex
- bos
-
cstruct
>= "6.0.0"
-
dream
>= "1.0.0~alpha2" & < "1.0.0~alpha3"
-
builder
>= "0.2.0"
-
dune
>= "2.7.0"
-
ocaml
>= "4.10.0"
Dev Dependencies (1)
-
alcotest
with-test
Used by
None
Conflicts
None