Files
grafana/docs
gotjosh 2fb45eeec8 Grafana-CLI: Wrapper for grafana-cli within RPM/DEB packages and config/homepath are now global flags (#17695)
* Feature: Introduce a grafana-cli wrapper

When our users install the *nix packed version of grafana, tendency is to use the services and scripts installed as part of the package for grafana-server. These leverage the default configuration options by specifying the several default paths.

This introduces a similar approach for the grafana-cli binary. We exposed it through a wrapper to ensure a proper configuration is in place. To enable that, we add the .real suffix to the original binary (grafana-cli.real) and then use a bash script named grafana-cli as the wrapper.

* Make the config and homepath flags global

* Introduce `configOverrides` as a global flag

This flag allows us to pass configuration overrides as a string.

The string follows the convention of configuration arguments separated by a space e.g. "cfg:default.paths.data=/dev/nullX cfg:default.paths.logs=/dev/nullX"

Also, it is backwards compatible with similar the previous configuration method through tailing arguments. Tailing arguments take presedence over the configuration options string.

* Only log configuration information in debug mode

* Move the grafana-cli binary to $GRAFANA_HOME/bin

As part of the package install process, we copy all the release files and
directories into the grafana home directory. This includes the /bin folder
from where we copied the binaries into their respective destinations.
After that, the /bin folder gets deleted as we don't want to keep
duplicates of the binaries around.

As part of this commit, we moved the re-creation of /bin within
grafana-home and the copy of the original binary (again) after the
folder gets deleted.
2019-06-24 20:20:21 +01:00
..
2017-03-17 19:33:31 +01:00
2018-01-30 13:28:16 +01:00
2019-06-12 08:01:44 +02:00
2017-05-02 10:20:09 +02:00
2018-01-31 08:49:04 +01:00
2019-05-22 13:55:20 +02:00

Building The Docs

To build the docs locally, you need to have docker installed. The docs are built using Hugo - a static site generator.

Prepare the Docker Image:

Git clone grafana/website repo. Run these commands in the root of that repo. Note that you may require sudo when running make docs-build depending on how your system's docker service is configured):

git clone https://github.com/grafana/website
cd website
make docs-build

Build the Documentation:

Now that the docker image has been prepared we can build the grafana docs and start a docs server.

If you have not cloned the Grafana repository already then:

cd ..
git clone https://github.com/grafana/grafana

Switch your working directory to the directory this file (README.md) is in.

cd grafana/docs

An AWS config file is required to build the docs Docker image and to publish the site to AWS. If you are building locally only and do not have any AWS credentials for docs.grafana.org then create an empty file named awsconfig in the current directory.

touch awsconfig

Then run (possibly with sudo):

make watch

This command will not return control of the shell to the user. Instead the command is now running a new docker container built from the image we created in the previous step.

Open localhost:3004 to view the docs.

Images & Content

All markdown files are located in this repo (main grafana repo). But all images are added to the https://github.com/grafana/website repo. So the process of adding images is a bit complicated.

First you need create a feature (PR) branch of https://github.com/grafana/website so you can make change. Then add the image to the /static/img/docs directory. Then make a commit that adds the image.

Then run:

make docs-build

This will rebuild the docs docker container.

To be able to use the image you have to quit (CTRL-C) the make watch command (that you run in the same directory as this README). Then simply rerun make watch, it will restart the docs server but now with access to your image.

Editing content

Changes to the markdown files should automatically cause a docs rebuild and live reload should reload the page in your browser.