diff --git a/doc/guix.texi b/doc/guix.texi
index 13665b5..0924aeb 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -32940,114 +32940,6 @@ Defaults to @samp{#t}.
 @node Monitoring Services
 @subsection Monitoring Services
 
-@subsubheading Tailon Service
-
-@uref{https://tailon.readthedocs.io/, Tailon} is a web application for
-viewing and searching log files.
-
-The following example will configure the service with default values.
-By default, Tailon can be accessed on port 8080 (@code{http://localhost:8080}).
-
-@lisp
-(service tailon-service-type)
-@end lisp
-
-The following example customises more of the Tailon configuration,
-adding @command{sed} to the list of allowed commands.
-
-@lisp
-(service tailon-service-type
-         (tailon-configuration
-           (config-file
-             (tailon-configuration-file
-               (allowed-commands '("tail" "grep" "awk" "sed"))))))
-@end lisp
-
-
-@deftp {Data Type} tailon-configuration
-Data type representing the configuration of Tailon.
-This type has the following parameters:
-
-@table @asis
-@item @code{config-file} (default: @code{(tailon-configuration-file)})
-The configuration file to use for Tailon.  This can be set to a
-@dfn{tailon-configuration-file} record value, or any gexp
-(@pxref{G-Expressions}).
-
-For example, to instead use a local file, the @code{local-file} function
-can be used:
-
-@lisp
-(service tailon-service-type
-         (tailon-configuration
-           (config-file (local-file "./my-tailon.conf"))))
-@end lisp
-
-@item @code{package} (default: @code{tailon})
-The tailon package to use.
-
-@end table
-@end deftp
-
-@deftp {Data Type} tailon-configuration-file
-Data type representing the configuration options for Tailon.
-This type has the following parameters:
-
-@table @asis
-@item @code{files} (default: @code{(list "/var/log")})
-List of files to display.  The list can include strings for a single file
-or directory, or a list, where the first item is the name of a
-subsection, and the remaining items are the files or directories in that
-subsection.
-
-@item @code{bind} (default: @code{"localhost:8080"})
-Address and port to which Tailon should bind on.
-
-@item @code{relative-root} (default: @code{#f})
-URL path to use for Tailon, set to @code{#f} to not use a path.
-
-@item @code{allow-transfers?} (default: @code{#t})
-Allow downloading the log files in the web interface.
-
-@item @code{follow-names?} (default: @code{#t})
-Allow tailing of not-yet existent files.
-
-@item @code{tail-lines} (default: @code{200})
-Number of lines to read initially from each file.
-
-@item @code{allowed-commands} (default: @code{(list "tail" "grep" "awk")})
-Commands to allow running.  By default, @code{sed} is disabled.
-
-@item @code{debug?} (default: @code{#f})
-Set @code{debug?} to @code{#t} to show debug messages.
-
-@item @code{wrap-lines} (default: @code{#t})
-Initial line wrapping state in the web interface.  Set to @code{#t} to
-initially wrap lines (the default), or to @code{#f} to initially not
-wrap lines.
-
-@item @code{http-auth} (default: @code{#f})
-HTTP authentication type to use.   Set to @code{#f} to disable
-authentication (the default).  Supported values are @code{"digest"} or
-@code{"basic"}.
-
-@item @code{users} (default: @code{#f})
-If HTTP authentication is enabled (see @code{http-auth}), access will be
-restricted to the credentials provided here.  To configure users, use a
-list of pairs, where the first element of the pair is the username, and
-the 2nd element of the pair is the password.
-
-@lisp
-(tailon-configuration-file
-  (http-auth "basic")
-  (users     '(("user1" . "password1")
-               ("user2" . "password2"))))
-@end lisp
-
-@end table
-@end deftp
-
-
 @subsubheading Darkstat Service
 @cindex darkstat
 Darkstat is a packet sniffer that captures network traffic, calculates
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index f811497..d122576 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -204,26 +204,6 @@
             hpcguix-web-configuration?
             hpcguix-web-service-type
 
-            tailon-configuration-file
-            tailon-configuration-file?
-            tailon-configuration-file-files
-            tailon-configuration-file-bind
-            tailon-configuration-file-relative-root
-            tailon-configuration-file-allow-transfers?
-            tailon-configuration-file-follow-names?
-            tailon-configuration-file-tail-lines
-            tailon-configuration-file-allowed-commands
-            tailon-configuration-file-debug?
-            tailon-configuration-file-http-auth
-            tailon-configuration-file-users
-
-            tailon-configuration
-            tailon-configuration?
-            tailon-configuration-config-file
-            tailon-configuration-package
-
-            tailon-service-type
-
             anonip-configuration
             anonip-configuration?
             anonip-configuration-anonip
@@ -1355,153 +1335,6 @@ a webserver.")
 
 
 ;;;
-;;; Tailon
-;;;
-
-(define-record-type* <tailon-configuration-file>
-  tailon-configuration-file make-tailon-configuration-file
-  tailon-configuration-file?
-  (files                   tailon-configuration-file-files
-                           (default '("/var/log")))
-  (bind                    tailon-configuration-file-bind
-                           (default "localhost:8080"))
-  (relative-root           tailon-configuration-file-relative-root
-                           (default #f))
-  (allow-transfers?        tailon-configuration-file-allow-transfers?
-                           (default #t))
-  (follow-names?           tailon-configuration-file-follow-names?
-                           (default #t))
-  (tail-lines              tailon-configuration-file-tail-lines
-                           (default 200))
-  (allowed-commands        tailon-configuration-file-allowed-commands
-                           (default '("tail" "grep" "awk")))
-  (debug?                  tailon-configuration-file-debug?
-                           (default #f))
-  (wrap-lines              tailon-configuration-file-wrap-lines
-                           (default #t))
-  (http-auth               tailon-configuration-file-http-auth
-                           (default #f))
-  (users                   tailon-configuration-file-users
-                           (default #f)))
-
-(define (tailon-configuration-files-string files)
-  (string-append
-   "\n"
-   (string-join
-    (map
-     (lambda (x)
-       (string-append
-        "  - "
-        (cond
-         ((string? x)
-          (simple-format #f "'~A'" x))
-         ((list? x)
-          (string-join
-           (cons (simple-format #f "'~A':" (car x))
-                 (map
-                  (lambda (x) (simple-format #f "      - '~A'" x))
-                  (cdr x)))
-           "\n"))
-         (else (error x)))))
-     files)
-    "\n")))
-
-(define-gexp-compiler (tailon-configuration-file-compiler
-                       (file <tailon-configuration-file>) system target)
-  (match file
-    (($ <tailon-configuration-file> files bind relative-root
-                                    allow-transfers? follow-names?
-                                    tail-lines allowed-commands debug?
-                                    wrap-lines http-auth users)
-     (text-file
-      "tailon-config.yaml"
-      (string-concatenate
-       (filter-map
-        (match-lambda
-         ((key . #f) #f)
-         ((key . value) (string-append key ": " value "\n")))
-
-        `(("files" . ,(tailon-configuration-files-string files))
-          ("bind" . ,bind)
-          ("relative-root" . ,relative-root)
-          ("allow-transfers" . ,(if allow-transfers? "true" "false"))
-          ("follow-names" . ,(if follow-names? "true" "false"))
-          ("tail-lines" . ,(number->string tail-lines))
-          ("commands" . ,(string-append "["
-                                        (string-join allowed-commands ", ")
-                                        "]"))
-          ("debug" . ,(if debug? "true" #f))
-          ("wrap-lines" . ,(if wrap-lines "true" "false"))
-          ("http-auth" . ,http-auth)
-          ("users" . ,(if users
-                          (string-concatenate
-                           (cons "\n"
-                                 (map (match-lambda
-                                       ((user . pass)
-                                        (string-append
-                                         "  " user ":" pass)))
-                                      users)))
-                          #f)))))))))
-
-(define-record-type* <tailon-configuration>
-  tailon-configuration make-tailon-configuration
-  tailon-configuration?
-  (config-file tailon-configuration-config-file
-               (default (tailon-configuration-file)))
-  (package tailon-configuration-package
-           (default tailon)))
-
-(define tailon-shepherd-service
-  (match-lambda
-    (($ <tailon-configuration> config-file package)
-     (list (shepherd-service
-            (provision '(tailon))
-            (requirement '(user-processes))
-            (documentation "Run the tailon daemon.")
-            (start #~(make-forkexec-constructor
-                      `(,(string-append #$package "/bin/tailon")
-                        "-c" ,#$config-file)
-                      #:user "tailon"
-                      #:group "tailon"))
-            (stop #~(make-kill-destructor)))))))
-
-(define %tailon-accounts
-  (list (user-group (name "tailon") (system? #t))
-        (user-account
-         (name "tailon")
-         (group "tailon")
-         (system? #t)
-         (comment "tailon")
-         (home-directory "/var/empty")
-         (shell (file-append shadow "/sbin/nologin")))))
-
-(define tailon-service-type
-  (service-type
-   (name 'tailon)
-   (description
-    "Run Tailon, a Web application for monitoring, viewing, and searching log
-files.")
-   (extensions
-    (list (service-extension shepherd-root-service-type
-                             tailon-shepherd-service)
-          (service-extension account-service-type
-                             (const %tailon-accounts))))
-   (compose concatenate)
-   (extend (lambda (parameter files)
-             (tailon-configuration
-              (inherit parameter)
-              (config-file
-               (let ((old-config-file
-                      (tailon-configuration-config-file parameter)))
-                 (tailon-configuration-file
-                  (inherit old-config-file)
-                  (files (append (tailon-configuration-file-files old-config-file)
-                                 files))))))))
-   (default-value (tailon-configuration))))
-
-
-
-;;;
 ;;; Log anonymization
 ;;;
 
diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm
index 0815195..4d7a8c5 100644
--- a/gnu/tests/web.scm
+++ b/gnu/tests/web.scm
@@ -54,7 +54,6 @@
             %test-varnish
             %test-php-fpm
             %test-hpcguix-web
-            %test-tailon
             %test-anonip
             %test-patchwork
             %test-agate))
@@ -480,76 +479,6 @@ HTTP-PORT, along with php-fpm."
    (value (run-hpcguix-web-server-test name %hpcguix-web-os))))
 
 
-(define %tailon-os
-  ;; Operating system under test.
-  (simple-operating-system
-   (service dhcpcd-service-type)
-   (service tailon-service-type
-            (tailon-configuration
-             (config-file
-              (tailon-configuration-file
-               (bind "0.0.0.0:8080")))))))
-
-(define* (run-tailon-test #:optional (http-port 8081))
-  "Run tests in %TAILON-OS, which has tailon running and listening on
-HTTP-PORT."
-  (define os
-    (marionette-operating-system
-     %tailon-os
-     #:imported-modules '((gnu services herd)
-                          (guix combinators))))
-
-  (define vm
-    (virtual-machine
-     (operating-system os)
-     (port-forwardings `((,http-port . 8080)))))
-
-  (define test
-    (with-imported-modules '((gnu build marionette))
-      #~(begin
-          (use-modules (srfi srfi-11) (srfi srfi-64)
-                       (ice-9 match)
-                       (gnu build marionette)
-                       (web uri)
-                       (web client)
-                       (web response))
-
-          (define marionette
-            ;; Forward the guest's HTTP-PORT, where tailon is listening, to
-            ;; port 8080 in the host.
-            (make-marionette (list #$vm)))
-
-          (test-runner-current (system-test-runner #$output))
-          (test-begin "tailon")
-
-          (test-assert "service running"
-            (wait-for-tcp-port 8080 marionette))
-
-          (test-equal "http-get"
-            200
-            (#$retry-on-error
-             (lambda ()
-               (let-values (((response text)
-                             (http-get #$(format
-                                          #f
-                                          "http://localhost:~A/"
-                                          http-port)
-                                       #:decode-body? #t)))
-                 (response-code response)))
-             #:times 10
-             #:delay 5))
-
-          (test-end))))
-
-  (gexp->derivation "tailon-test" test))
-
-(define %test-tailon
-  (system-test
-   (name "tailon")
-   (description "Connect to a running Tailon server.")
-   (value (run-tailon-test))))
-
-
 ;;;
 ;;; Anonip
 ;;;
