diff --git a/docker-compose.yml b/docker-compose.yml
index e5b0a3e3e1e94751e4df1df5fad75c29646e10e6..eb703448d69731731131daf7da52e24b15164751 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -8,9 +8,27 @@ services:
     environment:
       - POSTGRES_PASSWORD=${POSTGRES_PASSWORD-postgres}
       - POSTGRES_DB=${POSTGRES_DB-funkwhale_network}
+    volumes:
+      - ./data/postgres/database:/var/lib/postgresql/data
+
+  grafana:
+    restart: ${RESTART_POLICY-unless-stopped}
+    image: grafana/grafana:5.4.3
+    environment:
+      - "GF_SERVER_ROOT_URL=${GF_SERVER_ROOT_URL}"
+      - "GF_SECURITY_ADMIN_PASSWORD=${GF_SECURITY_ADMIN_PASSWORD}"
+      - "GF_DEFAULT_INSTANCE_NAME=Funkwhale Network"
+    depends_on:
+      - db
+    ports:
+      - "${GF_EXTERNAL_PORT-3000}:3000"
+    volumes:
+      - grafana:/var/lib/grafana
   redis:
     restart: ${RESTART_POLICY-unless-stopped}
     image: redis:5-alpine
+    volumes:
+      - ./data/redis:/data
 
   api:
     restart: ${RESTART_POLICY-unless-stopped}
@@ -29,3 +47,7 @@ services:
     depends_on:
       - db
       - redis
+
+
+volumes:
+  grafana: