aboutsummaryrefslogtreecommitdiff
path: root/README.rst
blob: 5661cd445b7f2cfa9e883f4854dd8db99b8ce0e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
====================================================
 kerbana - a data storage and visualization platform
====================================================

kerbana is a platform that receives data from MQTT, saves it into RRDs
(Round Robin Databases) and generates and serves user-configured graphs.

It is designed for ease of hosting and packaging inside distributions,
and it's meant to be especially suitable for small installations with a
few users. Think environmental monitoring at home, not data monitoring
inside a datacenter (there are already many other versatile, if complex,
solutions for that usecase).

It has been written by a backend developer for backend developers and
bearded sysadmins, and thus its perceived ugliness is a design and
usability choice.

The name comes from kerbaną_, cognate of γράφω_

.. _kerbaną: https://en.wiktionary.org/wiki/Reconstruction:Proto-Germanic/kerban%C4%85
.. _γράφω: https://en.wiktionary.org/wiki/%CE%B3%CF%81%CE%AC%CF%86%CF%89#Ancient_Greek

Installation
------------


Contributing
------------

Running Tests
-------------

To run the MQTT integration tests, create a file ``kerbana_tests.yaml``
in the base directory with at least the variable ``MQTT_SERVER``
pointing to a valid mqtt server you can use, then run the tests with
``KERBANA_CONFIG=kerbana_tests.yaml ./manage.py test``.

The ``check`` script can be used to run the tests with the above setting
and for other checks and common tasks, with the following subcommands:

test
   run the test suite
coverage
   run the test suite and print coverage data
qa
   run qa checks (code style etc.)
static
   run static analysis tests
run
   runs the development server
devdb
   initalizes the db and creates ad admin user (whose password needs to
   be set manually afterwards)

License
-------

Copyright (C) 2023 Elena Grandi

This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.