diff --git a/cmd/hepto/config.go b/cmd/hepto/config.go
index 4048d22a989f050c94d0bb388d42d2829d3c1c50..d2f1e65e7a7d4855f5a511c5962d7723b39b7427 100644
--- a/cmd/hepto/config.go
+++ b/cmd/hepto/config.go
@@ -16,6 +16,7 @@ import (
 type Config struct {
 	DataDir       string
 	BypassIPCheck bool
+	Shell         string
 	Logger        logr.Logger
 	LogLevel      int
 	Cluster       cluster.ClusterSettings
@@ -26,6 +27,10 @@ type Config struct {
 var config Config
 
 func (c *Config) Complete() error {
+	// Mount a shell if required
+	if c.Shell != "" {
+		c.Container.Mounts[c.Shell] = c.Shell
+	}
 	// Initialize logging, default to warn level
 	zapLogger, err := NewLogger(c.LogLevel)
 	if err != nil {
@@ -61,6 +66,7 @@ func init() {
 
 	// General config
 	Hepto.Flags().CountVarP(&config.LogLevel, "verbose", "v", "Make logs more verbose")
+	Hepto.Flags().StringVar(&config.Shell, "shell", "", "Path to a debug shell instead of hepto")
 	Hepto.Flags().StringVar(&config.DataDir, "data", "/var/lib", "Data root directory")
 	Hepto.Flags().BoolVar(&config.BypassIPCheck, "bypass-ip-check", false, "Bypass initial IP check")
 
diff --git a/cmd/hepto/root.go b/cmd/hepto/root.go
index d8ec8e40b57e5b68c6757964ff62a2347eb993ab..83827368bd5438554ca166629c2b161408f37055 100644
--- a/cmd/hepto/root.go
+++ b/cmd/hepto/root.go
@@ -3,6 +3,8 @@ package hepto
 import (
 	"fmt"
 	"net"
+	"os"
+	"os/exec"
 	"time"
 
 	"forge.tedomum.net/acides/hepto/hepto/pkg/cluster"
@@ -18,6 +20,19 @@ var Hepto = &cobra.Command{
 	Run: func(cmd *cobra.Command, args []string) {
 		config.Complete()
 		err := selfcontain.RunFun(&config.Container, func() {
+			cluster.Sysctl()
+		}, func() {
+			if config.Shell != "" {
+				cmd := exec.Command(config.Shell)
+				cmd.Stdin = os.Stdin
+				cmd.Stdout = os.Stdout
+				cmd.Stderr = os.Stderr
+				err := cmd.Run()
+				if err != nil {
+					config.Logger.Error(err, "could not run shell")
+				}
+				return
+			}
 			config.Node.IP = waitForIP()
 			config.Logger.Info("found current IP", "ip", config.Node.IP.String())
 			c := cluster.New(&config.Cluster, &config.Node)