app_versions.json 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542
  1. {
  2. "1.0.12": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/charts/charts/charts/wg-easy/1.0.12",
  7. "last_update": "2023-11-14 10:11:57",
  8. "required_features": [
  9. "normalize/ixVolume",
  10. "validations/lockedHostPath",
  11. "definitions/nodeIP"
  12. ],
  13. "human_version": "7_1.0.12",
  14. "version": "1.0.12",
  15. "chart_metadata": {
  16. "name": "wg-easy",
  17. "description": "WG-Easy is the easiest way to install & manage WireGuard!",
  18. "annotations": {
  19. "title": "WG Easy"
  20. },
  21. "type": "application",
  22. "version": "1.0.12",
  23. "apiVersion": "v2",
  24. "appVersion": "7",
  25. "kubeVersion": ">=1.16.0-0",
  26. "maintainers": [
  27. {
  28. "name": "truenas",
  29. "url": "https://www.truenas.com/",
  30. "email": "dev@ixsystems.com"
  31. }
  32. ],
  33. "dependencies": [
  34. {
  35. "name": "common",
  36. "repository": "file://../../../common/2304.0.1",
  37. "version": "2304.0.1"
  38. }
  39. ],
  40. "home": "https://github.com/WeeJeWel/wg-easy",
  41. "icon": "https://media.sys.truenas.net/apps/wg-easy/icons/icon.png",
  42. "sources": [
  43. "https://github.com/WeeJeWel/wg-easy",
  44. "https://github.com/truenas/charts/tree/master/charts/wg-easy"
  45. ],
  46. "keywords": [
  47. "wireguard",
  48. "network",
  49. "vpn"
  50. ]
  51. },
  52. "app_metadata": {
  53. "runAsContext": [
  54. {
  55. "userName": "root",
  56. "groupName": "root",
  57. "gid": 0,
  58. "uid": 0,
  59. "description": "WG Easy runs as root user."
  60. }
  61. ],
  62. "capabilities": [
  63. {
  64. "name": "CHOWN",
  65. "description": "WG Easy is able to chown files."
  66. },
  67. {
  68. "name": "FOWNER",
  69. "description": "WG Easy is able to bypass permission checks for it's sub-processes."
  70. },
  71. {
  72. "name": "SYS_CHROOT",
  73. "description": "WG Easy is able to use chroot."
  74. },
  75. {
  76. "name": "MKNOD",
  77. "description": "WG Easy is able to create device nodes."
  78. },
  79. {
  80. "name": "DAC_OVERRIDE",
  81. "description": "WG Easy is able to bypass permission checks."
  82. },
  83. {
  84. "name": "FSETID",
  85. "description": "WG Easy is able to set file capabilities."
  86. },
  87. {
  88. "name": "KILL",
  89. "description": "WG Easy is able to kill processes."
  90. },
  91. {
  92. "name": "SETGID",
  93. "description": "WG Easy is able to set group ID for it's sub-processes."
  94. },
  95. {
  96. "name": "SETUID",
  97. "description": "WG Easy is able to set user ID for it's sub-processes."
  98. },
  99. {
  100. "name": "SETPCAP",
  101. "description": "WG Easy is able to set process capabilities."
  102. },
  103. {
  104. "name": "NET_BIND_SERVICE",
  105. "description": "WG Easy is able to bind to privileged ports."
  106. },
  107. {
  108. "name": "SETFCAP",
  109. "description": "WG Easy is able to set file capabilities."
  110. },
  111. {
  112. "name": "NET_RAW",
  113. "description": "WG Easy is able to use raw sockets."
  114. },
  115. {
  116. "name": "AUDIT_WRITE",
  117. "description": "WG Easy is able to write to audit log."
  118. },
  119. {
  120. "name": "SYS_MODULE",
  121. "description": "WG Easy is able to load kernel modules."
  122. },
  123. {
  124. "name": "NET_ADMIN",
  125. "description": "WG Easy is able to perform various network-related operations."
  126. }
  127. ],
  128. "hostMounts": []
  129. },
  130. "schema": {
  131. "groups": [
  132. {
  133. "name": "Configuration",
  134. "description": "WG-Easy application configuration"
  135. },
  136. {
  137. "name": "Storage",
  138. "description": "Configure storage for WG-Easy"
  139. },
  140. {
  141. "name": "Networking",
  142. "description": "Networking Configuration for WG-Easy"
  143. },
  144. {
  145. "name": "Advanced DNS Settings",
  146. "description": "Configure DNS settings"
  147. },
  148. {
  149. "name": "Resource Limits",
  150. "description": "Set CPU/memory limits for Kubernetes Pod"
  151. }
  152. ],
  153. "portals": {
  154. "web_portal": {
  155. "protocols": [
  156. "http"
  157. ],
  158. "host": [
  159. "$node_ip"
  160. ],
  161. "ports": [
  162. "$variable-webUIPort"
  163. ],
  164. "path": "/"
  165. }
  166. },
  167. "questions": [
  168. {
  169. "variable": "wgUDPPort",
  170. "label": "WireGuard UDP Node Port for WG-Easy",
  171. "group": "Networking",
  172. "schema": {
  173. "type": "int",
  174. "min": 9000,
  175. "max": 65535,
  176. "default": 20920,
  177. "required": true
  178. }
  179. },
  180. {
  181. "variable": "webUIPort",
  182. "label": "WebUI Node Port for WG-Easy",
  183. "group": "Networking",
  184. "schema": {
  185. "type": "int",
  186. "min": 9000,
  187. "max": 65535,
  188. "default": 20921,
  189. "required": true
  190. }
  191. },
  192. {
  193. "variable": "hostNetwork",
  194. "label": "Host Network",
  195. "group": "Networking",
  196. "schema": {
  197. "type": "boolean",
  198. "default": true
  199. }
  200. },
  201. {
  202. "variable": "dnsConfig",
  203. "label": "DNS Configuration",
  204. "group": "Advanced DNS Settings",
  205. "schema": {
  206. "type": "dict",
  207. "attrs": [
  208. {
  209. "variable": "options",
  210. "label": "DNS Options",
  211. "schema": {
  212. "type": "list",
  213. "items": [
  214. {
  215. "variable": "optionsEntry",
  216. "label": "Option Entry Configuration",
  217. "schema": {
  218. "type": "dict",
  219. "attrs": [
  220. {
  221. "variable": "name",
  222. "label": "Option Name",
  223. "schema": {
  224. "type": "string",
  225. "required": true
  226. }
  227. },
  228. {
  229. "variable": "value",
  230. "label": "Option Value",
  231. "schema": {
  232. "type": "string",
  233. "required": true
  234. }
  235. }
  236. ]
  237. }
  238. }
  239. ]
  240. }
  241. }
  242. ]
  243. }
  244. },
  245. {
  246. "variable": "wgeasy",
  247. "label": "WG-Easy Configuration",
  248. "group": "Configuration",
  249. "schema": {
  250. "type": "dict",
  251. "additional_attrs": true,
  252. "attrs": [
  253. {
  254. "variable": "host",
  255. "label": "Hostname or IP",
  256. "description": "The public hostname or IP of your VPN server.",
  257. "schema": {
  258. "type": "string",
  259. "required": true,
  260. "$ref": [
  261. "definitions/nodeIP"
  262. ],
  263. "default": "192.168.0.10"
  264. }
  265. },
  266. {
  267. "variable": "password",
  268. "label": "Password for WebUI",
  269. "description": "When set, requires a password when logging in to the Web UI.",
  270. "schema": {
  271. "type": "string",
  272. "private": true,
  273. "default": ""
  274. }
  275. },
  276. {
  277. "variable": "keep_alive",
  278. "label": "Persistent Keep Alive",
  279. "description": "Value in seconds to keep the \"connection\" open. If this value is 0, then connections won't be kept alive.",
  280. "schema": {
  281. "type": "int",
  282. "required": true,
  283. "default": 0
  284. }
  285. },
  286. {
  287. "variable": "client_mtu",
  288. "label": "Clients MTU",
  289. "description": "The MTU the clients will use.",
  290. "schema": {
  291. "type": "int",
  292. "required": true,
  293. "default": 1420
  294. }
  295. },
  296. {
  297. "variable": "client_address_range",
  298. "label": "Clients IP Address Range",
  299. "description": "Clients IP address range.",
  300. "schema": {
  301. "type": "string",
  302. "required": true,
  303. "default": "10.8.0.x"
  304. }
  305. },
  306. {
  307. "variable": "client_dns_server",
  308. "label": "Clients DNS Server",
  309. "description": "Clients DNS Server.",
  310. "schema": {
  311. "type": "string",
  312. "required": true,
  313. "default": "1.1.1.1"
  314. }
  315. },
  316. {
  317. "variable": "allowed_ips",
  318. "label": "Allowed IPs",
  319. "description": "Allowed IPs clients will use. If none provided, <0.0.0.0/0,::/0> will be used.",
  320. "schema": {
  321. "type": "list",
  322. "default": [],
  323. "items": [
  324. {
  325. "variable": "entry",
  326. "label": "Allowed IP Entry",
  327. "schema": {
  328. "type": "string",
  329. "required": true,
  330. "default": ""
  331. }
  332. }
  333. ]
  334. }
  335. }
  336. ]
  337. }
  338. },
  339. {
  340. "variable": "environmentVariables",
  341. "label": "WG-Easy Environment",
  342. "group": "Configuration",
  343. "schema": {
  344. "type": "list",
  345. "default": [],
  346. "items": [
  347. {
  348. "variable": "environmentVariable",
  349. "label": "Environment Variable",
  350. "schema": {
  351. "type": "dict",
  352. "attrs": [
  353. {
  354. "variable": "name",
  355. "label": "Name",
  356. "schema": {
  357. "type": "string",
  358. "required": true,
  359. "default": ""
  360. }
  361. },
  362. {
  363. "variable": "value",
  364. "label": "Value",
  365. "schema": {
  366. "type": "string",
  367. "default": "",
  368. "required": true
  369. }
  370. }
  371. ]
  372. }
  373. }
  374. ]
  375. }
  376. },
  377. {
  378. "variable": "appVolumeMounts",
  379. "label": "WG-Easy Storage",
  380. "group": "Storage",
  381. "schema": {
  382. "type": "dict",
  383. "attrs": [
  384. {
  385. "variable": "config",
  386. "label": "Configuration Volume",
  387. "schema": {
  388. "type": "dict",
  389. "attrs": [
  390. {
  391. "variable": "datasetName",
  392. "label": "Configuration Volume Dataset Name",
  393. "schema": {
  394. "type": "string",
  395. "hidden": true,
  396. "$ref": [
  397. "normalize/ixVolume"
  398. ],
  399. "show_if": [
  400. [
  401. "hostPathEnabled",
  402. "=",
  403. false
  404. ]
  405. ],
  406. "default": "ix-wg-easy_config",
  407. "editable": false
  408. }
  409. },
  410. {
  411. "variable": "mountPath",
  412. "label": "Configuration Mount Path",
  413. "description": "Path where the volume will be mounted inside the pod",
  414. "schema": {
  415. "type": "path",
  416. "hidden": true,
  417. "editable": true,
  418. "default": "/etc/wireguard"
  419. }
  420. },
  421. {
  422. "variable": "hostPathEnabled",
  423. "label": "Enable Custom Host Path for WG-Easy Configuration Volume",
  424. "schema": {
  425. "type": "boolean",
  426. "default": false,
  427. "show_subquestions_if": true,
  428. "subquestions": [
  429. {
  430. "variable": "hostPath",
  431. "label": "Host Path for WG-Easy Configuration Volume",
  432. "schema": {
  433. "type": "hostpath",
  434. "required": true,
  435. "immutable": true,
  436. "$ref": [
  437. "validations/lockedHostPath"
  438. ]
  439. }
  440. }
  441. ]
  442. }
  443. }
  444. ]
  445. }
  446. }
  447. ]
  448. }
  449. },
  450. {
  451. "variable": "extraAppVolumeMounts",
  452. "label": "Extra Host Path Volumes",
  453. "group": "Storage",
  454. "schema": {
  455. "type": "list",
  456. "items": [
  457. {
  458. "variable": "extraAppVolume",
  459. "label": "Host Path Volume",
  460. "description": "Add an extra host path volume for WG-Easy application",
  461. "schema": {
  462. "type": "dict",
  463. "attrs": [
  464. {
  465. "variable": "mountPath",
  466. "label": "Mount Path in Pod",
  467. "description": "Path where the volume will be mounted inside the pod",
  468. "schema": {
  469. "type": "path",
  470. "required": true
  471. }
  472. },
  473. {
  474. "variable": "hostPath",
  475. "label": "Host Path",
  476. "description": "Host path",
  477. "schema": {
  478. "type": "hostpath",
  479. "required": true,
  480. "$ref": [
  481. "validations/lockedHostPath"
  482. ]
  483. }
  484. }
  485. ]
  486. }
  487. }
  488. ]
  489. }
  490. },
  491. {
  492. "variable": "enableResourceLimits",
  493. "label": "Enable Pod resource limits",
  494. "group": "Resource Limits",
  495. "schema": {
  496. "type": "boolean",
  497. "default": false
  498. }
  499. },
  500. {
  501. "variable": "cpuLimit",
  502. "label": "CPU Limit resource limits",
  503. "description": "CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100.",
  504. "group": "Resource Limits",
  505. "schema": {
  506. "type": "string",
  507. "show_if": [
  508. [
  509. "enableResourceLimits",
  510. "=",
  511. true
  512. ]
  513. ],
  514. "valid_chars": "^\\d+(?:\\.\\d+(?!.*m$)|m?$)",
  515. "default": "4000m"
  516. }
  517. },
  518. {
  519. "variable": "memLimit",
  520. "label": "Memory Limit",
  521. "group": "Resource Limits",
  522. "description": "Memory limits is specified by number of bytes. Followed by quantity suffix like E,P,T,G,M,k and Ei,Pi,Ti,Mi,Gi,Ki can also be used. e.g 129e6, 129M, 128974848000m, 123Mi",
  523. "schema": {
  524. "type": "string",
  525. "show_if": [
  526. [
  527. "enableResourceLimits",
  528. "=",
  529. true
  530. ]
  531. ],
  532. "valid_chars": "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$",
  533. "default": "8Gi"
  534. }
  535. }
  536. ]
  537. },
  538. "app_readme": "<h1>WG-Easy</h1>\n<p><a href=\"https://github.com/WeeJeWel/wg-easy\">WG-Easy (WireGuard Easy)</a> is the easiest way to install &amp; manage WireGuard!</p>",
  539. "detailed_readme": "<h1>WG-Easy</h1>\n<p><a href=\"https://github.com/WeeJeWel/wg-easy\">WG-Easy (WireGuard Easy)</a> is the easiest way to install &amp; manage WireGuard!</p>",
  540. "changelog": null
  541. }
  542. }