diff --git a/nixos/modules/monitoring/server/loki.nix b/nixos/modules/monitoring/server/loki.nix
index f73720a5761ebdcbf3c47db9291ac76eb22ca1de..e4c009113f8cd6de6c8ada68f9242673e0132ef7 100644
--- a/nixos/modules/monitoring/server/loki.nix
+++ b/nixos/modules/monitoring/server/loki.nix
@@ -21,6 +21,17 @@ in {
       {
         auth_enabled = false;
 
+        common = {
+          ring = {
+            kvstore = {
+              store = "inmemory";
+            };
+          };
+          instance_addr = "127.0.0.1";
+          replication_factor = 1;
+          path_prefix = "/var/lib/loki";
+        };
+
         server = {
           http_listen_port = 3100;
           grpc_listen_port = 9095; # unused, but no option to turn it off.
@@ -29,12 +40,6 @@ in {
 
         ingester = {
           lifecycler = {
-            ring = {
-              kvstore = {
-                store = "inmemory";
-              };
-              replication_factor = 1;
-            };
             final_sleep = "0s";
           };
           chunk_target_size = 1536000; # As per https://grafana.com/docs/loki/v2.2.1/best-practices/
@@ -44,25 +49,16 @@ in {
         schema_config = {
           configs = [{
             from = "2020-12-26";
-            store = "boltdb";
+            store = "boltdb-shipper";
             object_store = "filesystem";
             schema = "v11";
             index = {
               prefix = "index_";
+              period = "24h";
             };
           }];
         };
 
-        storage_config = {
-          boltdb = {
-            directory = "/var/lib/loki/index";
-          };
-
-          filesystem = {
-            directory = "/var/lib/loki/chunks";
-          };
-        };
-
         table_manager = {
           retention_deletes_enabled = true;
           retention_period = logRetention;