Forgejo Runner
Get Started with Apps!
Keywords: forgejo, actions, runner
Train: Community
Home Page: https://forgejo.org/
Added: 2025-08-22
Last Updated: 2025-08-25
A runner for Forgejo.
Run as Context- Forgejo Runner runs as any non-root user.
Group: 568 / forgejo-runner
User: 568 / forgejo-runner
Host Mounts
- /var/run/docker.sock : Docker socket
App Metadata (Raw File)
{
"1.0.2": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/forgejo-runner/1.0.2",
"last_update": "2025-08-25 11:45:56",
"required_features": [],
"human_version": "9.1.1_1.0.2",
"version": "1.0.2",
"app_metadata": {
"app_version": "9.1.1",
"capabilities": [],
"categories": [
"productivity"
],
"changelog_url": "https://code.forgejo.org/forgejo/runner/releases",
"date_added": "2025-08-22",
"description": "A runner for Forgejo.",
"home": "https://forgejo.org/",
"host_mounts": [
{
"description": "Docker socket",
"host_path": "/var/run/docker.sock"
}
],
"icon": "https://media.sys.truenas.net/apps/forgejo-runner/icons/icon.svg",
"keywords": [
"forgejo",
"actions",
"runner"
],
"lib_version": "2.1.48",
"lib_version_hash": "8f7fee2e0e2eb5755e29a0d74cf22e5b0b19aff15d083e3b061b5f6075d4c849",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "forgejo-runner",
"run_as_context": [
{
"description": "Forgejo Runner runs as any non-root user.",
"gid": 568,
"group_name": "forgejo-runner",
"uid": 568,
"user_name": "forgejo-runner"
}
],
"screenshots": [],
"sources": [
"https://forgejo.org/docs/latest/admin/actions/runner-installation/",
"https://code.forgejo.org/forgejo/runner"
],
"title": "Forgejo Runner",
"train": "community",
"version": "1.0.2"
},
"schema": {
"groups": [
{
"name": "Forgejo Runner Configuration",
"description": "Configure Forgejo Runner"
},
{
"name": "User and Group Configuration",
"description": "Configure User and Group for Forgejo Runner"
},
{
"name": "Network Configuration",
"description": "Configure Network for Forgejo Runner"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Forgejo Runner"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for Forgejo Runner"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for Forgejo Runner"
}
],
"questions": [
{
"variable": "TZ",
"group": "Forgejo Runner Configuration",
"label": "Timezone",
"schema": {
"type": "string",
"default": "Etc/UTC",
"required": true,
"$ref": [
"definitions/timezone"
]
}
},
{
"variable": "forgejo_runner",
"label": "",
"group": "Forgejo Runner Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "instance_url",
"label": "Instance URL",
"description": "The URL of the Forgejo instance to use.",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "runner_name",
"label": "Runner Name",
"description": "The name of the runner to use.",
"schema": {
"type": "string",
"default": "",
"required": true
}
},
{
"variable": "runner_registration_token",
"label": "Runner Registration Token",
"description": "The registration token for the runner.",
"schema": {
"type": "string",
"default": "",
"required": true,
"private": true
}
},
{
"variable": "runner_labels",
"label": "Runner Labels",
"description": "The labels for the runner. (https://forgejo.org/docs/latest/admin/actions/#choosing-labels)",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "label",
"label": "Label",
"schema": {
"type": "string",
"required": true
}
}
]
}
},
{
"variable": "additional_envs",
"label": "Additional Environment Variables",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "env",
"label": "Environment Variable",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "run_as",
"label": "",
"group": "User and Group Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "user",
"label": "User ID",
"description": "The user id that Forgejo Runner files will be owned by.",
"schema": {
"type": "int",
"min": 568,
"default": 568,
"required": true
}
},
{
"variable": "group",
"label": "Group ID",
"description": "The group id that Forgejo Runner files will be owned by.",
"schema": {
"type": "int",
"min": 568,
"default": 568,
"required": true
}
}
]
}
},
{
"variable": "network",
"label": "",
"group": "Network Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "host_network",
"label": "Host Network",
"description": "Bind to the host network. It's recommended to keep this disabled.\n",
"schema": {
"type": "boolean",
"show_if": [
[
"dhcp_enabled",
"=",
false
]
],
"default": false
}
},
{
"variable": "additional_ports",
"label": "Additional Ports",
"schema": {
"type": "list",
"show_if": [
[
"host_network",
"=",
false
]
],
"items": [
{
"variable": "port",
"label": "Port",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "bind_mode",
"label": "Port Bind Mode",
"description": "The port bind mode.</br>\n- Publish: The port will be published on the host for external access.</br>\n- Expose: The port will be exposed for inter-container communication.</br>\n",
"schema": {
"type": "string",
"default": "published",
"enum": [
{
"value": "published",
"description": "Publish port on the host for external access"
},
{
"value": "exposed",
"description": "Expose port for inter-container communication"
}
]
}
},
{
"variable": "port_number",
"label": "Port Number",
"schema": {
"type": "int",
"min": 1,
"max": 65535,
"required": true
}
},
{
"variable": "container_port",
"label": "Container Port",
"schema": {
"type": "int",
"min": 1,
"max": 65535,
"required": true
}
},
{
"variable": "protocol",
"label": "Protocol",
"schema": {
"type": "string",
"required": true,
"default": "tcp",
"enum": [
{
"value": "tcp",
"description": "TCP"
},
{
"value": "udp",
"description": "UDP"
}
]
}
},
{
"variable": "host_ips",
"label": "Host IPs",
"description": "IPs on the host to bind this port",
"schema": {
"type": "list",
"show_if": [
[
"bind_mode",
"=",
"published"
]
],
"default": [],
"items": [
{
"variable": "host_ip",
"label": "Host IP",
"schema": {
"type": "string",
"required": true,
"$ref": [
"definitions/node_bind_ip"
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "storage",
"label": "",
"group": "Storage Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "data",
"label": "Forgejo Runner Data Storage",
"description": "The path to store Forgejo Runner Data.",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type",
"description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"default": "ix_volume",
"enum": [
{
"value": "host_path",
"description": "Host Path (Path that already exists on the system)"
},
{
"value": "ix_volume",
"description": "ixVolume (Dataset created automatically by the system)"
}
]
}
},
{
"variable": "ix_volume_config",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ix_volume"
]
],
"$ref": [
"normalize/ix_volume"
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dataset_name",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"hidden": true,
"default": "data"
}
},
{
"variable": "acl_entries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": []
}
}
]
}
},
{
"variable": "host_path_config",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"host_path"
]
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "acl",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": [],
"$ref": [
"normalize/acl"
]
}
},
{
"variable": "path",
"label": "Host Path",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"acl_enable",
"=",
false
]
],
"required": true
}
}
]
}
}
]
}
},
{
"variable": "additional_storage",
"label": "Additional Storage",
"description": "Additional storage for Forgejo Runner.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "storageEntry",
"label": "Storage Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type",
"description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.</br>\nSMB Share: Is a SMB share that is mounted to as a volume.\n",
"schema": {
"type": "string",
"required": true,
"default": "ix_volume",
"immutable": true,
"enum": [
{
"value": "host_path",
"description": "Host Path (Path that already exists on the system)"
},
{
"value": "ix_volume",
"description": "ixVolume (Dataset created automatically by the system)"
},
{
"value": "cifs",
"description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
}
]
}
},
{
"variable": "read_only",
"label": "Read Only",
"description": "Mount the volume as read only.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "mount_path",
"label": "Mount Path",
"description": "The path inside the container to mount the storage.",
"schema": {
"type": "path",
"required": true
}
},
{
"variable": "host_path_config",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"host_path"
]
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "acl",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": [],
"$ref": [
"normalize/acl"
]
}
},
{
"variable": "path",
"label": "Host Path",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"acl_enable",
"=",
false
]
],
"required": true
}
}
]
}
},
{
"variable": "ix_volume_config",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ix_volume"
]
],
"$ref": [
"normalize/ix_volume"
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dataset_name",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"default": "storage_entry"
}
},
{
"variable": "acl_entries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": [],
"$ref": [
"normalize/acl"
]
}
}
]
}
},
{
"variable": "cifs_config",
"label": "SMB Configuration",
"description": "The configuration for the SMB dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"cifs"
]
],
"attrs": [
{
"variable": "server",
"label": "Server",
"description": "The server to mount the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "path",
"label": "Path",
"description": "The path to mount the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "username",
"label": "Username",
"description": "The username to use for the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "password",
"label": "Password",
"description": "The password to use for the SMB share.",
"schema": {
"type": "string",
"required": true,
"private": true
}
},
{
"variable": "domain",
"label": "Domain",
"description": "The domain to use for the SMB share.",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "labels",
"label": "",
"group": "Labels Configuration",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "label",
"label": "Label",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "containers",
"label": "Containers",
"description": "Containers where the label should be applied",
"schema": {
"type": "list",
"items": [
{
"variable": "container",
"label": "Container",
"schema": {
"type": "string",
"required": true,
"enum": [
{
"value": "forgejo-runner",
"description": "forgejo-runner"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "resources",
"label": "",
"group": "Resources Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "limits",
"label": "Limits",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "cpus",
"label": "CPUs",
"description": "CPUs limit for Forgejo Runner.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Forgejo Runner.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>Forgejo Runner</h1> <p><a href=\"https://forgejo.org/docs/latest/admin/actions/runner-installation/\">Forgejo Runner</a> is a runner for Forgejo.</p>",
"changelog": null,
"chart_metadata": {
"app_version": "9.1.1",
"capabilities": [],
"categories": [
"productivity"
],
"changelog_url": "https://code.forgejo.org/forgejo/runner/releases",
"date_added": "2025-08-22",
"description": "A runner for Forgejo.",
"home": "https://forgejo.org/",
"host_mounts": [
{
"description": "Docker socket",
"host_path": "/var/run/docker.sock"
}
],
"icon": "https://media.sys.truenas.net/apps/forgejo-runner/icons/icon.svg",
"keywords": [
"forgejo",
"actions",
"runner"
],
"lib_version": "2.1.48",
"lib_version_hash": "8f7fee2e0e2eb5755e29a0d74cf22e5b0b19aff15d083e3b061b5f6075d4c849",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "forgejo-runner",
"run_as_context": [
{
"description": "Forgejo Runner runs as any non-root user.",
"gid": 568,
"group_name": "forgejo-runner",
"uid": 568,
"user_name": "forgejo-runner"
}
],
"screenshots": [],
"sources": [
"https://forgejo.org/docs/latest/admin/actions/runner-installation/",
"https://code.forgejo.org/forgejo/runner"
],
"title": "Forgejo Runner",
"train": "community",
"version": "1.0.2"
}
}
}
Support, maintenance, and documentation for applications within the Community catalog is handled by the TrueNAS community. The TrueNAS Applications Market hosts but does not validate or maintain any linked resources associated with this app.
There currently aren’t any resources available for this application!
Please help the TrueNAS community add resources here or discuss this application in the TrueNAS Community forum.