Deploy
Grafana self hosted. Your dashboards, nobody else's meter.
Work out the monthly number before you open an account. The calculator takes the server size and the region and gives you the bill.
Grafana 13.1.4, the open source dashboard and alerting layer, deploys as a one-click template with its administrator seeded before first boot onto a dedicated server Selfhost.dev provisions, secures and runs, across six locations on three continents. Its recommended machine, a European 4 GB server, runs $0.02/hr and about $15 a month, with viewers never counted.
One click. One container. The template deploys in about five minutes.
no signup
+$5.00 added at signup · deployment choice preserved · no card
What is Grafana self hosted?
A Grafana that belongs to you.
On a server we keep on the network.
What it is. A Grafana instance that belongs to you, running on a server we provision and keep on the network. The dashboards, the users and the alert rules live on your disk, not in a vendor's account.
Who it is for. Teams who already have metrics somewhere, in Prometheus, Postgres, ClickHouse or a cloud provider's API, and want one place to look at them. It fits best when the number of people reading dashboards is larger than the number building them.
When to use it. When a per-user observability bill starts growing faster than the thing it is watching, or when dashboards have to sit inside your own network boundary. If you are under Grafana Cloud's free ceiling, we say plainly below that you should stay there.
Grafana self hosted requirements
What Grafana needs, and what we already provide.
Grafana self hosted is one container with a persistent volume behind a reverse proxy with TLS, so the only system requirement you actually choose is the server size.
| What Grafana needs | This deployment |
|---|---|
| Grafana version | 13.1.4 |
| Internal database | SQLite on the volume, included. Postgres 16 in the Grafana (Postgres) configuration |
| Containers | One |
| Recommended server | 4 GB RAM |
| Architecture | x86 or ARM |
| Per-user fee | None. Grafana OSS has no seat limit |
| Data sources | None provisioned. You add your own |
| Dashboards | None provisioned. The instance starts empty |
| SMTP is not configured by default | |
| Licence | AGPLv3 |
| Enterprise features | Not included. Licence gated by Grafana |
| What Selfhost.dev provides | Detail |
|---|---|
| Locations | Falkenstein, Nuremberg, Helsinki, Ashburn, Hillsboro, Singapore. Which are open depends on the machine you pick |
| HTTPS | Automatic, on a generated subdomain or your own domain |
| Administrator | Seeded before first boot, never a documented default |
| Backups | Optional. Daily, whole VM, last 7 kept, +20% of the server price |
| Metrics | Server CPU and memory in the console |
| Deploy time | About 5 minutes for the template, once the server exists |
| Bandwidth | Included. A template project bills compute and backup, nothing else |
| MCP tools | 189 across 31 modules |
Specifications current as of September 2026.
What is in the Grafana deployment
One container, and that is the whole point.
Selfhost.dev pins every image to an exact tag. The version in this table is the version that boots, and it does not change until you redeploy.
| Component | Version | What it does |
|---|---|---|
| Grafana | grafana/grafana:13.1.4 | The application. Dashboards, alerting and the web UI, routed on port 3000 |
| Internal store | SQLite, on the volume | Dashboards, users, alert rules and alert state |
Volume grafana-data | mounted at /var/lib/grafana | The SQLite database, installed plugins and rendered PNGs |
| Reverse proxy | Traefik | TLS termination and routing, one certificate per hostname |
One container, and why that is the whole point
Grafana is a single Go binary with an embedded database. There is no worker, no queue and no cache to keep healthy, which is why this template deploys in about five minutes and runs comfortably on the smallest server we sell. Most of what makes observability expensive is the storage of metrics, and that sits in your data source, not here.
SQLite here, or Grafana with PostgreSQL if you prefer
This configuration keeps Grafana's own state in SQLite on the volume, which is single node by design and is the right choice for one instance. If you would rather that state sat in Postgres, deploy Grafana (Postgres) instead: the same Grafana image plus a bundled postgres:16-alpine container on the same server. That bundled Postgres runs inside the project. It is not one of our managed databases and cannot be attached to one.
What we set up before Grafana starts
Five things that all have to be right at the same time.
Grafana ships with a documented default administrator, admin/admin, and every guide on the internet tells you to change it after you log in. We do not deploy that way.
| What we set | Why it matters |
|---|---|
GF_SECURITY_ADMIN_USER and GF_SECURITY_ADMIN_PASSWORD, seeded before the first boot | The instance never exists in a state where admin/admin would work. If the seeding fails, the instance boots locked rather than open |
GF_SERVER_ROOT_URL, following the live domain | Alert notification links and OAuth redirects resolve to the right host. Get this wrong by hand and every alert email points somewhere useless |
| Traefik route to port 3000, with a Let's Encrypt certificate per hostname | HTTPS on the generated address from the first request, and again when you attach your own domain |
| Hetzner cloud firewall, default deny inbound, only 22, 80 and 443 open | Grafana's port is not reachable except through the proxy |
| Per-service DNS names, one VM per customer | Nothing else on the box can resolve or reach your instance |
None of this is difficult. It is just five things that all have to be right at the same time, on a box that is already on the public internet, and the order matters. That is what Selfhost.dev is doing while the progress bar moves.
How to self host Grafana in four steps
From zero to live.
No server to set up.
Four steps. One container, one server, no build step.
1. Choose Grafana
This page opens the exact console template. Pick a server size and one of six locations, then submit. The recommended size is 4 GB.
2. Set access
The console shows the administrator username and password that were seeded into the container before it started. Save them now; this is not a default you are expected to change later.
3. Let it start
The template deploys in about five minutes. The console tracks it, gives the app a generated HTTPS address and shows server CPU and memory once it is live.
4. Add a data source
Sign in, connect your first data source, then import a community dashboard by ID or build your own. The instance is empty until you do.
What we run, and what you run
The honest split.
| Selfhost.dev runs | You run |
|---|---|
| The server: provisioning, the firewall, the network | Grafana itself: users, permissions, dashboards |
| TLS certificates and their renewal | Your data sources and their credentials |
| The route from your domain to the container | Your alert rules and contact points |
| Optional whole-server daily backups | Your dashboard exports, if you want your own copy |
| Server CPU and memory metrics in the console | Grafana's version, and when to move to a newer one |
We are an infrastructure product. We do not administer your Grafana, tune your queries or decide when you upgrade, and we would rather say so here than let you find out later.
What a 4 GB server handles
Shapes, not benchmarks.
Grafana's own footprint is small and predictable, because it is a query and render layer rather than a store. The load that matters is concurrent dashboard rendering, and the cost of a dashboard is mostly paid by whatever data source it is querying.
| Shape | Sits comfortably on |
|---|---|
| One team, a handful of dashboards, a few people looking at once | 4 GB, the recommended size |
| Dashboards on a wall display refreshing continuously | 4 GB |
| Many concurrent viewers, heavy template variables, or the PNG renderer in use | Consider 8 GB |
| Grafana plus its own Postgres (the other configuration) | 4 GB, with the second container on the same box |
These are shapes, not measured benchmarks. We have no production capacity figure for Grafana yet, and rather than invent one we would rather you started on 4 GB. Not sure which size? Put both into the calculator and compare the monthly numbers before you decide.
Grafana self hosted cost
The software is free. The server is the bill.
Grafana OSS is free software. What you are buying is the server it runs on, by the hour, against prepaid credits, and that is the entire bill.
| Server | Cores | RAM | Disk | Where | Rate | Monthly at 730 hrs |
|---|---|---|---|---|---|---|
cx23 (recommended) | 2 | 4 GB | 40 GB | EU | $0.02/hr | $15.18 |
cax11 (ARM) | 2 | 4 GB | 40 GB | EU | $0.02/hr | $16.35 |
cpx21 | 3 | 4 GB | 80 GB | EU | $0.04/hr | $25.70 |
cpx21 | 3 | 4 GB | 80 GB | Singapore | $0.07/hr | $51.39 |
cpx21 | 3 | 4 GB | 80 GB | US | $0.12/hr | $87.75 |
cx33 (one size up) | 4 | 8 GB | 80 GB | EU | $0.03/hr | $23.36 |
Monthly figures assume 730 hours. One machine type in one location per row.
| Item | Cost |
|---|---|
| The Grafana template | $0 |
| Dashboards, users, alert rules | $0. No seat fee at any headcount |
| HTTPS and a custom domain | $0 |
| Bandwidth | $0. Traffic is included |
| Daily whole-server backups | Optional, +20% of the server price |
If your credit balance reaches zero the server is powered off first, not deleted. You get a 24 hour grace period and email warnings, and topping up inside that window restarts the project instead of destroying it. This page answers what Grafana costs. The calculator answers what everything costs.
What we promise, and what the code actually does
Six things, all code-verified.
- Every service is health-checked every 60 seconds.
- A deploy that stalls is retried automatically, not abandoned.
- A deploy is never reported done until the URL actually answers.
- Retrying a create never leaves you paying for two copies.
- Your version never moves on its own.
- Your bill cannot silently destroy your project: power off first, a 24 hour grace period, and an email.
Light templates like this one deploy in about five minutes. That is the platform's own budget, not an estimate.
Not sure what size you need?
Tell us what you are monitoring and roughly how many people will be looking, and we will send back the server size, the monthly cost and whether the free Grafana Cloud tier would serve you better. One reply, from a person, no sequence.
Grafana Cloud pricing vs self hosted
A platform fee, then a meter.
| Grafana Cloud Free | Grafana Cloud Pro | Grafana self hosted here | |
|---|---|---|---|
| Price as published | $0 | From $19 / month + usage with volume discounts | A European 4 GB server is $0.02/hr, about $15 a month |
| Metrics | 10k active series | $6.50 / 1k series above the free allowance | Bounded by your data source, not by us |
| Logs and traces | 50 GB each per month | $0.050/GB Process, $0.400/GB Write, $0.100/GB Retain | Not metered here |
| Retention | 14 days | 13 months metrics, 30 days logs and traces | Your disk, your choice |
| Users | 3 active | Included in the platform fee | Unlimited |
| Card required | No | Yes | Prepaid credits |
Grafana Cloud list prices as published, checked 15 September 2026. The $19 is a monthly platform fee on a self-serve plan, not an annual equivalent; the pricing page carries no monthly toggle.
When Grafana Cloud is the better choice
If you are inside the free tier, stay there. 10k active metric series, 50 GB of logs, 14 days of retention and three users, free forever with no card, is more than a lot of teams ever need, and $15 a month is not a better offer than $0. And if you need Grafana Enterprise features, buy them from Grafana: SAML single sign on, fine grained role based access control, scheduled reports and PDF export, query caching, usage insights, recorded queries, custom branding, auditing and the premium data source plugins are gated behind a commercial licence key. No hosting arrangement, ours or anyone's, turns them on. Grafana OSS does have OAuth sign in via Google, GitHub, GitLab and generic OAuth; it is SAML and fine grained RBAC that are gated, not authentication as a whole.
The honest read: Grafana Cloud Pro's platform fee is $19 a month before a single metric is ingested, and the usage rates sit on top of it. A European 4 GB server here is about $15 a month and nothing meters. There is no crossover to calculate, because the metered side only ever grows. Grafana also sells Grafana Enterprise, the self-managed licensed build. No price is published for it anywhere, and we are not going to estimate one.
Amazon Managed Grafana vs Grafana self hosted here
Where a per-user meter crosses a flat server.
Amazon Managed Grafana is the incumbent answer when somebody searches for a managed Grafana. AWS runs the Grafana itself and bills per active user, where an active user is anyone who signed in or made an API request at least once that month.
| Amazon Managed Grafana | Grafana self hosted here | |
|---|---|---|
| Editor or administrator | $9 per active editor or administrator user per workspace, monthly | Included |
| Viewer | $5 per active user per workspace, monthly | Included |
| Enterprise plugins | $45 per active user per workspace, additional | Not available |
| Minimum | Each workspace requires a minimum of one Editor licence | A European 4 GB server, $0.02/hr |
| Trial | 90 days, up to five free users | No trial to start or cancel. Billed by the hour, stop any time |
| Your team | Amazon Managed Grafana | Here |
|---|---|---|
| 1 editor | $9/mo | ~$15/mo |
| 2 editors | $18/mo | ~$15/mo |
| 1 editor, 2 viewers | $19/mo | ~$15/mo |
| 1 editor, 10 viewers | $59/mo | ~$15/mo |
| 5 editors, 25 viewers | $170/mo | ~$15/mo |
AWS list prices as published, checked 15 September 2026. Our figure is a European cx23 at 730 hours.
One editor is genuinely cheaper on AWS. From the second editor, or the third person of any kind, the line crosses and never comes back, because our number does not move with headcount. The people who only read dashboards are usually the majority, and they are the ones a per-user meter charges for.
Versus a VPS you set up yourself
Same hardware. The difference is the first boot.
This runs on Hetzner, and you could rent the same machine directly. We are not going to pretend otherwise, or claim a price match we cannot make. What the difference buys you is the five things above being right on the first boot rather than the third attempt.
| Doing it yourself | Here |
|---|---|
| Rent the box, harden SSH, configure a firewall | Provisioned with a default-deny firewall |
| Install Docker, write a compose file, pick a tag | One container, pinned, already chosen |
| Install and configure a reverse proxy | Traefik, routed to port 3000 |
| Issue and renew certificates | Let's Encrypt per hostname, automatic |
Remember to change admin/admin | Seeded before the first boot, so it never exists |
Set GF_SERVER_ROOT_URL correctly, or debug broken alert links later | Follows the live domain |
| Your own backup plan | Optional daily whole-server backups, +20% |
If you enjoy that and have done it before, do it yourself. If you want the dashboard rather than the exercise, the template takes about five minutes.
Grafana self hosted limitations
What this does not do.
- The instance starts empty. No data sources and no dashboards are provisioned. That is deliberate, because we do not know what you are monitoring, but it means the first screen you see is a blank one.
- No SMTP. Email alert notifications are silent until you configure a mail provider in Grafana's own settings. Slack and webhook contact points need no SMTP and work immediately.
- Enterprise features are not included. SAML, fine grained RBAC, reporting and PDF export, query caching, usage insights and the premium data source plugins are licence gated by Grafana.
- This configuration is single node by design. Grafana's state is in SQLite on the volume. For an HA-later path, start on the Grafana (Postgres) configuration instead.
- Your version does not move on its own, and that cuts both ways. We pin the image and never push a new one to a running service, so upgrading is your decision and your action.
- We do not restart a crashed service. Every service is health-checked every 60 seconds, but the sweep is observational. Restarting is done from the console.
- Metrics storage is not included. Grafana queries data sources; it does not store your time series. Prometheus, Loki or a database is still your responsibility, and on a bigger estate that is more server.
Grafana backup and restore
Two independent copies, and you control both.
The server has optional daily snapshots, and Grafana's own API will hand you every dashboard as JSON whenever you ask.
| Detail | |
|---|---|
| What server backups cover | The whole VM: the Grafana container, the volume, the SQLite database, plugins and renders |
| Frequency and retention | Daily, the last 7 kept, rotating |
| Cost | +20% of the server price |
| Schedule | Hetzner assigns a four hour daily window and the snapshot runs inside it |
| Your own copy | The dashboard API returns a dashboard as JSON, and the list endpoint pages through all of them, so a full export is a short script |
| Leaving | Take the JSON exports and import them into any other Grafana. Dashboards are portable by design |
Server backups live with the server. If the project is destroyed after a zero balance, the snapshots go with it. A dashboard export you hold yourself is the copy that survives anything.
Moving an existing Grafana here
Dashboards move cleanly. Telemetry does not.
Dashboards are JSON, and Grafana's open source HTTP API reads and writes them, available in Grafana 12 and later.
- Export. From your current Grafana, read the dashboard list endpoint, paging through it, then fetch each dashboard by UID. You now hold every dashboard as a JSON file.
- Deploy. Launch the template here and sign in with the administrator credentials from the console.
- Reconnect your data sources by hand. Credentials do not travel in a dashboard export, and they should not.
- Import. Post each dashboard JSON to the new instance, or paste it into the import screen.
There is no bulk export tool and no one click migration from Grafana Cloud. Your telemetry does not move. Historical metrics and logs sitting in Grafana Cloud stay in Grafana Cloud; what comes across is the way you look at data, not the data.
Related guides.
Frequently asked questions
Is Grafana free to self host?
What is the difference between Grafana OSS and Grafana Enterprise?
How does this compare with Grafana Cloud pricing?
Does Grafana self hosted need a separate database?
Does this deployment come with data sources or dashboards?
Who updates Grafana on this server?
Will Grafana send alert emails from this deployment?
What happens to my dashboards if my credit balance reaches zero?
About Selfhost.dev
Selfhost.dev runs managed PostgreSQL, MySQL, Redis and ClickHouse on AWS, and Projects: a dedicated server we provision and operate, for apps from GitHub and for the one-click catalog. Pricing is pay as you go against prepaid credits, with no tiers and no subscriptions.
Best for: Grafana, Metabase, Elasticsearch with Kibana and managed PostgreSQL, MySQL, Redis and ClickHouse.