2015-10-20 16:26:09 +03:00
|
|
|
|
2018-01-04 21:19:27 +03:00
|
|
|
.TH "hledger\-web" "1" "January 2018" "hledger\-web 1.5.99" "hledger User Manuals"
|
2015-10-20 16:26:09 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.SH NAME
|
|
|
|
.PP
|
|
|
|
hledger\-web \- web interface for the hledger accounting tool
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.PP
|
|
|
|
\f[C]hledger\-web\ [OPTIONS]\f[]
|
|
|
|
.PD 0
|
|
|
|
.P
|
|
|
|
.PD
|
|
|
|
\f[C]hledger\ web\ \-\-\ [OPTIONS]\f[]
|
|
|
|
.SH DESCRIPTION
|
|
|
|
.PP
|
|
|
|
hledger is a cross\-platform program for tracking money, time, or any
|
|
|
|
other commodity, using double\-entry accounting and a simple, editable
|
|
|
|
file format.
|
|
|
|
hledger is inspired by and largely compatible with ledger(1).
|
|
|
|
.PP
|
2017-12-07 23:04:11 +03:00
|
|
|
hledger\-web is hledger's web interface.
|
2015-10-30 23:23:01 +03:00
|
|
|
It starts a simple web application for browsing and adding transactions,
|
|
|
|
and optionally opens it in a web browser window if possible.
|
|
|
|
It provides a more user\-friendly UI than the hledger CLI or hledger\-ui
|
|
|
|
interface, showing more at once (accounts, the current account register,
|
|
|
|
balance charts) and allowing history\-aware data entry, interactive
|
|
|
|
searching, and bookmarking.
|
2015-10-20 16:26:09 +03:00
|
|
|
.PP
|
|
|
|
hledger\-web also lets you share a ledger with multiple users, or even
|
|
|
|
the public web.
|
|
|
|
There is no access control, so if you need that you should put it behind
|
|
|
|
a suitable web proxy.
|
|
|
|
As a small protection against data loss when running an unprotected
|
|
|
|
instance, it writes a numbered backup of the main journal file (only ?)
|
|
|
|
on every edit.
|
|
|
|
.PP
|
2016-06-10 04:07:08 +03:00
|
|
|
Like hledger, it reads data from one or more files in hledger journal,
|
|
|
|
timeclock, timedot, or CSV format specified with \f[C]\-f\f[], or
|
|
|
|
\f[C]$LEDGER_FILE\f[], or \f[C]$HOME/.hledger.journal\f[] (on windows,
|
|
|
|
perhaps \f[C]C:/Users/USER/.hledger.journal\f[]).
|
|
|
|
For more about this see hledger(1), hledger_journal(5) etc.
|
2015-10-30 23:23:01 +03:00
|
|
|
.PP
|
2017-12-07 23:04:11 +03:00
|
|
|
By default, hledger\-web starts the web app in \[lq]transient mode\[rq]
|
|
|
|
and also opens it in your default web browser if possible.
|
2015-10-30 23:23:01 +03:00
|
|
|
In this mode the web app will keep running for as long as you have it
|
|
|
|
open in a browser window, and will exit after two minutes of inactivity
|
|
|
|
(no requests and no browser windows viewing it).
|
2017-01-26 20:03:20 +03:00
|
|
|
With \f[C]\-\-serve\f[], it just runs the web app without exiting, and
|
|
|
|
logs requests to the console.
|
2016-11-21 18:38:58 +03:00
|
|
|
.PP
|
|
|
|
By default the server listens on IP address 127.0.0.1, accessible only
|
|
|
|
to local requests.
|
|
|
|
You can use \f[C]\-\-host\f[] to change this, eg
|
|
|
|
\f[C]\-\-host\ 0.0.0.0\f[] to listen on all configured addresses.
|
|
|
|
.PP
|
|
|
|
Similarly, use \f[C]\-\-port\f[] to set a TCP port other than 5000, eg
|
|
|
|
if you are running multiple hledger\-web instances.
|
|
|
|
.PP
|
|
|
|
You can use \f[C]\-\-base\-url\f[] to change the protocol, hostname,
|
2016-11-21 19:01:06 +03:00
|
|
|
port and path that appear in hyperlinks, useful eg for integrating
|
2016-11-21 18:38:58 +03:00
|
|
|
hledger\-web within a larger website.
|
2017-12-07 23:04:11 +03:00
|
|
|
The default is \f[C]http://HOST:PORT/\f[] using the server's configured
|
|
|
|
host address and TCP port (or \f[C]http://HOST\f[] if PORT is 80).
|
2016-11-21 18:38:58 +03:00
|
|
|
.PP
|
|
|
|
With \f[C]\-\-file\-url\f[] you can set a different base url for static
|
|
|
|
files, eg for better caching or cookie\-less serving on high performance
|
|
|
|
websites.
|
|
|
|
.PP
|
|
|
|
Note there is no built\-in access control (aside from listening on
|
|
|
|
127.0.0.1 by default).
|
|
|
|
So you will need to hide hledger\-web behind an authenticating proxy
|
|
|
|
(such as apache or nginx) if you want to restrict who can see and add
|
|
|
|
entries to your journal.
|
2015-10-30 23:23:01 +03:00
|
|
|
.PP
|
2016-05-28 22:58:30 +03:00
|
|
|
Command\-line options and arguments may be used to set an initial filter
|
|
|
|
on the data.
|
|
|
|
This is not shown in the web UI, but it will be applied in addition to
|
|
|
|
any search query entered there.
|
|
|
|
.PP
|
2016-04-13 07:10:02 +03:00
|
|
|
With journal and timeclock files (but not CSV files, currently) the web
|
2016-05-28 22:58:30 +03:00
|
|
|
app detects changes made by other means and will show the new data on
|
|
|
|
the next request.
|
2015-10-30 23:23:01 +03:00
|
|
|
If a change makes the file unparseable, hledger\-web will show an error
|
|
|
|
until the file has been fixed.
|
2015-10-20 16:26:09 +03:00
|
|
|
.SH OPTIONS
|
|
|
|
.PP
|
|
|
|
Note: if invoking hledger\-web as a hledger subcommand, write
|
|
|
|
\f[C]\-\-\f[] before options as shown above.
|
|
|
|
.TP
|
2017-01-06 04:18:13 +03:00
|
|
|
.B \f[C]\-\-serve\f[]
|
2017-12-07 23:04:11 +03:00
|
|
|
serve and log requests, don't browse or auto\-exit
|
2017-01-06 04:18:13 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
|
|
|
.B \f[C]\-\-host=IPADDR\f[]
|
|
|
|
listen on this IP address (default: 127.0.0.1)
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
|
|
|
.B \f[C]\-\-port=PORT\f[]
|
2017-01-06 04:18:13 +03:00
|
|
|
listen on this TCP port (default: 5000)
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
|
|
|
.B \f[C]\-\-base\-url=URL\f[]
|
2017-01-06 04:18:13 +03:00
|
|
|
set the base url (default: http://IPADDR:PORT).
|
2015-10-20 16:26:09 +03:00
|
|
|
You would change this when sharing over the network, or integrating
|
|
|
|
within a larger website.
|
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
|
|
|
.B \f[C]\-\-file\-url=URL\f[]
|
|
|
|
set the static files url (default: BASEURL/static).
|
|
|
|
hledger\-web normally serves static files itself, but if you wanted to
|
|
|
|
serve them from another server for efficiency, you would set the url
|
|
|
|
with this.
|
|
|
|
.RS
|
|
|
|
.RE
|
2016-06-03 19:38:06 +03:00
|
|
|
.PP
|
2017-03-30 00:35:59 +03:00
|
|
|
hledger input options:
|
2015-10-20 16:26:09 +03:00
|
|
|
.TP
|
2017-03-30 00:35:59 +03:00
|
|
|
.B \f[C]\-f\ FILE\ \-\-file=FILE\f[]
|
|
|
|
use a different input file.
|
|
|
|
For stdin, use \- (default: \f[C]$LEDGER_FILE\f[] or
|
|
|
|
\f[C]$HOME/.hledger.journal\f[])
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
2016-05-29 09:43:52 +03:00
|
|
|
.TP
|
2017-03-30 00:35:59 +03:00
|
|
|
.B \f[C]\-\-rules\-file=RULESFILE\f[]
|
|
|
|
Conversion rules file to use when reading CSV (default: FILE.rules)
|
2016-05-29 09:43:52 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2017-03-30 00:35:59 +03:00
|
|
|
.B \f[C]\-\-alias=OLD=NEW\f[]
|
|
|
|
rename accounts named OLD to NEW
|
2016-05-29 09:43:52 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2017-03-30 00:35:59 +03:00
|
|
|
.B \f[C]\-\-anon\f[]
|
|
|
|
anonymize accounts and payees
|
2016-05-29 09:43:52 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2017-09-05 21:44:02 +03:00
|
|
|
.B \f[C]\-\-pivot\ FIELDNAME\f[]
|
|
|
|
use some other field or tag for the account name
|
2016-05-29 09:43:52 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2016-07-07 01:17:09 +03:00
|
|
|
.B \f[C]\-I\ \-\-ignore\-assertions\f[]
|
2017-03-30 00:35:59 +03:00
|
|
|
ignore any failing balance assertions
|
2016-05-29 09:43:52 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
2015-10-20 16:26:09 +03:00
|
|
|
.PP
|
2016-06-03 19:38:06 +03:00
|
|
|
hledger reporting options:
|
2015-10-20 16:26:09 +03:00
|
|
|
.TP
|
2016-06-03 19:38:06 +03:00
|
|
|
.B \f[C]\-b\ \-\-begin=DATE\f[]
|
|
|
|
include postings/txns on or after this date
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2016-06-03 19:38:06 +03:00
|
|
|
.B \f[C]\-e\ \-\-end=DATE\f[]
|
|
|
|
include postings/txns before this date
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2016-06-03 19:38:06 +03:00
|
|
|
.B \f[C]\-D\ \-\-daily\f[]
|
|
|
|
multiperiod/multicolumn report by day
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2016-06-03 19:38:06 +03:00
|
|
|
.B \f[C]\-W\ \-\-weekly\f[]
|
|
|
|
multiperiod/multicolumn report by week
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2016-06-03 19:38:06 +03:00
|
|
|
.B \f[C]\-M\ \-\-monthly\f[]
|
|
|
|
multiperiod/multicolumn report by month
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2016-06-03 19:38:06 +03:00
|
|
|
.B \f[C]\-Q\ \-\-quarterly\f[]
|
|
|
|
multiperiod/multicolumn report by quarter
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2016-06-03 19:38:06 +03:00
|
|
|
.B \f[C]\-Y\ \-\-yearly\f[]
|
|
|
|
multiperiod/multicolumn report by year
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
|
|
|
.B \f[C]\-p\ \-\-period=PERIODEXP\f[]
|
2017-12-15 05:20:07 +03:00
|
|
|
set start date, end date, and/or reporting interval all at once using
|
|
|
|
period expressions syntax (overrides the flags above)
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2016-05-28 22:58:30 +03:00
|
|
|
.B \f[C]\-\-date2\f[]
|
2017-08-22 03:19:06 +03:00
|
|
|
match the secondary date instead (see command help for other effects)
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2017-06-16 04:47:28 +03:00
|
|
|
.B \f[C]\-U\ \-\-unmarked\f[]
|
|
|
|
include only unmarked postings/txns (can combine with \-P or \-C)
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2017-06-10 23:58:14 +03:00
|
|
|
.B \f[C]\-P\ \-\-pending\f[]
|
2015-10-20 16:26:09 +03:00
|
|
|
include only pending postings/txns
|
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2017-06-16 04:47:28 +03:00
|
|
|
.B \f[C]\-C\ \-\-cleared\f[]
|
|
|
|
include only cleared postings/txns
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
|
|
|
.B \f[C]\-R\ \-\-real\f[]
|
|
|
|
include only non\-virtual postings
|
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2017-09-22 21:51:53 +03:00
|
|
|
.B \f[C]\-NUM\ \-\-depth=NUM\f[]
|
|
|
|
hide/aggregate accounts or postings more than NUM levels deep
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
|
|
|
.B \f[C]\-E\ \-\-empty\f[]
|
2018-02-18 19:05:55 +03:00
|
|
|
show items with zero amount, normally hidden (except in
|
|
|
|
hledger\-ui/hledger\-web)
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
|
|
|
.B \f[C]\-B\ \-\-cost\f[]
|
2016-12-31 01:31:54 +03:00
|
|
|
convert amounts to their cost at transaction time (using the transaction
|
|
|
|
price, if any)
|
2015-10-20 16:26:09 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
2016-06-03 19:38:06 +03:00
|
|
|
.TP
|
2017-02-05 03:31:18 +03:00
|
|
|
.B \f[C]\-V\ \-\-value\f[]
|
|
|
|
convert amounts to their market value on the report end date (using the
|
|
|
|
most recent applicable market price, if any)
|
|
|
|
.RS
|
|
|
|
.RE
|
2017-12-15 05:20:07 +03:00
|
|
|
.TP
|
2017-12-31 21:08:44 +03:00
|
|
|
.B \f[C]\-\-auto\f[]
|
|
|
|
apply automated posting rules to modify transactions.
|
2017-12-15 05:20:07 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
2017-12-31 21:08:44 +03:00
|
|
|
.B \f[C]\-\-forecast\f[]
|
|
|
|
apply periodic transaction rules to generate future transactions, to 6
|
|
|
|
months from now or report end date.
|
2017-12-15 05:20:07 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
2017-03-30 00:35:59 +03:00
|
|
|
.PP
|
2017-10-01 00:29:25 +03:00
|
|
|
When a reporting option appears more than once in the command line, the
|
|
|
|
last one takes precedence.
|
|
|
|
.PP
|
|
|
|
Some reporting options can also be written as query arguments.
|
|
|
|
.PP
|
2017-03-30 00:35:59 +03:00
|
|
|
hledger help options:
|
2017-02-05 03:31:18 +03:00
|
|
|
.TP
|
2017-07-07 04:01:11 +03:00
|
|
|
.B \f[C]\-h\ \-\-help\f[]
|
2017-03-30 07:08:02 +03:00
|
|
|
show general usage (or after COMMAND, command usage)
|
2016-06-03 19:38:06 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
2016-10-26 22:15:20 +03:00
|
|
|
.TP
|
2017-03-30 00:35:59 +03:00
|
|
|
.B \f[C]\-\-version\f[]
|
|
|
|
show version
|
|
|
|
.RS
|
|
|
|
.RE
|
|
|
|
.TP
|
|
|
|
.B \f[C]\-\-debug[=N]\f[]
|
|
|
|
show debug output (levels 1\-9, default: 1)
|
2016-10-26 22:15:20 +03:00
|
|
|
.RS
|
|
|
|
.RE
|
2017-09-30 20:00:44 +03:00
|
|
|
.PP
|
|
|
|
A \@FILE argument will be expanded to the contents of FILE, which should
|
|
|
|
contain one command line option/argument per line.
|
|
|
|
(To prevent this, insert a \f[C]\-\-\f[] argument before.)
|
2015-10-20 16:26:09 +03:00
|
|
|
.SH ENVIRONMENT
|
|
|
|
.PP
|
2016-06-10 04:07:08 +03:00
|
|
|
\f[B]LEDGER_FILE\f[] The journal file path when not specified with
|
|
|
|
\f[C]\-f\f[].
|
|
|
|
Default: \f[C]~/.hledger.journal\f[] (on windows, perhaps
|
|
|
|
\f[C]C:/Users/USER/.hledger.journal\f[]).
|
2015-10-20 16:26:09 +03:00
|
|
|
.SH FILES
|
|
|
|
.PP
|
2016-06-10 04:07:08 +03:00
|
|
|
Reads data from one or more files in hledger journal, timeclock,
|
|
|
|
timedot, or CSV format specified with \f[C]\-f\f[], or
|
|
|
|
\f[C]$LEDGER_FILE\f[], or \f[C]$HOME/.hledger.journal\f[] (on windows,
|
|
|
|
perhaps \f[C]C:/Users/USER/.hledger.journal\f[]).
|
2015-10-20 16:26:09 +03:00
|
|
|
.SH BUGS
|
|
|
|
.PP
|
|
|
|
The need to precede options with \f[C]\-\-\f[] when invoked from hledger
|
|
|
|
is awkward.
|
|
|
|
.PP
|
2017-12-07 23:04:11 +03:00
|
|
|
\f[C]\-f\-\f[] doesn't work (hledger\-web can't read from stdin).
|
2015-10-20 16:26:09 +03:00
|
|
|
.PP
|
2016-06-10 04:07:08 +03:00
|
|
|
Query arguments and some hledger options are ignored.
|
2015-10-20 16:26:09 +03:00
|
|
|
.PP
|
|
|
|
Does not work in text\-mode browsers.
|
|
|
|
.PP
|
|
|
|
Does not work well on small screens.
|
|
|
|
|
|
|
|
|
|
|
|
.SH "REPORTING BUGS"
|
2016-04-09 23:56:09 +03:00
|
|
|
Report bugs at http://bugs.hledger.org
|
|
|
|
(or on the #hledger IRC channel or hledger mail list)
|
2015-10-20 16:26:09 +03:00
|
|
|
|
|
|
|
.SH AUTHORS
|
2016-04-09 23:56:09 +03:00
|
|
|
Simon Michael <simon@joyful.com> and contributors
|
2015-10-20 16:26:09 +03:00
|
|
|
|
|
|
|
.SH COPYRIGHT
|
|
|
|
|
2016-04-09 23:56:09 +03:00
|
|
|
Copyright (C) 2007-2016 Simon Michael.
|
2015-10-20 16:26:09 +03:00
|
|
|
.br
|
2016-04-13 06:31:17 +03:00
|
|
|
Released under GNU GPL v3 or later.
|
2015-10-20 16:26:09 +03:00
|
|
|
|
|
|
|
.SH SEE ALSO
|
2016-04-09 23:56:09 +03:00
|
|
|
hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1),
|
2016-04-13 07:10:02 +03:00
|
|
|
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_timedot(5),
|
2016-04-09 23:56:09 +03:00
|
|
|
ledger(1)
|
2015-10-20 16:26:09 +03:00
|
|
|
|
2016-04-09 23:56:09 +03:00
|
|
|
http://hledger.org
|