diff --git a/package/gluon-mesh-vpn-fastd/check_site.lua b/package/gluon-mesh-vpn-fastd/check_site.lua
index 6c817137bf0e4f5ba350eb403350e9c89cc31956..fc9d8221d959080457a3f0660abff94d81c6699a 100644
--- a/package/gluon-mesh-vpn-fastd/check_site.lua
+++ b/package/gluon-mesh-vpn-fastd/check_site.lua
@@ -11,3 +11,4 @@ local function check_peer(k, _)
 end
 
 need_table('fastd_mesh_vpn.backbone.peers', check_peer)
+need_boolean('fastd_mesh_vpn.enabled', false)
diff --git a/package/gluon-mesh-vpn-fastd/files/lib/gluon/upgrade/mesh-vpn-fastd/initial/010-mesh-vpn-fastd b/package/gluon-mesh-vpn-fastd/files/lib/gluon/upgrade/mesh-vpn-fastd/initial/010-mesh-vpn-fastd
new file mode 100755
index 0000000000000000000000000000000000000000..4beb714605be324295040ef0987a6639840ce1a5
--- /dev/null
+++ b/package/gluon-mesh-vpn-fastd/files/lib/gluon/upgrade/mesh-vpn-fastd/initial/010-mesh-vpn-fastd
@@ -0,0 +1,14 @@
+#!/usr/bin/lua
+
+local site = require 'gluon.site_config'
+local uci = require 'luci.model.uci'
+local c = uci.cursor()
+
+c:section('fastd', 'fastd', 'mesh_vpn',
+	  {
+		  enabled = site.fastd_mesh_vpn.enabled and 1 or 0
+	  }
+)
+
+c:save('fastd')
+c:commit('fastd')