Merge branch 'master' into app/rsshub
This commit is contained in:
commit
6685669209
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
@ -11,7 +11,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4.1.2
|
||||
uses: actions/checkout@v4.1.5
|
||||
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v4
|
||||
|
|
2
.github/workflows/readme-generator.yml
vendored
2
.github/workflows/readme-generator.yml
vendored
|
@ -10,7 +10,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4.1.2
|
||||
uses: actions/checkout@v4.1.5
|
||||
|
||||
- name: Install Bun
|
||||
uses: oven-sh/setup-bun@v1
|
||||
|
|
6
.github/workflows/renovate-ci.yml
vendored
6
.github/workflows/renovate-ci.yml
vendored
|
@ -8,7 +8,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4.1.2
|
||||
uses: actions/checkout@v4.1.5
|
||||
|
||||
- name: Get last commit message
|
||||
id: get-last-commit-message
|
||||
|
@ -21,7 +21,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4.1.2
|
||||
uses: actions/checkout@v4.1.5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.PERSONAL_TOKEN }}
|
||||
|
@ -58,7 +58,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4.1.2
|
||||
uses: actions/checkout@v4.1.5
|
||||
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v4
|
||||
|
|
4
.github/workflows/renovate.yml
vendored
4
.github/workflows/renovate.yml
vendored
|
@ -23,9 +23,9 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4.1.2
|
||||
uses: actions/checkout@v4.1.5
|
||||
- name: Self-hosted Renovate
|
||||
uses: renovatebot/github-action@v40.1.9
|
||||
uses: renovatebot/github-action@v40.1.11
|
||||
with:
|
||||
token: ${{ secrets.RENOVATE_TOKEN }}
|
||||
env:
|
||||
|
|
|
@ -8,6 +8,7 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Activepieces](https://github.com/activepieces/activepieces) - True zapier alternative.
|
||||
- [Actual Budget](https://github.com/actualbudget/actual-server) - Local-first OpenSource Budget tool
|
||||
- [Adguard](https://github.com/AdguardTeam) - World's most advanced adblocker!
|
||||
- [AFFiNE](https://github.com/toeverything/affine) - AFFiNE is a workspace with fully merged docs, whiteboards and databases.
|
||||
- [Anse](https://github.com/anse-app/anse) - Fully optimized UI for AI Chats.
|
||||
- [ArchiveBox](https://github.com/ArchiveBox/ArchiveBox) - Open source self-hosted web archiving.
|
||||
- [Atuin Server](https://github.com/atuinsh/atuin) - Magical Shell History
|
||||
|
@ -27,6 +28,7 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [ChangeDetection](https://github.com/dgtlmoon/changedetection.io) - Website change detection.
|
||||
- [ChatGPT UI](https://github.com/WongSaang/chatgpt-ui) - A ChatGPT web client that supports multiple users, multiple languages, and multiple database connections for persistent data storage
|
||||
- [Chatpad AI](https://github.com/deiucanta/chatpad) - Not just another ChatGPT user-interface!
|
||||
- [Cheshire Cat AI](https://github.com/cheshire-cat-ai/core) - A production-ready AI framework to develop AI agents.
|
||||
- [Cloudflare DDNS](https://github.com/joshuaavalon/docker-cloudflare) - Update DNS records on Cloudflare.
|
||||
- [Cloudflared](https://github.com/WisdomSky/Cloudflared-web) - Cloudflare Tunnels in a Web UI
|
||||
- [Code-Server - Web VS Code](https://github.com/linuxserver/docker-code-server) - Code-server is VS Code running on a remote server, accessible through the browser.
|
||||
|
@ -101,6 +103,7 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Kimai](https://github.com/kimai/kimai) - Open source time-tracker
|
||||
- [Kiwix Server](https://github.com/kiwix/kiwix-tools/) - Kiwix Server is a web server for hosting .zim files
|
||||
- [Koillection](https://github.com/benjaminjonard/koillection) - Koillection allow you to manage any kind of collections.
|
||||
- [Komga](https://github.com/gotson/komga) - A media server for your comics, mangas, BDs, magazines and eBooks.
|
||||
- [LibReddit](https://github.com/spikecodes/libreddit) - Browse reddit without problems!
|
||||
- [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.
|
||||
|
@ -194,6 +197,7 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Speedtest Tracker](https://github.com/alexjustesen/speedtest-tracker) - Internet performance tracking application.
|
||||
- [Spoolman](https://github.com/Donkie/Spoolman) - Keep track of your inventory of 3D-printer filament spools
|
||||
- [Sshwifty](https://github.com/nirui/sshwifty) - Web SSH & Telnet (WebSSH & WebTelnet client)
|
||||
- [Stalwart Mail](https://github.com/stalwartlabs) - Open-source mail server solution with JMAP, IMAP4, and SMTP support
|
||||
- [Stirling-PDF](https://github.com/Frooodle/Stirling-PDF/) - Powerful locally hosted web based PDF manipulation tool.
|
||||
- [Syncthing](https://github.com/syncthing) - Peer-to-peer file synchronization between your devices
|
||||
- [Tailscale](https://github.com/tailscale/tailscale) - The easiest, most secure way to use WireGuard and 2FA.
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"id": "activepieces",
|
||||
"description": "Your friendliest open source all-in-one automation tool.",
|
||||
"tipi_version": 22,
|
||||
"version": "0.24.1",
|
||||
"tipi_version": 24,
|
||||
"version": "0.25.1",
|
||||
"categories": [
|
||||
"automation"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: '3.7'
|
||||
services:
|
||||
activepieces:
|
||||
image: activepieces/activepieces:0.24.1
|
||||
image: activepieces/activepieces:0.25.1
|
||||
container_name: activepieces
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8011,
|
||||
"id": "actual-budget",
|
||||
"tipi_version": 18,
|
||||
"version": "24.4.0",
|
||||
"tipi_version": 19,
|
||||
"version": "24.5.0",
|
||||
"categories": [
|
||||
"finance"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.9"
|
|||
services:
|
||||
actual-budget:
|
||||
container_name: actual-budget
|
||||
image: actualbudget/actual-server:24.4.0
|
||||
image: actualbudget/actual-server:24.5.0
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- ${APP_PORT}:5006
|
||||
|
|
53
apps/affine/config.json
Normal file
53
apps/affine/config.json
Normal file
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"name": "AFFiNE",
|
||||
"id": "affine",
|
||||
"available": true,
|
||||
"short_desc": "AFFiNE is a workspace with fully merged docs, whiteboards and databases.",
|
||||
"author": "https://github.com/toeverything",
|
||||
"port": 3010,
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
"description": "AFFiNE is a workspace with fully merged docs, whiteboards and databases. A privacy-focused, local-first, open-source, and ready-to-use alternative for Notion & Miro. Docs, canvas and tables are hyper-merged with AFFiNE - just like the word affine",
|
||||
"tipi_version": 1,
|
||||
"version": "stable",
|
||||
"source": "https://github.com/toeverything/affine",
|
||||
"website": "https://affine.pro",
|
||||
"exposable": true,
|
||||
"form_fields": [
|
||||
{
|
||||
"env_variable": "AFFINE_ADMIN_EMAIL",
|
||||
"label": "Admin Email",
|
||||
"pattern_error": "Invalid email",
|
||||
"regex": "^[\\w\\-\\.]+@([\\w-]+\\.)+[\\w-]{2,}$",
|
||||
"required": true,
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"env_variable": "AFFINE_ADMIN_PASSWORD",
|
||||
"label": "Admin Password",
|
||||
"pattern_error": "Invalid password: Must have 1 lowercase, 1 uppercase, 1 special character, 1 digit and no $.",
|
||||
"regex": "^(?=.*\\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[^\\w\\d\\s:])([^\\s$]){8,128}$",
|
||||
"required": true,
|
||||
"type": "password",
|
||||
"min": 8,
|
||||
"max": 128
|
||||
},
|
||||
{
|
||||
"env_variable": "AFFINE_TELEMETRY_ENABLE",
|
||||
"label": "Enable affine telemetry?",
|
||||
"required": false,
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"env_variable": "AFFINE_POSTGRES_PASSWORD",
|
||||
"label": "Affine postgres password",
|
||||
"type": "random",
|
||||
"min": 32
|
||||
}
|
||||
],
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
91
apps/affine/docker-compose.yml
Normal file
91
apps/affine/docker-compose.yml
Normal file
|
@ -0,0 +1,91 @@
|
|||
version: "3.9"
|
||||
services:
|
||||
affine:
|
||||
image: ghcr.io/toeverything/affine-graphql:stable
|
||||
container_name: affine
|
||||
command: ["sh", "-c", "node ./scripts/self-host-predeploy && node ./dist/index.js"]
|
||||
ports:
|
||||
- ${APP_PORT}:3010
|
||||
depends_on:
|
||||
affine-redis:
|
||||
condition: service_healthy
|
||||
affine-postgres:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
# Custom configurations
|
||||
- ${APP_DATA_DIR}/data/config:/root/.affine/config
|
||||
# Blob storage
|
||||
- ${APP_DATA_DIR}/data/storage:/root/.affine/storage
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "1000m"
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- NODE_OPTIONS="--import=./scripts/register.js"
|
||||
- AFFINE_CONFIG_PATH=/root/.affine/config
|
||||
- REDIS_SERVER_HOST=affine-redis
|
||||
- DATABASE_URL=postgres://tipi:${AFFINE_POSTGRES_PASSWORD}@affine-postgres:5432/affine
|
||||
- NODE_ENV=production
|
||||
- AFFINE_ADMIN_EMAIL=${AFFINE_ADMIN_EMAIL}
|
||||
- AFFINE_ADMIN_PASSWORD=${AFFINE_ADMIN_PASSWORD}
|
||||
- TELEMETRY_ENABLE=${AFFINE_TELEMETRY_ENABLE}
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.affine-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.affine.loadbalancer.server.port: 3010
|
||||
# Web
|
||||
traefik.http.routers.affine-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.affine-insecure.entrypoints: web
|
||||
traefik.http.routers.affine-insecure.service: affine
|
||||
traefik.http.routers.affine-insecure.middlewares: affine-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.affine.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.affine.entrypoints: websecure
|
||||
traefik.http.routers.affine.service: affine
|
||||
traefik.http.routers.affine.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.affine-local-insecure.rule: Host(`affine.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.affine-local-insecure.entrypoints: web
|
||||
traefik.http.routers.affine-local-insecure.service: affine
|
||||
traefik.http.routers.affine-local-insecure.middlewares: affine-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.affine-local.rule: Host(`affine.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.affine-local.entrypoints: websecure
|
||||
traefik.http.routers.affine-local.service: affine
|
||||
traefik.http.routers.affine-local.tls: true
|
||||
|
||||
affine-redis:
|
||||
image: redis
|
||||
container_name: affine-redis
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/redis:/data
|
||||
healthcheck:
|
||||
test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
networks:
|
||||
- tipi_main_network
|
||||
|
||||
affine-postgres:
|
||||
image: postgres
|
||||
container_name: affinepostgres
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: [ "CMD-SHELL", "pg_isready -U affine" ]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
environment:
|
||||
POSTGRES_USER: tipi
|
||||
POSTGRES_PASSWORD: ${AFFINE_POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: affine
|
||||
networks:
|
||||
- tipi_main_network
|
23
apps/affine/metadata/description.md
Executable file
23
apps/affine/metadata/description.md
Executable file
|
@ -0,0 +1,23 @@
|
|||
## AFFiNE
|
||||
|
||||
[AFFiNE](https://affine.pro) is an open-source, all-in-one workspace and an operating system for all the building blocks that assemble your knowledge base and much more -- wiki, knowledge management, presentation and digital assets. It's a better alternative to Notion and Miro.
|
||||
|
||||
![](https://cdn.affine.pro/Github_hero_image1.png)
|
||||
|
||||
### Features
|
||||
|
||||
**A true canvas for blocks in any form. Docs and whiteboard are now fully merged.**
|
||||
|
||||
- Many editor apps claim to be a canvas for productivity, but AFFiNE is one of the very few which allows you to put any building block on an edgeless canvas -- rich text, sticky notes, any embedded web pages, multi-view databases, linked pages, shapes and even slides. We have it all.
|
||||
|
||||
**Multimodal AI partner ready to kick in any work**
|
||||
|
||||
- Write up professional work report? Turn an outline into expressive and presentable slides? Summary an article into a well-structured mindmap? Sorting your job plan and backlog for tasks? Or... draw and code prototype apps and web pages directly all with one prompt? With you, AFFiNE AI pushes your creativity to the edge of your imagination.
|
||||
|
||||
**Local-first & Real-time collaborative**
|
||||
|
||||
- We love the idea of local-first that you always own your data on your disk, in spite of the cloud. Furthermore, AFFiNE supports real-time sync and collaborations on web and cross-platform clients.
|
||||
|
||||
**Self-host & Shape your own AFFiNE**
|
||||
|
||||
- You have the freedom to manage, self-host, fork and build your own AFFiNE. Plugin community and third-party blocks are coming soon. More tractions on [Blocksuite](https://blocksuite.io). Check there to learn how to [self-host AFFiNE](https://docs.affine.pro/docs/self-host-affine).
|
BIN
apps/affine/metadata/logo.jpg
Normal file
BIN
apps/affine/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 48 KiB |
|
@ -5,11 +5,9 @@
|
|||
"exposable": true,
|
||||
"port": 8015,
|
||||
"id": "archivebox",
|
||||
"tipi_version": 2,
|
||||
"version": "0.7.4",
|
||||
"categories": [
|
||||
"media"
|
||||
],
|
||||
"tipi_version": 3,
|
||||
"version": "0.7.2",
|
||||
"categories": ["media"],
|
||||
"description": "ArchiveBox is a powerful, self-hosted internet archiving solution to collect, save, and view websites offline.",
|
||||
"short_desc": "Open source self-hosted web archiving.",
|
||||
"author": "archivebox",
|
||||
|
@ -33,8 +31,5 @@
|
|||
"env_variable": "ARCHIVEBOX_PASSWORD"
|
||||
}
|
||||
],
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
"supported_architectures": ["arm64", "amd64"]
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
services:
|
||||
archivebox:
|
||||
image: archivebox/archivebox:0.7.4
|
||||
image: archivebox/archivebox:0.7.2
|
||||
restart: unless-stopped
|
||||
container_name: archivebox
|
||||
command: server --quick-init 0.0.0.0:8015
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 13378,
|
||||
"id": "audiobookshelf",
|
||||
"tipi_version": 13,
|
||||
"version": "2.8.1",
|
||||
"tipi_version": 14,
|
||||
"version": "2.9.0",
|
||||
"categories": [
|
||||
"books",
|
||||
"media"
|
||||
|
|
|
@ -2,7 +2,7 @@ version: '3.7'
|
|||
services:
|
||||
audiobookshelf:
|
||||
container_name: audiobookshelf
|
||||
image: ghcr.io/advplyr/audiobookshelf:2.8.1
|
||||
image: ghcr.io/advplyr/audiobookshelf:2.9.0
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- ${APP_PORT}:80
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "authentik",
|
||||
"tipi_version": 11,
|
||||
"version": "2024.2.3",
|
||||
"tipi_version": 13,
|
||||
"version": "2024.4.1",
|
||||
"https": true,
|
||||
"categories": [
|
||||
"development"
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.7"
|
|||
|
||||
services:
|
||||
authentik:
|
||||
image: ghcr.io/goauthentik/server:2024.2.3
|
||||
image: ghcr.io/goauthentik/server:2024.4.1
|
||||
restart: unless-stopped
|
||||
command: server
|
||||
container_name: authentik
|
||||
|
@ -49,7 +49,7 @@ services:
|
|||
traefik.http.routers.authentik-local.service: authentik
|
||||
traefik.http.routers.authentik-local.tls: true
|
||||
authentik-worker:
|
||||
image: ghcr.io/goauthentik/server:2024.2.3
|
||||
image: ghcr.io/goauthentik/server:2024.4.1
|
||||
restart: unless-stopped
|
||||
command: worker
|
||||
container_name: authentik-worker
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
"port": 8333,
|
||||
"id": "bitcoind",
|
||||
"description": "Bitcoin core node",
|
||||
"tipi_version": 1,
|
||||
"version": "26.0",
|
||||
"tipi_version": 2,
|
||||
"version": "27.0",
|
||||
"categories": [
|
||||
"finance"
|
||||
],
|
||||
|
@ -53,6 +53,57 @@
|
|||
"hint": "Maintain at most N connections to peers. Leave empty for default 125.",
|
||||
"required": false,
|
||||
"env_variable": "BITCOIND_MAXPEERS"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Enable txindex",
|
||||
"hint": "Enabled by default",
|
||||
"required": false,
|
||||
"env_variable": "BITCOIND_TXINDEX",
|
||||
"options": [
|
||||
{
|
||||
"label": "Yes",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"label": "No",
|
||||
"value": "0"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Enable peer bloom filters",
|
||||
"hint": "Enabled by default",
|
||||
"required": false,
|
||||
"env_variable": "BITCOIND_BLOOM_FILTERS",
|
||||
"options": [
|
||||
{
|
||||
"label": "Yes",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"label": "No",
|
||||
"value": "0"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Enable block filter index",
|
||||
"hint": "Enabled by default",
|
||||
"required": false,
|
||||
"env_variable": "BITCOIND_BLOCK_FILTER",
|
||||
"options": [
|
||||
{
|
||||
"label": "Yes",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"label": "No",
|
||||
"value": "0"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"supported_architectures": [
|
||||
|
|
|
@ -2,7 +2,7 @@ version: '3.9'
|
|||
services:
|
||||
bitcoind:
|
||||
container_name: bitcoind
|
||||
image: lncm/bitcoind:v26.0
|
||||
image: lncm/bitcoind:v27.0
|
||||
user: 0:0
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data:/root/.bitcoin
|
||||
|
@ -18,6 +18,10 @@ services:
|
|||
--maxmempool=${BITCOIND_MAX_MEMPOOL:-300}
|
||||
--listen=${BITCOIND_LISTEN:-0}
|
||||
--maxconnections=${BITCOIND_MAXPEERS:-125}
|
||||
--txindex=${BITCOIND_TXINDEX:-1}
|
||||
--peerbloomfilters=${BITCOIND_BLOOM_FILTERS:-1}
|
||||
--blockfilterindex=${BITCOIND_BLOCK_FILTER:-1}
|
||||
--peerblockfilters=${BITCOIND_BLOCK_FILTER:-1}
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "bitmagnet",
|
||||
"tipi_version": 17,
|
||||
"version": "0.7.14",
|
||||
"tipi_version": 18,
|
||||
"version": "0.8.0",
|
||||
"categories": [
|
||||
"media"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.7"
|
|||
|
||||
services:
|
||||
bitmagnet:
|
||||
image: ghcr.io/bitmagnet-io/bitmagnet:0.7.14
|
||||
image: ghcr.io/bitmagnet-io/bitmagnet:v0.8.0
|
||||
restart: unless-stopped
|
||||
command:
|
||||
- worker
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "budibase",
|
||||
"tipi_version": 126,
|
||||
"version": "2.23.10",
|
||||
"tipi_version": 130,
|
||||
"version": "2.24.1",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: '3.7'
|
||||
services:
|
||||
budibase:
|
||||
image: budibase/budibase:2.23.10
|
||||
image: budibase/budibase:2.24.1
|
||||
restart: unless-stopped
|
||||
container_name: budibase
|
||||
ports:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"id": "changedetection",
|
||||
"description": "The best and simplest free open source website change detection, restock monitor and notification service.",
|
||||
"tipi_version": 18,
|
||||
"version": "0.45.20",
|
||||
"tipi_version": 20,
|
||||
"version": "0.45.22",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
changedetection:
|
||||
image: ghcr.io/dgtlmoon/changedetection.io:0.45.20
|
||||
image: ghcr.io/dgtlmoon/changedetection.io:0.45.22
|
||||
container_name: changedetection
|
||||
hostname: changedetection
|
||||
volumes:
|
||||
|
|
23
apps/cheshire-cat-ai/config.json
Normal file
23
apps/cheshire-cat-ai/config.json
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"name": "Cheshire Cat AI",
|
||||
"available": true,
|
||||
"port": 1865,
|
||||
"exposable": true,
|
||||
"id": "cheshire-cat-ai",
|
||||
"description": "The Cheshire Cat is an open-source, hackable and production-ready framework that allows developing intelligent personal AI assistant agents on top of Large Language Models (LLM).",
|
||||
"tipi_version": 3,
|
||||
"version": "1.6.1",
|
||||
"categories": [
|
||||
"ai"
|
||||
],
|
||||
"short_desc": "A production-ready AI framework to develop AI agents.",
|
||||
"author": "pieroit",
|
||||
"source": "https://github.com/cheshire-cat-ai/core",
|
||||
"website": "https://cheshirecat.ai",
|
||||
"form_fields": [],
|
||||
"url_suffix": "/admin",
|
||||
"supported_architectures": [
|
||||
"amd64",
|
||||
"arm64"
|
||||
]
|
||||
}
|
45
apps/cheshire-cat-ai/docker-compose.yml
Normal file
45
apps/cheshire-cat-ai/docker-compose.yml
Normal file
|
@ -0,0 +1,45 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
cheshire-cat-ai:
|
||||
networks:
|
||||
- tipi_main_network
|
||||
image: ghcr.io/cheshire-cat-ai/core:1.6.1
|
||||
container_name: cheshire-cat-ai
|
||||
ports:
|
||||
- ${APP_PORT}:80
|
||||
environment:
|
||||
- PYTHONUNBUFFERED=1
|
||||
- WATCHFILES_FORCE_POLLING=true
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/static:/app/cat/static
|
||||
- ${APP_DATA_DIR}/data/plugins:/app/cat/plugins
|
||||
- ${APP_DATA_DIR}/data/data:/app/cat/data
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.cheshire-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.cheshire.loadbalancer.server.port: 1865
|
||||
# Web
|
||||
traefik.http.routers.cheshire-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.cheshire-insecure.entrypoints: web
|
||||
traefik.http.routers.cheshire-insecure.service: cheshire-cat-ai
|
||||
traefik.http.routers.cheshire-insecure.middlewares: cheshire-cat-ai-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.cheshire.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.cheshire.entrypoints: websecure
|
||||
traefik.http.routers.cheshire.service: cheshire-cat-ai
|
||||
traefik.http.routers.cheshire.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.cheshire-local-insecure.rule: Host(`cheshire-cat-ai.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.cheshire-local-insecure.entrypoints: web
|
||||
traefik.http.routers.cheshire-local-insecure.service: cheshire-cat-ai
|
||||
traefik.http.routers.cheshire-local-insecure.middlewares: cheshire-cat-ai-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.cheshire-local.rule: Host(`cheshire-cat-ai.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.cheshire-local.entrypoints: websecure
|
||||
traefik.http.routers.cheshire-local.service: cheshire-cat-ai
|
||||
traefik.http.routers.cheshire-local.tls: true
|
||||
networks:
|
||||
tipi-main-network:
|
||||
driver: bridge
|
78
apps/cheshire-cat-ai/metadata/description.md
Normal file
78
apps/cheshire-cat-ai/metadata/description.md
Normal file
|
@ -0,0 +1,78 @@
|
|||
<a name="readme-top"></a>
|
||||
|
||||
<br />
|
||||
<div align="center">
|
||||
<h2>Cheshire-Cat (Stregatto)</h2>
|
||||
<br/>
|
||||
<a href="https://github.com/cheshire-cat-ai/core">
|
||||
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/cheshire-cat-ai/core?style=social">
|
||||
</a>
|
||||
<a href="https://discord.gg/bHX5sNFCYU">
|
||||
<img src="https://img.shields.io/discord/1092359754917089350?logo=discord"
|
||||
alt="chat on Discord"></a>
|
||||
<a href="https://github.com/cheshire-cat-ai/core/issues">
|
||||
<img alt="GitHub issues" src="https://img.shields.io/github/issues/cheshire-cat-ai/core">
|
||||
</a>
|
||||
<a href="https://github.com/cheshire-cat-ai/core/tags">
|
||||
<img alt="GitHub tag (with filter)" src="https://img.shields.io/github/v/tag/cheshire-cat-ai/core">
|
||||
</a>
|
||||
<img alt="GitHub top language" src="https://img.shields.io/github/languages/top/cheshire-cat-ai/core">
|
||||
|
||||
<p align="center">
|
||||
<img align="center" src=https://cheshire-cat-ai.github.io/docs/assets/img/quickstart/write-hook/marvin-sockseller.png alt="Wikipedia picture of the Cheshire Cat">
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
## Production-ready AI assistant framework
|
||||
|
||||
The Cheshire Cat is a framework to build custom AIs on top of any language model.
|
||||
If you have ever used systems like WordPress or Django to build web apps, imagine the Cat as a similar tool, but specific for AI.
|
||||
|
||||
## Docs and Resources
|
||||
|
||||
- [Official Documentation](https://cheshire-cat-ai.github.io/docs/)
|
||||
- [Discord Server](https://discord.gg/bHX5sNFCYU)
|
||||
- [Website](https://cheshirecat.ai/)
|
||||
- [YouTube tutorial - How to install](https://youtu.be/Rvx19TZBCrw)
|
||||
- [Tutorial - Write your first plugin](https://cheshirecat.ai/write-your-first-plugin/)
|
||||
|
||||
## Why using the Cat
|
||||
|
||||
- ⚡️ API first, so you get a microservice to easily add a conversational layer to your app
|
||||
- 🐘 Remembers conversations and documents and uses them in conversation
|
||||
- 🚀 Extensible via plugins (public plugin registry + private plugins allowed)
|
||||
- 🎚 Event callbacks, function calling (tools), conversational forms
|
||||
- 🏛 Easy to use admin panel (chat, visualize memory and plugins, adjust settings)
|
||||
- 🌍 Supports any language model (works with OpenAI, Google, Ollama, HuggingFace, custom services)
|
||||
- 🐋 Production-ready - 100% [dockerized](https://docs.docker.com/get-docker/)
|
||||
- 👩👧👦 Active [Discord community](https://discord.gg/bHX5sNFCYU) and easy to understand [docs](https://cheshire-cat-ai.github.io/docs/)
|
||||
|
||||
We are committed to openness, privacy and creativity, we want to bring AI to the long tail. To learn more about our vision and values, read the [Code of Ethics](https://cheshirecat.ai/code-of-ethics/).
|
||||
|
||||
|
||||
## Roadmap & Contributing
|
||||
|
||||
The Detailed roadmap is [here](https://github.com/cheshire-cat-ai/core/blob/main/readme/ROADMAP.md).
|
||||
Send your pull request to the `develop` branch. Here is a [full guide to contributing](https://github.com/cheshire-cat-ai/core/blob/main/readme/CONTRIBUTING.md).
|
||||
|
||||
Join our [community on Discord](https://discord.gg/bHX5sNFCYU) and give the project a star ⭐!
|
||||
Thanks again!🙏
|
||||
|
||||
## Which way to go?
|
||||
|
||||
<p align="right">(<a href="#readme-top">back to top</a>)</p>
|
||||
|
||||
<p align="center">
|
||||
<img align="center" src=https://raw.githubusercontent.com/cheshire-cat-ai/core/main/readme/cheshire-cat.jpeg width=400px alt="Wikipedia picture of the Cheshire Cat">
|
||||
</p>
|
||||
|
||||
```
|
||||
"Would you tell me, please, which way I ought to go from here?"
|
||||
"That depends a good deal on where you want to get to," said the Cat.
|
||||
"I don't much care where--" said Alice.
|
||||
"Then it doesn't matter which way you go," said the Cat.
|
||||
|
||||
(Alice's Adventures in Wonderland - Lewis Carroll)
|
||||
|
||||
```
|
BIN
apps/cheshire-cat-ai/metadata/logo.jpg
Normal file
BIN
apps/cheshire-cat-ai/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": false,
|
||||
"id": "cloudflared",
|
||||
"tipi_version": 9,
|
||||
"version": "2024.4.0",
|
||||
"tipi_version": 10,
|
||||
"version": "2024.4.1",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.9"
|
|||
|
||||
services:
|
||||
cloudflared:
|
||||
image: wisdomsky/cloudflared-web:2024.4.0
|
||||
image: wisdomsky/cloudflared-web:2024.4.1
|
||||
container_name: cloudflared
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
|
|
|
@ -5,9 +5,11 @@
|
|||
"exposable": true,
|
||||
"port": 8101,
|
||||
"id": "codex-docs",
|
||||
"tipi_version": 2,
|
||||
"version": "v2.1",
|
||||
"categories": ["media"],
|
||||
"tipi_version": 3,
|
||||
"version": "2.2",
|
||||
"categories": [
|
||||
"media"
|
||||
],
|
||||
"description": "CodeX Docs is a free docs application. It's based on Editor.js ecosystem which gives all modern opportunities for working with content. You can use it for product documentation, for internal team docs, for personal notes or any other need. ",
|
||||
"short_desc": "Free Docs app powered by Editor.js ecosystem.",
|
||||
"author": "https://docs.codex.so/",
|
||||
|
@ -34,5 +36,7 @@
|
|||
"env_variable": "CODEX_AUTH_SECRET"
|
||||
}
|
||||
],
|
||||
"supported_architectures": ["amd64"]
|
||||
"supported_architectures": [
|
||||
"amd64"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.2"
|
|||
services:
|
||||
codex-docs:
|
||||
container_name: codex-docs
|
||||
image: ghcr.io/codex-team/codex.docs:v2.1
|
||||
image: ghcr.io/codex-team/codex.docs:v2.2
|
||||
ports:
|
||||
- ${APP_PORT}:3000
|
||||
restart: unless-stopped
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": false,
|
||||
"id": "dashy",
|
||||
"tipi_version": 2,
|
||||
"version": "2.1.2",
|
||||
"tipi_version": 3,
|
||||
"version": "3.0.0",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
version: "3"
|
||||
|
||||
services:
|
||||
dashy:
|
||||
container_name: dashy
|
||||
image: ghcr.io/lissy93/dashy:2.1.2
|
||||
image: ghcr.io/lissy93/dashy:3.0.0
|
||||
ports:
|
||||
- ${APP_PORT}:80
|
||||
- ${APP_PORT}:8080
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/dashy/conf.yml:/app/public/conf.yml
|
||||
- ${APP_DATA_DIR}/data/dashy:/app/user-data
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tipi_main_network
|
||||
|
@ -15,7 +13,7 @@ services:
|
|||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.dashy-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.dashy.loadbalancer.server.port: 80
|
||||
traefik.http.services.dashy.loadbalancer.server.port: 8080
|
||||
# Web
|
||||
traefik.http.routers.dashy-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.dashy-insecure.entrypoints: web
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8013,
|
||||
"id": "dozzle",
|
||||
"tipi_version": 22,
|
||||
"version": "6.5.1",
|
||||
"tipi_version": 23,
|
||||
"version": "6.5.2",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
services:
|
||||
dozzle:
|
||||
container_name: dozzle
|
||||
image: amir20/dozzle:v6.5.1
|
||||
image: amir20/dozzle:v6.5.2
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
"url_suffix": "?offline=1",
|
||||
"id": "drawio",
|
||||
"description": "draw.io is a JavaScript, client-side editor for general diagramming and whiteboarding.",
|
||||
"tipi_version": 38,
|
||||
"version": "24.2.7",
|
||||
"tipi_version": 39,
|
||||
"version": "24.3.1",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
drawio:
|
||||
image: jgraph/drawio:24.2.7
|
||||
image: jgraph/drawio:24.3.1
|
||||
ports:
|
||||
- ${APP_PORT}:8080
|
||||
container_name: drawio
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
"no_gui": true,
|
||||
"port": 1999,
|
||||
"id": "email-oauth2-proxy",
|
||||
"tipi_version": 6,
|
||||
"version": "2024.03.26",
|
||||
"tipi_version": 7,
|
||||
"version": "2024.04.24",
|
||||
"categories": [
|
||||
"utilities",
|
||||
"security"
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.9"
|
|||
services:
|
||||
email-oauth2-proxy:
|
||||
container_name: email-oauth2-proxy
|
||||
image: ghcr.io/blacktirion/email-oauth2-proxy-docker:2024.03.26
|
||||
image: ghcr.io/blacktirion/email-oauth2-proxy-docker:2024.04.24
|
||||
ports:
|
||||
- ${APP_PORT}:80
|
||||
restart: unless-stopped
|
||||
|
|
|
@ -5,14 +5,19 @@
|
|||
"exposable": true,
|
||||
"port": 8096,
|
||||
"id": "filebrowser",
|
||||
"tipi_version": 3,
|
||||
"tipi_version": 4,
|
||||
"version": "s6",
|
||||
"categories": ["utilities"],
|
||||
"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",
|
||||
"form_fields": [],
|
||||
"supported_architectures": ["arm64", "amd64"]
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"port": 80,
|
||||
"baseURL": "",
|
||||
"address": "",
|
||||
"log": "stdout",
|
||||
"database": "/database/filebrowser.db",
|
||||
"root": "/srv"
|
||||
}
|
|
@ -10,7 +10,9 @@ services:
|
|||
- ${ROOT_FOLDER_HOST}/media:/srv/media
|
||||
- ${APP_DATA_DIR}/data/general:/srv/general
|
||||
- ${APP_DATA_DIR}/data/db:/database
|
||||
- ${APP_DATA_DIR}/data/config:/config
|
||||
environment:
|
||||
- PUID=0
|
||||
- PGID=0
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "fireshare",
|
||||
"tipi_version": 12,
|
||||
"version": "1.2.19",
|
||||
"tipi_version": 13,
|
||||
"version": "1.2.20",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3"
|
|||
services:
|
||||
fireshare:
|
||||
container_name: fireshare
|
||||
image: shaneisrael/fireshare:v1.2.19
|
||||
image: shaneisrael/fireshare:v1.2.20
|
||||
ports:
|
||||
- ${APP_PORT}:80
|
||||
volumes:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"id": "flatnotes",
|
||||
"port": 8137,
|
||||
"tipi_version": 20,
|
||||
"version": "4.0.3",
|
||||
"tipi_version": 21,
|
||||
"version": "4.0.4",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3"
|
|||
services:
|
||||
flatnotes:
|
||||
container_name: flatnotes
|
||||
image: dullage/flatnotes:v4.0.3
|
||||
image: dullage/flatnotes:v4.0.4
|
||||
environment:
|
||||
FLATNOTES_AUTH_TYPE: ${FLATNOTES_AUTH_TYPE}
|
||||
FLATNOTES_USERNAME: ${FLATNOTES_USERNAME}
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8009,
|
||||
"id": "flowise",
|
||||
"tipi_version": 11,
|
||||
"version": "1.6.5",
|
||||
"tipi_version": 12,
|
||||
"version": "1.6.6",
|
||||
"categories": [
|
||||
"ai",
|
||||
"automation"
|
||||
|
|
|
@ -2,7 +2,7 @@ version: '3.7'
|
|||
|
||||
services:
|
||||
flowise:
|
||||
image: flowiseai/flowise:1.6.5
|
||||
image: flowiseai/flowise:1.6.6
|
||||
restart: unless-stopped
|
||||
command: /bin/sh -c "sleep 3; flowise start"
|
||||
container_name: flowise
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "ghostfolio",
|
||||
"tipi_version": 76,
|
||||
"version": "2.75.1",
|
||||
"tipi_version": 81,
|
||||
"version": "2.79.0",
|
||||
"categories": [
|
||||
"finance"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.9"
|
|||
services:
|
||||
ghostfolio:
|
||||
container_name: ghostfolio
|
||||
image: ghostfolio/ghostfolio:2.75.1
|
||||
image: ghostfolio/ghostfolio:2.79.0
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- ${APP_PORT}:3333
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": false,
|
||||
"id": "gladys",
|
||||
"tipi_version": 32,
|
||||
"version": "4.38.4",
|
||||
"tipi_version": 34,
|
||||
"version": "4.40.0",
|
||||
"categories": [
|
||||
"automation"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: '3'
|
|||
services:
|
||||
gladys:
|
||||
container_name: gladys
|
||||
image: gladysassistant/gladys:v4.38.4
|
||||
image: gladysassistant/gladys:v4.40.0
|
||||
privileged: true
|
||||
restart: on-failure
|
||||
stop_grace_period: 1m
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8092,
|
||||
"id": "halo",
|
||||
"tipi_version": 24,
|
||||
"version": "2.14.0",
|
||||
"tipi_version": 26,
|
||||
"version": "2.15.0",
|
||||
"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.14.0
|
||||
image: halohub/halo:2.15.0
|
||||
container_name: halo
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "homeassistant-1",
|
||||
"tipi_version": 12,
|
||||
"version": "2024.4.3",
|
||||
"tipi_version": 15,
|
||||
"version": "2024.5.1",
|
||||
"categories": [
|
||||
"automation"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: '3'
|
|||
|
||||
services:
|
||||
homeassistant-1:
|
||||
image: ghcr.io/home-assistant/home-assistant:2024.4.3
|
||||
image: ghcr.io/home-assistant/home-assistant:2024.5.1
|
||||
container_name: homeassistant-1
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"port": 8756,
|
||||
"tipi_version": 10,
|
||||
"version": "0.8.12",
|
||||
"tipi_version": 11,
|
||||
"version": "0.8.13",
|
||||
"id": "homepage",
|
||||
"categories": [
|
||||
"utilities"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.9"
|
||||
services:
|
||||
homepage:
|
||||
image: ghcr.io/gethomepage/homepage:v0.8.12
|
||||
image: ghcr.io/gethomepage/homepage:v0.8.13
|
||||
container_name: homepage
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8128,
|
||||
"id": "immich",
|
||||
"tipi_version": 86,
|
||||
"version": "1.102.3",
|
||||
"tipi_version": 88,
|
||||
"version": "1.103.1",
|
||||
"categories": [
|
||||
"data",
|
||||
"photography"
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.7"
|
|||
services:
|
||||
immich:
|
||||
container_name: immich
|
||||
image: ghcr.io/immich-app/immich-server:v1.102.3
|
||||
image: ghcr.io/immich-app/immich-server:v1.103.1
|
||||
command: ["start-server.sh"]
|
||||
volumes:
|
||||
- ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
|
||||
|
@ -52,7 +52,7 @@ services:
|
|||
|
||||
immich-microservices:
|
||||
container_name: immich-microservices
|
||||
image: ghcr.io/immich-app/immich-server:v1.102.3
|
||||
image: ghcr.io/immich-app/immich-server:v1.103.1
|
||||
command: ["start-microservices.sh"]
|
||||
volumes:
|
||||
- ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
|
||||
|
@ -74,7 +74,7 @@ services:
|
|||
|
||||
immich-machine-learning:
|
||||
container_name: immich-machine-learning
|
||||
image: ghcr.io/immich-app/immich-machine-learning:v1.102.3
|
||||
image: ghcr.io/immich-app/immich-machine-learning:v1.103.1
|
||||
volumes:
|
||||
- ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
|
||||
- ${APP_DATA_DIR}/data/immich-ml-cache:/cache
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"port": 8095,
|
||||
"id": "invidious",
|
||||
"version": "latest",
|
||||
"tipi_version": 7,
|
||||
"tipi_version": 9,
|
||||
"categories": ["media", "social"],
|
||||
"description": "Invidious is an open source alternative front-end to YouTube.",
|
||||
"short_desc": "An alternative front-end to YouTube",
|
||||
|
|
|
@ -18,14 +18,12 @@ services:
|
|||
port: 5432
|
||||
check_tables: true
|
||||
hmac_key: ${INVIDIOUS_HMAC_KEY}
|
||||
use_innertube_for_captions: true
|
||||
healthcheck:
|
||||
test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/comments/jNQXAC9IVRw || exit 1
|
||||
test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/trending || exit 1
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 2
|
||||
depends_on:
|
||||
invidious-db:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
|
|
|
@ -19,14 +19,12 @@ services:
|
|||
port: 5432
|
||||
check_tables: true
|
||||
hmac_key: ${INVIDIOUS_HMAC_KEY}
|
||||
use_innertube_for_captions: true
|
||||
healthcheck:
|
||||
test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/comments/jNQXAC9IVRw || exit 1
|
||||
test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/trending || exit 1
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 2
|
||||
depends_on:
|
||||
invidious-db:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
|
|
|
@ -42,7 +42,7 @@ services:
|
|||
traefik.http.routers.invoice-ninja-local.tls: true
|
||||
|
||||
invoice-ninja-server:
|
||||
image: invoiceninja/invoiceninja:5.8.50
|
||||
image: invoiceninja/invoiceninja:5.8.53
|
||||
container_name: invoice-ninja-server
|
||||
restart: unless-stopped
|
||||
user: 1500:1500
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"port": 8010,
|
||||
"id": "kanboard",
|
||||
"description": "Kanboard is a free and open source Kanban project management software.",
|
||||
"tipi_version": 9,
|
||||
"version": "1.2.35",
|
||||
"tipi_version": 10,
|
||||
"version": "1.2.36",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.9"
|
|||
services:
|
||||
kanboard:
|
||||
container_name: kanboard
|
||||
image: kanboard/kanboard:v1.2.35
|
||||
image: kanboard/kanboard:v1.2.36
|
||||
environment:
|
||||
- PLUGIN_INSTALLER=${PLUGIN_INSTALLER}
|
||||
ports:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "kavita",
|
||||
"tipi_version": 13,
|
||||
"version": "0.8.0",
|
||||
"tipi_version": 14,
|
||||
"version": "0.8.1",
|
||||
"categories": [
|
||||
"media"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.9"
|
|||
services:
|
||||
kavita:
|
||||
container_name: kavita
|
||||
image: jvmilazz0/kavita:0.8.0
|
||||
image: jvmilazz0/kavita:0.8.1
|
||||
ports:
|
||||
- ${APP_PORT}:5000
|
||||
volumes:
|
||||
|
|
|
@ -5,14 +5,19 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "kiwix-serve",
|
||||
"tipi_version": 1,
|
||||
"version": "3.5.0-2",
|
||||
"categories": ["media"],
|
||||
"tipi_version": 2,
|
||||
"version": "3.7.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": [],
|
||||
"supported_architectures": ["arm64", "amd64"]
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ version: '3.9'
|
|||
services:
|
||||
kiwix-serve:
|
||||
container_name: kiwix-serve
|
||||
image: ghcr.io/kiwix/kiwix-serve:3.5.0-2
|
||||
image: ghcr.io/kiwix/kiwix-serve:3.7.0-2
|
||||
ports:
|
||||
- ${APP_PORT}:8080
|
||||
volumes:
|
||||
|
|
23
apps/komga/config.json
Normal file
23
apps/komga/config.json
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"$schema": "../schema.json",
|
||||
"name": "Komga",
|
||||
"port": 2560,
|
||||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "komga",
|
||||
"tipi_version": 3,
|
||||
"version": "1.11.1",
|
||||
"categories": [
|
||||
"media"
|
||||
],
|
||||
"description": "A media server for your comics, mangas, BDs, magazines and eBooks.",
|
||||
"short_desc": "A media server for your comics, mangas, BDs, magazines and eBooks.",
|
||||
"author": "gotson",
|
||||
"source": "https://github.com/gotson/komga",
|
||||
"website": "https://komga.org/",
|
||||
"form_fields": [],
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
40
apps/komga/docker-compose.yml
Normal file
40
apps/komga/docker-compose.yml
Normal file
|
@ -0,0 +1,40 @@
|
|||
version: "3.9"
|
||||
services:
|
||||
komga:
|
||||
image: ghcr.io/gotson/komga:1.11.1
|
||||
container_name: komga
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/config:/config
|
||||
- ${APP_DATA_DIR}/data/data:/data
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
ports:
|
||||
- ${APP_PORT}:25600
|
||||
networks:
|
||||
- tipi_main_network
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.komga-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.komga.loadbalancer.server.port: 25600
|
||||
# Web
|
||||
traefik.http.routers.komga-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.komga-insecure.entrypoints: web
|
||||
traefik.http.routers.komga-insecure.service: komga
|
||||
traefik.http.routers.komga-insecure.middlewares: komga-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.komga.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.komga.entrypoints: websecure
|
||||
traefik.http.routers.komga.service: komga
|
||||
traefik.http.routers.komga.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.komga-local-insecure.rule: Host(`komga.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.komga-local-insecure.entrypoints: web
|
||||
traefik.http.routers.komga-local-insecure.service: komga
|
||||
traefik.http.routers.komga-local-insecure.middlewares: komga-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.komga-local.rule: Host(`komga.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.komga-local.entrypoints: websecure
|
||||
traefik.http.routers.komga-local.service: komga
|
||||
traefik.http.routers.komga-local.tls: true
|
32
apps/komga/metadata/description.md
Normal file
32
apps/komga/metadata/description.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
## Komga
|
||||
|
||||
Komga is a media server for your comics, mangas, BDs, magazines and eBooks.
|
||||
|
||||
### Chat on [Discord](https://discord.gg/TdRpkDu)
|
||||
|
||||
### Features
|
||||
|
||||
- Browse libraries, series and books via a responsive web UI that works on desktop, tablets and phones
|
||||
- Organize your library with collections and read lists
|
||||
- Edit metadata for your series and books
|
||||
- Import embedded metadata automatically
|
||||
- Webreader with multiple reading modes
|
||||
- Manage multiple users, with per-library access control, age restrictions, and labels restrictions
|
||||
- Offers a REST API, many community tools and scripts can interact with Komga
|
||||
- Download book files, whole series, or read lists
|
||||
- Duplicate files detection
|
||||
- Duplicate pages detection and removal
|
||||
- Import books from outside your libraries directly into your series folder
|
||||
- Import ComicRack `cbl` read lists
|
||||
|
||||
### Documentation
|
||||
|
||||
Head over to our [website](https://komga.org) for more information.
|
||||
|
||||
### Develop in Komga
|
||||
|
||||
Check the [development guidelines](./DEVELOPING.md).
|
||||
|
||||
### Credits
|
||||
|
||||
The Komga icon is based on an icon made by [Freepik](https://www.freepik.com/home) from [Flaticon](https://www.flaticon.com).
|
BIN
apps/komga/metadata/logo.jpg
Normal file
BIN
apps/komga/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 48 KiB |
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8121,
|
||||
"id": "libretranslate",
|
||||
"tipi_version": 17,
|
||||
"version": "1.5.6",
|
||||
"tipi_version": 18,
|
||||
"version": "1.5.7",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.7"
|
|||
services:
|
||||
libretranslate:
|
||||
container_name: libretranslate
|
||||
image: libretranslate/libretranslate:v1.5.6
|
||||
image: libretranslate/libretranslate:v1.5.7
|
||||
dns:
|
||||
- ${DNS_IP}
|
||||
ports:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"id": "lobe-chat",
|
||||
"description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.",
|
||||
"tipi_version": 105,
|
||||
"version": "0.148.4",
|
||||
"tipi_version": 143,
|
||||
"version": "0.154.5",
|
||||
"categories": [
|
||||
"ai"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: '3.9'
|
|||
services:
|
||||
lobe-chat:
|
||||
container_name: lobe-chat
|
||||
image: lobehub/lobe-chat:v0.148.4
|
||||
image: lobehub/lobe-chat:v0.154.5
|
||||
environment:
|
||||
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
||||
- OPENAI_PROXY_URL=${OPEANAI_PROXY_URL}
|
||||
|
|
|
@ -7,9 +7,11 @@
|
|||
"force_expose": true,
|
||||
"no_gui": true,
|
||||
"id": "matrix-conduit",
|
||||
"tipi_version": 4,
|
||||
"version": "0.6.0",
|
||||
"categories": ["social"],
|
||||
"tipi_version": 5,
|
||||
"version": "0.7.0",
|
||||
"categories": [
|
||||
"social"
|
||||
],
|
||||
"description": "Conduit is a fast Matrix homeserver that’s easy to set up and just works. You can install it on a mini-computer like the Raspberry Pi to host Matrix for your family, friends or company.",
|
||||
"short_desc": "Conduit is a simple, fast and reliable chat server written in Rust",
|
||||
"author": "Timo Kösters",
|
||||
|
@ -69,5 +71,8 @@
|
|||
"env_variable": "TURN_SECRET"
|
||||
}
|
||||
],
|
||||
"supported_architectures": ["arm64", "amd64"]
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.7"
|
|||
services:
|
||||
matrix-conduit:
|
||||
container_name: matrix-conduit
|
||||
image: matrixconduit/matrix-conduit:v0.6.0
|
||||
image: matrixconduit/matrix-conduit:v0.7.0
|
||||
environment:
|
||||
CONDUIT_SERVER_NAME: ${APP_DOMAIN}
|
||||
CONDUIT_DATABASE_PATH: /var/lib/matrix-conduit/
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"id": "navidrome",
|
||||
"description": "Modern Music Server and Streamer compatible with Subsonic/Airsonic",
|
||||
"tipi_version": 10,
|
||||
"version": "0.51.1",
|
||||
"tipi_version": 11,
|
||||
"version": "0.52.0",
|
||||
"categories": [
|
||||
"media",
|
||||
"music"
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3"
|
|||
services:
|
||||
navidrome:
|
||||
container_name: navidrome
|
||||
image: deluan/navidrome:0.51.1
|
||||
image: deluan/navidrome:0.52.0
|
||||
ports:
|
||||
- ${APP_PORT}:4533
|
||||
restart: unless-stopped
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "nocodb",
|
||||
"tipi_version": 45,
|
||||
"version": "0.205.1",
|
||||
"tipi_version": 46,
|
||||
"version": "0.207.0",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -12,7 +12,7 @@ services:
|
|||
- NC_AUTH_JWT_SECRET=${NOCODB_JWT_SECRET}
|
||||
- NC_REDIS_URL=redis://default:${NOCODB_REDIS_PASSWORD}@nocodb-redis:6379
|
||||
- DB_QUERY_LIMIT_DEFAULT=${NOCODB_TABLE_ROWS-25}
|
||||
image: "nocodb/nocodb:0.205.1"
|
||||
image: "nocodb/nocodb:0.207.0"
|
||||
ports:
|
||||
- "${APP_PORT}:8080"
|
||||
restart: always
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "onedev",
|
||||
"tipi_version": 87,
|
||||
"version": "10.4.0",
|
||||
"tipi_version": 92,
|
||||
"version": "10.6.0",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.7"
|
|||
|
||||
services:
|
||||
onedev:
|
||||
image: 1dev/server:10.4.0
|
||||
image: 1dev/server:10.6.0
|
||||
container_name: onedev
|
||||
environment:
|
||||
- hibernate_dialect=io.onedev.server.persistence.PostgreSQLDialect
|
||||
|
|
|
@ -75,7 +75,7 @@ services:
|
|||
- tipi_main_network
|
||||
|
||||
gotenberg:
|
||||
image: docker.io/gotenberg/gotenberg:8.4
|
||||
image: docker.io/gotenberg/gotenberg:8.5
|
||||
restart: unless-stopped
|
||||
# The gotenberg chromium route is used to convert .eml files. We do not
|
||||
# want to allow external content like tracking pixels or even javascript.
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "photoprism",
|
||||
"tipi_version": 4,
|
||||
"version": "231021",
|
||||
"tipi_version": 5,
|
||||
"version": "240420",
|
||||
"categories": [
|
||||
"photography"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.7"
|
|||
services:
|
||||
photoprism:
|
||||
# TODO: Special image for arm/v7 is available
|
||||
image: photoprism/photoprism:231021
|
||||
image: photoprism/photoprism:240420
|
||||
container_name: photoprism
|
||||
depends_on:
|
||||
- photoprism-db
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "planka",
|
||||
"tipi_version": 18,
|
||||
"version": "1.16.4",
|
||||
"tipi_version": 21,
|
||||
"version": "1.17.2",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: '3'
|
|||
|
||||
services:
|
||||
planka:
|
||||
image: ghcr.io/plankanban/planka:1.16.4
|
||||
image: ghcr.io/plankanban/planka:1.17.2
|
||||
container_name: planka
|
||||
command: >
|
||||
bash -c
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
"exposable": true,
|
||||
"https": true,
|
||||
"id": "portainer",
|
||||
"tipi_version": 20,
|
||||
"version": "2.20.1-alpine",
|
||||
"tipi_version": 21,
|
||||
"version": "2.20.2-alpine",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.7"
|
|||
|
||||
services:
|
||||
portainer:
|
||||
image: portainer/portainer-ce:2.20.1-alpine
|
||||
image: portainer/portainer-ce:2.20.2-alpine
|
||||
container_name: portainer
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8122,
|
||||
"id": "privatebin",
|
||||
"tipi_version": 8,
|
||||
"version": "1.7.1",
|
||||
"tipi_version": 9,
|
||||
"version": "1.7.2",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
privatebin:
|
||||
image: privatebin/nginx-fpm-alpine:1.7.1
|
||||
image: privatebin/nginx-fpm-alpine:1.7.2
|
||||
container_name: privatebin
|
||||
dns:
|
||||
- ${DNS_IP}
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8088,
|
||||
"id": "radarr",
|
||||
"tipi_version": 12,
|
||||
"version": "5.3.6",
|
||||
"tipi_version": 13,
|
||||
"version": "5.4.6",
|
||||
"categories": [
|
||||
"media",
|
||||
"utilities"
|
||||
|
@ -16,5 +16,8 @@
|
|||
"author": "radarr.video",
|
||||
"source": "https://github.com/Radarr/Radarr",
|
||||
"form_fields": [],
|
||||
"supported_architectures": ["arm64", "amd64"]
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user