Merge branch 'runtipi:master' into app/koillection
12
.github/ISSUE_TEMPLATE/app-request.md
vendored
|
@ -10,10 +10,20 @@ assignees: meienberger
|
|||
Have you considered adding the app yourself?
|
||||
|
||||
**Describe app**
|
||||
|
||||
A clear and concise description of what the app consists of and how it would benefit the users of Tipi.
|
||||
|
||||
**Links**
|
||||
Include links to all the available resources for the app. (eg: github repo, website, license)
|
||||
- Official repository: [Insert link]
|
||||
- Official docker image: [Insert link]
|
||||
|
||||
Include links to alln other the available resources for the app. (eg: website, license)
|
||||
|
||||
**Additional context**
|
||||
|
||||
Add any other context or screenshots about the app request here.
|
||||
|
||||
**Checklist**
|
||||
- [ ] I have put the app name in the title of the issue
|
||||
- [ ] I have linked the repository of the app
|
||||
- [ ] I have linked the official docker image
|
||||
|
|
14
README.md
|
@ -16,6 +16,7 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Budibase](https://github.com/Budibase/budibase) - Low code platform for creating internal tools, workflows, and admin panels in minutes. Supports PostgreSQL, MySQL, MSSQL, MongoDB, Rest API, Docker, K8s, and more 🚀. Budibase, the low code platform you'll enjoy using ⚡
|
||||
- [Bookstack](https://github.com/BookStackApp/BookStack) - Simple, easy-to-use platform for organising and storing information.
|
||||
- [Calibre-Web](https://github.com/janeczku/calibre-web) - Web Ebook Reader
|
||||
- [ChangeDetection.io](https://github.com/dgtlmoon/changedetection.io) - The best and simplest free open source website change detection, restock monitor and notification service.
|
||||
- [Chatpad AI](https://github.com/deiucanta/chatpad) - Not just another ChatGPT user-interface!
|
||||
- [Code-Server](https://github.com/coder/code-server) - Web VS Code
|
||||
- [Codex.Docs](https://github.com/codex-team/codex.docst) - Free Docs app powered by Editor.js ecosystem.
|
||||
|
@ -28,6 +29,7 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Deemix](https://gitlab.com/Bockiii/deemix-docker) - deemix is a barebone deezer downloader library built from the ashes of Deezloader Remix.
|
||||
- [DokuWiki](https://github.com/dokuwiki/dokuwiki) - DokuWiki is a simple to use and highly versatile Open Source wiki software
|
||||
- [Dozzle](https://github.com/amir20/dozzle) - Dozzle is a small web based app to monitor Docker logs
|
||||
- [Draw.io](https://github.com/jgraph/drawio) - draw.io is a JavaScript, client-side editor for general diagramming and whiteboarding.
|
||||
- [Duplicati](https://github.com/linuxserver/docker-duplicati) - Store securely encrypted backups in the cloud!
|
||||
- [Emulatorjs](https://github.com/EmulatorJS/EmulatorJS) - Self-hosted Javascript emulation for various system.
|
||||
- [Excalidraw](https://github.com/excalidraw/excalidraw) - Online whiteboard collaboration made easy
|
||||
|
@ -61,11 +63,14 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Invidious](https://github.com/iv-org/invidious) - An alternative front-end to YouTube
|
||||
- [Jackett](https://github.com/Jackett/Jackett) - API Support for your favorite torrent trackers
|
||||
- [Jellyfin](https://github.com/jellyfin/jellyfin) - A media server for your home collection
|
||||
- [Jellyfin Vue (Beta)](https://github.com/jellyfin/jellyfin-vue) - A modern web client for Jellyfin based on Vue
|
||||
- [Jellyseerr](https://github.com/Fallenbagel/jellyseerr) - Fork of overseerr for Jellyfin support
|
||||
- [Joplin](https://github.com/laurent22/joplin) - Privacy focused note-taking app
|
||||
- [Kanboard](https://github.com/kanboard/kanboard) - Kanboard is a free and open source Kanban project management software.
|
||||
- [Kapowarr](https://github.com/Casvt/Kapowarr) - Kapowarr is a software to build and manage a comic book library, fitting in the \*arr suite of software.
|
||||
- [Kasm Workspaces](https://github.com/kasmtech) - Kasm Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services
|
||||
- [Kavita](https://github.com/Kareadita/Kavita) - Kavita is a fast, feature rich, cross platform reading server
|
||||
- [Kimai](https://github.com/kimai/kimai) - Open source time-tracker
|
||||
- [Libreddit](https://github.com/spikecodes/libreddit) - Private front-end for Reddit
|
||||
- [LibrePhotos](https://github.com/LibrePhotos/librephotos) - Complete photo management service
|
||||
- [LibreTranslate](https://github.com/LibreTranslate/LibreTranslate) - Free and Open Source Machine Translation API. 100% self-hosted, offline capable and easy to setup
|
||||
|
@ -87,15 +92,20 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Monica](https://github.com/monicahq/monica) - A Personal Relationship Management tool to help you document your social life
|
||||
- [Mixpost](https://github.com/inovector/mixpost) - Self-hosted social media management. Schedule and organize your social content.
|
||||
- [Mixpost Pro](https://mixpost.app/pricing) - Self-hosted social media management. Schedule and organize your social content.
|
||||
- [Movary](https://github.com/leepeuker/movary - ) Track and rate your watched movies
|
||||
- [MongoDB](https://github.com/mongodb/mongo)- MongoDB is an open-source NoSQL database
|
||||
- [Mongo Express](https://github.com/mongo-express/mongo-express) - A web-based MongoDB admin interface written with Node.js, Express, and Bootstrap3
|
||||
- [Movary](https://github.com/leepeuker/movary ) - Track and rate your watched movies
|
||||
- [mStream](https://github.com/IrosTheBeggar/mStream) - The easiest music streaming server available
|
||||
- [Mylar3](https://github.com/mylar3/mylar3) - Mylar3 is an automated Comic Book downloader (cbr/cbz) for use with NZB and torrents written in python.
|
||||
- [n8n](https://github.com/n8n-io/n8n) - Workflow Automation Tool
|
||||
- [Navidrome](https://github.com/navidrome/navidrome) - A selfhosted music server
|
||||
- [Netdata](https://github.com/netdata/netdata) - Open-source, real-time, performance and health monitoring.
|
||||
- [Nextcloud](https://github.com/nextcloud/server) - A safe home for all your data
|
||||
- [Nitter](https://github.com/zedeus/nitter) - Alternative Twitter front-end
|
||||
- [NocoDB](https://github.com/nocodb/nocodb) - Open Source Airtable Alternative
|
||||
- [Node-RED](https://github.com/node-red/node-red) - Low-code programming for event-driven applications
|
||||
- [NoteMark](https://github.com/enchant97/note-mark/) - Note Mark is a lighting fast and minimal web-based Markdown notes app.
|
||||
- [Ntfy](https://github.com/binwiederhier/ntfy) - A Straightforward Notification service that operates over HTTP
|
||||
- [Obsidian LiveSync](https://github.com/vrtmrz/self-hosted-livesync-server) - LiveSync couchdb backend for Obsidian
|
||||
- [OneDev](https://code.onedev.io/onedev/server) - Self-hosted Git Server with Kanban and CI/CD
|
||||
- [Openbooks](https://github.com/evan-buss/openbooks) - Search and Download eBooks
|
||||
|
@ -124,8 +134,10 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Sabnzbd](https://github.com/sabnzbd/sabnzbd) - Sabnzbd makes Usenet as simple and streamlined as possible by automating everything we can"
|
||||
- [SearXNG](https://github.com/searxng/searxng) - SearXNG is a free internet metasearch engine which aggregates results from various search services and databases. Users are neither tracked nor profiled
|
||||
- [Send](https://gitlab.com/timvisee/send) - Simple, private file sharing
|
||||
- [Serge](https://github.com/serge-chat/serge) - A web interface for chatting with Alpaca through llama.cpp.
|
||||
- [SimpleX SMP](https://github.com/simplex-chat/simplexmq) - A reference implementation of the SimpleX Messaging Protocol for simplex queues over public networks.
|
||||
- [Sonarr](https://github.com/Sonarr/Sonarr) - TV show manager for Usenet and BitTorrent
|
||||
- [Speedtest Tracker](https://github.com/alexjustesen/speedtest-tracker) - Internet performance tracking application.
|
||||
- [Sshwifty](https://github.com/nirui/sshwifty/) - Web SSH & Telnet (WebSSH & WebTelnet client)
|
||||
- [Stirling-PDF](https://github.com/Frooodle/Stirling-PDF) - Locally hosted web application that allows you to perform various operations on PDF files.
|
||||
- [Syncthing](https://github.com/syncthing/syncthing) - Continuous File Synchronization
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "2fauth",
|
||||
"tipi_version": 5,
|
||||
"version": "4.2.2",
|
||||
"tipi_version": 6,
|
||||
"version": "4.2.3",
|
||||
"categories": [
|
||||
"security"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
2fauth:
|
||||
image: 2fauth/2fauth:4.2.2
|
||||
image: 2fauth/2fauth:4.2.3
|
||||
container_name: 2fauth
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data:/2fauth
|
||||
|
|
|
@ -33,6 +33,7 @@ const networkExceptions = [
|
|||
"gladys",
|
||||
"scrypted",
|
||||
"homebridge",
|
||||
"cloudflared",
|
||||
];
|
||||
const getAppConfigs = (): AppConfig[] => {
|
||||
const apps: AppConfig[] = [];
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8011,
|
||||
"id": "actual-budget",
|
||||
"tipi_version": 10,
|
||||
"version": "23.9.0",
|
||||
"tipi_version": 11,
|
||||
"version": "23.10.0",
|
||||
"categories": [
|
||||
"finance"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.9"
|
|||
services:
|
||||
actual-budget:
|
||||
container_name: actual-budget
|
||||
image: actualbudget/actual-server:23.9.0
|
||||
image: actualbudget/actual-server:23.10.0
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- ${APP_PORT}:5006
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
"name": "Adguard",
|
||||
"available": true,
|
||||
"exposable": true,
|
||||
"tipi_version": 17,
|
||||
"version": "0.107.38",
|
||||
"tipi_version": 19,
|
||||
"version": "0.107.40",
|
||||
"port": 8104,
|
||||
"id": "adguard",
|
||||
"categories": [
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
adguard:
|
||||
image: adguard/adguardhome:v0.107.38
|
||||
image: adguard/adguardhome:v0.107.40
|
||||
container_name: adguard
|
||||
volumes:
|
||||
- "${APP_DATA_DIR}/data/work:/opt/adguardhome/work"
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 13378,
|
||||
"id": "audiobookshelf",
|
||||
"tipi_version": 5,
|
||||
"version": "2.4.3",
|
||||
"tipi_version": 6,
|
||||
"version": "2.4.4",
|
||||
"categories": [
|
||||
"books",
|
||||
"media"
|
||||
|
|
|
@ -2,7 +2,7 @@ version: '3.7'
|
|||
services:
|
||||
audiobookshelf:
|
||||
container_name: audiobookshelf
|
||||
image: ghcr.io/advplyr/audiobookshelf:2.4.3
|
||||
image: ghcr.io/advplyr/audiobookshelf:2.4.4
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- ${APP_PORT}:80
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "autobrr",
|
||||
"tipi_version": 9,
|
||||
"version": "1.29.0",
|
||||
"tipi_version": 12,
|
||||
"version": "1.32.0",
|
||||
"categories": [
|
||||
"media"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3"
|
|||
services:
|
||||
autobrr:
|
||||
container_name: autobrr
|
||||
image: ghcr.io/autobrr/autobrr:v1.29.0
|
||||
image: ghcr.io/autobrr/autobrr:v1.32.0
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- ${APP_PORT}:7474
|
||||
|
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 45 KiB |
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 6767,
|
||||
"id": "bazarr",
|
||||
"tipi_version": 9,
|
||||
"version": "1.2.4",
|
||||
"tipi_version": 11,
|
||||
"version": "1.3.1",
|
||||
"categories": [
|
||||
"media",
|
||||
"utilities"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
bazarr:
|
||||
image: lscr.io/linuxserver/bazarr:1.2.4
|
||||
image: lscr.io/linuxserver/bazarr:1.3.1
|
||||
container_name: bazarr
|
||||
environment:
|
||||
- PUID=1000
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "budibase",
|
||||
"tipi_version": 9,
|
||||
"version": "2.10.10",
|
||||
"tipi_version": 19,
|
||||
"version": "2.11.45",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: '3.7'
|
||||
services:
|
||||
budibase:
|
||||
image: budibase/budibase:2.10.10
|
||||
image: budibase/budibase:2.11.45
|
||||
restart: unless-stopped
|
||||
container_name: budibase
|
||||
ports:
|
||||
|
|
|
@ -4,10 +4,12 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"port": 8100,
|
||||
"tipi_version": 6,
|
||||
"version": "0.6.20",
|
||||
"tipi_version": 7,
|
||||
"version": "0.6.21",
|
||||
"id": "calibre-web",
|
||||
"categories": ["books"],
|
||||
"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/",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
calibre-web:
|
||||
image: lscr.io/linuxserver/calibre-web:0.6.20
|
||||
image: lscr.io/linuxserver/calibre-web:0.6.21
|
||||
container_name: calibre-web
|
||||
environment:
|
||||
- PUID=1000
|
||||
|
|
18
apps/changedetection/config.json
Normal file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"name": "ChangeDetection",
|
||||
"available": true,
|
||||
"port": 8257,
|
||||
"exposable": true,
|
||||
"id": "changedetection",
|
||||
"description": "The best and simplest free open source website change detection, restock monitor and notification service.",
|
||||
"tipi_version": 2,
|
||||
"version": "0.45.3",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
"short_desc": "Website change detection.",
|
||||
"author": "dgtlmoon",
|
||||
"source": "https://github.com/dgtlmoon/changedetection.io",
|
||||
"website": "https://changedetection.io/",
|
||||
"form_fields": []
|
||||
}
|
49
apps/changedetection/docker-compose.yml
Normal file
|
@ -0,0 +1,49 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
changedetection:
|
||||
image: ghcr.io/dgtlmoon/changedetection.io:0.45.3
|
||||
container_name: changedetection
|
||||
hostname: changedetection
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data:/datastore
|
||||
ports:
|
||||
- ${APP_PORT}:5000
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- PLAYWRIGHT_DRIVER_URL=ws://chnagedetection-chrome:3000/?stealth=1&--disable-web-security=true
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.changedetection-web-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.changedetection-web.loadbalancer.server.port: 5000
|
||||
# Web
|
||||
traefik.http.routers.changedetection-web-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.changedetection-web-insecure.entrypoints: web
|
||||
traefik.http.routers.changedetection-web-insecure.service: changedetection-web
|
||||
traefik.http.routers.changedetection-web-insecure.middlewares: changedetection-web-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.changedetection-web.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.changedetection-web.entrypoints: websecure
|
||||
traefik.http.routers.changedetection-web.service: changedetection-web
|
||||
traefik.http.routers.changedetection-web.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.changedetection-web-local-insecure.rule: Host(`changedetection-web.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.changedetection-web-local-insecure.entrypoints: web
|
||||
traefik.http.routers.changedetection-web-local-insecure.service: changedetection-web
|
||||
traefik.http.routers.changedetection-web-local-insecure.middlewares: changedetection-web-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.changedetection-web-local.rule: Host(`changedetection-web.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.changedetection-web-local.entrypoints: websecure
|
||||
traefik.http.routers.changedetection-web-local.service: changedetection-web
|
||||
traefik.http.routers.changedetection-web-local.tls: true
|
||||
|
||||
|
||||
chnagedetection-chrome:
|
||||
hostname: chnagedetection-chrome
|
||||
image: browserless/chrome:latest
|
||||
restart: unless-stopped
|
||||
container_name: chnagedetection-chrome
|
||||
networks:
|
||||
- tipi_main_network
|
73
apps/changedetection/metadata/description.md
Normal file
|
@ -0,0 +1,73 @@
|
|||
## Web Site Change Detection, Restock monitoring and notifications.
|
||||
|
||||
**_Detect website content changes and perform meaningful actions - trigger notifications via Discord, Email, Slack, Telegram, API calls and many more._**
|
||||
|
||||
_Live your data-life pro-actively._
|
||||
|
||||
|
||||
[<img src="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/docs/screenshot.png" style="max-width:100%;" alt="Self-hosted web page change monitoring" title="Self-hosted web page change monitoring" />](https://changedetection.io?src=github)
|
||||
|
||||
|
||||
### Target specific parts of the webpage using the Visual Selector tool.
|
||||
|
||||
Available when connected to a <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Playwright-content-fetcher">playwright content fetcher</a> (included as part of our subscription service)
|
||||
|
||||
[<img src="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/docs/visualselector-anim.gif" style="max-width:100%;" alt="Self-hosted web page change monitoring context difference " title="Self-hosted web page change monitoring context difference " />](https://changedetection.io?src=github)
|
||||
|
||||
### Easily see what changed, examine by word, line, or individual character.
|
||||
|
||||
[<img src="https://raw.githubusercontent.com/dgtlmoon/changedetection.io/master/docs/screenshot-diff.png" style="max-width:100%;" alt="Self-hosted web page change monitoring context difference " title="Self-hosted web page change monitoring context difference " />](https://changedetection.io?src=github)
|
||||
|
||||
|
||||
### Perform interactive browser steps
|
||||
|
||||
Fill in text boxes, click buttons and more, setup your changedetection scenario.
|
||||
|
||||
Using the **Browser Steps** configuration, add basic steps before performing change detection, such as logging into websites, adding a product to a cart, accept cookie logins, entering dates and refining searches.
|
||||
|
||||
After **Browser Steps** have been run, then visit the **Visual Selector** tab to refine the content you're interested in.
|
||||
Requires Playwright to be enabled.
|
||||
|
||||
|
||||
### Example use cases
|
||||
|
||||
- Products and services have a change in pricing
|
||||
- _Out of stock notification_ and _Back In stock notification_
|
||||
- Monitor and track PDF file changes, know when a PDF file has text changes.
|
||||
- Governmental department updates (changes are often only on their websites)
|
||||
- New software releases, security advisories when you're not on their mailing list.
|
||||
- Festivals with changes
|
||||
- Discogs restock alerts and monitoring
|
||||
- Realestate listing changes
|
||||
- Know when your favourite whiskey is on sale, or other special deals are announced before anyone else
|
||||
- COVID related news from government websites
|
||||
- University/organisation news from their website
|
||||
- Detect and monitor changes in JSON API responses
|
||||
- JSON API monitoring and alerting
|
||||
- Changes in legal and other documents
|
||||
- Trigger API calls via notifications when text appears on a website
|
||||
- Glue together APIs using the JSON filter and JSON notifications
|
||||
- Create RSS feeds based on changes in web content
|
||||
- Monitor HTML source code for unexpected changes, strengthen your PCI compliance
|
||||
- You have a very sensitive list of URLs to watch and you do _not_ want to use the paid alternatives. (Remember, _you_ are the product)
|
||||
- Get notified when certain keywords appear in Twitter search results
|
||||
- Proactively search for jobs, get notified when companies update their careers page, search job portals for keywords.
|
||||
- Get alerts when new job positions are open on Bamboo HR and other job platforms
|
||||
- Website defacement monitoring
|
||||
- Pokémon Card Restock Tracker / Pokémon TCG Tracker
|
||||
- RegTech - stay ahead of regulatory changes, regulatory compliance
|
||||
|
||||
_Need an actual Chrome runner with Javascript support? We support fetching via WebDriver and Playwright!</a>_
|
||||
|
||||
#### Key Features
|
||||
|
||||
- Lots of trigger filters, such as "Trigger on text", "Remove text by selector", "Ignore text", "Extract text", also using regular-expressions!
|
||||
- Target elements with xPath(1.0) and CSS Selectors, Easily monitor complex JSON with JSONPath or jq
|
||||
- Switch between fast non-JS and Chrome JS based "fetchers"
|
||||
- Track changes in PDF files (Monitor text changed in the PDF, Also monitor PDF filesize and checksums)
|
||||
- Easily specify how often a site should be checked
|
||||
- Execute JS before extracting text (Good for logging in, see examples in the UI!)
|
||||
- Override Request Headers, Specify `POST` or `GET` and other methods
|
||||
- Use the "Visual Selector" to help target specific elements
|
||||
- Configurable [proxy per watch](https://github.com/dgtlmoon/changedetection.io/wiki/Proxy-configuration)
|
||||
- Send a screenshot with the notification when a change is detected in the web page
|
BIN
apps/changedetection/metadata/logo.jpg
Normal file
After Width: | Height: | Size: 27 KiB |
17
apps/cloudflared/config.json
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"$schema": "../schema.json",
|
||||
"name": "Cloudflared",
|
||||
"port": 14333,
|
||||
"available": true,
|
||||
"exposable": false,
|
||||
"id": "cloudflared",
|
||||
"tipi_version": 1,
|
||||
"version": "2023.8.2",
|
||||
"categories": ["utilities"],
|
||||
"description": "Cloudflared-web is a docker image that packages both cloudflared cli and a no-frills Web UI for easy starting/stopping of cloudflare tunnel.",
|
||||
"short_desc": "Cloudflare Tunnels in a Web UI",
|
||||
"author": "WisdomSky",
|
||||
"source": "https://github.com/WisdomSky/Cloudflared-web",
|
||||
"form_fields": [
|
||||
]
|
||||
}
|
10
apps/cloudflared/docker-compose.yml
Normal file
|
@ -0,0 +1,10 @@
|
|||
version: "3.9"
|
||||
|
||||
services:
|
||||
cloudflared:
|
||||
image: wisdomsky/cloudflared-web:2023.8.2
|
||||
container_name: cloudflared
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/cloudflared/config:/config
|
31
apps/cloudflared/metadata/description.md
Normal file
|
@ -0,0 +1,31 @@
|
|||
_Cloudflared-web is a docker image that packages both cloudflared cli and a no-frills Web UI for easy starting/stopping of cloudflare tunnel._
|
||||
|
||||
___
|
||||
|
||||
## Why use `Cloudflared-web`?
|
||||
|
||||
#### Pros
|
||||
|
||||
✅ Only need to run a docker command once. No need to run docker commands everytime you want to start or stop the container or when updating the token.
|
||||
|
||||
✅ Start and stop cloudflare tunnel anytime with a single click.
|
||||
|
||||
#### Cons
|
||||
|
||||
❌ Only supports Cloudflare Tunnel.
|
||||
|
||||
❌ Can only update hostname policies through the [ZeroTrust](https://one.dash.cloudflare.com/) dashboard.
|
||||
|
||||
___
|
||||
|
||||
The Web UI where you can setup the Cloudflared token can be accessed from port `14333`:
|
||||
|
||||
```
|
||||
http://localhost:14333
|
||||
```
|
||||
|
||||
## [Screenshots](https://github.com/WisdomSky/Cloudflared-web#screenshots)
|
||||
|
||||
[](https://raw.githubusercontent.com/WisdomSky/Cloudflared-web/main/screenshot-1.png)
|
||||
|
||||
[](https://raw.githubusercontent.com/WisdomSky/Cloudflared-web/main/screenshot-2.png)
|
BIN
apps/cloudflared/metadata/logo.jpg
Normal file
After Width: | Height: | Size: 28 KiB |
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8138,
|
||||
"id": "code-server",
|
||||
"tipi_version": 14,
|
||||
"version": "4.16.1",
|
||||
"tipi_version": 17,
|
||||
"version": "4.18.0",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
code-server:
|
||||
image: lscr.io/linuxserver/code-server:4.16.1
|
||||
image: lscr.io/linuxserver/code-server:4.18.0
|
||||
container_name: code-server
|
||||
environment:
|
||||
- PUID=1000
|
||||
|
|
23
apps/drawio/config.json
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"name": "Draw.io",
|
||||
"available": true,
|
||||
"port": 8734,
|
||||
"exposable": true,
|
||||
"url_suffix": "?offline=1",
|
||||
"id": "drawio",
|
||||
"description": "draw.io is a JavaScript, client-side editor for general diagramming and whiteboarding.",
|
||||
"tipi_version": 3,
|
||||
"version": "22.0.8",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
"short_desc": "Diagramming and whiteboarding app.",
|
||||
"author": "JGraph",
|
||||
"source": "https://github.com/jgraph/drawio",
|
||||
"website": "https://www.drawio.com/",
|
||||
"form_fields": [],
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
36
apps/drawio/docker-compose.yml
Normal file
|
@ -0,0 +1,36 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
drawio:
|
||||
image: jgraph/drawio:22.0.8
|
||||
ports:
|
||||
- ${APP_PORT}:8080
|
||||
container_name: drawio
|
||||
tty: true
|
||||
stdin_open: true
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.drawio-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.drawio.loadbalancer.server.port: 8080
|
||||
# Web
|
||||
traefik.http.routers.drawio-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.drawio-insecure.entrypoints: web
|
||||
traefik.http.routers.drawio-insecure.service: drawio
|
||||
traefik.http.routers.drawio-insecure.middlewares: drawio-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.drawio.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.drawio.entrypoints: websecure
|
||||
traefik.http.routers.drawio.service: drawio
|
||||
traefik.http.routers.drawio.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.drawio-local-insecure.rule: Host(`drawio.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.drawio-local-insecure.entrypoints: web
|
||||
traefik.http.routers.drawio-local-insecure.service: drawio
|
||||
traefik.http.routers.drawio-local-insecure.middlewares: drawio-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.drawio-local.rule: Host(`drawio.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.drawio-local.entrypoints: websecure
|
||||
traefik.http.routers.drawio-local.service: drawio
|
||||
traefik.http.routers.drawio-local.tls: true
|
5
apps/drawio/metadata/description.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
## Draw.io
|
||||
|
||||
draw.io, this project, is a configurable diagramming/whiteboarding visualization application. draw.io is jointly owned and developed by JGraph Ltd and draw.io AG.
|
||||
|
||||
As well as running this project, we run a production-grade deployment of the diagramming interface at [https://app.diagrams.net](https://app.diagrams.net).
|
BIN
apps/drawio/metadata/logo.jpg
Normal file
After Width: | Height: | Size: 14 KiB |
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "fireshare",
|
||||
"tipi_version": 6,
|
||||
"version": "1.2.13",
|
||||
"tipi_version": 7,
|
||||
"version": "1.2.14",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3"
|
|||
services:
|
||||
fireshare:
|
||||
container_name: fireshare
|
||||
image: shaneisrael/fireshare:v1.2.13
|
||||
image: shaneisrael/fireshare:v1.2.14
|
||||
ports:
|
||||
- ${APP_PORT}:80
|
||||
volumes:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"id": "flatnotes",
|
||||
"port": 8137,
|
||||
"tipi_version": 12,
|
||||
"version": "3.2.3",
|
||||
"tipi_version": 15,
|
||||
"version": "3.4.0",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3"
|
|||
services:
|
||||
flatnotes:
|
||||
container_name: flatnotes
|
||||
image: dullage/flatnotes:v3.2.3
|
||||
image: dullage/flatnotes:v3.4.0
|
||||
environment:
|
||||
FLATNOTES_AUTH_TYPE: ${FLATNOTES_AUTH_TYPE}
|
||||
FLATNOTES_USERNAME: ${FLATNOTES_USERNAME}
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "forgejo",
|
||||
"tipi_version": 6,
|
||||
"version": "1.20.4-0",
|
||||
"tipi_version": 8,
|
||||
"version": "1.20.5-0",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: '3.7'
|
|||
|
||||
services:
|
||||
forgejo:
|
||||
image: codeberg.org/forgejo/forgejo:1.20.4-0
|
||||
image: codeberg.org/forgejo/forgejo:1.20.5-0
|
||||
container_name: forgejo
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
|
@ -11,7 +11,7 @@ services:
|
|||
- FORGEJO__database__HOST=forgejo-db:5432
|
||||
- FORGEJO__database__NAME=forgejo
|
||||
- FORGEJO__database__USER=forgejo
|
||||
- FORGEJO__database__PASSWD=forgejo
|
||||
- FORGEJO__database__PASSWD=${FORGEJO_DB_PASSWORD}
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/forgejo:/data
|
||||
|
|
|
@ -5,9 +5,11 @@
|
|||
"exposable": true,
|
||||
"port": 8086,
|
||||
"id": "freshrss",
|
||||
"tipi_version": 5,
|
||||
"version": "1.21.0",
|
||||
"categories": ["utilities"],
|
||||
"tipi_version": 6,
|
||||
"version": "1.22.0",
|
||||
"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/",
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.7"
|
|||
|
||||
services:
|
||||
freshrss:
|
||||
image: lscr.io/linuxserver/freshrss:1.21.0
|
||||
image: lscr.io/linuxserver/freshrss:1.22.0
|
||||
container_name: freshrss
|
||||
environment:
|
||||
- PUID=1000
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "ghost",
|
||||
"tipi_version": 45,
|
||||
"version": "5.62.0",
|
||||
"tipi_version": 57,
|
||||
"version": "5.71.0",
|
||||
"categories": [
|
||||
"social",
|
||||
"media"
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.9"
|
|||
|
||||
services:
|
||||
ghost:
|
||||
image: ghost:5.62.0
|
||||
image: ghost:5.71.0
|
||||
container_name: ghost
|
||||
depends_on:
|
||||
- ghostdb
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "ghostfolio",
|
||||
"tipi_version": 7,
|
||||
"version": "1.305.0",
|
||||
"tipi_version": 12,
|
||||
"version": "2.15.0",
|
||||
"categories": [
|
||||
"finance"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.9"
|
|||
services:
|
||||
ghostfolio:
|
||||
container_name: ghostfolio
|
||||
image: ghostfolio/ghostfolio:1.305.0
|
||||
image: ghostfolio/ghostfolio:2.15.0
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- ${APP_PORT}:3333
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "gitea",
|
||||
"tipi_version": 14,
|
||||
"version": "1.20.4",
|
||||
"tipi_version": 15,
|
||||
"version": "1.20.5",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -16,13 +16,13 @@ PATH=/data/git/lfs
|
|||
|
||||
[server]
|
||||
APP_DATA_PATH = /data/gitea
|
||||
DOMAIN = localhost
|
||||
SSH_DOMAIN = localhost
|
||||
DOMAIN = {{APP_HOST}}
|
||||
SSH_DOMAIN = {{APP_HOST}}
|
||||
HTTP_PORT = 3000
|
||||
ROOT_URL = http://localhost:8108/
|
||||
ROOT_URL = https://{{APP_DOMAIN}}/
|
||||
DISABLE_SSH = false
|
||||
SSH_PORT = 22
|
||||
SSH_LISTEN_PORT = 22
|
||||
SSH_PORT = 222
|
||||
SSH_LISTEN_PORT = 222
|
||||
LFS_START_SERVER = true
|
||||
LFS_JWT_SECRET = wo2G20l0nGsspUp8xsLNSNF7H8U-GQUVth5gj_q5cDk
|
||||
OFFLINE_MODE = false
|
|
@ -2,7 +2,7 @@ version: "3.7"
|
|||
|
||||
services:
|
||||
gitea:
|
||||
image: gitea/gitea:1.20.4
|
||||
image: gitea/gitea:1.20.5
|
||||
container_name: gitea
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": false,
|
||||
"id": "gladys",
|
||||
"tipi_version": 18,
|
||||
"version": "4.28.0",
|
||||
"tipi_version": 19,
|
||||
"version": "4.29.0",
|
||||
"categories": [
|
||||
"automation"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: '3'
|
|||
services:
|
||||
gladys:
|
||||
container_name: gladys
|
||||
image: gladysassistant/gladys:v4.28.0
|
||||
image: gladysassistant/gladys:v4.29.0
|
||||
privileged: true
|
||||
restart: on-failure
|
||||
stop_grace_period: 1m
|
||||
|
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 9.3 KiB |
|
@ -6,10 +6,10 @@
|
|||
"exposable": true,
|
||||
"force_expose": true,
|
||||
"id": "gotosocial",
|
||||
"tipi_version": 8,
|
||||
"tipi_version": 10,
|
||||
"uid": 1000,
|
||||
"gid": 1000,
|
||||
"version": "0.11.1",
|
||||
"version": "0.12.1",
|
||||
"categories": [
|
||||
"social"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3"
|
|||
services:
|
||||
gotosocial:
|
||||
container_name: gotosocial
|
||||
image: superseriousbusiness/gotosocial:0.11.1
|
||||
image: superseriousbusiness/gotosocial:0.12.1
|
||||
user: 1000:1000
|
||||
ports:
|
||||
- ${APP_PORT}:8080
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "grafana",
|
||||
"tipi_version": 15,
|
||||
"version": "10.1.2",
|
||||
"tipi_version": 18,
|
||||
"version": "10.2.0",
|
||||
"categories": [
|
||||
"data"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3"
|
|||
services:
|
||||
grafana:
|
||||
container_name: grafana
|
||||
image: grafana/grafana-oss:10.1.2
|
||||
image: grafana/grafana-oss:10.2.0
|
||||
ports:
|
||||
- ${APP_PORT}:3000
|
||||
volumes:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"id": "grist",
|
||||
"description": "Grist is a modern relational spreadsheet. It combines the flexibility of a spreadsheet with the robustness of a database to organize your data and make you more productive.",
|
||||
"tipi_version": 3,
|
||||
"version": "1.1.4",
|
||||
"tipi_version": 5,
|
||||
"version": "1.1.6",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -6,7 +6,7 @@ services:
|
|||
environment:
|
||||
- APP_HOME_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
|
||||
- GRIST_SANDBOX_FLAVOR=${GRIST_SANDBOX_FLAVOR}
|
||||
image: "gristlabs/grist:1.1.4"
|
||||
image: "gristlabs/grist:1.1.6"
|
||||
ports:
|
||||
- "${APP_PORT}:8484"
|
||||
restart: always
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
"name": "Grocy",
|
||||
"available": true,
|
||||
"exposable": true,
|
||||
"tipi_version": 3,
|
||||
"version": "3.3.2",
|
||||
"tipi_version": 4,
|
||||
"version": "4.0.3",
|
||||
"port": 8136,
|
||||
"id": "grocy",
|
||||
"categories": ["automation", "finance"],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
grocy:
|
||||
image: lscr.io/linuxserver/grocy:v3.3.2-ls180
|
||||
image: lscr.io/linuxserver/grocy:v4.0.3-ls215
|
||||
container_name: grocy
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data:/config
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8092,
|
||||
"id": "halo",
|
||||
"tipi_version": 8,
|
||||
"version": "2.9.1",
|
||||
"tipi_version": 11,
|
||||
"version": "2.10.1",
|
||||
"description": "Halo is a powerful and easy-to-use open source website building tool.",
|
||||
"short_desc": "Halo - Open source website building tool.",
|
||||
"categories": [
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.7"
|
|||
|
||||
services:
|
||||
halo:
|
||||
image: halohub/halo:2.9.1
|
||||
image: halohub/halo:2.10.1
|
||||
container_name: halo
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
|
|
|
@ -5,9 +5,11 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "homebox",
|
||||
"tipi_version": 5,
|
||||
"version": "0.9.2",
|
||||
"categories": ["utilities"],
|
||||
"tipi_version": 7,
|
||||
"version": "0.10.1",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
"description": "Homebox is the inventory and organization system built for the Home User",
|
||||
"short_desc": "Homebox is the inventory and organization system built for the Home User",
|
||||
"author": "hay-kot",
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.4"
|
|||
|
||||
services:
|
||||
homebox:
|
||||
image: ghcr.io/hay-kot/homebox:v0.9.2
|
||||
image: ghcr.io/hay-kot/homebox:v0.10.1
|
||||
container_name: homebox
|
||||
restart: always
|
||||
environment:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8128,
|
||||
"id": "immich",
|
||||
"tipi_version": 43,
|
||||
"version": "1.78.1",
|
||||
"tipi_version": 49,
|
||||
"version": "1.82.1",
|
||||
"categories": [
|
||||
"data",
|
||||
"photography"
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.7"
|
|||
services:
|
||||
immich:
|
||||
container_name: immich
|
||||
image: altran1502/immich-proxy:v1.78.1
|
||||
image: altran1502/immich-proxy:v1.82.1
|
||||
ports:
|
||||
- ${APP_PORT}:8080
|
||||
depends_on:
|
||||
|
@ -43,7 +43,7 @@ services:
|
|||
|
||||
immich-server:
|
||||
container_name: immich-server
|
||||
image: altran1502/immich-server:v1.78.1
|
||||
image: altran1502/immich-server:v1.82.1
|
||||
command: ["start-server.sh"]
|
||||
volumes:
|
||||
- ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
|
||||
|
@ -68,7 +68,7 @@ services:
|
|||
|
||||
immich-microservices:
|
||||
container_name: immich-microservices
|
||||
image: altran1502/immich-server:v1.78.1
|
||||
image: altran1502/immich-server:v1.82.1
|
||||
command: ["start-microservices.sh"]
|
||||
volumes:
|
||||
- ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
|
||||
|
@ -93,7 +93,7 @@ services:
|
|||
|
||||
immich-machine-learning:
|
||||
container_name: immich-machine-learning
|
||||
image: altran1502/immich-machine-learning:v1.78.1
|
||||
image: altran1502/immich-machine-learning:v1.82.1
|
||||
volumes:
|
||||
- ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
|
||||
- ${APP_DATA_DIR}/data/immich-ml-cache:/cache
|
||||
|
@ -114,7 +114,7 @@ services:
|
|||
|
||||
immich-web:
|
||||
container_name: immich-web
|
||||
image: altran1502/immich-web:v1.78.1
|
||||
image: altran1502/immich-web:v1.82.1
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tipi_main_network
|
||||
|
|
17
apps/jellyfin-vue/config.json
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"$schema": "../schema.json",
|
||||
"name": "Jellyfin Vue (Beta)",
|
||||
"port": 8202,
|
||||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "jellyfin-vue",
|
||||
"tipi_version": 1,
|
||||
"version": "unstable.2023-09-18.fe0f640",
|
||||
"categories": ["media"],
|
||||
"description": "A modern web client for Jellyfin based on Vue",
|
||||
"short_desc": "A modern web client for Jellyfin based on Vue",
|
||||
"author": "Jellyfin",
|
||||
"source": "https://github.com/jellyfin/jellyfin-vue",
|
||||
"form_fields": [
|
||||
]
|
||||
}
|
36
apps/jellyfin-vue/docker-compose.yml
Normal file
|
@ -0,0 +1,36 @@
|
|||
version: "3"
|
||||
|
||||
services:
|
||||
jellyfin-vue:
|
||||
container_name: jellyfin-vue
|
||||
image: ghcr.io/jellyfin/jellyfin-vue:unstable.2023-09-18.fe0f640
|
||||
ports:
|
||||
- ${APP_PORT}:80
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.jellyfin-vue-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.jellyfin-vue.loadbalancer.server.port: 80
|
||||
# Web
|
||||
traefik.http.routers.jellyfin-vue-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.jellyfin-vue-insecure.entrypoints: web
|
||||
traefik.http.routers.jellyfin-vue-insecure.service: jellyfin-vue
|
||||
traefik.http.routers.jellyfin-vue-insecure.middlewares: jellyfin-vue-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.jellyfin-vue.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.jellyfin-vue.entrypoints: websecure
|
||||
traefik.http.routers.jellyfin-vue.service: jellyfin-vue
|
||||
traefik.http.routers.jellyfin-vue.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.jellyfin-vue-local-insecure.rule: Host(`jellyfin-vue.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.jellyfin-vue-local-insecure.entrypoints: web
|
||||
traefik.http.routers.jellyfin-vue-local-insecure.service: jellyfin-vue
|
||||
traefik.http.routers.jellyfin-vue-local-insecure.middlewares: jellyfin-vue-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.jellyfin-vue-local.rule: Host(`jellyfin-vue.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.jellyfin-vue-local.entrypoints: websecure
|
||||
traefik.http.routers.jellyfin-vue-local.service: jellyfin-vue
|
||||
traefik.http.routers.jellyfin-vue-local.tls: true
|
15
apps/jellyfin-vue/metadata/description.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
# Important Info
|
||||
|
||||
- This is a beta build of the new Jellyfin Vue UI. You still need an exisiting Jellyfin server. T
|
||||
- This will have bugs and Issues, as its a Beta, Unstable Build.
|
||||
|
||||
|
||||
# Jellyfin Vue
|
||||
|
||||
### Part of the [Jellyfin Project](https://jellyfin.org)
|
||||
|
||||
___
|
||||
|
||||
[](https://raw.githubusercontent.com/jellyfin/jellyfin-ux/master/branding/SVG/banner-logo-solid.svg?sanitize=true)
|
||||
|
||||
This is an alternative client for Jellyfin based on Vue.js. It might not be feature complete and it's constantly evolving.
|
BIN
apps/jellyfin-vue/metadata/logo.jpg
Normal file
After Width: | Height: | Size: 85 KiB |
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8091,
|
||||
"id": "jellyfin",
|
||||
"tipi_version": 6,
|
||||
"version": "10.8.10",
|
||||
"tipi_version": 7,
|
||||
"version": "10.8.11",
|
||||
"categories": [
|
||||
"media"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
jellyfin:
|
||||
image: lscr.io/linuxserver/jellyfin:10.8.10
|
||||
image: lscr.io/linuxserver/jellyfin:10.8.11
|
||||
container_name: jellyfin
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/config:/config
|
||||
|
@ -17,25 +17,27 @@ services:
|
|||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
traefik.enable: ${APP_EXPOSED}
|
||||
traefik.http.middlewares.jellyfin-mw.headers.SSLForceHost: true
|
||||
traefik.http.middlewares.jellyfin-mw.headers.SSLHost: ${APP_DOMAIN}
|
||||
traefik.http.middlewares.jellyfin-mw.headers.SSLRedirect: true
|
||||
traefik.http.middlewares.jellyfin-mw.headers.STSIncludeSubdomains: true
|
||||
traefik.http.middlewares.jellyfin-mw.headers.STSPreload: true
|
||||
traefik.http.middlewares.jellyfin-mw.headers.STSSeconds: 315360000
|
||||
traefik.http.middlewares.jellyfin-mw.headers.browserXSSFilter: true
|
||||
traefik.http.middlewares.jellyfin-mw.headers.contentTypeNosniff: true
|
||||
traefik.http.middlewares.jellyfin-mw.headers.customFrameOptionsValue: 'allow-from https://${DOMAIN}'
|
||||
traefik.http.middlewares.jellyfin-mw.headers.customResponseHeaders.X-Robots-Tag: noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex
|
||||
traefik.http.middlewares.jellyfin-mw.headers.forceSTSHeader: true
|
||||
traefik.http.middlewares.jellyfin-mw.headers.frameDeny: true
|
||||
traefik.http.routers.jellyfin.entryPoints: websecure
|
||||
traefik.http.routers.jellyfin.middlewares: jellyfin-mw
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.jellyfin-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.jellyfin.loadbalancer.server.port: 8096
|
||||
# Web
|
||||
traefik.http.routers.jellyfin-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.jellyfin-insecure.entrypoints: web
|
||||
traefik.http.routers.jellyfin-insecure.service: jellyfin
|
||||
traefik.http.routers.jellyfin-insecure.middlewares: jellyfin-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.jellyfin.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.jellyfin.service: jellyfin-svc
|
||||
traefik.http.routers.jellyfin.tls: true
|
||||
traefik.http.routers.jellyfin.entrypoints: websecure
|
||||
traefik.http.routers.jellyfin.service: jellyfin
|
||||
traefik.http.routers.jellyfin.tls.certresolver: myresolver
|
||||
traefik.http.routers.jellyfin.tls.domains: ${APP_DOMAIN}
|
||||
traefik.http.services.jellyfin-svc.loadBalancer.passHostHeader: true
|
||||
traefik.http.services.jellyfin-svc.loadBalancer.server.port: 8096
|
||||
# Local domain
|
||||
traefik.http.routers.jellyfin-local-insecure.rule: Host(`jellyfin.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.jellyfin-local-insecure.entrypoints: web
|
||||
traefik.http.routers.jellyfin-local-insecure.service: jellyfin
|
||||
traefik.http.routers.jellyfin-local-insecure.middlewares: jellyfin-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.jellyfin-local.rule: Host(`jellyfin.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.jellyfin-local.entrypoints: websecure
|
||||
traefik.http.routers.jellyfin-local.service: jellyfin
|
||||
traefik.http.routers.jellyfin-local.tls: true
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8099,
|
||||
"id": "joplin",
|
||||
"tipi_version": 8,
|
||||
"version": "2.12.1",
|
||||
"tipi_version": 10,
|
||||
"version": "2.13.2",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.7"
|
|||
services:
|
||||
joplin:
|
||||
container_name: joplin
|
||||
image: florider89/joplin-server:2.12.1
|
||||
image: florider89/joplin-server:2.13.2
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- db-joplin
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"port": 8010,
|
||||
"id": "kanboard",
|
||||
"description": "Kanboard is a free and open source Kanban project management software.",
|
||||
"tipi_version": 6,
|
||||
"version": "1.2.32",
|
||||
"tipi_version": 7,
|
||||
"version": "1.2.33",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.9"
|
|||
services:
|
||||
kanboard:
|
||||
container_name: kanboard
|
||||
image: kanboard/kanboard:v1.2.32
|
||||
image: kanboard/kanboard:v1.2.33
|
||||
environment:
|
||||
- PLUGIN_INSTALLER=${PLUGIN_INSTALLER}
|
||||
ports:
|
||||
|
|
22
apps/kasm-workspaces/config.json
Normal file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Kasm Workspaces",
|
||||
"available": true,
|
||||
"port": 8744,
|
||||
"exposable": true,
|
||||
"id": "kasm-workspaces",
|
||||
"description": "Kasm Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services.",
|
||||
"tipi_version": 2,
|
||||
"version": "1.120.20221218",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
"short_desc": "Container streaming platform.",
|
||||
"author": "Kasm",
|
||||
"source": "https://github.com/kasmtech",
|
||||
"website": "https://www.kasmweb.com/",
|
||||
"form_fields": [],
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
41
apps/kasm-workspaces/docker-compose.yml
Normal file
|
@ -0,0 +1,41 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
kasm-workspaces:
|
||||
image: lscr.io/linuxserver/kasm:1.120.20221218
|
||||
container_name: kasm-workspaces
|
||||
privileged: true
|
||||
environment:
|
||||
- KASM_PORT=8744
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data:/opt
|
||||
ports:
|
||||
- 8743:3000
|
||||
- ${APP_PORT}:8744
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.kasm-workspaces-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.kasm-workspaces.loadbalancer.server.port: 8744
|
||||
# Web
|
||||
traefik.http.routers.kasm-workspaces-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.kasm-workspaces-insecure.entrypoints: web
|
||||
traefik.http.routers.kasm-workspaces-insecure.service: kasm-workspaces
|
||||
traefik.http.routers.kasm-workspaces-insecure.middlewares: kasm-workspaces-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.kasm-workspaces.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.kasm-workspaces.entrypoints: websecure
|
||||
traefik.http.routers.kasm-workspaces.service: kasm-workspaces
|
||||
traefik.http.routers.kasm-workspaces.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.kasm-workspaces-local-insecure.rule: Host(`kasm-workspaces.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.kasm-workspaces-local-insecure.entrypoints: web
|
||||
traefik.http.routers.kasm-workspaces-local-insecure.service: kasm-workspaces
|
||||
traefik.http.routers.kasm-workspaces-local-insecure.middlewares: kasm-workspaces-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.kasm-workspaces-local.rule: Host(`kasm-workspaces.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.kasm-workspaces-local.entrypoints: websecure
|
||||
traefik.http.routers.kasm-workspaces-local.service: kasm-workspaces
|
||||
traefik.http.routers.kasm-workspaces-local.tls: true
|
8
apps/kasm-workspaces/metadata/description.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
## Kasm
|
||||
|
||||
Kasm Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services. Kasm uses devops-enabled Containerized Desktop Infrastructure (CDI) to create on-demand, disposable, docker containers that are accessible via web browser. Example use-cases include Remote Browser Isolation (RBI), Data Loss Prevention (DLP), Desktop as a Service (DaaS), Secure Remote Access Services (RAS), and Open Source Intelligence (OSINT) collections.
|
||||
|
||||
The rendering of the graphical-based containers is powered by the open-source project KasmVNC
|
||||
|
||||
**Warning:** You will firtly need to access the port 8743 for the initial setup of the container. **If you dont do this the app won't work!**<br>
|
||||
**Warning:** The app works with https if you dont access **all the ports** (setup and main) with https in the front you will get an empty response error.
|
BIN
apps/kasm-workspaces/metadata/logo.jpg
Normal file
After Width: | Height: | Size: 15 KiB |
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "kavita",
|
||||
"tipi_version": 6,
|
||||
"version": "0.7.8",
|
||||
"tipi_version": 7,
|
||||
"version": "0.7.9",
|
||||
"categories": [
|
||||
"media"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.9"
|
|||
services:
|
||||
kavita:
|
||||
container_name: kavita
|
||||
image: kizaing/kavita:0.7.8
|
||||
image: jvmilazz0/kavita:0.7.9
|
||||
ports:
|
||||
- ${APP_PORT}:5000
|
||||
volumes:
|
||||
|
|
45
apps/kimai/config.json
Normal file
|
@ -0,0 +1,45 @@
|
|||
{
|
||||
"name": "Kimai",
|
||||
"available": true,
|
||||
"port": 8003,
|
||||
"exposable": true,
|
||||
"id": "kimai",
|
||||
"description": "Kimai is a professional grade time-tracking application, free and open-source. It handles use-cases of freelancers as well as companies with dozens or hundreds of users.",
|
||||
"tipi_version": 1,
|
||||
"version": "fpm-2.1.0-prod",
|
||||
"categories": ["utilities"],
|
||||
"short_desc": "Open source time-tracker",
|
||||
"author": "Kevin Papst",
|
||||
"source": "https://github.com/kimai/kimai",
|
||||
"website": "https://www.kimai.org",
|
||||
"form_fields": [
|
||||
{
|
||||
"type": "random",
|
||||
"label": "KIMAI_DATABASE_ROOT_PASSWORD",
|
||||
"min": 32,
|
||||
"env_variable": "KIMAI_DATABASE_ROOT_PASSWORD"
|
||||
},
|
||||
{
|
||||
"type": "random",
|
||||
"label": "KIMAI_DATABASE_PASSWORD",
|
||||
"min": 32,
|
||||
"env_variable": "KIMAI_DATABASE_PASSWORD"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Admin email",
|
||||
"max": 254,
|
||||
"min": 3,
|
||||
"required": true,
|
||||
"env_variable": "KIMAI_ADMINMAIL"
|
||||
},
|
||||
{
|
||||
"type": "password",
|
||||
"label": "Admin password",
|
||||
"max": 128,
|
||||
"min": 10,
|
||||
"required": true,
|
||||
"env_variable": "KIMAI_ADMINPASS"
|
||||
}
|
||||
]
|
||||
}
|
86
apps/kimai/docker-compose.yml
Normal file
|
@ -0,0 +1,86 @@
|
|||
# Adapted from https://github.com/tobybatch/kimai2/blob/799a534b8d93d18a2d10573457936a31052ce8e0/compose/docker-compose.fpm.prod.yml
|
||||
|
||||
version: "3.5"
|
||||
|
||||
services:
|
||||
nginx:
|
||||
container_name: kimai-proxy
|
||||
image: tobybatch/nginx-fpm-reverse-proxy:latest
|
||||
ports:
|
||||
- ${APP_PORT}:80
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/public:/opt/kimai/public:ro
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- kimai
|
||||
healthcheck:
|
||||
test: wget --spider http://kimai-proxy/health || exit 1
|
||||
interval: 20s
|
||||
start_period: 10s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.kimai-proxy-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.kimai-proxy.loadbalancer.server.port: 80
|
||||
# Web
|
||||
traefik.http.routers.kimai-proxy-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.kimai-proxy-insecure.entrypoints: web
|
||||
traefik.http.routers.kimai-proxy-insecure.service: kimai-proxy
|
||||
traefik.http.routers.kimai-proxy-insecure.middlewares: kimai-proxy-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.kimai-proxy.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.kimai-proxy.entrypoints: websecure
|
||||
traefik.http.routers.kimai-proxy.service: kimai-proxy
|
||||
traefik.http.routers.kimai-proxy.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.kimai-proxy-local-insecure.rule: Host(`kimai.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.kimai-proxy-local-insecure.entrypoints: web
|
||||
traefik.http.routers.kimai-proxy-local-insecure.service: kimai-proxy
|
||||
traefik.http.routers.kimai-proxy-local-insecure.middlewares: kimai-proxy-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.kimai-proxy-local.rule: Host(`kimai-proxy.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.kimai-proxy-local.entrypoints: websecure
|
||||
traefik.http.routers.kimai-proxy-local.service: kimai-proxy
|
||||
traefik.http.routers.kimai-proxy-local.tls: true
|
||||
|
||||
kimai:
|
||||
container_name: kimai
|
||||
image: kimai/kimai2:fpm-2.1.0-prod
|
||||
environment:
|
||||
- ADMINMAIL=${KIMAI_ADMINMAIL}
|
||||
- ADMINPASS=${KIMAI_ADMINPASS}
|
||||
- "DATABASE_URL=mysql://kimai:${KIMAI_DATABASE_PASSWORD}@kimai-sqldb/kimai?charset=utf8&serverVersion=5.7"
|
||||
- TRUSTED_HOSTS=kimai-proxy,localhost,127.0.0.1
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/public:/opt/kimai/public
|
||||
- ${APP_DATA_DIR}/data/var:/opt/kimai/var
|
||||
# - ./ldap.conf:/etc/openldap/ldap.conf:z
|
||||
# - ./ROOT-CA.pem:/etc/ssl/certs/ROOT-CA.pem:z
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tipi_main_network
|
||||
|
||||
sqldb:
|
||||
container_name: kimai-sqldb
|
||||
image: mysql:5.7
|
||||
environment:
|
||||
- MYSQL_DATABASE=kimai
|
||||
- MYSQL_USER=kimai
|
||||
- MYSQL_PASSWORD=${KIMAI_DATABASE_PASSWORD}
|
||||
- MYSQL_ROOT_PASSWORD=${KIMAI_DATABASE_ROOT_PASSWORD}
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/mysql:/var/lib/mysql
|
||||
command: --default-storage-engine innodb
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: mysqladmin -p$$MYSQL_ROOT_PASSWORD ping -h localhost
|
||||
interval: 20s
|
||||
start_period: 10s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
networks:
|
||||
- tipi_main_network
|
8
apps/kimai/metadata/description.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/kimai/images/ceed673becba2526f1055552ca7c255374ca5bf8/repository-header.png" alt="Kimai logo">
|
||||
</p>
|
||||
|
||||
Kimai is a professional grade time-tracking application, free and open-source. It handles use-cases of freelancers as well as companies with dozens or hundreds of users. Kimai was build to track your project times and ships with many advanced features, including but not limited to:
|
||||
|
||||
JSON API, invoicing, data exports, multi-timer and punch-in punch-out mode, tagging, multi-user - multi-timezones - multi-language ([over 30 translations existing](https://hosted.weblate.org/projects/kimai/)!), authentication via SAML/LDAP/Database, two-factor authentication (2FA) with TOTP, customizable role and team permissions, responsive design, user/customer/project specific rates, advanced search & filtering, money and time budgets, advanced reporting, support for [plugins](https://www.kimai.org/store/) and so much more.
|
||||
|
BIN
apps/kimai/metadata/logo.jpg
Normal file
After Width: | Height: | Size: 41 KiB |
17
apps/kiwix-serve/config.json
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"$schema": "../schema.json",
|
||||
"name": "Kiwix Server",
|
||||
"port": 8169,
|
||||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "kiwix-serve",
|
||||
"tipi_version": 1,
|
||||
"version": "3.5.0-2",
|
||||
"categories": ["media"],
|
||||
"description": "Kiwix Server is a web server for hosting .zim files",
|
||||
"short_desc": "Kiwix Server is a web server for hosting .zim files",
|
||||
"author": "Kiwix",
|
||||
"source": "https://github.com/kiwix/kiwix-tools/",
|
||||
"website": "https://kiwix.org/",
|
||||
"form_fields": []
|
||||
}
|
39
apps/kiwix-serve/docker-compose.yml
Normal file
|
@ -0,0 +1,39 @@
|
|||
version: '3.9'
|
||||
|
||||
services:
|
||||
kiwix-serve:
|
||||
container_name: kiwix-serve
|
||||
image: ghcr.io/kiwix/kiwix-serve:3.5.0-2
|
||||
ports:
|
||||
- ${APP_PORT}:8080
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/zim:/data
|
||||
command: '*.zim'
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.kiwix-serve-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.kiwix-serve.loadbalancer.server.port: 8080
|
||||
# Web
|
||||
traefik.http.routers.kiwix-serve-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.kiwix-serve-insecure.entrypoints: web
|
||||
traefik.http.routers.kiwix-serve-insecure.service: kiwix-serve
|
||||
traefik.http.routers.kiwix-serve-insecure.middlewares: kiwix-serve-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.kiwix-serve.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.kiwix-serve.entrypoints: websecure
|
||||
traefik.http.routers.kiwix-serve.service: kiwix-serve
|
||||
traefik.http.routers.kiwix-serve.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.kiwix-serve-local-insecure.rule: Host(`kiwix-serve.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.kiwix-serve-local-insecure.entrypoints: web
|
||||
traefik.http.routers.kiwix-serve-local-insecure.service: kiwix-serve
|
||||
traefik.http.routers.kiwix-serve-local-insecure.middlewares: kiwix-serve-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.kiwix-serve-local.rule: Host(`kiwix-serve.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.kiwix-serve-local.entrypoints: websecure
|
||||
traefik.http.routers.kiwix-serve-local.service: kiwix-serve
|
||||
traefik.http.routers.kiwix-serve-local.tls: true
|
26
apps/kiwix-serve/metadata/description.md
Normal file
|
@ -0,0 +1,26 @@
|
|||
# Kiwix Server
|
||||
|
||||
Kiwix Server is a .zim compatible web server: it allows you to deliver .zim files over the HTTP protocol within your local network – be it a University or your own house. Simply start Kiwix-Serve on your machine, and your content will be available for anybody through their web browser. This allows you to view a website without having internet access.
|
||||
|
||||
|
||||
**Ensure that your there are .zim files in the `${APP_DATA_DIR}/data/zim` directory otherwise the server won't launch properly and will need to be restarted**
|
||||
|
||||
For doumentation see [the Kiwix wiki](https://wiki.kiwix.org/wiki/Kiwix-serve)
|
||||
|
||||
## Features
|
||||
|
||||
* Full text search engine
|
||||
* Search suggestions
|
||||
* Really small and efficient
|
||||
* Compatible with almost all browsers
|
||||
* Available on all platforms
|
||||
* Available as command line executable
|
||||
* Embedded in Kiwix UI
|
||||
* Able to deal with one ZIM file or XML library files
|
||||
* [RESTful API endpoint with OPDS (XML)](https://wiki.kiwix.org/wiki/OPDS)
|
||||
|
||||
## What are ZIM files?
|
||||
|
||||
The ZIM file format is an open file format that stores wiki content for offline usage. The format is defined by the openZIM project, which also supports an Kiwix. The format is primarily used to store the contents of Wikipedia and other Wikimedia projects, including articles, full-text search indices and auxiliary files.
|
||||
|
||||
Download ZIM files from the [Kiwix library](https://library.kiwix.org/#lang=eng), or create your own (see [Zimit](https://www.youzim.it/))
|
BIN
apps/kiwix-serve/metadata/logo.jpg
Normal file
After Width: | Height: | Size: 25 KiB |
|
@ -5,9 +5,11 @@
|
|||
"exposable": true,
|
||||
"port": 8121,
|
||||
"id": "libretranslate",
|
||||
"tipi_version": 6,
|
||||
"version": "1.3.11",
|
||||
"categories": ["utilities"],
|
||||
"tipi_version": 9,
|
||||
"version": "1.4.0",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
"description": "Free and Open Source Machine Translation API, entirely self-hosted. Unlike other APIs, it doesn't rely on proprietary providers such as Google or Azure to perform translations. Instead, its translation engine is powered by the open source Argos Translate library.",
|
||||
"short_desc": "Free and Open Source Machine Translation API. 100% self-hosted, offline capable and easy to setup.",
|
||||
"author": "LibreTranslate",
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.7"
|
|||
services:
|
||||
libretranslate:
|
||||
container_name: libretranslate
|
||||
image: libretranslate/libretranslate:v1.3.11
|
||||
image: libretranslate/libretranslate:v1.4.0
|
||||
dns:
|
||||
- ${DNS_IP}
|
||||
ports:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8131,
|
||||
"id": "lidarr",
|
||||
"tipi_version": 5,
|
||||
"version": "1.3.5",
|
||||
"tipi_version": 6,
|
||||
"version": "1.4.5",
|
||||
"categories": [
|
||||
"media",
|
||||
"music"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
lidarr:
|
||||
image: lscr.io/linuxserver/lidarr:1.3.5
|
||||
image: lscr.io/linuxserver/lidarr:1.4.5
|
||||
container_name: lidarr
|
||||
environment:
|
||||
- PUID=1000
|
||||
|
|
|
@ -5,10 +5,11 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "linkwarden",
|
||||
"tipi_version": 1,
|
||||
"supported_architectures": ["amd64"],
|
||||
"version": "v1.0.1",
|
||||
"categories": ["data"],
|
||||
"tipi_version": 3,
|
||||
"version": "1.2.5",
|
||||
"categories": [
|
||||
"data"
|
||||
],
|
||||
"description": "A self-hosted, open-source collaborative bookmark manager to collect, organize and archive webpages.",
|
||||
"short_desc": "A self-hosted, open-source collaborative bookmark manager",
|
||||
"author": "Linkwarden",
|
||||
|
@ -25,6 +26,14 @@
|
|||
"label": "Linkwarden Nextauth Secret",
|
||||
"min": 32,
|
||||
"env_variable": "LINKWARDEN_NEXTAUTH_SECRET"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Disable Registration",
|
||||
"hint": "Needed for at least one user. If on registration will be disabled.",
|
||||
"required": false,
|
||||
"default": "false",
|
||||
"env_variable": "LINKWARDEN_NEXT_PUBLIC_DISABLE_REGISTRATION"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -2,12 +2,13 @@ version: "3.7"
|
|||
|
||||
services:
|
||||
linkwarden:
|
||||
image: ghcr.io/selfhostedhub/linkwarden:v1.0.1
|
||||
image: ghcr.io/linkwarden/linkwarden:v1.2.5
|
||||
container_name: linkwarden
|
||||
environment:
|
||||
- DATABASE_URL=postgresql://tipi:${LINKWARDEN_DB_PASSWORD}@linkwarden-db:5432/linkwarden
|
||||
- NEXTAUTH_SECRET=${LINKWARDEN_NEXTAUTH_SECRET}
|
||||
- NEXTAUTH_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
|
||||
- NEXT_PUBLIC_DISABLE_REGISTRATION=${LINKWARDEN_NEXT_PUBLIC_DISABLE_REGISTRATION}
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/linkwarden:/data/data
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "logto",
|
||||
"tipi_version": 8,
|
||||
"version": "1.9.0",
|
||||
"tipi_version": 10,
|
||||
"version": "1.10.0",
|
||||
"force_expose": true,
|
||||
"categories": [
|
||||
"security"
|
||||
|
|
|
@ -4,7 +4,7 @@ services:
|
|||
depends_on:
|
||||
logto-db:
|
||||
condition: service_healthy
|
||||
image: svhd/logto:1.9.0
|
||||
image: svhd/logto:1.10.0
|
||||
container_name: logto
|
||||
entrypoint: ["sh", "-c", "npm run cli db seed -- --swe && npm start"]
|
||||
ports:
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
"force_expose": true,
|
||||
"generate_vapid_keys": true,
|
||||
"id": "mastodon",
|
||||
"tipi_version": 7,
|
||||
"version": "4.1.7",
|
||||
"tipi_version": 11,
|
||||
"version": "4.2.1",
|
||||
"categories": [
|
||||
"social"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3"
|
|||
services:
|
||||
mastodon:
|
||||
container_name: mastodon
|
||||
image: lscr.io/linuxserver/mastodon:4.1.7
|
||||
image: lscr.io/linuxserver/mastodon:4.2.1
|
||||
ports:
|
||||
- 8209:80
|
||||
- ${APP_PORT}:443
|
||||
|
|