Files
chart/community/piwigo/app_versions.json
2024-03-20 17:09:42 +00:00

2329 lines
178 KiB
JSON

{
"1.2.5": {
"healthy": true,
"supported": false,
"healthy_error": null,
"location": "/__w/charts/charts/community/piwigo/1.2.5",
"last_update": "2024-03-20 17:07:53",
"required_features": [
"normalize/acl",
"normalize/ixVolume"
],
"human_version": "14.3.0_1.2.5",
"version": "1.2.5",
"chart_metadata": {
"name": "piwigo",
"description": "Piwigo is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures.",
"annotations": {
"title": "Piwigo"
},
"type": "application",
"version": "1.2.5",
"apiVersion": "v2",
"appVersion": "14.3.0",
"kubeVersion": ">=1.16.0-0",
"maintainers": [
{
"name": "truenas",
"url": "https://www.truenas.com/",
"email": "dev@ixsystems.com"
}
],
"dependencies": [
{
"name": "common",
"repository": "file://../../../common",
"version": "1.2.9"
}
],
"home": "https://piwigo.org",
"icon": "https://media.sys.truenas.net/apps/piwigo/icons/icon.svg",
"sources": [
"https://hub.docker.com/r/linuxserver/piwigo",
"https://github.com/truenas/charts/tree/master/community/piwigo"
],
"keywords": [
"gallery",
"photo"
]
},
"app_metadata": {
"runAsContext": [
{
"userName": "root",
"groupName": "root",
"gid": 0,
"uid": 0,
"description": "Piwigo run as root user"
}
],
"capabilities": [
{
"name": "CHOWN",
"description": "Piwigo is able to chown files."
},
{
"name": "DAC_OVERRIDE",
"description": "Piwigo is able to bypass permission checks."
},
{
"name": "FOWNER",
"description": "Piwigo is able bypass permission checks for it's sub-processes."
},
{
"name": "NET_BIND_SERVICE",
"description": "Piwigo requires this ability to bind to port 80 within the container."
},
{
"name": "SETGID",
"description": "Piwigo is able to set group ID for it's sub-processes."
},
{
"name": "SETUID",
"description": "Piwigo is able to set user ID for it's sub-processes."
}
],
"hostMounts": []
},
"schema": {
"groups": [
{
"name": "Piwigo Configuration",
"description": "Configure Piwigo"
},
{
"name": "User and Group Configuration",
"description": "Configure User and Group for Piwigo"
},
{
"name": "Network Configuration",
"description": "Configure Network for Piwigo"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Piwigo"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for Piwigo"
}
],
"portals": {
"web_portal": {
"protocols": [
"$kubernetes-resource_configmap_portal_protocol"
],
"host": [
"$kubernetes-resource_configmap_portal_host"
],
"ports": [
"$kubernetes-resource_configmap_portal_port"
],
"path": "$kubernetes-resource_configmap_portal_path"
}
},
"questions": [
{
"variable": "piwiConfig",
"label": "",
"group": "Piwigo Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "adminName",
"label": "Admin Name",
"description": "The admin name for Piwigo.</br>\nOnly used when Piwigo is first installed.</br>\nYou can change it later in the Piwigo WebUI.\n",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"default": ""
}
},
{
"variable": "adminMail",
"label": "Admin Mail",
"description": "The admin mail for Piwigo.</br>\nOnly used when Piwigo is first installed.</br>\nYou can change it later in the Piwigo WebUI.\n",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"default": ""
}
},
{
"variable": "adminPass",
"label": "Admin Password",
"description": "The admin password for Piwigo.</br>\nOnly used when Piwigo is first installed.</br>\nYou can change it later in the Piwigo WebUI.\n",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"password": true,
"default": ""
}
},
{
"variable": "language",
"label": "Language",
"description": "The language for Piwigo.</br>\nOnly used when Piwigo is first installed.\n",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"default": "en_UK",
"enum": [
{
"value": "af_ZA",
"description": "Afrikaans [ZA]"
},
{
"value": "es_AR",
"description": "Argentina [AR]"
},
{
"value": "az_AZ",
"description": "Az\u0259rbaycanca [AZ]"
},
{
"value": "id_ID",
"description": "Bahasa Indonesia [ID]"
},
{
"value": "pt_BR",
"description": "Brasil [BR]"
},
{
"value": "br_FR",
"description": "Brezhoneg [FR]"
},
{
"value": "ca_ES",
"description": "Catal\u00e0 [CA]"
},
{
"value": "da_DK",
"description": "Dansk [DK]"
},
{
"value": "de_DE",
"description": "Deutsch [DE]"
},
{
"value": "dv_MV",
"description": "Dhivehi [MV]"
},
{
"value": "en_GB",
"description": "English [GB]"
},
{
"value": "en_UK",
"description": "English [UK]"
},
{
"value": "en_US",
"description": "English [US]"
},
{
"value": "es_ES",
"description": "Espa\u00f1ol [ES]"
},
{
"value": "eo_EO",
"description": "Esperanto [EO]"
},
{
"value": "et_EE",
"description": "Estonian [EE]"
},
{
"value": "eu_ES",
"description": "Euskara [ES]"
},
{
"value": "fi_FI",
"description": "Finnish [FI]"
},
{
"value": "fr_FR",
"description": "Fran\u00e7ais [FR]"
},
{
"value": "fr_CA",
"description": "Fran\u00e7ais [QC]"
},
{
"value": "ga_IE",
"description": "Gaeilge [IE]"
},
{
"value": "gl_ES",
"description": "Galego [ES]"
},
{
"value": "hr_HR",
"description": "Hrvatski [HR]"
},
{
"value": "it_IT",
"description": "Italiano [IT]"
},
{
"value": "lv_LV",
"description": "Latvie\u0161u [LV]"
},
{
"value": "lt_LT",
"description": "Lietuviu [LT]"
},
{
"value": "lb_LU",
"description": "L\u00ebtzebuergesch [LU]"
},
{
"value": "hu_HU",
"description": "Magyar [HU]"
},
{
"value": "ms_MY",
"description": "Malay [MY]"
},
{
"value": "es_MX",
"description": "M\u00e9xico [MX]"
},
{
"value": "nl_NL",
"description": "Nederlands [NL]"
},
{
"value": "nb_NO",
"description": "Norsk bokm\u00e5l [NO]"
},
{
"value": "nn_NO",
"description": "Norwegian nynorsk [NO]"
},
{
"value": "pl_PL",
"description": "Polski [PL]"
},
{
"value": "pt_PT",
"description": "Portugu\u00eas [PT]"
},
{
"value": "ro_RO",
"description": "Rom\u00e2n\u0103 [RO]"
},
{
"value": "sk_SK",
"description": "Slovensky [SK]"
},
{
"value": "sl_SI",
"description": "Sloven\u0161cina [SI]"
},
{
"value": "sh_RS",
"description": "Srpski [SR]"
},
{
"value": "sv_SE",
"description": "Svenska [SE]"
},
{
"value": "vi_VN",
"description": "Ti\u1ebfng Vi\u1ec7t [VN]"
},
{
"value": "tr_TR",
"description": "T\u00fcrk\u00e7e [TR]"
},
{
"value": "wo_SN",
"description": "Wolof [SN]"
},
{
"value": "is_IS",
"description": "\u00cdslenska [IS]"
},
{
"value": "cs_CZ",
"description": "\u010cesky [CZ]"
},
{
"value": "el_GR",
"description": "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac [GR]"
},
{
"value": "bg_BG",
"description": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 [BG]"
},
{
"value": "mk_MK",
"description": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438 [MK]"
},
{
"value": "mn_MN",
"description": "\u041c\u043e\u043d\u0433\u043e\u043b [MN]"
},
{
"value": "ru_RU",
"description": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439 [RU]"
},
{
"value": "sr_RS",
"description": "\u0421\u0440\u043f\u0441\u043a\u0438 [SR]"
},
{
"value": "uk_UA",
"description": "\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430 [UA]"
},
{
"value": "he_IL",
"description": "\u05e2\u05d1\u05e8\u05d9\u05ea [IL]"
},
{
"value": "ar_EG",
"description": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629 (\u0645\u0635"
},
{
"value": "ar_SA",
"description": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629 [AR]"
},
{
"value": "ar_MA",
"description": "\u0627\u0644\u0639\u0631\u0628\u064a\u0629 [MA]"
},
{
"value": "fa_IR",
"description": "\u067e\u0627\u0631\u0633\u06cc [IR]"
},
{
"value": "kok_IN",
"description": "\u0915\u094b\u0902\u0915\u0923\u0940 [IN]"
},
{
"value": "bn_IN",
"description": "\u09ac\u09be\u0982\u09b2\u09be[IN]"
},
{
"value": "gu_IN",
"description": "\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0[IN]"
},
{
"value": "ta_IN",
"description": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd [IN]"
},
{
"value": "kn_IN",
"description": "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1 [IN]"
},
{
"value": "th_TH",
"description": "\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22 [TH]"
},
{
"value": "ka_GE",
"description": "\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8 [GE]"
},
{
"value": "km_KH",
"description": "\u1781\u17d2\u1798\u17c2\u179a [KH]"
},
{
"value": "zh_TW",
"description": "\u4e2d\u6587 (\u7e41\u9ad4) [TW]"
},
{
"value": "zh_HK",
"description": "\u4e2d\u6587 (\u9999\u6e2f) [HK]"
},
{
"value": "ja_JP",
"description": "\u65e5\u672c\u8a9e [JP]"
},
{
"value": "zh_CN",
"description": "\u7b80\u4f53\u4e2d\u6587 [CN]"
},
{
"value": "ko_KR",
"description": "\ud55c\uad6d\uc5b4 [KR]"
}
]
}
},
{
"variable": "additionalEnvs",
"label": "Additional Environment Variables",
"description": "Configure additional environment variables for Piwigo.",
"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": "piwiID",
"label": "",
"group": "User and Group Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "user",
"label": "User ID",
"description": "The user id that Piwigo files will be owned by.",
"schema": {
"type": "int",
"min": 2,
"default": 568,
"required": true
}
},
{
"variable": "group",
"label": "Group ID",
"description": "The group id that Piwigo files will be owned by.",
"schema": {
"type": "int",
"min": 2,
"default": 568,
"required": true
}
}
]
}
},
{
"variable": "piwiNetwork",
"label": "",
"group": "Network Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "webPort",
"label": "Web Port",
"description": "The port for the Piwigo WebUI.",
"schema": {
"type": "int",
"default": 30066,
"min": 9000,
"max": 65535,
"required": true
}
}
]
}
},
{
"variable": "piwiStorage",
"label": "",
"group": "Storage Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "config",
"label": "Piwigo Configuration Storage",
"description": "The path to store Piwigo configuration.",
"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": "ixVolume",
"enum": [
{
"value": "hostPath",
"description": "Host Path (Path that already exists on the system)"
},
{
"value": "ixVolume",
"description": "ixVolume (Dataset created automatically by the system)"
}
]
}
},
{
"variable": "ixVolumeConfig",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ixVolume"
]
],
"$ref": [
"normalize/ixVolume"
],
"attrs": [
{
"variable": "aclEnable",
"label": "Enable ACL",
"description": "Enable ACL for the dataset.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "datasetName",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"hidden": true,
"default": "config"
}
},
{
"variable": "aclEntries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"aclEnable",
"=",
true
]
],
"attrs": [
{
"variable": "path",
"label": "Path",
"description": "Path to perform ACL",
"schema": {
"type": "string",
"hidden": true
}
},
{
"variable": "entries",
"label": "ACL Entries",
"description": "ACL Entries",
"schema": {
"type": "list",
"items": [
{
"variable": "aclEntry",
"label": "ACL Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "id_type",
"label": "ID Type",
"schema": {
"type": "string",
"enum": [
{
"value": "USER",
"description": "Entry is for a USER"
},
{
"value": "GROUP",
"description": "Entry is for a GROUP"
}
],
"default": "USER"
}
},
{
"variable": "id",
"label": "ID",
"description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
"schema": {
"type": "int",
"required": true,
"min": 0
}
},
{
"variable": "access",
"label": "Access",
"schema": {
"type": "string",
"enum": [
{
"value": "READ",
"description": "Read Access"
},
{
"value": "MODIFY",
"description": "Modify Access"
},
{
"value": "FULL_CONTROL",
"description": "FULL_CONTROL Access"
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "hostPathConfig",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"hostPath"
]
],
"attrs": [
{
"variable": "aclEnable",
"label": "Enable ACL",
"description": "Enable ACL for the dataset.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "acl",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"aclEnable",
"=",
true
]
],
"attrs": [
{
"variable": "path",
"label": "Host Path",
"description": "Host Path to perform ACL",
"schema": {
"type": "hostpath",
"required": true,
"empty": false
}
},
{
"variable": "entries",
"label": "ACL Entries",
"description": "ACL Entries",
"schema": {
"type": "list",
"items": [
{
"variable": "aclEntry",
"label": "ACL Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "id_type",
"label": "ID Type",
"schema": {
"type": "string",
"enum": [
{
"value": "USER",
"description": "Entry is for a USER"
},
{
"value": "GROUP",
"description": "Entry is for a GROUP"
}
],
"default": "USER"
}
},
{
"variable": "id",
"label": "ID",
"description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
"schema": {
"type": "int",
"required": true,
"min": 0
}
},
{
"variable": "access",
"label": "Access",
"schema": {
"type": "string",
"enum": [
{
"value": "READ",
"description": "Read Access"
},
{
"value": "MODIFY",
"description": "Modify Access"
},
{
"value": "FULL_CONTROL",
"description": "FULL_CONTROL Access"
}
]
}
}
]
}
}
]
}
},
{
"variable": "options",
"label": "ACL Options",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "force",
"label": "Force Flag",
"description": "Enabling `Force` applies ACL even if the path has existing data",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
],
"$ref": [
"normalize/acl"
]
}
},
{
"variable": "hostPath",
"label": "Host Path",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"aclEnable",
"=",
false
]
],
"required": true
}
}
]
}
}
]
}
},
{
"variable": "gallery",
"label": "Piwigo Gallery Storage",
"description": "The path to store Piwigo gallery.",
"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": "ixVolume",
"enum": [
{
"value": "hostPath",
"description": "Host Path (Path that already exists on the system)"
},
{
"value": "ixVolume",
"description": "ixVolume (Dataset created automatically by the system)"
}
]
}
},
{
"variable": "ixVolumeConfig",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ixVolume"
]
],
"$ref": [
"normalize/ixVolume"
],
"attrs": [
{
"variable": "aclEnable",
"label": "Enable ACL",
"description": "Enable ACL for the dataset.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "datasetName",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"hidden": true,
"default": "gallery"
}
},
{
"variable": "aclEntries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"aclEnable",
"=",
true
]
],
"attrs": [
{
"variable": "path",
"label": "Path",
"description": "Path to perform ACL",
"schema": {
"type": "string",
"hidden": true
}
},
{
"variable": "entries",
"label": "ACL Entries",
"description": "ACL Entries",
"schema": {
"type": "list",
"items": [
{
"variable": "aclEntry",
"label": "ACL Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "id_type",
"label": "ID Type",
"schema": {
"type": "string",
"enum": [
{
"value": "USER",
"description": "Entry is for a USER"
},
{
"value": "GROUP",
"description": "Entry is for a GROUP"
}
],
"default": "USER"
}
},
{
"variable": "id",
"label": "ID",
"description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
"schema": {
"type": "int",
"required": true,
"min": 0
}
},
{
"variable": "access",
"label": "Access",
"schema": {
"type": "string",
"enum": [
{
"value": "READ",
"description": "Read Access"
},
{
"value": "MODIFY",
"description": "Modify Access"
},
{
"value": "FULL_CONTROL",
"description": "FULL_CONTROL Access"
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "hostPathConfig",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"hostPath"
]
],
"attrs": [
{
"variable": "aclEnable",
"label": "Enable ACL",
"description": "Enable ACL for the dataset.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "acl",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"aclEnable",
"=",
true
]
],
"attrs": [
{
"variable": "path",
"label": "Host Path",
"description": "Host Path to perform ACL",
"schema": {
"type": "hostpath",
"required": true,
"empty": false
}
},
{
"variable": "entries",
"label": "ACL Entries",
"description": "ACL Entries",
"schema": {
"type": "list",
"items": [
{
"variable": "aclEntry",
"label": "ACL Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "id_type",
"label": "ID Type",
"schema": {
"type": "string",
"enum": [
{
"value": "USER",
"description": "Entry is for a USER"
},
{
"value": "GROUP",
"description": "Entry is for a GROUP"
}
],
"default": "USER"
}
},
{
"variable": "id",
"label": "ID",
"description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
"schema": {
"type": "int",
"required": true,
"min": 0
}
},
{
"variable": "access",
"label": "Access",
"schema": {
"type": "string",
"enum": [
{
"value": "READ",
"description": "Read Access"
},
{
"value": "MODIFY",
"description": "Modify Access"
},
{
"value": "FULL_CONTROL",
"description": "FULL_CONTROL Access"
}
]
}
}
]
}
}
]
}
},
{
"variable": "options",
"label": "ACL Options",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "force",
"label": "Force Flag",
"description": "Enabling `Force` applies ACL even if the path has existing data",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
],
"$ref": [
"normalize/acl"
]
}
},
{
"variable": "hostPath",
"label": "Host Path",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"aclEnable",
"=",
false
]
],
"required": true
}
}
]
}
}
]
}
},
{
"variable": "mariadbData",
"label": "Piwigo MariaDB Data Storage",
"description": "The path to store Piwigo MariaDB 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": "ixVolume",
"enum": [
{
"value": "hostPath",
"description": "Host Path (Path that already exists on the system)"
},
{
"value": "ixVolume",
"description": "ixVolume (Dataset created automatically by the system)"
}
]
}
},
{
"variable": "ixVolumeConfig",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"hidden": true,
"show_if": [
[
"type",
"=",
"ixVolume"
]
],
"$ref": [
"normalize/ixVolume"
],
"attrs": [
{
"variable": "aclEnable",
"label": "Enable ACL",
"description": "Enable ACL for the dataset.",
"schema": {
"type": "boolean",
"hidden": true,
"default": false
}
},
{
"variable": "datasetName",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"hidden": true,
"default": "mariadbData"
}
},
{
"variable": "aclEntries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"aclEnable",
"=",
true
]
],
"attrs": [
{
"variable": "path",
"label": "Path",
"description": "Path to perform ACL",
"schema": {
"type": "string",
"hidden": true
}
},
{
"variable": "entries",
"label": "ACL Entries",
"description": "ACL Entries",
"schema": {
"type": "list",
"items": [
{
"variable": "aclEntry",
"label": "ACL Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "id_type",
"label": "ID Type",
"schema": {
"type": "string",
"enum": [
{
"value": "USER",
"description": "Entry is for a USER"
},
{
"value": "GROUP",
"description": "Entry is for a GROUP"
}
],
"default": "USER"
}
},
{
"variable": "id",
"label": "ID",
"description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
"schema": {
"type": "int",
"required": true,
"min": 0
}
},
{
"variable": "access",
"label": "Access",
"schema": {
"type": "string",
"enum": [
{
"value": "READ",
"description": "Read Access"
},
{
"value": "MODIFY",
"description": "Modify Access"
},
{
"value": "FULL_CONTROL",
"description": "FULL_CONTROL Access"
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "hostPathConfig",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"hostPath"
]
],
"attrs": [
{
"variable": "aclEnable",
"label": "Enable ACL",
"description": "Enable ACL for the dataset.",
"schema": {
"type": "boolean",
"hidden": true,
"default": false
}
},
{
"variable": "acl",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"aclEnable",
"=",
true
]
],
"attrs": [
{
"variable": "path",
"label": "Host Path",
"description": "Host Path to perform ACL",
"schema": {
"type": "hostpath",
"required": true,
"empty": false
}
},
{
"variable": "entries",
"label": "ACL Entries",
"description": "ACL Entries",
"schema": {
"type": "list",
"items": [
{
"variable": "aclEntry",
"label": "ACL Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "id_type",
"label": "ID Type",
"schema": {
"type": "string",
"enum": [
{
"value": "USER",
"description": "Entry is for a USER"
},
{
"value": "GROUP",
"description": "Entry is for a GROUP"
}
],
"default": "USER"
}
},
{
"variable": "id",
"label": "ID",
"description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
"schema": {
"type": "int",
"required": true,
"min": 0
}
},
{
"variable": "access",
"label": "Access",
"schema": {
"type": "string",
"enum": [
{
"value": "READ",
"description": "Read Access"
},
{
"value": "MODIFY",
"description": "Modify Access"
},
{
"value": "FULL_CONTROL",
"description": "FULL_CONTROL Access"
}
]
}
}
]
}
}
]
}
},
{
"variable": "options",
"label": "ACL Options",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "force",
"label": "Force Flag",
"description": "Enabling `Force` applies ACL even if the path has existing data",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
],
"$ref": [
"normalize/acl"
]
}
},
{
"variable": "hostPath",
"label": "Host Path",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"aclEnable",
"=",
false
]
],
"required": true
}
}
]
}
}
]
}
},
{
"variable": "mariadbBackup",
"label": "Piwigo MariaDB Backup Storage",
"description": "The path to store Piwigo MariaDB Backup.",
"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": "ixVolume",
"enum": [
{
"value": "hostPath",
"description": "Host Path (Path that already exists on the system)"
},
{
"value": "ixVolume",
"description": "ixVolume (Dataset created automatically by the system)"
}
]
}
},
{
"variable": "ixVolumeConfig",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"hidden": true,
"show_if": [
[
"type",
"=",
"ixVolume"
]
],
"$ref": [
"normalize/ixVolume"
],
"attrs": [
{
"variable": "aclEnable",
"label": "Enable ACL",
"description": "Enable ACL for the dataset.",
"schema": {
"type": "boolean",
"hidden": true,
"default": false
}
},
{
"variable": "datasetName",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"hidden": true,
"default": "mariadbBackup"
}
},
{
"variable": "aclEntries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"aclEnable",
"=",
true
]
],
"attrs": [
{
"variable": "path",
"label": "Path",
"description": "Path to perform ACL",
"schema": {
"type": "string",
"hidden": true
}
},
{
"variable": "entries",
"label": "ACL Entries",
"description": "ACL Entries",
"schema": {
"type": "list",
"items": [
{
"variable": "aclEntry",
"label": "ACL Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "id_type",
"label": "ID Type",
"schema": {
"type": "string",
"enum": [
{
"value": "USER",
"description": "Entry is for a USER"
},
{
"value": "GROUP",
"description": "Entry is for a GROUP"
}
],
"default": "USER"
}
},
{
"variable": "id",
"label": "ID",
"description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
"schema": {
"type": "int",
"required": true,
"min": 0
}
},
{
"variable": "access",
"label": "Access",
"schema": {
"type": "string",
"enum": [
{
"value": "READ",
"description": "Read Access"
},
{
"value": "MODIFY",
"description": "Modify Access"
},
{
"value": "FULL_CONTROL",
"description": "FULL_CONTROL Access"
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "hostPathConfig",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"hostPath"
]
],
"attrs": [
{
"variable": "aclEnable",
"label": "Enable ACL",
"description": "Enable ACL for the dataset.",
"schema": {
"type": "boolean",
"hidden": true,
"default": false
}
},
{
"variable": "acl",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"aclEnable",
"=",
true
]
],
"attrs": [
{
"variable": "path",
"label": "Host Path",
"description": "Host Path to perform ACL",
"schema": {
"type": "hostpath",
"required": true,
"empty": false
}
},
{
"variable": "entries",
"label": "ACL Entries",
"description": "ACL Entries",
"schema": {
"type": "list",
"items": [
{
"variable": "aclEntry",
"label": "ACL Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "id_type",
"label": "ID Type",
"schema": {
"type": "string",
"enum": [
{
"value": "USER",
"description": "Entry is for a USER"
},
{
"value": "GROUP",
"description": "Entry is for a GROUP"
}
],
"default": "USER"
}
},
{
"variable": "id",
"label": "ID",
"description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
"schema": {
"type": "int",
"required": true,
"min": 0
}
},
{
"variable": "access",
"label": "Access",
"schema": {
"type": "string",
"enum": [
{
"value": "READ",
"description": "Read Access"
},
{
"value": "MODIFY",
"description": "Modify Access"
},
{
"value": "FULL_CONTROL",
"description": "FULL_CONTROL Access"
}
]
}
}
]
}
}
]
}
},
{
"variable": "options",
"label": "ACL Options",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "force",
"label": "Force Flag",
"description": "Enabling `Force` applies ACL even if the path has existing data",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
],
"$ref": [
"normalize/acl"
]
}
},
{
"variable": "hostPath",
"label": "Host Path",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"aclEnable",
"=",
false
]
],
"required": true
}
}
]
}
}
]
}
},
{
"variable": "additionalStorages",
"label": "Additional Storage",
"description": "Additional storage for Piwigo.",
"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 a persistent volume claim.\n",
"schema": {
"type": "string",
"required": true,
"default": "ixVolume",
"immutable": true,
"enum": [
{
"value": "hostPath",
"description": "Host Path (Path that already exists on the system)"
},
{
"value": "ixVolume",
"description": "ixVolume (Dataset created automatically by the system)"
},
{
"value": "smb-pv-pvc",
"description": "SMB Share (Mounts a persistent volume claim to a SMB share)"
}
]
}
},
{
"variable": "readOnly",
"label": "Read Only",
"description": "Mount the volume as read only.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "mountPath",
"label": "Mount Path",
"description": "The path inside the container to mount the storage.",
"schema": {
"type": "path",
"required": true
}
},
{
"variable": "hostPathConfig",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"hostPath"
]
],
"attrs": [
{
"variable": "aclEnable",
"label": "Enable ACL",
"description": "Enable ACL for the dataset.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "acl",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"aclEnable",
"=",
true
]
],
"attrs": [
{
"variable": "path",
"label": "Host Path",
"description": "Host Path to perform ACL",
"schema": {
"type": "hostpath",
"required": true,
"empty": false
}
},
{
"variable": "entries",
"label": "ACL Entries",
"description": "ACL Entries",
"schema": {
"type": "list",
"items": [
{
"variable": "aclEntry",
"label": "ACL Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "id_type",
"label": "ID Type",
"schema": {
"type": "string",
"enum": [
{
"value": "USER",
"description": "Entry is for a USER"
},
{
"value": "GROUP",
"description": "Entry is for a GROUP"
}
],
"default": "USER"
}
},
{
"variable": "id",
"label": "ID",
"description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
"schema": {
"type": "int",
"required": true,
"min": 0
}
},
{
"variable": "access",
"label": "Access",
"schema": {
"type": "string",
"enum": [
{
"value": "READ",
"description": "Read Access"
},
{
"value": "MODIFY",
"description": "Modify Access"
},
{
"value": "FULL_CONTROL",
"description": "FULL_CONTROL Access"
}
]
}
}
]
}
}
]
}
},
{
"variable": "options",
"label": "ACL Options",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "force",
"label": "Force Flag",
"description": "Enabling `Force` applies ACL even if the path has existing data",
"schema": {
"type": "boolean",
"default": false
}
}
]
}
}
],
"$ref": [
"normalize/acl"
]
}
},
{
"variable": "hostPath",
"label": "Host Path",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"aclEnable",
"=",
false
]
],
"required": true
}
}
]
}
},
{
"variable": "ixVolumeConfig",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ixVolume"
]
],
"$ref": [
"normalize/ixVolume"
],
"attrs": [
{
"variable": "aclEnable",
"label": "Enable ACL",
"description": "Enable ACL for the dataset.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "datasetName",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"default": "storage_entry"
}
},
{
"variable": "aclEntries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"aclEnable",
"=",
true
]
],
"attrs": [
{
"variable": "path",
"label": "Path",
"description": "Path to perform ACL",
"schema": {
"type": "string",
"hidden": true
}
},
{
"variable": "entries",
"label": "ACL Entries",
"description": "ACL Entries",
"schema": {
"type": "list",
"items": [
{
"variable": "aclEntry",
"label": "ACL Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "id_type",
"label": "ID Type",
"schema": {
"type": "string",
"enum": [
{
"value": "USER",
"description": "Entry is for a USER"
},
{
"value": "GROUP",
"description": "Entry is for a GROUP"
}
],
"default": "USER"
}
},
{
"variable": "id",
"label": "ID",
"description": "Make sure to check the ID value is correct and aligns with RunAs user context of the application",
"schema": {
"type": "int",
"required": true,
"min": 0
}
},
{
"variable": "access",
"label": "Access",
"schema": {
"type": "string",
"enum": [
{
"value": "READ",
"description": "Read Access"
},
{
"value": "MODIFY",
"description": "Modify Access"
},
{
"value": "FULL_CONTROL",
"description": "FULL_CONTROL Access"
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "smbConfig",
"label": "SMB Share Configuration",
"description": "The configuration for the SMB Share.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"smb-pv-pvc"
]
],
"attrs": [
{
"variable": "server",
"label": "Server",
"description": "The server for the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "share",
"label": "Share",
"description": "The share name for the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "domain",
"label": "Domain (Optional)",
"description": "The domain for the SMB share.",
"schema": {
"type": "string"
}
},
{
"variable": "username",
"label": "Username",
"description": "The username for the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "password",
"label": "Password",
"description": "The password for the SMB share.",
"schema": {
"type": "string",
"required": true,
"private": true
}
},
{
"variable": "size",
"label": "Size (in Gi)",
"description": "The size of the volume quota.",
"schema": {
"type": "int",
"required": true,
"min": 1,
"default": 1
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "resources",
"label": "",
"group": "Resources Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "limits",
"label": "Limits",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "cpu",
"label": "CPU",
"description": "CPU limit for Piwigo.",
"schema": {
"type": "string",
"max_length": 6,
"valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$",
"valid_chars_error": "Valid CPU limit formats are</br>\n- Plain Integer - eg. 1</br>\n- Float - eg. 0.5</br>\n- Milicpu - eg. 500m\n",
"default": "4000m",
"required": true
}
},
{
"variable": "memory",
"label": "Memory",
"description": "Memory limit for Piwigo.",
"schema": {
"type": "string",
"max_length": 12,
"valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$",
"valid_chars_error": "Valid Memory limit formats are</br>\n- Suffixed with E/P/T/G/M/K - eg. 1G</br>\n- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi</br>\n- Plain Integer in bytes - eg. 1024</br>\n- Exponent - eg. 134e6\n",
"default": "8Gi",
"required": true
}
}
]
}
}
]
}
}
]
},
"app_readme": "<h1>Piwigo</h1>\n<p><a href=\"https://piwigo.org/\">Piwigo</a> is a photo gallery software for the web that comes with powerful features to\npublish and manage your collection of pictures.</p>\n<blockquote>\n<p>When application is installed, a container will be launched with <strong>root</strong> privileges.\nThis is required in order to apply the correct permissions to the <code>mariadb</code> directories.\nAfterwards <code>mariadb</code> will start as a <strong>non</strong>-root user (<code>999</code>).&gt;\nOn each upgrade, a container will be launched with <strong>root</strong> privileges in order to\napply the correct permissions to the <code>mariadb</code> <strong>backups</strong> directory.\nContainer that performs the backup will run as a <strong>non</strong>-root user (<code>999</code>) afterwards.\nKeep in mind the permissions on the backup directory will be changed to <code>999:999</code> on <strong>every</strong> update.\nBut will only be changed once for the <code>mariadb</code> data directories.</p>\n</blockquote>",
"detailed_readme": "<h1>Piwigo</h1>\n<p><a href=\"https://piwigo.org/\">Piwigo</a> is a photo gallery software for the web that comes with powerful features to\npublish and manage your collection of pictures.</p>\n<blockquote>\n<p>When application is installed, a container will be launched with <strong>root</strong> privileges.\nThis is required in order to apply the correct permissions to the <code>mariadb</code> directories.\nAfterwards <code>mariadb</code> will start as a <strong>non</strong>-root user (<code>999</code>).&gt;\nOn each upgrade, a container will be launched with <strong>root</strong> privileges in order to\napply the correct permissions to the <code>mariadb</code> <strong>backups</strong> directory.\nContainer that performs the backup will run as a <strong>non</strong>-root user (<code>999</code>) afterwards.\nKeep in mind the permissions on the backup directory will be changed to <code>999:999</code> on <strong>every</strong> update.\nBut will only be changed once for the <code>mariadb</code> data directories.</p>\n</blockquote>",
"changelog": null
}
}