If a users chooses to disable the Alertmanager cluster feature, there is no cluster name nor cluster peers. Hence these should be optional. Only cluster status is set to "disabled". Signed-off-by: Max Leonard Inden <IndenML@gmail.com>
22 KiB
Next release
- [CHANGE] Make api/v2/status.cluster.{name,peers} properties optional for Alertmanager with disabled clustering (#1728)
0.16.1 / 2019-01-31
- [BUGFIX] Do not populate cluster info if clustering is disabled in API v2 (#1726)
0.16.0 / 2019-01-17
This release introduces a new API v2, fully generated via the OpenAPI project [1]. At the same time with this release the previous API v1 is being deprecated. API v1 will be removed with Alertmanager release v0.18.0.
- [CHANGE] Deprecate API v1
- [CHANGE] Remove
api/v1/alerts/groups
GET endpoint (#1508 & #1525) - [CHANGE] Revert Alertmanager working directory changes in Docker image back to
/alertmanager
(#1435) - [CHANGE] Using the recommended label syntax for maintainer in Dockerfile (#1533)
- [CHANGE] Change
alertmanager_notifications_total
to count attempted notifications, not only successful ones (#1578) - [CHANGE] Run as nobody inside container (#1586)
- [CHANGE] Support
w
for weeks when creating silences, removey
for year (#1620) - [FEATURE] Introduce OpenAPI generated API v2 (#1352)
- [FEATURE] Lookup parts in strings using regexp.MatchString in templates (#1452)
- [FEATURE] Support image/thumb url in attachment in Slack notifier (#1506)
- [FEATURE] Support custom TLS certificates for the email notifier (#1528)
- [FEATURE] Add support for images and links in the PagerDuty notification config (#1559)
- [FEATURE] Add support for grouping by all labels (#1588)
- [FEATURE] [amtool] Add timeout support to amtool commands (#1471)
- [FEATURE] [amtool] Added
config routes
tools for vizualization and testing routes (#1511) - [FEATURE] [amtool] Support adding alerts using amtool (#1461)
- [ENHANCEMENT] Add support for --log.format (#1658)
- [ENHANCEMENT] Add CORS support to API v2 (#1667)
- [ENHANCEMENT] Support HTML, URL title and custom sounds for Pushover (#1634)
- [ENHANCEMENT] Update Alert compact view (#1698)
- [ENHANCEMENT] Support adding custom fields to VictorOps notifications (#1420)
- [ENHANCEMENT] Add help link in UI to Alertmanager documentation (#1522)
- [ENHANCEMENT] Enforce HTTP or HTTPS URLs in Alertmanager config (#1567)
- [ENHANCEMENT] Make OpsGenie API Key a templated string (#1594)
- [ENHANCEMENT] Add name, value and SlackConfirmationField to action in Slack notifier (#1557)
- [ENHANCEMENT] Show more alert information on silence form and silence view pages (#1601)
- [ENHANCEMENT] Add cluster peers DNS refresh job (#1428)
- [BUGFIX] Fix unmarshalling of secret URLs in config (#1663)
- [BUGFIX] Do not write groupbyall and groupby when marshaling config (#1665)
- [BUGFIX] Make a copy of firing alerts with EndsAt=0 when flushing (#1686)
- [BUGFIX] Respect regex matchers when recreating silences in UI (#1697)
- [BUGFIX] Change DefaultGlobalConfig to a function in Alertmanager configuration (#1656)
- [BUGFIX] Fix email template typo in alert-warning style (#1421)
- [BUGFIX] Fix silence redirect on silence creation UI page (#1548)
- [BUGFIX] Add missing
callback_id
parameter in Slack notifier (#1592) - [BUGFIX] Throw error if no auth mechanism matches in email notifier (#1608)
- [BUGFIX] Use quoted-printable transfer encoding for the email notifier (#1609)
- [BUGFIX] Do not merge expired gossip messages (#1631)
- [BUGFIX] Fix "PLAIN" auth during notification via smtp-over-tls on port 465 (#1591)
- [BUGFIX] [amtool] Support for assuming first label is alertname in silence add and query (#1693)
- [BUGFIX] [amtool] Support assuming first label is alertname in alert query with matchers (#1575)
- [BUGFIX] [amtool] Fix config path check in amtool (#1538)
- [BUGFIX] [amtool] Fix rfc3339 example texts (#1526)
- [BUGFIX] [amtool] Fixed issue with loading path of a default configs (#1529)
[1] https://github.com/prometheus/alertmanager#api
0.15.3 / 2018-11-09
- [BUGFIX] Fix alert merging supporting both empty and set EndsAt property for firing alerts send by Prometheus (#1611)
0.15.2 / 2018-08-14
- [ENHANCEMENT] [amtool] Add support for stdin to check-config (#1431)
- [ENHANCEMENT] Log PagerDuty v1 response on BadRequest (#1481)
- [BUGFIX] Correctly encode query strings in notifiers (#1516)
- [BUGFIX] Add cache control headers to the API responses to avoid IE caching (#1500)
- [BUGFIX] Avoid listener blocking on unsubscribe (#1482)
- [BUGFIX] Fix a bunch of unhandled errors (#1501)
- [BUGFIX] Update PagerDuty API V2 to send full details on resolve (#1483)
- [BUGFIX] Validate URLs at config load time (#1468)
- [BUGFIX] Fix Settle() interval (#1478)
- [BUGFIX] Fix email to be green if only none firing (#1475)
- [BUGFIX] Handle errors in notify (#1474)
- [BUGFIX] Fix templating of hipchat room id (#1463)
0.15.1 / 2018-07-10
- [BUGFIX] Fix email template typo in alert-warning style (#1421)
- [BUGFIX] Fix regression in Pager Duty config (#1455)
- [BUGFIX] Catch templating errors in Wechat Notify (#1436)
- [BUGFIX] Fail when no private address can be found for cluster (#1437)
- [BUGFIX] Make sure we don't miss the first pushPull when joining cluster (#1456)
- [BUGFIX] Fix concurrent read and write group error in dispatch (#1447)
0.15.0 / 2018-06-22
- [CHANGE] [amtool] Update silence add and update flags (#1298)
- [CHANGE] Replace deprecated InstrumentHandler() (#1302)
- [CHANGE] Validate Slack field config and only allow the necessary input (#1334)
- [CHANGE] Remove legacy alert ingest endpoint (#1362)
- [CHANGE] Move to memberlist as underlying gossip protocol including cluster flag changes from --mesh.xxx to --cluster.xxx (#1232)
- [CHANGE] Move Alertmanager working directory in Docker image to /etc/alertmanager (#1313)
- [BUGFIX/CHANGE] The default group by is no labels. (#1287)
- [FEATURE] [amtool] Filter alerts by receiver (#1402)
- [FEATURE] Wait for mesh to settle before sending alerts (#1209)
- [FEATURE] [amtool] Support basic auth in alertmanager url (#1279)
- [FEATURE] Make HTTP clients used for integrations configurable
- [ENHANCEMENT] Support receiving alerts with end time and zero start time
- [ENHANCEMENT] Sort dispatched alerts by job+instance (#1234)
- [ENHANCEMENT] Support alert query filters
active
andunprocessed
(#1366) - [ENHANCEMENT] [amtool] Expose alert query flags --active and --unprocessed (#1370)
- [ENHANCEMENT] Add Slack actions to notifications (#1355)
- [BUGFIX] Register nflog snapShotSize metric
- [BUGFIX] Sort alerts in correct order before flushing to notifiers (#1349)
- [BUGFIX] Don't reset initial wait timer if flush is in-progress (#1301)
- [BUGFIX] Fix resolved alerts still inhibiting (#1331)
- [BUGFIX] Template wechat config fields (#1356)
- [BUGFIX] Notify resolved alerts properly (#1408)
- [BUGFIX] Fix parsing for label values with commas (#1395)
- [BUGFIX] Hide sensitive Wechat configuration (#1253)
- [BUGFIX] Prepopulate matchers when recreating a silence (#1270)
- [BUGFIX] Fix wechat panic (#1293)
- [BUGFIX] Allow empty matchers in silences/filtering (#1289)
- [BUGFIX] Properly configure HTTP client for Wechat integration
0.14.0 / 2018-02-12
- [ENHANCEMENT] [amtool] Silence update support dwy suffixes to expire flag (#1197)
- [ENHANCEMENT] Allow templating PagerDuty receiver severity (#1214)
- [ENHANCEMENT] Include receiver name in failed notifications log messages (#1207)
- [ENHANCEMENT] Allow global opsgenie api key (#1208)
- [ENHANCEMENT] Add mesh metrics (#1225)
- [ENHANCEMENT] Add Class field to PagerDuty; add templating to PagerDuty-CEF fields (#1231)
- [BUGFIX] Don't notify of resolved alerts if none were reported firing (#1198)
- [BUGFIX] Notify only when new firing alerts are added (#1205)
- [BUGFIX] [mesh] Fix pending connections never set to established (#1204)
- [BUGFIX] Allow OpsGenie notifier to have empty team fields (#1224)
- [BUGFIX] Don't count alerts with EndTime in the future as resolved (#1233)
- [BUGFIX] Speed up re-rendering of Silence UI (#1235)
- [BUGFIX] Forbid 0 value for group_interval and repeat_interval (#1230)
- [BUGFIX] Fix WeChat agentid issue (#1229)
0.13.0 / 2018-01-12
- [CHANGE] Switch cmd/alertmanager to kingpin (#974)
- [CHANGE] [amtool] Switch amtool to kingpin (#976)
- [CHANGE] [amtool] silence query: --expired flag only shows expired silences (#1190)
- [CHANGE] Return config reload result from reload endpoint (#1180)
- [FEATURE] UI silence form is populated from location bar (#1148)
- [FEATURE] Add /-/healthy endpoint (#1159)
- [ENHANCEMENT] Instrument and log snapshot sizes on maintenance (#1155)
- [ENHANCEMENT] Make alertGC interval configurable (#1151)
- [ENHANCEMENT] Display mesh connections in the Status page (#1164)
- [BUGFIX] Template service keys for pagerduty notifier (#1182)
- [BUGFIX] Fix expire buttons on the silences page (#1171)
- [BUGFIX] Fix JavaScript error in MSIE due to endswith() usage (#1172)
- [BUGFIX] Correctly format UI error output (#1167)
0.12.0 / 2017-12-15
- [FEATURE] package amtool in docker container (#1127)
- [FEATURE] Add notify support for Chinese User wechat (#1059)
- [FEATURE] [amtool] Add a new
silence import
command (#1082) - [FEATURE] [amtool] Add new command to update silence (#1123)
- [FEATURE] [amtool] Add ability to query for silences that will expire soon (#1120)
- [ENHANCEMENT] Template source field in PagerDuty alert payload (#1117)
- [ENHANCEMENT] Add footer field for slack messages (#1141)
- [ENHANCEMENT] Add Slack additional "fields" to notifications (#1135)
- [ENHANCEMENT] Adding check for webhook's URL formatting (#1129)
- [ENHANCEMENT] Let the browser remember the creator of a silence (#1112)
- [BUGFIX] Fix race in stopping inhibitor (#1118)
- [BUGFIX] Fix browser UI when entering negative duration (#1132)
0.11.0 / 2017-11-16
- [CHANGE] Make silence negative filtering consistent with alert filtering (#1095)
- [CHANGE] Change HipChat and OpsGenie api config names (#1087)
- [ENHANCEMENT] amtool: Allow 'd', 'w', 'y' time suffixes when creating silence (#1091)
- [ENHANCEMENT] Support OpsGenie Priority field (#1094)
- [BUGFIX] Fix UI when no silences are present (#1090)
- [BUGFIX] Fix OpsGenie Teams field (#1101)
- [BUGFIX] Fix OpsGenie Tags field (#1108)
0.10.0 / 2017-11-09
- [CHANGE] Prevent inhibiting alerts in the source of the inhibition (#1017)
- [ENHANCEMENT] Improve amtool check-config use and description text (#1016)
- [ENHANCEMENT] Add metrics about current silences and alerts (#998)
- [ENHANCEMENT] Sorted silences based on current status (#1015)
- [ENHANCEMENT] Add metric of alertmanager position in mesh (#1024)
- [ENHANCEMENT] Initialise notifications_total and notifications_failed_total (#1011)
- [ENHANCEMENT] Allow selectable matchers on silence view (#1030)
- [ENHANCEMENT] Allow template in victorops message_type field (#1038)
- [ENHANCEMENT] Optionally hide inhibited alerts in API response (#1039)
- [ENHANCEMENT] Toggle silenced and inhibited alerts in UI (#1049)
- [ENHANCEMENT] Fix pushover limits (title, message, url) (#1055)
- [ENHANCEMENT] Add limit to OpsGenie message (#1045)
- [ENHANCEMENT] Upgrade OpsGenie notifier to v2 API. (#1061)
- [ENHANCEMENT] Allow template in victorops routing_key field (#1083)
- [ENHANCEMENT] Add support for PagerDuty API v2 (#1054)
- [BUGFIX] Fix inhibit race (#1032)
- [BUGFIX] Fix segfault on amtool (#1031)
- [BUGFIX] Remove .WasInhibited and .WasSilenced fields of Alert type (#1026)
- [BUGFIX] nflog: Fix Log() crash when gossip is nil (#1064)
- [BUGFIX] Fix notifications for flapping alerts (#1071)
- [BUGFIX] Fix shutdown crash with nil mesh router (#1077)
- [BUGFIX] Fix negative matchers filtering (#1077)
0.9.1 / 2017-09-29
- [BUGFIX] Fix -web.external-url regression in ui (#1008)
- [BUGFIX] Fix multipart email implementation (#1009)
0.9.0 / 2017-09-28
- [ENHANCEMENT] Add current time to webhook message (#909)
- [ENHANCEMENT] Add link_names to slack notifier (#912)
- [ENHANCEMENT] Make ui labels selectable/highlightable (#932)
- [ENHANCEMENT] Make links in ui annotations selectable (#946)
- [ENHANCEMENT] Expose the alert's "fingerprint" (unique identifier) through API (#786)
- [ENHANCEMENT] Add README information for amtool (#939)
- [ENHANCEMENT] Use user-set logging option consistently throughout alertmanager (#968)
- [ENHANCEMENT] Sort alerts returned from API by their fingerprint (#969)
- [ENHANCEMENT] Add edit/delete silence buttons on silence page view (#970)
- [ENHANCEMENT] Add check-config subcommand to amtool (#978)
- [ENHANCEMENT] Add email notification text content support (#934)
- [ENHANCEMENT] Support passing binary name to make build target (#990)
- [ENHANCEMENT] Show total no. of silenced alerts in preview (#994)
- [ENHANCEMENT] Added confirmation dialog when expiring silences (#993)
- [BUGFIX] Fix crash when no mesh router is configured (#919)
- [BUGFIX] Render status page without mesh (#920)
- [BUGFIX] Exit amtool subcommands with non-zero error code (#938)
- [BUGFIX] Change mktemp invocation in makefile to work for macOS (#971)
- [BUGFIX] Add a mutex to silences.go:gossipData (#984)
- [BUGFIX] silences: avoid deadlock (#995)
- [BUGFIX] Ignore expired silences OnGossip (#999)
0.8.0 / 2017-07-20
- [FEATURE] Add ability to filter alerts by receiver in the UI (#890)
- [FEATURE] Add User-Agent for webhook requests (#893)
- [ENHANCEMENT] Add possibility to have a global victorops api_key (#897)
- [ENHANCEMENT] Add EntityDisplayName and improve StateMessage for Victorops (#769)
- [ENHANCEMENT] Omit empty config fields and show regex upon re-marshalling to elide secrets (#864)
- [ENHANCEMENT] Parse API error messages in UI (#866)
- [ENHANCEMENT] Enable sending mail via smtp port 465 (#704)
- [BUGFIX] Prevent duplicate notifications by sorting matchers (#882)
- [BUGFIX] Remove timeout for UI requests (#890)
- [BUGFIX] Update config file location of CLI in flag usage text (#895)
0.7.1 / 2017-06-09
- [BUGFIX] Fix filtering by label on Alert list and Silence list page
0.7.0 / 2017-06-08
- [CHANGE] Rewrite UI from scratch improving UX
- [CHANGE] Rename
config
toconfigYAML
onapi/v1/status
- [FEATURE] Add ability to update a silence on
api/v1/silences
POST endpoint (See #765) - [FEATURE] Return alert status on
api/v1/alerts
GET endpoint - [FEATURE] Serve silence state on
api/v1/silences
GET endpoint - [FEATURE] Add ability to specify a route prefix
- [FEATURE] Add option to disable AM listening on mesh port
- [ENHANCEMENT] Add ability to specify
filter
string andsilenced
flag onapi/v1/alerts
GET endpoint - [ENHANCEMENT] Update
cache-control
to prevent caching for web assets in general. - [ENHANCEMENT] Serve web assets by alertmanager instead of external CDN (See #846)
- [ENHANCEMENT] Elide secrets in alertmanager config (See #840)
- [ENHANCEMENT] AMTool: Move config file to a more consistent location (See #843)
- [BUGFIX] Enable builds for Solaris/Illumos
- [BUGFIX] Load web assets based on url path (See #323)
0.6.2 / 2017-05-09
- [BUGFIX] Correctly link to silences from alert again
- [BUGFIX] Correctly hide silenced/show active alerts in UI again
- [BUGFIX] Fix regression of alerts not being displayed until first processing
- [BUGFIX] Fix internal usage of wrong lock for silence markers
- [BUGFIX] Adapt amtool's API parsing to recent API changes
- [BUGFIX] Correctly marshal regexes in config JSON response
- [CHANGE] Anchor silence regex matchers to be consistent with Prometheus
- [ENHANCEMENT] Error if root route is using
continue
keyword
0.6.1 / 2017-04-28
- [BUGFIX] Fix incorrectly serialized hash for notification providers.
- [ENHANCEMENT] Add processing status field to alerts.
- [FEATURE] Add config hash metric.
0.6.0 / 2017-04-25
- [BUGFIX] Add
groupKey
toalerts/groups
endpoint https://github.com/prometheus/alertmanager/pull/576 - [BUGFIX] Only notify on firing alerts https://github.com/prometheus/alertmanager/pull/595
- [BUGFIX] Correctly marshal regex's in config for routing tree https://github.com/prometheus/alertmanager/pull/602
- [BUGFIX] Prevent panic when failing to load config https://github.com/prometheus/alertmanager/pull/607
- [BUGFIX] Prevent panic when alertmanager is started with an empty
-mesh.peer
https://github.com/prometheus/alertmanager/pull/726 - [CHANGE] Rename VictorOps config variables https://github.com/prometheus/alertmanager/pull/667
- [CHANGE] No longer generate releases for openbsd/arm https://github.com/prometheus/alertmanager/pull/732
- [ENHANCEMENT] Add
DELETE
as accepted CORS method0ecc59076c
- [ENHANCEMENT] Switch to using
gogoproto
for protobuf https://github.com/prometheus/alertmanager/pull/715 - [ENHANCEMENT] Include notifier type in logs and errors https://github.com/prometheus/alertmanager/pull/702
- [FEATURE] Expose mesh peers on status page https://github.com/prometheus/alertmanager/pull/644
- [FEATURE] Add
reReplaceAll
template function https://github.com/prometheus/alertmanager/pull/639 - [FEATURE] Allow label-based filtering alerts/silences through API https://github.com/prometheus/alertmanager/pull/633
- [FEATURE] Add commandline tool for interacting with alertmanager https://github.com/prometheus/alertmanager/pull/636
0.5.1 / 2016-11-24
- [BUGFIX] Fix crash caused by race condition in silencing
- [ENHANCEMENT] Improve logging of API errors
- [ENHANCEMENT] Add metrics for the notification log
0.5.0 / 2016-11-01
This release requires a storage wipe. It contains fundamental internal changes that came with implementing the high availability mode.
- [FEATURE] Alertmanager clustering for high availability
- [FEATURE] Garbage collection of old silences and notification logs
- [CHANGE] New storage format
- [CHANGE] Stricter silence semantics for consistent historical view
0.4.2 / 2016-09-02
- [BUGFIX] Fix broken regex checkbox in silence form
- [BUGFIX] Simplify inconsistent silence update behavior
0.4.1 / 2016-08-31
- [BUGFIX] Wait for silence query to finish instead of showing error
- [BUGFIX] Fix sorting of silences
- [BUGFIX] Provide visual feedback after creating a silence
- [BUGFIX] Fix styling of silences
- [ENHANCEMENT] Provide cleaner API silence interface
0.4.0 / 2016-08-23
- [FEATURE] Silences are now paginated in the web ui
- [CHANGE] Failure to start on unparsed flags
0.3.0 / 2016-07-07
- [CHANGE] Alerts are purely in memory and no longer persistent across restarts
- [FEATURE] Add SMTP LOGIN authentication mechanism
0.2.1 / 2016-06-23
- [ENHANCEMENT] Allow inheritance of route receiver
- [ENHANCEMENT] Add silence cache to silence provider
- [BUGFIX] Fix HipChat room number in integration URL
0.2.0 / 2016-06-17
This release uses a new storage backend based on BoltDB. You have to backup and wipe your former storage path to run it.
- [CHANGE] Use BoltDB as data store.
- [CHANGE] Move SMTP authentification to configuration file
- [FEATURE] add /-/reload HTTP endpoint
- [FEATURE] Filter silenced alerts in web UI
- [ENHANCEMENT] reduce inhibition computation complexity
- [ENHANCEMENT] Add support for teams and tags in OpsGenie integration
- [BUGFIX] Handle OpsGenie responses correctly
- [BUGFIX] Fix Pushover queue length issue
- [BUGFIX] STARTTLS before querying auth mechanism in email integration
0.1.1 / 2016-03-15
- [BUGFIX] Fix global database lock issue
- [ENHANCEMENT] Improve SQLite alerts index
- [ENHANCEMENT] Enable debug endpoint
0.1.0 / 2016-02-23
This version is a full rewrite of the Alertmanager with a very different feature set. Thus, there is no meaningful changelog.
Changes with respect to 0.1.0-beta2:
- [CHANGE] Expose same data structure to templates and webhook
- [ENHANCEMENT] Show generator URL in default templates and web UI
- [ENHANCEMENT] Support for Slack icon_emoji field
- [ENHANCEMENT] Expose incident key to templates and webhook data
- [ENHANCEMENT] Allow markdown in Slack 'text' field
- [BUGFIX] Fixed database locking issue
0.1.0-beta2 / 2016-02-03
- [BUGFIX] Properly set timeout for incoming alerts with fixed start time
- [ENHANCEMENT] Send source field in OpsGenie integration
- [ENHANCEMENT] Improved routing configuration validation
- [FEATURE] Basic instrumentation added
0.1.0-beta1 / 2016-01-08
- [BUGFIX] Send full alert group state on each update. Fixes erroneous resolved notifications.
- [FEATURE] HipChat integration
- [CHANGE] Slack integration no longer sends resolved notifications by default
0.1.0-beta0 / 2015-12-23
This version is a full rewrite of the Alertmanager with a very different feature set. Thus, there is no meaningful changelog.
0.0.4 / 2015-09-09
- [BUGFIX] Fix version info string in startup message.
- [BUGFIX] Fix Pushover notifications by setting the right priority level, as well as required retry and expiry intervals.
- [FEATURE] Make it possible to link to individual alerts in the UI.
- [FEATURE] Rearrange alert columns in UI and allow expanding more alert details.
- [FEATURE] Add Amazon SNS notifications.
- [FEATURE] Add OpsGenie Webhook notifications.
- [FEATURE] Add
-web.external-url
flag to control the externally visible Alertmanager URL. - [FEATURE] Add runbook and alertmanager URLs to PagerDuty and email notifications.
- [FEATURE] Add a GET API to /api/alerts which pulls JSON formatted AlertAggregates.
- [ENHANCEMENT] Sort alerts consistently in web UI.
- [ENHANCEMENT] Suggest to use email address as silence creator.
- [ENHANCEMENT] Make Slack timeout configurable.
- [ENHANCEMENT] Add channel name to error logging about Slack notifications.
- [ENHANCEMENT] Refactoring and tests for Flowdock notifications.
- [ENHANCEMENT] New Dockerfile using alpine-golang-make-onbuild base image.
- [CLEANUP] Add Docker instructions and other cleanups in README.md.
- [CLEANUP] Update Makefile.COMMON from prometheus/utils.
0.0.3 / 2015-06-10
- [BUGFIX] Fix email template body writer being called with parameters in wrong order.
0.0.2 / 2015-06-09
- [BUGFIX] Fixed silences.json permissions in Docker image.
- [CHANGE] Changed case of API JSON properties to initial lower letter.
- [CHANGE] Migrated logging to use http://github.com/prometheus/log.
- [FEATURE] Flowdock notification support.
- [FEATURE] Slack notification support.
- [FEATURE] Generic webhook notification support.
- [FEATURE] Support for "@"-mentions in HipChat notifications.
- [FEATURE] Path prefix option to support reverse proxies.
- [ENHANCEMENT] Improved web redirection and 404 behavior.
- [CLEANUP] Updated compiled web assets from source.
- [CLEANUP] Updated fsnotify package to its new source location.
- [CLEANUP] Updates to README.md and AUTHORS.md.
- [CLEANUP] Various smaller cleanups and improvements.