app_versions.json 55 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947
  1. {
  2. "1.0.8": {
  3. "healthy": true,
  4. "supported": true,
  5. "healthy_error": null,
  6. "location": "/__w/apps/apps/trains/community/speedtest-tracker/1.0.8",
  7. "last_update": "2025-09-02 11:33:24",
  8. "required_features": [],
  9. "human_version": "1.6.6_1.0.8",
  10. "version": "1.0.8",
  11. "app_metadata": {
  12. "app_version": "1.6.6",
  13. "capabilities": [
  14. {
  15. "description": "Speedtest Tracker is able to change file ownership arbitrarily",
  16. "name": "CHOWN"
  17. },
  18. {
  19. "description": "Speedtest Tracker is able to bypass file permission checks",
  20. "name": "DAC_OVERRIDE"
  21. },
  22. {
  23. "description": "Speedtest Tracker is able to bypass permission checks for file operations",
  24. "name": "FOWNER"
  25. },
  26. {
  27. "description": "Speedtest Tracker is able to change group ID of processes",
  28. "name": "SETGID"
  29. },
  30. {
  31. "description": "Speedtest Tracker is able to change user ID of processes",
  32. "name": "SETUID"
  33. }
  34. ],
  35. "categories": [
  36. "productivity"
  37. ],
  38. "changelog_url": "https://github.com/alexjustesen/speedtest-tracker/releases",
  39. "date_added": "2025-07-01",
  40. "description": "Speedtest Tracker is a self-hosted application that monitors the performance and uptime of your internet connection.",
  41. "home": "https://speedtest-tracker.dev",
  42. "host_mounts": [],
  43. "icon": "https://media.sys.truenas.net/apps/speedtest-tracker/icons/icon.png",
  44. "keywords": [
  45. "speedtest",
  46. "tracker"
  47. ],
  48. "lib_version": "2.1.49",
  49. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  50. "maintainers": [
  51. {
  52. "email": "dev@ixsystems.com",
  53. "name": "truenas",
  54. "url": "https://www.truenas.com/"
  55. }
  56. ],
  57. "name": "speedtest-tracker",
  58. "run_as_context": [
  59. {
  60. "description": "Speedtest Tracker runs as root user.",
  61. "gid": 0,
  62. "group_name": "root",
  63. "uid": 0,
  64. "user_name": "root"
  65. }
  66. ],
  67. "screenshots": [],
  68. "sources": [
  69. "https://github.com/linuxserver/docker-speedtest-tracker",
  70. "https://github.com/alexjustesen/speedtest-tracker"
  71. ],
  72. "title": "Speedtest Tracker",
  73. "train": "community",
  74. "version": "1.0.8"
  75. },
  76. "schema": {
  77. "groups": [
  78. {
  79. "name": "Speedtest Tracker Configuration",
  80. "description": "Configure Speedtest Tracker"
  81. },
  82. {
  83. "name": "User and Group Configuration",
  84. "description": "Configure User and Group for Speedtest Tracker"
  85. },
  86. {
  87. "name": "Network Configuration",
  88. "description": "Configure Network for Speedtest Tracker"
  89. },
  90. {
  91. "name": "Storage Configuration",
  92. "description": "Configure Storage for Speedtest Tracker"
  93. },
  94. {
  95. "name": "Labels Configuration",
  96. "description": "Configure Labels for Speedtest Tracker"
  97. },
  98. {
  99. "name": "Resources Configuration",
  100. "description": "Configure Resources for Speedtest Tracker"
  101. }
  102. ],
  103. "questions": [
  104. {
  105. "variable": "TZ",
  106. "group": "Speedtest Tracker Configuration",
  107. "label": "Timezone",
  108. "schema": {
  109. "type": "string",
  110. "default": "Etc/UTC",
  111. "required": true,
  112. "$ref": [
  113. "definitions/timezone"
  114. ]
  115. }
  116. },
  117. {
  118. "variable": "speedtest",
  119. "label": "",
  120. "group": "Speedtest Tracker Configuration",
  121. "schema": {
  122. "type": "dict",
  123. "attrs": [
  124. {
  125. "variable": "app_key",
  126. "label": "App Key",
  127. "description": "Must be exactly 32 characters long.",
  128. "schema": {
  129. "type": "string",
  130. "min_length": 32,
  131. "max_length": 32,
  132. "default": "",
  133. "required": true,
  134. "private": true
  135. }
  136. },
  137. {
  138. "variable": "additional_envs",
  139. "label": "Additional Environment Variables",
  140. "schema": {
  141. "type": "list",
  142. "default": [],
  143. "items": [
  144. {
  145. "variable": "env",
  146. "label": "Environment Variable",
  147. "schema": {
  148. "type": "dict",
  149. "attrs": [
  150. {
  151. "variable": "name",
  152. "label": "Name",
  153. "schema": {
  154. "type": "string",
  155. "required": true
  156. }
  157. },
  158. {
  159. "variable": "value",
  160. "label": "Value",
  161. "schema": {
  162. "type": "string"
  163. }
  164. }
  165. ]
  166. }
  167. }
  168. ]
  169. }
  170. }
  171. ]
  172. }
  173. },
  174. {
  175. "variable": "run_as",
  176. "label": "",
  177. "group": "User and Group Configuration",
  178. "schema": {
  179. "type": "dict",
  180. "attrs": [
  181. {
  182. "variable": "user",
  183. "label": "User ID",
  184. "description": "The user id that Speedtest Tracker files will be owned by.",
  185. "schema": {
  186. "type": "int",
  187. "min": 568,
  188. "default": 568,
  189. "required": true
  190. }
  191. },
  192. {
  193. "variable": "group",
  194. "label": "Group ID",
  195. "description": "The group id that Speedtest Tracker files will be owned by.",
  196. "schema": {
  197. "type": "int",
  198. "min": 568,
  199. "default": 568,
  200. "required": true
  201. }
  202. }
  203. ]
  204. }
  205. },
  206. {
  207. "variable": "network",
  208. "label": "",
  209. "group": "Network Configuration",
  210. "schema": {
  211. "type": "dict",
  212. "attrs": [
  213. {
  214. "variable": "http_port",
  215. "label": "HTTP Port",
  216. "schema": {
  217. "type": "dict",
  218. "attrs": [
  219. {
  220. "variable": "bind_mode",
  221. "label": "Port Bind Mode",
  222. "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- None: The port will not be exposed or published.</br>\nNote: If the Dockerfile defines an EXPOSE directive,\nthe port will still be exposed for inter-container communication regardless of this setting.\n",
  223. "schema": {
  224. "type": "string",
  225. "default": "published",
  226. "enum": [
  227. {
  228. "value": "published",
  229. "description": "Publish port on the host for external access"
  230. },
  231. {
  232. "value": "exposed",
  233. "description": "Expose port for inter-container communication"
  234. },
  235. {
  236. "value": "",
  237. "description": "None"
  238. }
  239. ]
  240. }
  241. },
  242. {
  243. "variable": "port_number",
  244. "label": "Port Number",
  245. "schema": {
  246. "type": "int",
  247. "default": 30220,
  248. "show_if": [
  249. [
  250. "bind_mode",
  251. "=",
  252. "published"
  253. ]
  254. ],
  255. "min": 1,
  256. "max": 65535,
  257. "required": true
  258. }
  259. },
  260. {
  261. "variable": "host_ips",
  262. "label": "Host IPs",
  263. "description": "IPs on the host to bind this port",
  264. "schema": {
  265. "type": "list",
  266. "show_if": [
  267. [
  268. "bind_mode",
  269. "=",
  270. "published"
  271. ]
  272. ],
  273. "default": [],
  274. "items": [
  275. {
  276. "variable": "host_ip",
  277. "label": "Host IP",
  278. "schema": {
  279. "type": "string",
  280. "required": true,
  281. "$ref": [
  282. "definitions/node_bind_ip"
  283. ]
  284. }
  285. }
  286. ]
  287. }
  288. }
  289. ]
  290. }
  291. },
  292. {
  293. "variable": "https_port",
  294. "label": "HTTPS Port",
  295. "schema": {
  296. "type": "dict",
  297. "attrs": [
  298. {
  299. "variable": "bind_mode",
  300. "label": "Port Bind Mode",
  301. "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- None: The port will not be exposed or published.</br>\nNote: If the Dockerfile defines an EXPOSE directive,\nthe port will still be exposed for inter-container communication regardless of this setting.\n",
  302. "schema": {
  303. "type": "string",
  304. "default": "published",
  305. "enum": [
  306. {
  307. "value": "published",
  308. "description": "Publish port on the host for external access"
  309. },
  310. {
  311. "value": "exposed",
  312. "description": "Expose port for inter-container communication"
  313. },
  314. {
  315. "value": "",
  316. "description": "None"
  317. }
  318. ]
  319. }
  320. },
  321. {
  322. "variable": "port_number",
  323. "label": "Port Number",
  324. "schema": {
  325. "type": "int",
  326. "default": 30221,
  327. "show_if": [
  328. [
  329. "bind_mode",
  330. "=",
  331. "published"
  332. ]
  333. ],
  334. "min": 1,
  335. "max": 65535,
  336. "required": true
  337. }
  338. },
  339. {
  340. "variable": "host_ips",
  341. "label": "Host IPs",
  342. "description": "IPs on the host to bind this port",
  343. "schema": {
  344. "type": "list",
  345. "show_if": [
  346. [
  347. "bind_mode",
  348. "=",
  349. "published"
  350. ]
  351. ],
  352. "default": [],
  353. "items": [
  354. {
  355. "variable": "host_ip",
  356. "label": "Host IP",
  357. "schema": {
  358. "type": "string",
  359. "required": true,
  360. "$ref": [
  361. "definitions/node_bind_ip"
  362. ]
  363. }
  364. }
  365. ]
  366. }
  367. }
  368. ]
  369. }
  370. },
  371. {
  372. "variable": "certificate_id",
  373. "label": "Certificate",
  374. "description": "The certificate to use.",
  375. "schema": {
  376. "type": "int",
  377. "null": true,
  378. "$ref": [
  379. "definitions/certificate"
  380. ]
  381. }
  382. }
  383. ]
  384. }
  385. },
  386. {
  387. "variable": "storage",
  388. "label": "",
  389. "group": "Storage Configuration",
  390. "schema": {
  391. "type": "dict",
  392. "attrs": [
  393. {
  394. "variable": "config",
  395. "label": "Config Storage",
  396. "schema": {
  397. "type": "dict",
  398. "attrs": [
  399. {
  400. "variable": "type",
  401. "label": "Type",
  402. "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
  403. "schema": {
  404. "type": "string",
  405. "required": true,
  406. "default": "ix_volume",
  407. "enum": [
  408. {
  409. "value": "host_path",
  410. "description": "Host Path (Path that already exists on the system)"
  411. },
  412. {
  413. "value": "ix_volume",
  414. "description": "ixVolume (Dataset created automatically by the system)"
  415. }
  416. ]
  417. }
  418. },
  419. {
  420. "variable": "ix_volume_config",
  421. "label": "ixVolume Configuration",
  422. "description": "The configuration for the ixVolume dataset.",
  423. "schema": {
  424. "type": "dict",
  425. "show_if": [
  426. [
  427. "type",
  428. "=",
  429. "ix_volume"
  430. ]
  431. ],
  432. "$ref": [
  433. "normalize/ix_volume"
  434. ],
  435. "attrs": [
  436. {
  437. "variable": "acl_enable",
  438. "label": "Enable ACL",
  439. "description": "Enable ACL for the storage.",
  440. "schema": {
  441. "type": "boolean",
  442. "default": false
  443. }
  444. },
  445. {
  446. "variable": "dataset_name",
  447. "label": "Dataset Name",
  448. "description": "The name of the dataset to use for storage.",
  449. "schema": {
  450. "type": "string",
  451. "required": true,
  452. "hidden": true,
  453. "default": "config"
  454. }
  455. },
  456. {
  457. "variable": "acl_entries",
  458. "label": "ACL Configuration",
  459. "schema": {
  460. "type": "dict",
  461. "show_if": [
  462. [
  463. "acl_enable",
  464. "=",
  465. true
  466. ]
  467. ],
  468. "attrs": []
  469. }
  470. }
  471. ]
  472. }
  473. },
  474. {
  475. "variable": "host_path_config",
  476. "label": "Host Path Configuration",
  477. "schema": {
  478. "type": "dict",
  479. "show_if": [
  480. [
  481. "type",
  482. "=",
  483. "host_path"
  484. ]
  485. ],
  486. "attrs": [
  487. {
  488. "variable": "acl_enable",
  489. "label": "Enable ACL",
  490. "description": "Enable ACL for the storage.",
  491. "schema": {
  492. "type": "boolean",
  493. "default": false
  494. }
  495. },
  496. {
  497. "variable": "acl",
  498. "label": "ACL Configuration",
  499. "schema": {
  500. "type": "dict",
  501. "show_if": [
  502. [
  503. "acl_enable",
  504. "=",
  505. true
  506. ]
  507. ],
  508. "attrs": [],
  509. "$ref": [
  510. "normalize/acl"
  511. ]
  512. }
  513. },
  514. {
  515. "variable": "path",
  516. "label": "Host Path",
  517. "description": "The host path to use for storage.",
  518. "schema": {
  519. "type": "hostpath",
  520. "show_if": [
  521. [
  522. "acl_enable",
  523. "=",
  524. false
  525. ]
  526. ],
  527. "required": true
  528. }
  529. }
  530. ]
  531. }
  532. }
  533. ]
  534. }
  535. },
  536. {
  537. "variable": "additional_storage",
  538. "label": "Additional Storage",
  539. "schema": {
  540. "type": "list",
  541. "default": [],
  542. "items": [
  543. {
  544. "variable": "storageEntry",
  545. "label": "Storage Entry",
  546. "schema": {
  547. "type": "dict",
  548. "attrs": [
  549. {
  550. "variable": "type",
  551. "label": "Type",
  552. "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",
  553. "schema": {
  554. "type": "string",
  555. "required": true,
  556. "default": "ix_volume",
  557. "enum": [
  558. {
  559. "value": "host_path",
  560. "description": "Host Path (Path that already exists on the system)"
  561. },
  562. {
  563. "value": "ix_volume",
  564. "description": "ixVolume (Dataset created automatically by the system)"
  565. },
  566. {
  567. "value": "cifs",
  568. "description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
  569. }
  570. ]
  571. }
  572. },
  573. {
  574. "variable": "read_only",
  575. "label": "Read Only",
  576. "description": "Mount the volume as read only.",
  577. "schema": {
  578. "type": "boolean",
  579. "default": false
  580. }
  581. },
  582. {
  583. "variable": "mount_path",
  584. "label": "Mount Path",
  585. "description": "The path inside the container to mount the storage.",
  586. "schema": {
  587. "type": "path",
  588. "required": true
  589. }
  590. },
  591. {
  592. "variable": "host_path_config",
  593. "label": "Host Path Configuration",
  594. "schema": {
  595. "type": "dict",
  596. "show_if": [
  597. [
  598. "type",
  599. "=",
  600. "host_path"
  601. ]
  602. ],
  603. "attrs": [
  604. {
  605. "variable": "acl_enable",
  606. "label": "Enable ACL",
  607. "description": "Enable ACL for the storage.",
  608. "schema": {
  609. "type": "boolean",
  610. "default": false
  611. }
  612. },
  613. {
  614. "variable": "acl",
  615. "label": "ACL Configuration",
  616. "schema": {
  617. "type": "dict",
  618. "show_if": [
  619. [
  620. "acl_enable",
  621. "=",
  622. true
  623. ]
  624. ],
  625. "attrs": [],
  626. "$ref": [
  627. "normalize/acl"
  628. ]
  629. }
  630. },
  631. {
  632. "variable": "path",
  633. "label": "Host Path",
  634. "description": "The host path to use for storage.",
  635. "schema": {
  636. "type": "hostpath",
  637. "show_if": [
  638. [
  639. "acl_enable",
  640. "=",
  641. false
  642. ]
  643. ],
  644. "required": true
  645. }
  646. }
  647. ]
  648. }
  649. },
  650. {
  651. "variable": "ix_volume_config",
  652. "label": "ixVolume Configuration",
  653. "description": "The configuration for the ixVolume dataset.",
  654. "schema": {
  655. "type": "dict",
  656. "show_if": [
  657. [
  658. "type",
  659. "=",
  660. "ix_volume"
  661. ]
  662. ],
  663. "$ref": [
  664. "normalize/ix_volume"
  665. ],
  666. "attrs": [
  667. {
  668. "variable": "acl_enable",
  669. "label": "Enable ACL",
  670. "description": "Enable ACL for the storage.",
  671. "schema": {
  672. "type": "boolean",
  673. "default": false
  674. }
  675. },
  676. {
  677. "variable": "dataset_name",
  678. "label": "Dataset Name",
  679. "description": "The name of the dataset to use for storage.",
  680. "schema": {
  681. "type": "string",
  682. "required": true,
  683. "default": "storage_entry"
  684. }
  685. },
  686. {
  687. "variable": "acl_entries",
  688. "label": "ACL Configuration",
  689. "schema": {
  690. "type": "dict",
  691. "show_if": [
  692. [
  693. "acl_enable",
  694. "=",
  695. true
  696. ]
  697. ],
  698. "attrs": [],
  699. "$ref": [
  700. "normalize/acl"
  701. ]
  702. }
  703. }
  704. ]
  705. }
  706. },
  707. {
  708. "variable": "cifs_config",
  709. "label": "SMB Configuration",
  710. "description": "The configuration for the SMB dataset.",
  711. "schema": {
  712. "type": "dict",
  713. "show_if": [
  714. [
  715. "type",
  716. "=",
  717. "cifs"
  718. ]
  719. ],
  720. "attrs": [
  721. {
  722. "variable": "server",
  723. "label": "Server",
  724. "description": "The server to mount the SMB share.",
  725. "schema": {
  726. "type": "string",
  727. "required": true
  728. }
  729. },
  730. {
  731. "variable": "path",
  732. "label": "Path",
  733. "description": "The path to mount the SMB share.",
  734. "schema": {
  735. "type": "string",
  736. "required": true
  737. }
  738. },
  739. {
  740. "variable": "username",
  741. "label": "Username",
  742. "description": "The username to use for the SMB share.",
  743. "schema": {
  744. "type": "string",
  745. "required": true
  746. }
  747. },
  748. {
  749. "variable": "password",
  750. "label": "Password",
  751. "description": "The password to use for the SMB share.",
  752. "schema": {
  753. "type": "string",
  754. "required": true,
  755. "private": true
  756. }
  757. },
  758. {
  759. "variable": "domain",
  760. "label": "Domain",
  761. "description": "The domain to use for the SMB share.",
  762. "schema": {
  763. "type": "string"
  764. }
  765. }
  766. ]
  767. }
  768. }
  769. ]
  770. }
  771. }
  772. ]
  773. }
  774. }
  775. ]
  776. }
  777. },
  778. {
  779. "variable": "labels",
  780. "label": "",
  781. "group": "Labels Configuration",
  782. "schema": {
  783. "type": "list",
  784. "default": [],
  785. "items": [
  786. {
  787. "variable": "label",
  788. "label": "Label",
  789. "schema": {
  790. "type": "dict",
  791. "attrs": [
  792. {
  793. "variable": "key",
  794. "label": "Key",
  795. "schema": {
  796. "type": "string",
  797. "required": true
  798. }
  799. },
  800. {
  801. "variable": "value",
  802. "label": "Value",
  803. "schema": {
  804. "type": "string",
  805. "required": true
  806. }
  807. },
  808. {
  809. "variable": "containers",
  810. "label": "Containers",
  811. "description": "Containers where the label should be applied",
  812. "schema": {
  813. "type": "list",
  814. "items": [
  815. {
  816. "variable": "container",
  817. "label": "Container",
  818. "schema": {
  819. "type": "string",
  820. "required": true,
  821. "enum": [
  822. {
  823. "value": "speedtest-tracker",
  824. "description": "speedtest-tracker"
  825. }
  826. ]
  827. }
  828. }
  829. ]
  830. }
  831. }
  832. ]
  833. }
  834. }
  835. ]
  836. }
  837. },
  838. {
  839. "variable": "resources",
  840. "label": "",
  841. "group": "Resources Configuration",
  842. "schema": {
  843. "type": "dict",
  844. "attrs": [
  845. {
  846. "variable": "limits",
  847. "label": "Limits",
  848. "schema": {
  849. "type": "dict",
  850. "attrs": [
  851. {
  852. "variable": "cpus",
  853. "label": "CPUs",
  854. "description": "CPUs limit for Speedtest Tracker.",
  855. "schema": {
  856. "type": "int",
  857. "default": 2,
  858. "required": true
  859. }
  860. },
  861. {
  862. "variable": "memory",
  863. "label": "Memory (in MB)",
  864. "description": "Memory limit for Speedtest Tracker.",
  865. "schema": {
  866. "type": "int",
  867. "default": 4096,
  868. "required": true
  869. }
  870. }
  871. ]
  872. }
  873. }
  874. ]
  875. }
  876. }
  877. ]
  878. },
  879. "readme": "<h1>Speedtest Tracker</h1> <p><a href=\"https://speedtest-tracker.dev\">Speedtest Tracker</a> is a self-hosted application that monitors the performance and uptime of your internet connection.</p>",
  880. "changelog": null,
  881. "chart_metadata": {
  882. "app_version": "1.6.6",
  883. "capabilities": [
  884. {
  885. "description": "Speedtest Tracker is able to change file ownership arbitrarily",
  886. "name": "CHOWN"
  887. },
  888. {
  889. "description": "Speedtest Tracker is able to bypass file permission checks",
  890. "name": "DAC_OVERRIDE"
  891. },
  892. {
  893. "description": "Speedtest Tracker is able to bypass permission checks for file operations",
  894. "name": "FOWNER"
  895. },
  896. {
  897. "description": "Speedtest Tracker is able to change group ID of processes",
  898. "name": "SETGID"
  899. },
  900. {
  901. "description": "Speedtest Tracker is able to change user ID of processes",
  902. "name": "SETUID"
  903. }
  904. ],
  905. "categories": [
  906. "productivity"
  907. ],
  908. "changelog_url": "https://github.com/alexjustesen/speedtest-tracker/releases",
  909. "date_added": "2025-07-01",
  910. "description": "Speedtest Tracker is a self-hosted application that monitors the performance and uptime of your internet connection.",
  911. "home": "https://speedtest-tracker.dev",
  912. "host_mounts": [],
  913. "icon": "https://media.sys.truenas.net/apps/speedtest-tracker/icons/icon.png",
  914. "keywords": [
  915. "speedtest",
  916. "tracker"
  917. ],
  918. "lib_version": "2.1.49",
  919. "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
  920. "maintainers": [
  921. {
  922. "email": "dev@ixsystems.com",
  923. "name": "truenas",
  924. "url": "https://www.truenas.com/"
  925. }
  926. ],
  927. "name": "speedtest-tracker",
  928. "run_as_context": [
  929. {
  930. "description": "Speedtest Tracker runs as root user.",
  931. "gid": 0,
  932. "group_name": "root",
  933. "uid": 0,
  934. "user_name": "root"
  935. }
  936. ],
  937. "screenshots": [],
  938. "sources": [
  939. "https://github.com/linuxserver/docker-speedtest-tracker",
  940. "https://github.com/alexjustesen/speedtest-tracker"
  941. ],
  942. "title": "Speedtest Tracker",
  943. "train": "community",
  944. "version": "1.0.8"
  945. }
  946. }
  947. }