diff --git a/apps/__tests__/apps.test.ts b/apps/__tests__/apps.test.ts index 9e96e89d..e3141baa 100644 --- a/apps/__tests__/apps.test.ts +++ b/apps/__tests__/apps.test.ts @@ -10,8 +10,8 @@ interface AppConfig { }; name: string; description: string; - version: string; - image: string; + version?: string; + tipi_version: number; short_desc: string; author: string; source: string; @@ -24,7 +24,7 @@ const getAppConfigs = (): AppConfig[] => { const appsDir = fs.readdirSync("./apps"); - appsDir.forEach((app) => { + appsDir.forEach((app: string) => { const path = `./apps/${app}/config.json`; if (fs.existsSync(path)) { @@ -122,6 +122,15 @@ describe("App configs", () => { expect(new Set(ids).size).toBe(appConfigs.length); }); + it("Each app should have a version", () => { + const apps = getAppConfigs(); + + apps.forEach((app) => { + expect(app.tipi_version).toBeDefined(); + expect(app.tipi_version).toBeGreaterThan(0); + }); + }); + it("Each app should have a docker-compose file beside it", () => { const apps = getAppConfigs(); @@ -130,6 +139,22 @@ describe("App configs", () => { }); }); + it("Each app should have a metadata folder beside it", () => { + const apps = getAppConfigs(); + + apps.forEach((app) => { + expect(fs.existsSync(`./apps/${app.id}/metadata`)).toBe(true); + }); + }); + + it("Each app should have a file named logo.jpg in the metadata folder", () => { + const apps = getAppConfigs(); + + apps.forEach((app) => { + expect(fs.existsSync(`./apps/${app.id}/metadata/logo.jpg`)).toBe(true); + }); + }); + it("Each app should have a container name equals to its id", () => { const apps = getAppConfigs(); diff --git a/apps/adguard/config.json b/apps/adguard/config.json index 91ef7290..f87bc809 100644 --- a/apps/adguard/config.json +++ b/apps/adguard/config.json @@ -1,6 +1,8 @@ { "name": "Adguard", "available": true, + "tipi_version": 1, + "version": "0.107.7", "port": 8104, "id": "adguard", "categories": ["network", "security"], @@ -8,7 +10,6 @@ "short_desc": "World's most advanced adblocker!", "author": "AdguardTeam", "source": "https://github.com/AdguardTeam", - "image": "/logos/apps/adguard.jpg", "requirements": { "ports": [53] }, diff --git a/apps/booksonic/config.json b/apps/booksonic/config.json index f9689f30..85b1ad1c 100644 --- a/apps/booksonic/config.json +++ b/apps/booksonic/config.json @@ -1,13 +1,13 @@ { - "name": "Booksonic", - "available": true, - "port": 8040, - "id": "booksonic", - "categories": ["books", "media"], - "description": "", - "short_desc": "The selfhosted audiobook server", - "author": "https://github.com/popeen", - "source": "https://github.com/popeen/Booksonic-Air", - "image": "/logos/apps/booksonic.jpg", - "form_fields": [] - } \ No newline at end of file + "name": "Booksonic", + "available": true, + "port": 8040, + "tipi_version": 1, + "id": "booksonic", + "categories": ["books", "media"], + "description": "", + "short_desc": "The selfhosted audiobook server", + "author": "https://github.com/popeen", + "source": "https://github.com/popeen/Booksonic-Air", + "form_fields": [] +} diff --git a/apps/calibre-web/config.json b/apps/calibre-web/config.json index 2680eca4..cc7be615 100644 --- a/apps/calibre-web/config.json +++ b/apps/calibre-web/config.json @@ -2,12 +2,13 @@ "name": "Calibre-Web - EBook Reader", "available": true, "port": 8100, + "tipi_version": 1, + "version": "0.6.18", "id": "calibre-web", "categories": ["books"], "description": "On the initial setup screen, enter /books as your calibre library location. \n Default admin login: Username: admin Password: admin123", "short_desc": "Calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database.", "author": "https://github.com/janeczku/", "source": "https://github.com/janeczku/calibre-web", - "image": "/logos/apps/calibre-web.jpg", "form_fields": [] } diff --git a/apps/code-server/config.json b/apps/code-server/config.json index 38b0b83e..5b8b57cb 100644 --- a/apps/code-server/config.json +++ b/apps/code-server/config.json @@ -3,12 +3,13 @@ "available": true, "port": 8101, "id": "code-server", + "tipi_version": 1, + "version": "4.5.1", "categories": ["development"], "description": "", "short_desc": "Code-server is VS Code running on a remote server, accessible through the browser.", "author": "https://github.com/coder", "source": "https://github.com/linuxserver/docker-code-server", - "image": "https://avatars.githubusercontent.com/u/95932066", "form_fields": [ { "type": "password", diff --git a/apps/filebrowser/config.json b/apps/filebrowser/config.json index 3f08306d..8e0f2af5 100644 --- a/apps/filebrowser/config.json +++ b/apps/filebrowser/config.json @@ -3,12 +3,13 @@ "available": true, "port": 8096, "id": "filebrowser", + "tipi_version": 1, + "version": "s6", "categories": ["utilities"], "description": "Reliable and Performant File Management Desktop Sync and File Sharing\n Default credentials: admin / admin", "short_desc": "Access your homeserver files from your browser", "author": "filebrowser.org", "website": "https://filebrowser.org/", "source": "https://github.com/filebrowser/filebrowser", - "image": "/logos/apps/filebrowser.jpg", "form_fields": [] } diff --git a/apps/firefly-iii/config.json b/apps/firefly-iii/config.json index 8f0d8539..8b416a28 100644 --- a/apps/firefly-iii/config.json +++ b/apps/firefly-iii/config.json @@ -2,6 +2,7 @@ "name": "Firefly III", "available": true, "port": 8115, + "tipi_version": 1, "id": "firefly-iii", "categories": ["finance"], "description": "", @@ -9,7 +10,6 @@ "author": "JC5", "website": "https://www.firefly-iii.org/", "source": "https://github.com/firefly-iii/firefly-iii", - "image": "/logos/apps/firefly-iii.jpg", "form_fields": [ { "type": "email", diff --git a/apps/freshrss/config.json b/apps/freshrss/config.json index adfe1643..94938ecc 100644 --- a/apps/freshrss/config.json +++ b/apps/freshrss/config.json @@ -3,11 +3,12 @@ "available": true, "port": 8086, "id": "freshrss", + "tipi_version": 1, + "version": "1.19.2", "categories": ["utilities"], "description": "FreshRSS is a self-hosted RSS feed aggregator like Leed or Kriss Feed.\nIt is lightweight, easy to work with, powerful, and customizable.\n\nIt is a multi-user application with an anonymous reading mode. It supports custom tags. There is an API for (mobile) clients, and a Command-Line Interface.\n\nThanks to the WebSub standard (formerly PubSubHubbub), FreshRSS is able to receive instant push notifications from compatible sources, such as Mastodon, Friendica, WordPress, Blogger, FeedBurner, etc.\n\nFreshRSS natively supports basic Web scraping, based on XPath, for Web sites not providing any RSS / Atom feed.\n\nFinally, it supports extensions for further tuning.", "short_desc": "A free, self-hostable aggregator… ", "author": "https://freshrss.org/", "source": "https://github.com/FreshRSS/FreshRSS", - "image": "/logos/apps/freshrss.jpg", "form_fields": [] } diff --git a/apps/ghost/config.json b/apps/ghost/config.json index 1027cf3f..0c852a1a 100644 --- a/apps/ghost/config.json +++ b/apps/ghost/config.json @@ -3,12 +3,13 @@ "port": 8117, "available": true, "id": "ghost", + "tipi_version": 1, + "version": "5.7.0", "categories": ["social", "media"], "description": "Ghost is a powerful app for new-media creators to publish, share, and grow a business around their content. It comes with modern tools to build a website, publish content, send newsletters & offer paid subscriptions to members.", "short_desc": "Ghost - Turn your audience into a business.", "author": "TryGhost", "source": "https://github.com/TryGhost/Ghost", - "image": "/logos/apps/ghost.jpg", "form_fields": [ { "type": "random", diff --git a/apps/ghost/docker-compose.yml b/apps/ghost/docker-compose.yml index 901bd3ca..46ddd904 100644 --- a/apps/ghost/docker-compose.yml +++ b/apps/ghost/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.9' services: ghost: - image: ghost:alpine + image: ghost:5.7.0 container_name: ghost depends_on: - ghostdb diff --git a/apps/gitea/config.json b/apps/gitea/config.json index 5a71cb07..716a2324 100644 --- a/apps/gitea/config.json +++ b/apps/gitea/config.json @@ -3,11 +3,12 @@ "port": 8108, "available": true, "id": "gitea", + "tipi_version": 1, + "version": "1.16.8", "categories": ["development"], "description": "Gitea is a painless self-hosted Git service. It is similar to GitHub, Bitbucket, and GitLab. Gitea is a fork of Gogs. See the Gitea Announcement blog post to read about the justification for a fork.", "short_desc": "Gitea - Git with a cup of tea · A painless self-hosted Git service. · Cross-platform · Easy to install · Lightweight · Open Source.", "author": "go-gitea", "source": "https://github.com/go-gitea/gitea", - "image": "/logos/apps/gitea.jpg", "form_fields": [] } diff --git a/apps/homarr/config.json b/apps/homarr/config.json index 63e496d2..3e518408 100644 --- a/apps/homarr/config.json +++ b/apps/homarr/config.json @@ -3,12 +3,13 @@ "available": true, "port": 8102, "id": "homarr", + "tipi_version": 1, + "version": "0.8.0", "categories": ["utilities"], "description": "A homepage for your server.", "short_desc": "Homarr is a simple and lightweight homepage for your server, that helps you easily access all of your services in one place.", "author": "ajnart", "source": "https://github.com/ajnart/homarr", "website": "https://discord.gg/C2WTXkzkwK", - "image": "/logos/apps/homarr.jpg", "form_fields": [] } diff --git a/apps/homeassistant/config.json b/apps/homeassistant/config.json index cfec8457..9ed12888 100644 --- a/apps/homeassistant/config.json +++ b/apps/homeassistant/config.json @@ -2,12 +2,12 @@ "name": "Home Assistant", "available": true, "port": 8123, + "tipi_version": 1, "id": "homeassistant", "categories": ["automation"], "description": "Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.", "short_desc": "Open source home automation that puts local control and privacy first", "author": "ArneNaessens", "source": "https://github.com/home-assistant/core", - "image": "/logos/apps/homeassistant.jpg", "form_fields": [] } diff --git a/apps/invidious/config.json b/apps/invidious/config.json index d4d1415f..1a923d93 100644 --- a/apps/invidious/config.json +++ b/apps/invidious/config.json @@ -3,11 +3,11 @@ "available": true, "port": 8095, "id": "invidious", + "tipi_version": 1, "categories": ["media", "social"], "description": "Invidious is an open source alternative front-end to YouTube.", "short_desc": "An alternative front-end to YouTube", "author": "iv-org", "source": "https://github.com/iv-org/invidious", - "image": "https://raw.githubusercontent.com/iv-org/invidious/master/assets/invidious-colored-vector.svg", "form_fields": [] } diff --git a/apps/jackett/config.json b/apps/jackett/config.json index ed27f38c..c3620d95 100644 --- a/apps/jackett/config.json +++ b/apps/jackett/config.json @@ -3,11 +3,12 @@ "available": true, "port": 8097, "id": "jackett", + "tipi_version": 1, + "version": "0.20.1342", "description": "Jackett works as a proxy server: it translates queries from apps (Sonarr, Radarr, SickRage, CouchPotato, Mylar3, Lidarr, DuckieTV, qBittorrent, Nefarious etc.) into tracker-site-specific http queries, parses the html or json response, and then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches.", "short_desc": "API Support for your favorite torrent trackers ", "categories": ["media", "utilities"], "author": "", "source": "https://github.com/Jackett/Jackett", - "image": "/logos/apps/jackett.jpg", "form_fields": [] } diff --git a/apps/jellyfin/config.json b/apps/jellyfin/config.json index 95d08844..bfa9be7b 100644 --- a/apps/jellyfin/config.json +++ b/apps/jellyfin/config.json @@ -3,11 +3,12 @@ "available": true, "port": 8091, "id": "jellyfin", + "tipi_version": 1, + "version": "10.8.1", "categories": ["media"], "description": "Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. We welcome anyone who is interested in joining us in our quest!", "short_desc": "A media server for your home collection", "author": "jellyfin.org", "source": "https://github.com/jellyfin/jellyfin", - "image": "https://avatars.githubusercontent.com/u/45698031?s=200&v=4", "form_fields": [] } diff --git a/apps/joplin/config.json b/apps/joplin/config.json index 016012aa..4903ddec 100644 --- a/apps/joplin/config.json +++ b/apps/joplin/config.json @@ -3,12 +3,13 @@ "available": true, "port": 8099, "id": "joplin", + "tipi_version": 1, + "version": "2.7.4", "categories": ["utilities"], "description": "Default credentials: admin@localhost / admin", "short_desc": "Note taking and to-do application with synchronisation", "author": "https://github.com/laurent22", "source": "https://github.com/laurent22/joplin", "website": "https://joplinapp.org", - "image": "/logos/apps/joplin.jpg", "form_fields": [] } diff --git a/apps/libreddit/config.json b/apps/libreddit/config.json index 4bcaefec..8fe6b36a 100644 --- a/apps/libreddit/config.json +++ b/apps/libreddit/config.json @@ -3,11 +3,11 @@ "available": true, "port": 8105, "id": "libreddit", + "tipi_version": 1, "categories": ["social"], "description": "LibReddit is a bloat free reddit frontend written in Rust, no ads, no tracking and strong Content Security Policy prevents any request from going to reddit, everything is proxied.", "short_desc": "Browse reddit without problems!", "author": "spikecodes", "source": "https://github.com/spikecodes/libreddit", - "image": "/logos/apps/libreddit.jpg", "form_fields": [] } diff --git a/apps/mealie/config.json b/apps/mealie/config.json index b436d865..f3a243cb 100644 --- a/apps/mealie/config.json +++ b/apps/mealie/config.json @@ -3,11 +3,12 @@ "port": 8114, "available": true, "id": "mealie", + "tipi_version": 1, + "version": "v0.5.6", "description": "Mealie is a self-hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in Vue for a pleasant user experience for the whole family. Easily add recipes into your database by providing the url and Mealie will automatically import the relevant data or add a family recipe with the UI editor. Mealie also provides an API for interactions from 3rd party applications. Default username / password is changeme@email.com / MyPassword", "short_desc": "Mealie is a self-hosted recipe manager and meal planner.", "author": "hay-kot", "categories": [], "source": "https://github.com/hay-kot/mealie", - "image": "https://raw.githubusercontent.com/hay-kot/mealie/mealie-next/frontend/static/icons/android-chrome-512x512.png", "form_fields": [] } diff --git a/apps/n8n/config.json b/apps/n8n/config.json index f87884a9..0d2d57dc 100644 --- a/apps/n8n/config.json +++ b/apps/n8n/config.json @@ -3,12 +3,13 @@ "available": true, "port": 8094, "id": "n8n", + "tipi_version": 1, + "version": "0.186.1", "categories": ["automation"], "description": "n8n is an extendable workflow automation tool. With a fair-code distribution model, n8n will always have visible source code, be available to self-host, and allow you to add your own custom functions, logic and apps. n8n's node-based approach makes it highly versatile, enabling you to connect anything to everything.", "short_desc": "Workflow Automation Tool. Alternative to Zapier", "author": "n8n.io", "source": "https://github.com/n8n-io/n8n", "website": "https://n8n.io/", - "image": "/logos/apps/n8n.jpg", "form_fields": [] } diff --git a/apps/nextcloud/config.json b/apps/nextcloud/config.json index a9179c8d..c1557744 100644 --- a/apps/nextcloud/config.json +++ b/apps/nextcloud/config.json @@ -3,12 +3,13 @@ "available": true, "port": 8083, "id": "nextcloud", + "tipi_version": 1, + "version": "24.0.3", "categories": ["data"], "description": "Nextcloud is a self-hosted, open source, and fully-featured cloud storage solution for your personal files, office documents, and photos.", "short_desc": "Productivity platform that keeps you in control", "author": "Nextcloud GmbH", "source": "https://github.com/nextcloud/server", - "image": "https://avatars.githubusercontent.com/u/19211038?s=200&v=4", "form_fields": [ { "type": "text", diff --git a/apps/nitter/config.json b/apps/nitter/config.json index e3af65d1..a6e7bddb 100644 --- a/apps/nitter/config.json +++ b/apps/nitter/config.json @@ -3,11 +3,11 @@ "available": true, "port": 8106, "id": "nitter", + "tipi_version": 1, "categories": ["social"], "description": "A free and open source alternative Twitter front-end focused on privacy and performance.", "short_desc": "Twitter without annoyances!", "author": "zedeus", "source": "https://github.com/zedeus/nitter", - "image": "/logos/apps/nitter.jpg", "form_fields": [] } diff --git a/apps/nodered/config.json b/apps/nodered/config.json index 02cd2577..5d9acfca 100644 --- a/apps/nodered/config.json +++ b/apps/nodered/config.json @@ -3,11 +3,12 @@ "port": 8111, "available": true, "id": "nodered", + "tipi_version": 1, + "version": "3.0.0", "categories": ["automation"], "description": "Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways. It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.", "short_desc": "Low-code programming for event-driven applications", "author": "node-red", "source": "https://github.com/node-red/node-red", - "image": "https://avatars.githubusercontent.com/u/5375661?s=200&v=4", "form_fields": [] } diff --git a/apps/overseerr/config.json b/apps/overseerr/config.json index 464dafad..43275ea1 100644 --- a/apps/overseerr/config.json +++ b/apps/overseerr/config.json @@ -3,11 +3,12 @@ "available": true, "port": 8116, "id": "overseerr", + "tipi_version": 1, + "version": "1.29.0", "categories": ["media", "utilities"], "description": "Overseerr is a free and open source software application for managing requests for your media library. It integrates with your existing services, such as Sonarr, Radarr, and Plex!", "short_desc": "Request management and media discovery tool for the Plex ecosystem", "author": "sct", "source": "https://github.com/sct/overseerr", - "image": "/logos/apps/overseerr.jpg", "form_fields": [] } diff --git a/apps/overseerr/docker-compose.yml b/apps/overseerr/docker-compose.yml index 77f33a6f..1bf47aa7 100644 --- a/apps/overseerr/docker-compose.yml +++ b/apps/overseerr/docker-compose.yml @@ -2,7 +2,7 @@ version: "3" services: overseerr: container_name: overseerr - image: sctx/overseerr:latest + image: sctx/overseerr:1.29.0 environment: - TZ=${TZ} volumes: diff --git a/apps/photoprism/config.json b/apps/photoprism/config.json index 8b8ad100..af5c4d55 100644 --- a/apps/photoprism/config.json +++ b/apps/photoprism/config.json @@ -3,12 +3,12 @@ "port": 8110, "available": true, "id": "photoprism", + "tipi_version": 1, "categories": ["photography"], "description": "PhotoPrism® is an AI-Powered Photos App for the Decentralized Web. It makes use of the latest technologies to tag and find pictures automatically without getting in your way. You can run it at home, on a private server, or in the cloud. Default username: admin", "short_desc": "AI-Powered Photos App for the Decentralized Web. We are on a mission to protect your freedom and privacy.", "author": "PhotoPrism", "source": "https://github.com/photoprism/photoprism", - "image": "/logos/apps/photoprism.jpg", "form_fields": [ { "type": "password", diff --git a/apps/pihole/config.json b/apps/pihole/config.json index ef73c36d..4fb73415 100644 --- a/apps/pihole/config.json +++ b/apps/pihole/config.json @@ -6,12 +6,13 @@ "ports": [53] }, "id": "pihole", + "tipi_version": 1, + "version": "2022.07.1", "categories": ["network", "security"], "description": "The Pi-hole® is a DNS sinkhole that protects your devices from unwanted content without installing any client-side software.", "short_desc": "A black hole for Internet advertisements", "author": "pi-hole.net", "source": "https://github.com/pi-hole/pi-hole", - "image": "/logos/apps/pihole.jpg", "form_fields": [ { "type": "password", diff --git a/apps/plex/config.json b/apps/plex/config.json index ea51bcea..e5a1b022 100644 --- a/apps/plex/config.json +++ b/apps/plex/config.json @@ -3,12 +3,13 @@ "available": true, "port": 32400, "id": "plex", + "tipi_version": 1, + "version": "1.27.2", "url_suffix": "/web", "categories": ["media"], "description": "", "short_desc": "Stream Movies & TV Shows", "author": "plexinc", "source": "https://github.com/plexinc/pms-docker", - "image": "/logos/apps/plex.png", "form_fields": [] } diff --git a/apps/portainer/config.json b/apps/portainer/config.json index f5c6ad22..a03ebece 100644 --- a/apps/portainer/config.json +++ b/apps/portainer/config.json @@ -3,11 +3,12 @@ "port": 9443, "available": true, "id": "portainer", + "tipi_version": 1, + "version": "2.14.2", "categories": ["utilities"], "description": "", "short_desc": "Making Docker and Kubernetes management easy.", "author": "portainer.io", "source": "https://github.com/portainer/portainer", - "image": "/logos/apps/portainer.jpg", "form_fields": [] } diff --git a/apps/portainer/docker-compose.yml b/apps/portainer/docker-compose.yml index 2d95f435..76feb5e1 100644 --- a/apps/portainer/docker-compose.yml +++ b/apps/portainer/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: portainer: - image: portainer/portainer-ce:latest + image: portainer/portainer-ce:2.14.2-alpine container_name: portainer restart: unless-stopped ports: diff --git a/apps/prowlarr/config.json b/apps/prowlarr/config.json index 7b67fde5..9a29cb82 100644 --- a/apps/prowlarr/config.json +++ b/apps/prowlarr/config.json @@ -3,11 +3,11 @@ "available": true, "port": 8109, "id": "prowlarr", + "tipi_version": 1, "categories": ["media", "utilities"], "description": "Prowlarr is an indexer manager/proxy built on the popular *arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports management of both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Lidarr, Mylar3, Radarr, Readarr, and Sonarr offering complete management of your indexers with no per app Indexer setup required (we do it all).", "short_desc": "A torrent/usenet indexer manager/proxy", "author": "Prowlarr", "source": "https://github.com/Prowlarr/Prowlarr/", - "image": "/logos/apps/prowlarr.jpg", "form_fields": [] } diff --git a/apps/radarr/config.json b/apps/radarr/config.json index dad907e5..7aefa8e2 100644 --- a/apps/radarr/config.json +++ b/apps/radarr/config.json @@ -3,11 +3,12 @@ "available": true, "port": 8088, "id": "radarr", + "tipi_version": 1, + "version": "4.1.0", "categories": ["media", "utilities"], "description": "Radarr is a movie collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new movies and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available. Note that only one type of a given movie is supported. If you want both an 4k version and 1080p version of a given movie you will need multiple instances.", "short_desc": "Movie collection manager for Usenet and BitTorrent users.", "author": "radarr.video", "source": "https://github.com/Radarr/Radarr", - "image": "/logos/apps/radarr.jpg", "form_fields": [] } diff --git a/apps/readarr/config.json b/apps/readarr/config.json index 3ed11512..edb60073 100644 --- a/apps/readarr/config.json +++ b/apps/readarr/config.json @@ -3,11 +3,11 @@ "available": true, "port": 8112, "id": "readarr", + "tipi_version": 1, "categories": ["books", "media"], "description": "", "short_desc": "Book Manager and Automation (Sonarr for Ebooks)", "author": "readarr.com", "source": "https://github.com/Readarr/Readarr", - "image": "/logos/apps/readarr.jpg", "form_fields": [] } diff --git a/apps/resilio-sync/config.json b/apps/resilio-sync/config.json index 77b96040..d3d0f2da 100644 --- a/apps/resilio-sync/config.json +++ b/apps/resilio-sync/config.json @@ -3,11 +3,12 @@ "port": 8113, "available": true, "id": "resilio-sync", + "tipi_version": 1, + "version": "2.7.3", "categories": ["data", "utilities"], "description": "", "short_desc": "Resilio Sync is a fast, reliable, and simple file sync and share solution, powered by P2P technology", "author": "Resilio, Inc.", "source": "https://github.com/bt-sync", - "image": "/logos/apps/resilio-sync.png", "form_fields": [] } diff --git a/apps/sonarr/config.json b/apps/sonarr/config.json index b7f963d2..ffc8ca2b 100644 --- a/apps/sonarr/config.json +++ b/apps/sonarr/config.json @@ -3,11 +3,12 @@ "available": true, "port": 8098, "id": "sonarr", + "tipi_version": 1, + "version": "3.0.8", "categories": ["media", "utilities"], "description": "Sonarr is a PVR for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.", "short_desc": "TV show manager for Usenet and BitTorrent", "author": "sonarr.tv", "source": "https://github.com/Sonarr/Sonarr", - "image": "/logos/apps/sonarr.jpg", "form_fields": [] } diff --git a/apps/syncthing/config.json b/apps/syncthing/config.json index c886ba2d..6330a800 100644 --- a/apps/syncthing/config.json +++ b/apps/syncthing/config.json @@ -3,12 +3,13 @@ "available": true, "port": 8090, "id": "syncthing", + "tipi_version": 1, + "version": "1.20", "categories": ["data", "utilities"], "description": "Syncthing is a peer-to-peer continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it's transmitted over the internet.\n\nInstall the Syncthing app on your Umbrel and pair it with the Syncthing app on your phone or computer for a self hosted peer-to-peer backup solution.", "short_desc": "Peer-to-peer file synchronization between your devices", "author": "The Syncthing Foundation", "source": "https://github.com/syncthing", "website": "https://syncthing.net", - "image": "/logos/apps/syncthing.jpg", "form_fields": [] } diff --git a/apps/tailscale/config.json b/apps/tailscale/config.json index 27d95799..c0180065 100644 --- a/apps/tailscale/config.json +++ b/apps/tailscale/config.json @@ -3,12 +3,13 @@ "available": true, "port": 8093, "id": "tailscale", + "tipi_version": 1, + "version": "v1.29.10", "categories": ["network", "security"], "description": "Zero config VPN. Installs on any device in minutes, manages firewall rules for you, and works from anywhere.", "short_desc": "The easiest, most secure way to use WireGuard and 2FA.", "author": "© Tailscale Inc.", "source": "https://github.com/tailscale/tailscale", "website": "https://tailscale.com/", - "image": "https://avatars.githubusercontent.com/u/48932923?s=200&v=4", "form_fields": [] } diff --git a/apps/tautulli/config.json b/apps/tautulli/config.json index adc7a025..be260164 100644 --- a/apps/tautulli/config.json +++ b/apps/tautulli/config.json @@ -3,11 +3,12 @@ "available": true, "port": 8181, "id": "tautulli", + "tipi_version": 1, + "version": "2.10.2", "categories": ["media", "utilities"], "description": "Tautulli is a 3rd party application that you can run alongside your Plex Media Server to monitor activity and track various statistics. Most importantly, these statistics include what has been watched, who watched it, when and where they watched it, and how it was watched. The only thing missing is \"why they watched it\", but who am I to question your 42 plays of Frozen. All statistics are presented in a nice and clean interface with many tables and graphs, which makes it easy to brag about your server to everyone else.", "short_desc": "Monitoring and tracking tool for Plex Media Server.", "author": "JonnyWong16", "source": "https://github.com/Tautulli/Tautulli", - "image": "/logos/apps/tautulli.jpg", "form_fields": [] } diff --git a/apps/transmission/config.json b/apps/transmission/config.json index 7a1325e6..f8aadf7f 100644 --- a/apps/transmission/config.json +++ b/apps/transmission/config.json @@ -6,12 +6,12 @@ "ports": [51413] }, "id": "transmission", + "tipi_version": 1, "categories": ["utilities"], "description": "Transmission is a fast, easy, and free BitTorrent client.", "short_desc": "Fast, easy, and free BitTorrent client", "author": "Transmission Project", "source": "https://github.com/transmission/transmission", - "image": "https://avatars.githubusercontent.com/u/223312?s=200&v=4", "form_fields": [ { "type": "text", diff --git a/apps/vaultwarden/config.json b/apps/vaultwarden/config.json index ce563a24..751ff525 100644 --- a/apps/vaultwarden/config.json +++ b/apps/vaultwarden/config.json @@ -3,12 +3,13 @@ "available": true, "port": 8107, "id": "vaultwarden", + "tipi_version": 1, + "version": "1.25.1", "categories": ["utilities"], "description": "Alternative implementation of the Bitwarden server API written in Rust and compatible with upstream Bitwarden clients, perfect for self-hosted deployment where running the official resource-heavy service might not be ideal.", "short_desc": "All your passwords in your control!", "author": "Daniel García", "source": "https://github.com/dani-garcia/vaultwarden", - "image": "/logos/apps/vaultwarden.jpg", "form_fields": [ { "type": "password", diff --git a/apps/wg-easy/config.json b/apps/wg-easy/config.json index bb2df8df..1048fe24 100644 --- a/apps/wg-easy/config.json +++ b/apps/wg-easy/config.json @@ -6,12 +6,13 @@ "ports": [51820] }, "id": "wg-easy", + "tipi_version": 1, + "version": "7", "categories": ["network"], "description": "Access your homeserver from anywhere even on your mobile device. Wireguard-easy is a simple tool to configure and manage Wireguard VPN servers. It is written in Go and uses the official Wireguard client. You have to open and redirect port 51820 to your homeserver in order to connect.", "short_desc": "VPN server for your homeserver", "author": "WeeJeWel", "source": "https://github.com/WeeJeWel/wg-easy/", - "image": "/logos/apps/wireguard.jpg", "form_fields": [ { "type": "fqdnip", diff --git a/apps/your-spotify/config.json b/apps/your-spotify/config.json index 1a35f8ee..65e87d39 100644 --- a/apps/your-spotify/config.json +++ b/apps/your-spotify/config.json @@ -3,12 +3,12 @@ "available": true, "port": 8103, "id": "your-spotify", + "tipi_version": 1, "categories": ["music", "utilities"], "description": "Self hosted Spotify tracking dashboard.", "short_desc": "Self hosted Spotify tracking dashboard.", "author": "Yooooomi", "source": "https://github.com/Yooooomi/your_spotify", - "image": "/logos/apps/your-spotify.jpg", "form_fields": [ { "type": "text",