diff --git a/core/installer/app_manager.go b/core/installer/app_manager.go
index 8257d27..0965507 100644
--- a/core/installer/app_manager.go
+++ b/core/installer/app_manager.go
@@ -635,11 +635,17 @@
 	overrides CueAppData,
 	opts ...InstallOption,
 ) (ReleaseResources, error) {
+	o := &installOptions{}
+	for _, i := range opts {
+		i(o)
+	}
+	if !o.NoLock {
+		m.l.Lock()
+		defer m.l.Unlock()
+	}
 	if values == nil {
 		values = map[string]any{}
 	}
-	m.l.Lock()
-	defer m.l.Unlock()
 	if err := m.repo.Pull(); err != nil {
 		return ReleaseResources{}, err
 	}
@@ -688,7 +694,13 @@
 	if err != nil {
 		return ReleaseResources{}, err
 	}
-	rendered, err := newApp.Render(config.Release, env, networks, ToAccessConfigs(clusters), merge(config.Input, values), renderedCfg.LocalCharts, m.vpnAPIClient)
+	var lg LocalChartGenerator
+	if o.LG != nil {
+		lg = o.LG
+	} else {
+		lg = GitRepositoryLocalChartGenerator{env.Id, env.Id}
+	}
+	rendered, err := newApp.Render(config.Release, env, networks, ToAccessConfigs(clusters), merge(config.Input, values), nil, m.vpnAPIClient)
 	if err != nil {
 		return ReleaseResources{}, err
 	}
@@ -717,7 +729,12 @@
 	if err := setPortFields(values, portReservations); err != nil {
 		return ReleaseResources{}, err
 	}
-	rendered, err = newApp.Render(config.Release, env, networks, ToAccessConfigs(clusters), merge(config.Input, values), renderedCfg.LocalCharts, m.vpnAPIClient)
+	charts, err := pullHelmCharts(m.hf, rendered.HelmCharts, m.repo, "/helm-charts")
+	if err != nil {
+		return ReleaseResources{}, err
+	}
+	localCharts := generateLocalCharts(lg, charts)
+	rendered, err = newApp.Render(config.Release, env, networks, ToAccessConfigs(clusters), merge(config.Input, values), localCharts, m.vpnAPIClient)
 	if err != nil {
 		return ReleaseResources{}, err
 	}
