diff --git a/Makefile.am b/Makefile.am
index 17a73f09f5b8a6da49bbfe99987bf4d8fc8a18ee..72cb5a61f2699f0a58e3e1cdc29cb1ab4fd436ae 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -85,7 +85,8 @@ dist_sql_DATA = 				\
   src/sql/upgrade-13.sql			\
   src/sql/upgrade-14.sql			\
   src/sql/upgrade-15.sql			\
-  src/sql/upgrade-16.sql
+  src/sql/upgrade-16.sql			\
+  src/sql/upgrade-17.sql
 
 dist_css_DATA =					\
   src/static/css/cuirass.css			\
diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm
index c3ce9007778af11f397f78a0b37e100f45c8657b..a134440c4d82b0ce8cae6a1c726d9fbdd32590ad 100644
--- a/src/cuirass/base.scm
+++ b/src/cuirass/base.scm
@@ -583,7 +583,8 @@ updating the database accordingly."
            (db-update-build-status! drv (build-status started)))
          (log-message "bogus build-started event for '~a'" drv)))
     (('build-remote drv host _ ...)
-     (log-message "'~a' offloaded to '~a'" drv host))
+     (log-message "'~a' offloaded to '~a'" drv host)
+     (db-update-build-machine! drv host))
     (('build-succeeded drv _ ...)
      (if (valid? drv)
          (begin
diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm
index 7d9427ba700e09a684d7f3f5a836d3f735974f25..4ef5229f14d8b3eb8f4e8ae13bc2207697562c8e 100644
--- a/src/cuirass/database.scm
+++ b/src/cuirass/database.scm
@@ -60,6 +60,7 @@
             db-add-build-product
             db-register-builds
             db-update-build-status!
+            db-update-build-machine!
             db-get-output
             db-get-inputs
             db-get-build
@@ -802,6 +803,12 @@ log file for DRV."
                             (#:event      . ,(assq-ref status-names
                                                        status)))))))))
 
+(define* (db-update-build-machine! drv machine)
+  "Update the database so that DRV's machine is MACHINE."
+  (with-db-writer-worker-thread db
+    (sqlite-exec db "UPDATE Builds SET machine=" machine
+                 "WHERE derivation=" drv ";")))
+
 (define (db-get-output path)
   "Retrieve the OUTPUT for PATH."
   (with-db-worker-thread db
diff --git a/src/schema.sql b/src/schema.sql
index 6b08b7eb707e2c0f3ce459482b3e5d3e350fc3d0..51d0c805afa398711ddedfc74c49fafd1c866076 100644
--- a/src/schema.sql
+++ b/src/schema.sql
@@ -61,6 +61,7 @@ CREATE TABLE Builds (
   evaluation    INTEGER NOT NULL,
   job_name      TEXT NOT NULL,
   system        TEXT NOT NULL,
+  machine       TEXT, --optional, machine performing the build.
   nix_name      TEXT NOT NULL,
   log           TEXT NOT NULL,
   status        INTEGER NOT NULL,
diff --git a/src/sql/upgrade-17.sql b/src/sql/upgrade-17.sql
new file mode 100644
index 0000000000000000000000000000000000000000..f74bb92a5ba1f6219681c19af562a07a9de5c023
--- /dev/null
+++ b/src/sql/upgrade-17.sql
@@ -0,0 +1,5 @@
+BEGIN TRANSACTION;
+
+ALTER TABLE Builds ADD machine TEXT DEFAULT NULL;
+
+COMMIT;