Storj
Get Started with Apps!
Keywords: storage, networking, financial, file-sharing
Train: Stable
Home Page: https://www.storj.io
Added: 2024-09-02
Last Updated: 2025-04-23
Share your storage on the internet and earn.
Run as Context- Storj runs as any non-root user.
Group: 568 / storj
User: 568 / storj

Security Capabilities
- Storj (init container only) is able to chown files.
- Storj (init container only) is able to bypass permission checks for it's sub-processes.
- Storj (init container only) is able to bypass permission checks.
App Metadata (Raw File)
{
"1.2.11": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/stable/storj/1.2.11",
"last_update": "2025-04-23 17:40:39",
"required_features": [],
"human_version": "6f87ea801-v1.71.2-go1.18.8_1.2.11",
"version": "1.2.11",
"app_metadata": {
"app_version": "6f87ea801-v1.71.2-go1.18.8",
"capabilities": [
{
"description": "Storj (init container only) is able to chown files.",
"name": "CHOWN"
},
{
"description": "Storj (init container only) is able to bypass permission checks for it's sub-processes.",
"name": "FOWNER"
},
{
"description": "Storj (init container only) is able to bypass permission checks.",
"name": "DAC_OVERRIDE"
}
],
"categories": [
"storage"
],
"changelog_url": "https://forum.storj.io/tag/official-changelog",
"date_added": "2024-09-02",
"description": "Share your storage on the internet and earn.",
"home": "https://www.storj.io",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/storj/icons/icon.svg",
"keywords": [
"storage",
"networking",
"financial",
"file-sharing"
],
"lib_version": "2.1.16",
"lib_version_hash": "dac15686f882b9ce65b8549a3d5c0ed7bafe2df7a9028880d1a99b0ff4af1eff",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "storj",
"run_as_context": [
{
"description": "Storj runs as any non-root user.",
"gid": 568,
"group_name": "storj",
"uid": 568,
"user_name": "storj"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/storj/screenshots/screenshot1.jpeg"
],
"sources": [
"https://www.storj.io"
],
"title": "Storj",
"train": "stable",
"version": "1.2.11"
},
"schema": {
"groups": [
{
"name": "Storj Configuration",
"description": "Configure Storj"
},
{
"name": "User and Group Configuration",
"description": "Configure User and Group for Storj"
},
{
"name": "Network Configuration",
"description": "Configure Network for Storj"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Storj"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for Storj"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for Storj"
}
],
"questions": [
{
"variable": "storj",
"label": "",
"group": "Storj Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "stop_grace_period",
"label": "Stop Grace Period",
"description": "The time to wait before stopping the container.",
"schema": {
"type": "int",
"min": 30,
"max": 600,
"default": 30,
"required": true
}
},
{
"variable": "storage_size_gb",
"label": "Storage Size (in GB)",
"description": "The size of the storage to use.",
"schema": {
"type": "int",
"min": 500,
"default": 500,
"required": true
}
},
{
"variable": "wallet_address",
"label": "Wallet Address",
"description": "The wallet address to use for the storage.",
"schema": {
"type": "string",
"required": true,
"private": true,
"default": ""
}
},
{
"variable": "auth_token",
"label": "Auth Token",
"description": "The auth token to use for the storage.",
"schema": {
"type": "string",
"required": true,
"private": true,
"default": ""
}
},
{
"variable": "email",
"label": "Email",
"description": "The email to use for the storage.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "domain_address",
"label": "Domain Address",
"description": "The domain address to use for the storage.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "wallets",
"label": "Opt-in to Additional Wallets",
"schema": {
"type": "list",
"items": [
{
"variable": "wallet_entry",
"label": "Additional Wallet",
"description": "The wallet to use for the storage.",
"schema": {
"type": "string",
"enum": [
{
"value": "zksync",
"description": "zkSync (Appends 'zksync' to --operator.wallet-features)"
},
{
"value": "zksync-era",
"description": "zkSync Era (Appends 'zksync-era' to --operator.wallet-features)"
}
]
}
}
]
}
},
{
"variable": "additional_envs",
"label": "Additional Environment Variables",
"description": "Configure additional environment variables for Storj.",
"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",
"required": true
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "run_as",
"label": "",
"group": "User and Group Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "user",
"label": "User ID",
"description": "The user id that Storj files will be owned by.",
"schema": {
"type": "int",
"min": 568,
"default": 568,
"required": true
}
},
{
"variable": "group",
"label": "Group ID",
"description": "The group id that Storj 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": "web_port",
"label": "WebUI Port",
"description": "The port for Storj WebUI",
"schema": {
"type": "int",
"default": 20909,
"required": true,
"$ref": [
"definitions/port"
]
}
},
{
"variable": "p2p_port",
"label": "P2P Port",
"description": "This port will be used for both TCP and UDP traffic. </br>\nNote that this port must be open on your firewall and that internal\nStorj port will not be affected by this change, but only the external\n",
"schema": {
"type": "int",
"default": 28967,
"required": true,
"$ref": [
"definitions/port"
]
}
},
{
"variable": "host_network",
"label": "Host Network",
"description": "Bind to the host network. It's recommended to keep this disabled.\n",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dns_opts",
"label": "DNS Options",
"description": "DNS options for the container.</br>\nFormat: key:value</br>\nExample: attempts:3\n",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "option",
"label": "Option",
"schema": {
"type": "string",
"required": true
}
}
]
}
}
]
}
},
{
"variable": "storage",
"label": "",
"group": "Storage Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "identity",
"label": "Storj Identity Storage",
"description": "The path to store Storj Identity.",
"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": "identity"
}
},
{
"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": "data",
"label": "Storj Data Storage",
"description": "The path to store Storj 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 Storj.",
"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": "storj",
"description": "storj"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 Storj.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Storj.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>Storj</h1> <p><a href=\"https://storj.io/\">Storj</a> - a Storj Storage Node, which is a part of the decentralized cloud storage network Storj.</p>",
"changelog": null,
"chart_metadata": {
"app_version": "6f87ea801-v1.71.2-go1.18.8",
"capabilities": [
{
"description": "Storj (init container only) is able to chown files.",
"name": "CHOWN"
},
{
"description": "Storj (init container only) is able to bypass permission checks for it's sub-processes.",
"name": "FOWNER"
},
{
"description": "Storj (init container only) is able to bypass permission checks.",
"name": "DAC_OVERRIDE"
}
],
"categories": [
"storage"
],
"changelog_url": "https://forum.storj.io/tag/official-changelog",
"date_added": "2024-09-02",
"description": "Share your storage on the internet and earn.",
"home": "https://www.storj.io",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/storj/icons/icon.svg",
"keywords": [
"storage",
"networking",
"financial",
"file-sharing"
],
"lib_version": "2.1.16",
"lib_version_hash": "dac15686f882b9ce65b8549a3d5c0ed7bafe2df7a9028880d1a99b0ff4af1eff",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "storj",
"run_as_context": [
{
"description": "Storj runs as any non-root user.",
"gid": 568,
"group_name": "storj",
"uid": 568,
"user_name": "storj"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/storj/screenshots/screenshot1.jpeg"
],
"sources": [
"https://www.storj.io"
],
"title": "Storj",
"train": "stable",
"version": "1.2.11"
}
}
}
Support and documentation for applications within the Stable catalog is handled by the TrueNAS community. The TrueNAS Applications Portal hosts but does not validate or maintain any linked resources associated with this app.