About Grafana
Grafana is an open source web application for data visualisation and observability. It connects to a wide range of data sources (Prometheus, Loki, InfluxDB, PostgreSQL, MySQL and Elasticsearch, among others) to build dashboards and define alerts. DevOps teams, system administrators and small organisations use it to monitor servers, applications or business metrics.
When the VPS is delivered, the cloud-init recipe installs Docker with the official get.docker.com script, then starts two containers with Docker Compose from /opt/grafana: Grafana (image grafana/grafana:latest) and Caddy 2. Grafana listens only on 127.0.0.1:3000. Caddy publishes the interface over HTTPS on port 443, using a self-signed certificate (tls internal) tied to the server's public IP address.
Open sign-up is disabled (GF_USERS_ALLOW_SIGN_UP=false). Grafana's data is stored in a named Docker volume, grafana_data, so it survives a restart or a recreation of the container. Both services are set to restart: always.
What you can do with Grafana
Grafana ready at delivery
The container is running and reachable over HTTPS on the server's IP, with no manual installation. All you have to do is log in and add your data sources.
HTTPS through a Caddy reverse proxy
Caddy listens on port 443 and forwards traffic to Grafana on 127.0.0.1:3000. The certificate is self-signed at first, so your browser will show a warning until you configure a domain.
Persistent data in a volume
Grafana's database and dashboards are stored in the Docker volume
grafana_data. Caddy's certificates and configuration have their own volumes as well.Public sign-up disabled
The
GF_USERS_ALLOW_SIGN_UP=falsesetting prevents anyone from creating an account from the login page. Users are added from Grafana's administration area.A readable Docker Compose stack
The whole configuration lives in
/opt/grafana/docker-compose.ymland/opt/grafana/Caddyfile. Updating or changing a setting uses the usual Compose commands.
Get started with Grafana
From order to production in a few minutes.
- 1
Order the VPS with Grafana
Choose a Linux VPS in Paris or Frankfurt (Debian 12 or 13, Ubuntu 20.04, 22.04 or 24.04), then tick Grafana in the "Applications" tab of the order form.
- 2
Log in to the interface
Once the server is delivered, give it a few minutes to install Docker and start the containers. Then open https://SERVER_IP in your browser and accept the self-signed certificate warning. The initial account is admin / admin, and Grafana asks you to change the password on first login.
Bashssh root@SERVER_IP cd /opt/grafana && docker compose ps - 3
Add a data source
In Grafana, open Connections, then Data sources, add your source (Prometheus, Loki, PostgreSQL and so on) and test the connection. Then create your first dashboard, or import one from the community catalogue on grafana.com.
- 4
Secure it for production
Point a domain name at the server, then replace the IP with your domain in the Caddyfile (remove the
tls internalline so Caddy can obtain a public certificate) and in GF_SERVER_ROOT_URL and GF_SERVER_DOMAIN in docker-compose.yml. Open ports 80 and 443 in your firewall, and back up the grafana_data volume.Bashcd /opt/grafana nano Caddyfile nano docker-compose.yml docker compose up -d
Grafana use cases
Server and VPS monitoring
Paired with Prometheus and node_exporter, Grafana shows CPU load, memory, disk and network for all your machines on a single screen.
Application dashboards
Visualise application metrics, logs with Loki or response times, and trigger alerts to email or a chat service.
Reporting on SQL databases
Connect PostgreSQL or MySQL to track business metrics (sales, sign-ups, stock) as charts shared with your team.
Trading data tracking
A time-series database such as InfluxDB, combined with Grafana, lets you chart performance or positions. A [VPS for trading](/vps-forex) suits this kind of continuous data collection well.
Grafana FAQ
The initial account is admin with the password admin. Grafana asks you to change it on first login. Do it straight away, because the interface is reachable from the Internet.
More about Grafana
Where the files are
Everything is in /opt/grafana: the install-grafana.sh setup script, the docker-compose.yml and the Caddyfile. The data lives in named Docker volumes, not in this directory.
Bashcd /opt/grafana docker compose ps docker compose logs -f grafana
Updating Grafana
The image uses the latest tag. To move to the newest version, pull the image and recreate the container. Back up the volume before a major upgrade. You can also pin a specific tag in the Compose file to keep control over versions.
Bashcd /opt/grafana docker compose pull docker compose up -d
Backing up your data
The grafana_data volume holds Grafana's SQLite database, including your dashboards, users and data sources. Archiving it through a temporary container is enough for a simple copy. The real volume name is prefixed with the Compose project name, so check it with docker volume ls.
Bashdocker volume ls docker run --rm -v grafana_grafana_data:/data -v $(pwd):/backup alpine tar czf /backup/grafana-backup.tar.gz -C /data .
Certificate and domain name
As long as the Caddyfile uses tls internal, the certificate is self-signed and your browser will flag it. If you have a domain whose DNS record points to the server, Caddy can obtain a public certificate, provided ports 80 and 443 are reachable. You can register a domain on the domain names page.

