diff --git a/package/gluon-core/luasrc/usr/lib/lua/gluon/site.lua b/package/gluon-core/luasrc/usr/lib/lua/gluon/site.lua
index 1c7803f11c622600bcac9a9af1b3bae2ba7baa0a..56491763c8c2b714c71a8738e974176912438cb0 100644
--- a/package/gluon-core/luasrc/usr/lib/lua/gluon/site.lua
+++ b/package/gluon-core/luasrc/usr/lib/lua/gluon/site.lua
@@ -1,4 +1,23 @@
-local site = require 'gluon.site_config'
+local site = (function()
+	local config = '/lib/gluon/site.json'
+
+	local json = require 'luci.jsonc'
+	local decoder = json.new()
+	local sink = decoder:sink()
+
+	local file = assert(io.open(config))
+
+	while true do
+		local chunk = file:read(2048)
+		if not chunk or chunk:len() == 0 then break end
+		sink(chunk)
+	end
+
+	file:close()
+
+	return assert(decoder:get())
+end)()
+
 
 local wrap
 
diff --git a/package/gluon-core/luasrc/usr/lib/lua/gluon/site_config.lua b/package/gluon-core/luasrc/usr/lib/lua/gluon/site_config.lua
index 7e27525d095226bffb39057696f4f273f9bab7a9..533fdf71e4c7abfd27ce5f333141881742ee1abb 100644
--- a/package/gluon-core/luasrc/usr/lib/lua/gluon/site_config.lua
+++ b/package/gluon-core/luasrc/usr/lib/lua/gluon/site_config.lua
@@ -1,29 +1,11 @@
-local function get_site_config()
-	local config = '/lib/gluon/site.json'
-
-	local json = require 'luci.jsonc'
-	local decoder = json.new()
-	local sink = decoder:sink()
-
-	local file = assert(io.open(config))
-
-	while true do
-		local chunk = file:read(2048)
-		if not chunk or chunk:len() == 0 then break end
-		sink(chunk)
-	end
-
-	file:close()
-
-	return assert(decoder:get())
-end
+local site = require 'gluon.site'
 
 local setmetatable = setmetatable
 
 module 'gluon.site_config'
 
 setmetatable(_M, {
-	__index = get_site_config(),
+	__index = site(),
 })
 
 return _M