diff --git a/products/forgejo/actions-runner/forgejo-runner.tf b/products/forgejo/actions-runner/forgejo-runner.tf
index 676eaa5..6e826c3 100644
--- a/products/forgejo/actions-runner/forgejo-runner.tf
+++ b/products/forgejo/actions-runner/forgejo-runner.tf
@@ -8,52 +8,62 @@ module "forgejo_actions_runner" {
   parallelism           = var.parallelism
   converge_enable       = false
   environment_variables = {
-    forgejo_INSTANCE_URL              = var.forgejo_instance_url
-    forgejo_RUNNER_NAME               = var.forgejo_runner_name
-    forgejo_RUNNER_LABELS             = join(",", var.forgejo_runner_labels)
-    forgejo_RUNNER_REGISTRATION_TOKEN = var.forgejo_token
-    CONFIG_FILE                       = "/config.yaml"
+    #    forgejo_INSTANCE_URL              = var.forgejo_instance_url
+    #    forgejo_RUNNER_NAME               = var.forgejo_runner_name
+    #    forgejo_RUNNER_LABELS             = join(",", var.forgejo_runner_labels)
+    #    forgejo_RUNNER_REGISTRATION_TOKEN = var.forgejo_token
+    #    CONFIG_FILE                       = "/config.yaml"
+    #DOCKER_HOST = module.docker_socket_proxy.endpoint
   }
-  mounts = { "/var/run/docker.sock" = "/var/run/docker.sock" }
+  mounts = {
+    "/var/run/docker.sock" = "/var/run/docker.sock"
+  }
+  networks      = var.networks
+  command       = ["/bin/bash", "/entrypoint.sh"]
+  restart_delay = "1m"
   configs = {
-    forgejo-config = yamlencode({
-      name_prefix = ["forgejo-config", var.stack_name, var.service_name]
-      path        = "/config.yaml"
-      contents = yamlencode({
-        log = {
-          level = "info"
-        }
-        runner = {
-          file           = ".runner"
-          capacity       = 2
-          env_file       = ".env"
-          timeout        = "3h"
-          insecure       = false
-          fetch_timeout  = "5s"
-          fetch_interval = "2s"
-          labels         = var.forgejo_runner_labels
-        }
-        cache = {
-          enabled         = true
-          dir             = ""
-          host            = ""
-          port            = 0
-          external_server = ""
-        }
-        container = {
-          network        = null
-          privileged     = false
-          options        = null
-          workdir_parent = null
-          valid_volumes  = []
-          docker_host    = ""
-          force_pull     = true
-          force_rebuild  = false
-        }
-        host = {
-          workdir_parent : null
-        }
-      })
+    "/entrypoint.sh" = <<EOF
+#!/bin/bash
+set -xe
+echo "Configuring runner..."
+/bin/forgejo-runner --config /config.yaml register --no-interactive --instance "${var.forgejo_instance_url}" --name ${var.forgejo_runner_name} --token ${var.forgejo_token}
+echo "Starting runner..."
+exec /bin/forgejo-runner --config /config.yaml daemon
+EOF
+    "/config.yaml" = yamlencode({
+      log = {
+        level = "info"
+      }
+      runner = {
+        file           = ".runner"
+        capacity       = 2
+        env_file       = ".env"
+        timeout        = "3h"
+        insecure       = false
+        fetch_timeout  = "5s"
+        fetch_interval = "2s"
+        labels         = var.forgejo_runner_labels
+      }
+      cache = {
+        enabled         = true
+        dir             = ""
+        host            = ""
+        port            = 0
+        external_server = ""
+      }
+      container = {
+        network        = null
+        privileged     = false
+        options        = null
+        workdir_parent = null
+        valid_volumes  = []
+        docker_host    = ""
+        force_pull     = true
+        force_rebuild  = false
+      }
+      host = {
+        workdir_parent : null
+      }
     })
   }
 }
\ No newline at end of file
diff --git a/products/forgejo/actions-runner/inputs.tf b/products/forgejo/actions-runner/inputs.tf
index 9a59151..5aba0ca 100644
--- a/products/forgejo/actions-runner/inputs.tf
+++ b/products/forgejo/actions-runner/inputs.tf
@@ -9,10 +9,18 @@ variable "forgejo_actions_runner_image" {
   description = "The docker image to use for the forgejo runner service."
 }
 variable "forgejo_actions_runner_version" {
-  default     = "latest"
+  default     = "6"
   type        = string
   description = "The version of the docker image to use for the forgejo runner service."
 }
+variable "networks" {
+  type = list(object({
+    name = string
+    id   = string
+  }))
+  default     = []
+  description = "A list of network names to attach the service to."
+}
 variable "parallelism" {
   description = "The number of instances of the runner to run"
   type        = number
@@ -52,6 +60,7 @@ variable "service_name" {
 variable "stack_name" {
   type        = string
   description = "The name of the stack to deploy the service to."
+  default     = "forgejo"
 }
 variable "placement_constraints" {
   default     = []
diff --git a/products/forgejo/forgejo/database.tf b/products/forgejo/forgejo/database.tf
index 722d588..f78b86d 100644
--- a/products/forgejo/forgejo/database.tf
+++ b/products/forgejo/forgejo/database.tf
@@ -2,8 +2,7 @@ module "postgres" {
   source                = "../../../products/postgres"
   stack_name            = var.stack_name
   placement_constraints = var.placement_constraints
-  postgres_version      = "15"
-  networks              = [module.forgejo_network]
+  networks              = [module.network]
   data_persist_path     = var.database_storage_path
   ports = [
     {
diff --git a/products/forgejo/forgejo/forgejo.tf b/products/forgejo/forgejo/forgejo.tf
index 0e7ee77..46d4856 100644
--- a/products/forgejo/forgejo/forgejo.tf
+++ b/products/forgejo/forgejo/forgejo.tf
@@ -5,7 +5,7 @@ module "forgejo" {
   stack_name            = var.stack_name
   service_name          = "forgejo"
   placement_constraints = var.placement_constraints
-  networks              = concat(var.networks, [module.forgejo_network])
+  networks              = concat(var.networks, [module.network])
   configs = {
     "/data/gitea/conf/app.ini" = templatefile("${path.module}/app.ini.tpl", merge({
       name              = var.forgejo_name
diff --git a/products/forgejo/forgejo/networks.tf b/products/forgejo/forgejo/networks.tf
index 5d4fa1a..02df49e 100644
--- a/products/forgejo/forgejo/networks.tf
+++ b/products/forgejo/forgejo/networks.tf
@@ -1,4 +1,4 @@
-module "forgejo_network" {
+module "network" {
   source       = "../../../docker/network"
   stack_name   = var.stack_name
   network_name = "forgejo"
diff --git a/products/forgejo/forgejo/outputs.tf b/products/forgejo/forgejo/outputs.tf
index a5e69c9..13427a5 100644
--- a/products/forgejo/forgejo/outputs.tf
+++ b/products/forgejo/forgejo/outputs.tf
@@ -4,10 +4,9 @@ output "docker_service" {
 output "postgres" {
   value = module.postgres
 }
-
 output "endpoint" {
   value = module.forgejo.endpoint
 }
 output "network" {
-  value = module.forgejo_network.network
+  value = module.network.network
 }
\ No newline at end of file