Initial commit.
This commit is contained in:
commit
e65fbae8dd
11 changed files with 513 additions and 0 deletions
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
.idea/
|
||||||
|
site/
|
||||||
|
venv/
|
||||||
|
|
||||||
|
docs.linspector.org.iml
|
||||||
5
Makefile
Normal file
5
Makefile
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
build:
|
||||||
|
./venv/bin/mkdocs build
|
||||||
|
|
||||||
|
serve:
|
||||||
|
./venv/bin/mkdocs serve
|
||||||
0
README.md
Normal file
0
README.md
Normal file
10
docs/about.md
Normal file
10
docs/about.md
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
title: About
|
||||||
|
---
|
||||||
|
|
||||||
|
<h2>About</h2>
|
||||||
|
|
||||||
|
<h3>Introduction</h3>
|
||||||
|
|
||||||
|
<p>More to come...</p>
|
||||||
|
|
||||||
47
docs/documentation/faq.md
Normal file
47
docs/documentation/faq.md
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
---
|
||||||
|
title: FAQ
|
||||||
|
---
|
||||||
|
|
||||||
|
<h2>FAQ</h2>
|
||||||
|
|
||||||
|
<h3>General</h3>
|
||||||
|
|
||||||
|
<h4>Is it posible to daemonize Linspector?</h4>
|
||||||
|
|
||||||
|
<p>No. Linspector is an interactive software which provides a terminal based frontend called Lish for maintenance tasks. Daemonizing makes no sense. Maybe daemonizing will be added in the future. Just start Linspector in a <a href="https://www.gnu.org/software/screen/" class="ext">screen</a> or <a href="http://tmux.sourceforge.net/" class="ext">tmux</a> session and detach. This is how we are doing it.</p>
|
||||||
|
|
||||||
|
<h4>Will Linspector provide a RPC interface for management?</h4>
|
||||||
|
|
||||||
|
<p>Yes. Linspector will provide a <a href="http://en.wikipedia.org/wiki/JSON-RPC" class="ext">JSON-RPC</a> based interface.</p>
|
||||||
|
|
||||||
|
<h4>Is a web interface planned in Linspector?</h4>
|
||||||
|
|
||||||
|
<p>No. Linspector will not provide a web interface for management. BTW, there will be a seperate project called <a href="/projects/weblin/">WebLin</a> which provides a web interface for Linspector. WebLin will make use of the JSON-RPC interface provided by Linspector.</p>
|
||||||
|
|
||||||
|
<h3>Errors</h3>
|
||||||
|
|
||||||
|
<h4>I got "error: can't start new thread" in Lish. What happened?</h4>
|
||||||
|
|
||||||
|
<p>The Error looks like this:</p>
|
||||||
|
|
||||||
|
<pre>Exception in thread APScheduler:
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/lib64/python2.7/threading.py", line 808, in __bootstrap_inner
|
||||||
|
self.run()
|
||||||
|
File "/usr/lib64/python2.7/threading.py", line 761, in run
|
||||||
|
self.__target(*self.__args, **self.__kwargs)
|
||||||
|
File "/usr/lib64/python2.7/site-packages/apscheduler/scheduler.py", line 581, in _main_loop
|
||||||
|
next_wakeup_time = self._process_jobs(now)
|
||||||
|
File "/usr/lib64/python2.7/site-packages/apscheduler/scheduler.py", line 547, in _process_jobs
|
||||||
|
self._threadpool.submit(self._run_job, job, run_times)
|
||||||
|
File "/usr/lib64/python2.7/site-packages/apscheduler/threadpool.py", line 105, in submit
|
||||||
|
self._adjust_threadcount()
|
||||||
|
File "/usr/lib64/python2.7/site-packages/apscheduler/threadpool.py", line 58, in _adjust_threadcount
|
||||||
|
self._add_thread(self.num_threads < self.core_threads)
|
||||||
|
File "/usr/lib64/python2.7/site-packages/apscheduler/threadpool.py", line 65, in _add_thread
|
||||||
|
t.start()
|
||||||
|
File "/usr/lib64/python2.7/threading.py", line 743, in start
|
||||||
|
_start_new_thread(self.__bootstrap, ())
|
||||||
|
error: can't start new thread</pre>
|
||||||
|
|
||||||
|
<p>If you are getting this error message and all scheduled jobs are shutting down, you have reached the maximum allowed number of processes running for your user. Please refer to the documentation of your OS for setting this value higher.</p>
|
||||||
19
docs/documentation/index.md
Normal file
19
docs/documentation/index.md
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
title: Documentation
|
||||||
|
---
|
||||||
|
|
||||||
|
<h2>Documentation</h2>
|
||||||
|
|
||||||
|
<h3>Tutorials and Guides</h3>
|
||||||
|
|
||||||
|
<p>The following documentation is available to you:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><a href="/documentation/installation-guide/">Installation Guide</a></li>
|
||||||
|
<li><a href="/documentation/minimal-configuration-guide/">Minimal Configuration Guide</a></li>
|
||||||
|
<li><a href="/documentation/faq/">The Linspector FAQ's</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>If you wanna try to understand how Linspector works you can take a look at the <a href="https://github.com/linspector/linspector/blob/master/examples/minimal.json" class="ext">minimal.json configuration file</a>. It really shows up what is currently possible with Linspector but is not documented. Please ask us if you want to know more.</p>
|
||||||
|
|
||||||
|
<p>More documentation will follow ASAP! It is a work in progress.</p>
|
||||||
51
docs/documentation/installation-guide.md
Normal file
51
docs/documentation/installation-guide.md
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
---
|
||||||
|
title: Installation Guide
|
||||||
|
---
|
||||||
|
|
||||||
|
<h2>Installation Guide</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><i>Added: 2013.09.30 by Johannes Findeisen (hanez)</i></li>
|
||||||
|
<li><i>Last update: 2013.11.03 by Johannes Findeisen (hanez)</i></li>
|
||||||
|
<li><i>License: <a href="http://creativecommons.org/licenses/by-sa/3.0/" class="ext">CC Attribution-Share Alike 3.0 Unported</a></i></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Introduction</h3>
|
||||||
|
|
||||||
|
<p>Here we show you how easy it is to install Linspector.</p>
|
||||||
|
|
||||||
|
<h3>Get Linspector</h3>
|
||||||
|
|
||||||
|
<p>Go to the Linspector <a href="/download/">download page</a> and download the latest package as zip or tar.gz file and extract it.</p>
|
||||||
|
|
||||||
|
<p>Then switch to the new linspector directory:</p>
|
||||||
|
|
||||||
|
<pre>cd linspector-VERSION</pre>
|
||||||
|
|
||||||
|
<h3>Requirements</h3>
|
||||||
|
|
||||||
|
<p>You need at least Python 2.7.* and the APScheduler library to run Linspector. We recommend to install Python using your package manager. Libraries are very easy to install using the Python package manager pip. Just install pip from your systems package manager and run the following command:</p>
|
||||||
|
|
||||||
|
<pre>pip install apscheduler</pre>
|
||||||
|
|
||||||
|
<p>All dependencies are being resolved and everything needed will be installed.</p>
|
||||||
|
|
||||||
|
<p>To install all libraries Linspector is using - even the optionally libraries - you can do this by running the following command from the root of the Linspector source tree:</p>
|
||||||
|
|
||||||
|
<pre>pip install -r requirements.txt</pre>
|
||||||
|
|
||||||
|
<p>"requirements" is a text file provided by Linspector. When doing it this way you can be sure installing working versions of the libraries.</p>
|
||||||
|
|
||||||
|
<h3>Run Linspector</h3>
|
||||||
|
|
||||||
|
<p>Running Linspector is very easy. </p>
|
||||||
|
|
||||||
|
<p><b>Since Linspector currently is a little bit broken you need to set the $PYTHONPATH to make sure imports of libs are working:</b></p>
|
||||||
|
|
||||||
|
<pre>export PYTHONPATH=`pwd`</pre>
|
||||||
|
|
||||||
|
<p>Then you only need to run the following command:</p>
|
||||||
|
|
||||||
|
<pre>./bin/linspector path/to/config.json</pre>
|
||||||
|
|
||||||
|
<p>Since we have not created a config file yet you need to configure Linspector to really get it up running. Read the <a href="/documentation/minimal-configuration-guide/">Minimal Configuration Guide</a> for that.</p>
|
||||||
342
docs/documentation/minimal-configuration-guide.md
Normal file
342
docs/documentation/minimal-configuration-guide.md
Normal file
|
|
@ -0,0 +1,342 @@
|
||||||
|
---
|
||||||
|
title: Minimal Configuration Guide
|
||||||
|
---
|
||||||
|
|
||||||
|
<h2>Minimal Configuration Guide</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><i>Added: 2013.09.30 by Johannes Findeisen (hanez)</i></li>
|
||||||
|
<li><i>Last update: 2013.11.03 by Johannes Findeisen (hanez)</i></li>
|
||||||
|
<li><i>License: <a href="http://creativecommons.org/licenses/by-sa/3.0/" class="ext">CC Attribution-Share Alike 3.0 Unported</a></i></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Introduction</h3>
|
||||||
|
|
||||||
|
<p>This is step by step guide on howto setup Linspector for monitoring two services on two hosts. Be sure to always write <a href="http://en.wikipedia.org/wiki/JSON" class="ext">JSON</a> compatible syntax, e.g. add colons, commas etc. the right places or Linspector will fail to parse the configuration at startup.</p>
|
||||||
|
|
||||||
|
<h3>The base configuration</h3>
|
||||||
|
|
||||||
|
<p>At first we need a minimal json config file:</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">{
|
||||||
|
"members":{
|
||||||
|
},
|
||||||
|
"tasks":{
|
||||||
|
},
|
||||||
|
"periods": {
|
||||||
|
},
|
||||||
|
"hostgroups":{
|
||||||
|
},
|
||||||
|
"layouts":{
|
||||||
|
},
|
||||||
|
"core":{
|
||||||
|
}
|
||||||
|
}</pre>
|
||||||
|
|
||||||
|
<h3>Hostgroups and Hosts</h3>
|
||||||
|
|
||||||
|
<p>Now we need to add a minimum of one hostgroup. Hosts needs always to be nested in a hostgroup. So if you just want to monitor one host, you need add one hostgroup too. We will add two hosts to that hostgroup (demo1.example.org and demo2.example.org):</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">{
|
||||||
|
"members":{
|
||||||
|
},
|
||||||
|
"tasks":{
|
||||||
|
},
|
||||||
|
"periods": {
|
||||||
|
},
|
||||||
|
"hostgroups":{
|
||||||
|
"demogroup1":{
|
||||||
|
"hosts": ["demo1.example.org", "demo2.example.org"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"layouts":{
|
||||||
|
},
|
||||||
|
"core":{
|
||||||
|
}
|
||||||
|
}</pre>
|
||||||
|
|
||||||
|
<h3>Services</h3>
|
||||||
|
|
||||||
|
<p>We want to monitor the availability of port 80 (http) and 25 (smtp) now so we need to add two services of class "tcpconnect":</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">{
|
||||||
|
"members":{
|
||||||
|
},
|
||||||
|
"tasks":{
|
||||||
|
},
|
||||||
|
"periods": {
|
||||||
|
},
|
||||||
|
"hostgroups":{
|
||||||
|
"demogroup1":{
|
||||||
|
"hosts": ["demo1.example.org", "demo2.example.org"],
|
||||||
|
"services":[
|
||||||
|
{
|
||||||
|
"class": "tcpconnect",
|
||||||
|
"args": { "port": 80 },
|
||||||
|
"periods": ["normal"],
|
||||||
|
"threshold": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"class": "tcpconnect",
|
||||||
|
"args": { "port": 25 },
|
||||||
|
"periods": ["normal"],
|
||||||
|
"threshold": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"layouts":{
|
||||||
|
},
|
||||||
|
"core":{
|
||||||
|
}
|
||||||
|
}</pre>
|
||||||
|
|
||||||
|
<h3>Periods / Polling Intervals</h3>
|
||||||
|
|
||||||
|
<p>Since we have a period (polling interval) set to "normal" we need to add a peroid to our base configuration. This peroid is an interval peroid which polls every 2 minutes. Other peroid types are cron based which accepts cron style parameters and date based which accepts a date and executes on that date.</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">{
|
||||||
|
"members":{
|
||||||
|
},
|
||||||
|
"tasks":{
|
||||||
|
},
|
||||||
|
"periods": {
|
||||||
|
"normal": { "seconds": 120 }
|
||||||
|
},
|
||||||
|
"hostgroups":{
|
||||||
|
"demogroup1":{
|
||||||
|
"hosts": ["demo1.example.org", "demo2.example.org"],
|
||||||
|
"services":[
|
||||||
|
{
|
||||||
|
"class": "tcpconnect",
|
||||||
|
"args": { "port": 80 },
|
||||||
|
"periods": ["normal"],
|
||||||
|
"threshold": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"class": "tcpconnect",
|
||||||
|
"args": { "port": 25 },
|
||||||
|
"periods": ["normal"],
|
||||||
|
"threshold": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"layouts":{
|
||||||
|
},
|
||||||
|
"core":{
|
||||||
|
}
|
||||||
|
}</pre>
|
||||||
|
|
||||||
|
<h3>Members and Tasks</h3>
|
||||||
|
|
||||||
|
<p>As you can see we have set a "threshold" to 10, so what is that? The threshold indicates after how many fails of polling a service an alert will be executed. We will come to that next. Alerting means that there must be performed some action when the threshold is overriden. For that Linspector has it's members in the base configuration. We will add a member which accepts alerts via email so we are adding a task of type "mail" for that. So let's add a member and it's task:</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">{
|
||||||
|
"members": {
|
||||||
|
"demo": {
|
||||||
|
"name": "Demo Admin",
|
||||||
|
"tasks": [
|
||||||
|
{ "class":"mail", "type": "mail", "args": { "rcpt": "demo@example.org" }}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tasks":{
|
||||||
|
},
|
||||||
|
"periods": {
|
||||||
|
"normal": { "seconds": 120 }
|
||||||
|
},
|
||||||
|
"hostgroups": {
|
||||||
|
"demogroup1": {
|
||||||
|
"hosts": [ "demo1.example.org", "demo2.example.org" ],
|
||||||
|
"services": [
|
||||||
|
{
|
||||||
|
"class": "tcpconnect",
|
||||||
|
"args": { "port": 80 },
|
||||||
|
"periods": [ "normal" ],
|
||||||
|
"threshold": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"class": "tcpconnect",
|
||||||
|
"args": { "port": 25 },
|
||||||
|
"periods": [ "normal" ],
|
||||||
|
"threshold": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"layouts":{
|
||||||
|
},
|
||||||
|
"core":{
|
||||||
|
}
|
||||||
|
}</pre>
|
||||||
|
|
||||||
|
<h3>Core configuration for Tasks</h3>
|
||||||
|
|
||||||
|
<p>Since we are making use of the mail task we need to set some configuration variables now. This will be the hostname of the SMTP server etc. For that we will add a task section containing a mail section directly in the root of the configuration:</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">{
|
||||||
|
"members": {
|
||||||
|
"demo": {
|
||||||
|
"name": "Demo Admin",
|
||||||
|
"tasks": [
|
||||||
|
{ "class":"mail", "type": "mail", "args": { "rcpt": "demo@example.org" }}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tasks": {
|
||||||
|
"mail":{
|
||||||
|
"host": "localhost",
|
||||||
|
"port": 25,
|
||||||
|
"from": "linspector@example.org",
|
||||||
|
"username": "",
|
||||||
|
"password": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"periods": {
|
||||||
|
"normal": { "seconds": 120 }
|
||||||
|
},
|
||||||
|
"hostgroups": {
|
||||||
|
"demogroup1": {
|
||||||
|
"hosts": [ "demo1.example.org", "demo2.example.org" ],
|
||||||
|
"services": [
|
||||||
|
{
|
||||||
|
"class": "tcpconnect",
|
||||||
|
"args": { "port": 80 },
|
||||||
|
"periods": [ "normal" ],
|
||||||
|
"threshold": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"class": "tcpconnect",
|
||||||
|
"args": { "port": 25 },
|
||||||
|
"periods": [ "normal" ],
|
||||||
|
"threshold": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"layouts":{
|
||||||
|
},
|
||||||
|
"core":{
|
||||||
|
}
|
||||||
|
}</pre>
|
||||||
|
|
||||||
|
<h3>Add member to Hostgroup</h3>
|
||||||
|
|
||||||
|
<p>For now we have add a hostgroup, added two hosts to that group which each will be monitored for availability of two ports. They will be polled every 2 minutes by a peroid called "normal" and the alert threshold is set to 10 for both services. No we need to add the member to the hostgroup so the member "demo" will accept alerts for the hostgroup "demogroup1":</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">{
|
||||||
|
"members": {
|
||||||
|
"demo": {
|
||||||
|
"name": "Demo Admin",
|
||||||
|
"tasks": [
|
||||||
|
{ "class":"mail", "type": "mail", "args": { "rcpt": "demo@example.org" }}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tasks": {
|
||||||
|
"mail":{
|
||||||
|
"host": "localhost",
|
||||||
|
"port": 25,
|
||||||
|
"from": "linspector@example.org",
|
||||||
|
"username": "",
|
||||||
|
"password": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"periods": {
|
||||||
|
"normal": { "seconds": 120 }
|
||||||
|
},
|
||||||
|
"hostgroups": {
|
||||||
|
"demogroup1": {
|
||||||
|
"hosts": [ "demo1.example.org", "demo2.example.org" ],
|
||||||
|
"members": ["demo"],
|
||||||
|
"services": [
|
||||||
|
{
|
||||||
|
"class": "tcpconnect",
|
||||||
|
"args": { "port": 80 },
|
||||||
|
"periods": [ "normal" ],
|
||||||
|
"threshold": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"class": "tcpconnect",
|
||||||
|
"args": { "port": 25 },
|
||||||
|
"periods": [ "normal" ],
|
||||||
|
"threshold": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"layouts":{
|
||||||
|
},
|
||||||
|
"core":{
|
||||||
|
}
|
||||||
|
}</pre>
|
||||||
|
|
||||||
|
<p>We just added the string '"members": ["demo"],' (line 16) to the hostgroup. Thats it. If you want more members to be informed about alerts just add a new member to the members section and the add that meber to the list of members in the hostgroup.</p>
|
||||||
|
|
||||||
|
<h3>Layouts</h3>
|
||||||
|
|
||||||
|
<p>Now we can finalize the configuration but there a still one step for making monitoring work with this configuration. We need to enable the hostgroup for monitoring in the layouts section of the configuration. This makes it possible to add hostgroups for testing or to organize your hosts in groups and then just enable the hostgroups in the layout you really want to monitor or you can configure downtimes for some hostgroups by just adding more layouts with hostgroups disabled for monitoring.</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">{
|
||||||
|
"members": {
|
||||||
|
"demo": {
|
||||||
|
"name": "Demo Admin",
|
||||||
|
"tasks": [
|
||||||
|
{ "class":"mail", "type": "mail", "args": { "rcpt": "demo@example.org" }}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tasks": {
|
||||||
|
"mail":{
|
||||||
|
"host": "localhost",
|
||||||
|
"port": 25,
|
||||||
|
"from": "linspector@example.org",
|
||||||
|
"username": "",
|
||||||
|
"password": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"periods": {
|
||||||
|
"normal": { "seconds": 120 }
|
||||||
|
},
|
||||||
|
"hostgroups": {
|
||||||
|
"demogroup1": {
|
||||||
|
"hosts": [ "demo1.example.org", "demo2.example.org" ],
|
||||||
|
"members": ["demo"],
|
||||||
|
"services": [
|
||||||
|
{
|
||||||
|
"class": "tcpconnect",
|
||||||
|
"args": { "port": 80 },
|
||||||
|
"periods": [ "normal" ],
|
||||||
|
"threshold": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"class": "tcpconnect",
|
||||||
|
"args": { "port": 25 },
|
||||||
|
"periods": [ "normal" ],
|
||||||
|
"threshold": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"layouts":{
|
||||||
|
"main":{
|
||||||
|
"hostgroups": [ "demogroup1" ],
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"core":{
|
||||||
|
}
|
||||||
|
}</pre>
|
||||||
|
|
||||||
|
<h3>Finished Configuration</h3>
|
||||||
|
|
||||||
|
<p>We are done! This is a working example of a very minimal Linspector configuration file for monitoring two services on two hosts. Save the above file in the root of your Linspector installation as demo.json for later usage.</p>
|
||||||
|
|
||||||
|
<h3>Start Linspector</h3>
|
||||||
|
|
||||||
|
<p>If everything was setup right you should be able to start Linspector for monitoring your hosts. Just run the following command in the root directory of your Linspector installation:</p>
|
||||||
|
|
||||||
|
<pre>bin/linspector ./demo.json</pre>
|
||||||
|
|
||||||
|
<p>That schould be all.</p>
|
||||||
23
docs/index.md
Normal file
23
docs/index.md
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
---
|
||||||
|
title: Home
|
||||||
|
---
|
||||||
|
|
||||||
|
<h2>Linspector</h2>
|
||||||
|
|
||||||
|
<h3>Introduction</h3>
|
||||||
|
|
||||||
|
<p>More to come...</p>
|
||||||
|
|
||||||
|
<h3>Tutorials and Guides</h3>
|
||||||
|
|
||||||
|
<p>The following documentation is available to you:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><a href="/documentation/installation-guide/">Installation Guide</a></li>
|
||||||
|
<li><a href="/documentation/minimal-configuration-guide/">Minimal Configuration Guide</a></li>
|
||||||
|
<li><a href="/documentation/faq/">The Linspector FAQ's</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>If you wanna try to understand how Linspector works you can take a look at the <a href="https://github.com/linspector/linspector/blob/master/examples/minimal.json" class="ext">minimal.json configuration file</a>. It really shows up what is currently possible with Linspector but is not documented. Please ask us if you want to know more.</p>
|
||||||
|
|
||||||
|
<p>More documentation will follow ASAP! It is a work in progress.</p>
|
||||||
6
mkdocs.yml
Normal file
6
mkdocs.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
site_name: Linspector
|
||||||
|
|
||||||
|
# mkdocs, readthedocs, material, cerulean, cosmo, cyborg, darkly, flatly, journal, litera, lumen, lux, materia, minty, pulse, sandstone, simplex, slate, solar, spacelab, superhero, united, yeti
|
||||||
|
theme:
|
||||||
|
name: readthedocs
|
||||||
|
custom_dir: overrides
|
||||||
5
requirements.txt
Normal file
5
requirements.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
mkdocs~=1.4.2
|
||||||
|
mkdocs-bootstrap~=1.1
|
||||||
|
mkdocs-bootswatch~=1.1
|
||||||
|
mkdocs-rtd-dropdown~=1.0.2
|
||||||
|
mkdocs-rtd-mklab~=1.8.0
|
||||||
Loading…
Add table
Add a link
Reference in a new issue