frontail β streaming logs to the browser
frontail
is a Node.js application for streaming logs to the browser. It's a tail -F
with UI.
Quick start
npm i frontail -g
or download a binary file from Releases pagefrontail /var/log/syslog
- visit http://127.0.0.1:9001
Features
- log rotation
- auto-scrolling
- marking logs
- pause logs
- number of unread logs in favicon
- themes (default, dark)
- highlighting
- search (
Tab
to focus,Esc
to clear) - set filter from url parameter
filter
- tailing multiple files and stdin
- basic authentication
Installation options
- download a binary file from Releases page (currently
frontail
doesn't work on Windows) - using npm package:
npm i frontail -g
- using Docker image:
docker run -d -P -v /var/log:/log mthenw/frontail /log/syslog
Usage
frontail [options] [file ...]
Options:
-V, --version output the version number
-h, --host <host> listening host, default 0.0.0.0
-p, --port <port> listening port, default 9001
-n, --number <number> starting lines number, default 10
-l, --lines <lines> number on lines stored in browser, default 2000
-t, --theme <theme> name of the theme (default, dark)
-d, --daemonize run as daemon
-U, --user <username> Basic Authentication username, option works only along with -P option
-P, --password <password> Basic Authentication password, option works only along with -U option
-k, --key <key.pem> Private Key for HTTPS, option works only along with -c option
-c, --certificate <cert.pem> Certificate for HTTPS, option works only along with -k option
--pid-path <path> if run as daemon file that will store the process id, default /var/run/frontail.pid
--log-path <path> if run as daemon file that will be used as a log, default /dev/null
--url-path <path> URL path for the browser application, default /
--ui-hide-topbar hide topbar (log file name and search box)
--ui-no-indent don't indent log lines
--ui-highlight highlight words or lines if defined string found in logs, default preset
--ui-highlight-preset <path> custom preset for highlighting (see ./preset/default.json)
--path <path> prefix path for the running application, default /
--disable-usage-stats disable gathering usage statistics
--help output usage information
Web interface runs on http://[host]:[port].
Tailing multiple files
[file ...]
accepts multiple paths, *
, ?
and other shell special characters(Wildcards, Quotes, Back Quotes and Apostrophes in shell commands).
stdin
Use -
for streaming stdin:
./server | frontail -
Highlighting
--ui-highlight
option turns on highlighting in UI. By default preset from ./preset/default.json
is used:
{
"words": {
"err": "color: red;"
},
"lines": {
"err": "font-weight: bold;"
}
}
which means that every "err" string will be in red and every line containing "err" will be bolded.
New presets are very welcome. If you don't like default or you would like to share yours, please create PR with json file.
Available presets:
- default
- npmlog
- python
Running behind nginx
Using the --url-path
option frontail
can run behind nginx with the example configuration
Using frontail
with --url-path /frontail
events {
worker_connections 1024;
}
http {
server {
listen 8080;
server_name localhost;
location /frontail {
proxy_pass http://127.0.0.1:9001/frontail;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
}
Usage statistics
frontail
by default (from v4.5.0
) gathers anonymous usage statistics in Google Analytics. It can be disabled with
--disable-usage-stats
.
The data is used to help me understand how frontail
is used and I can make it better.