Merge branch 'runtipi:master' into app/invoice-ninja

This commit is contained in:
Frédéric Cilia 2024-01-07 15:06:43 +01:00 committed by GitHub
commit 75006fc386
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
70 changed files with 640 additions and 75 deletions

View File

@ -34,6 +34,7 @@ This is the official repository for the Tipi App Store. It contains all the apps
- [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!
- [Email OAuth 2.0 Proxy](https://github.com/simonrob/email-oauth2-proxy) - Transparently add OAuth 2.0 support to IMAP/POP/SMTP client applications, scripts or any other email use-cases that don't support this authentication method.
- [Emulatorjs](https://github.com/EmulatorJS/EmulatorJS) - Self-hosted Javascript emulation for various system.
- [Excalidraw](https://github.com/excalidraw/excalidraw) - Online whiteboard collaboration made easy
- [Filebrowser](https://github.com/filebrowser/filebrowser) - Web File Browser
@ -135,6 +136,7 @@ This is the official repository for the Tipi App Store. It contains all the apps
- [Proxitok](https://github.com/pablouser1/ProxiTok) - Open source alternative frontend for TikTok made using PHP
- [qBittorrent](https://github.com/qbittorrent/qBittorrent) - BitTorrent client
- [Radarr](https://github.com/Radarr/Radarr) - Movie collection manager for Usenet and BitTorrent users
- [Rallly](https://github.com/lukevella/rallly) - Rallly is an open-source scheduling and collaboration tool designed to make organizing events and meetings easier
- [Readarr](https://github.com/Readarr/Readarr) - Book Manager and Automation (Sonarr for Ebooks)
- [Resilio Sync](https://github.com/bt-sync) - Fast, reliable, and simple file sync and share solution
- [RSS](https://github.com/ssddanbrown/rss) - A simple, opinionated, RSS feed aggregator

View File

@ -5,8 +5,8 @@
"exposable": true,
"id": "activepieces",
"description": "Your friendliest open source all-in-one automation tool.",
"tipi_version": 8,
"version": "0.15.0",
"tipi_version": 9,
"version": "0.16.0",
"categories": [
"automation"
],

View File

@ -1,7 +1,7 @@
version: '3.7'
services:
activepieces:
image: activepieces/activepieces:0.15.0
image: activepieces/activepieces:0.16.0
container_name: activepieces
restart: unless-stopped
ports:

View File

@ -3,7 +3,7 @@
"name": "Adguard",
"available": true,
"exposable": true,
"tipi_version": 22,
"tipi_version": 23,
"version": "0.107.43",
"port": 8104,
"id": "adguard",

View File

@ -12,6 +12,8 @@ services:
ports:
- ${NETWORK_INTERFACE:-0.0.0.0}:53:53/tcp
- ${NETWORK_INTERFACE:-0.0.0.0}:53:53/udp
- ${NETWORK_INTERFACE:-0.0.0.0}:853:853/tcp
- ${NETWORK_INTERFACE:-0.0.0.0}:853:853/udp
- ${APP_PORT}:80
labels:
# Main

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "budibase",
"tipi_version": 59,
"version": "2.14.0",
"tipi_version": 62,
"version": "2.14.3",
"categories": [
"development"
],

View File

@ -1,7 +1,7 @@
version: '3.7'
services:
budibase:
image: budibase/budibase:2.14.0
image: budibase/budibase:2.14.3
restart: unless-stopped
container_name: budibase
ports:

View File

@ -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": 8,
"version": "0.45.9",
"tipi_version": 10,
"version": "0.45.12",
"categories": [
"utilities"
],

View File

@ -1,7 +1,7 @@
version: "3.7"
services:
changedetection:
image: ghcr.io/dgtlmoon/changedetection.io:0.45.9
image: ghcr.io/dgtlmoon/changedetection.io:0.45.12
container_name: changedetection
hostname: changedetection
volumes:

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "dashdot",
"tipi_version": 5,
"version": "5.2.3",
"tipi_version": 8,
"version": "5.3.2",
"categories": [
"utilities"
],
@ -16,5 +16,8 @@
"source": "https://github.com/MauriceNino/dashdot",
"website": "https://getdashdot.com/",
"form_fields": [],
"supported_architectures": ["arm64", "amd64"]
"supported_architectures": [
"arm64",
"amd64"
]
}

View File

@ -1,7 +1,7 @@
version: "3.5"
services:
dashdot:
image: mauricenino/dashdot:5.2.3
image: mauricenino/dashdot:5.3.2
restart: unless-stopped
container_name: dashdot
privileged: true

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "dockge",
"tipi_version": 8,
"version": "1.4.0",
"tipi_version": 9,
"version": "1.4.1",
"categories": [
"utilities"
],

View File

@ -1,7 +1,7 @@
version: "3.8"
services:
dockge:
image: louislam/dockge:1.4.0
image: louislam/dockge:1.4.1
container_name: dockge
restart: unless-stopped
ports:

View File

@ -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": 15,
"version": "22.1.16",
"tipi_version": 16,
"version": "22.1.17",
"categories": [
"utilities"
],

View File

@ -1,7 +1,7 @@
version: "3.7"
services:
drawio:
image: jgraph/drawio:22.1.16
image: jgraph/drawio:22.1.17
ports:
- ${APP_PORT}:8080
container_name: drawio

View File

@ -0,0 +1,21 @@
{
"$schema": "../schema.json",
"name": "Email OAuth2 Proxy",
"available": true,
"exposable": false,
"no_gui": true,
"port": 1999,
"id": "email-oauth2-proxy",
"tipi_version": 1,
"version": "2024.01.04",
"categories": [
"utilities",
"security"
],
"description": "Transparently add OAuth 2.0 support to IMAP/POP/SMTP client applications, scripts or any other email use-cases that don't support this authentication method.",
"short_desc": "OAuth Proxy for IMAP/POP/SMTP.",
"author": "simonrob",
"source": "https://github.com/simonrob/email-oauth2-proxy",
"form_fields": [],
"supported_architectures": ["arm64", "amd64"]
}

View File

@ -0,0 +1,21 @@
version: "3.9"
services:
email-oauth2-proxy:
container_name: email-oauth2-proxy
image: ghcr.io/blacktirion/email-oauth2-proxy-docker:2024.01.04
ports:
- ${APP_PORT}:80
restart: unless-stopped
volumes:
- ${APP_DATA_DIR}/data/config:/config:rw
environment:
- DEBUG=true
- CACHE_STORE=/config/credstore.config
- LOGFILE=true
- LOCAL_SERVER_AUTH=true
networks:
- tipi_main_network
labels:
# Main
traefik.enable: false

View File

@ -0,0 +1,22 @@
# Email OAuth 2.0 Proxy<a id="email-oauth-20-proxy"></a>
Transparently add OAuth 2.0 support to IMAP/POP/SMTP client applications, scripts or any other email use-cases that don't support this authentication method.
## Motivation and capabilities<a id="motivation-and-capabilities"></a>
Email services that support IMAP, POP and/or SMTP access are increasingly requiring the use of OAuth 2.0 to authenticate connections, but not all clients support this method.
This tool creates a simple local proxy that intercepts the traditional IMAP/POP/SMTP authentication commands and transparently replaces them with the appropriate SASL (X)OAuth 2.0 commands and credentials.
Your email client can continue to use the `login` or `auth`/`authenticate` options, with no need to make it aware of OAuth's existence.
The proxy works in the background with a menu bar/taskbar helper or as a headless system service, and is compatible with macOS, Windows and Linux.
### Example use-cases<a id="example-use-cases"></a>
- You need to use an Office 365 email account, but don't get on with Outlook.
The email client you like doesn't support OAuth 2.0, which became mandatory [in January 2023](https://techcommunity.microsoft.com/t5/exchange-team-blog/basic-authentication-deprecation-in-exchange-online-september/ba-p/3609437).
- You used to use Gmail via IMAP/POP/SMTP with your raw account credentials (i.e., your real password), but cannot do this now that Google has disabled this method, and don't want to use an [App Password](https://support.google.com/accounts/answer/185833) (or cannot enable this option).
- You have an account already set up in an email client, and you need to switch it to OAuth 2.0 authentication.
You can edit the server details, but the client forces you to delete and re-add the account to enable OAuth 2.0, and you don't want to do this.
- You have made your own script or application that sends or receives email, but it doesn't support OAuth 2.0, and you don't want to have to modify it to implement this.
- You work with multiple services or applications that use IMAP/POP/SMTP, and you don't want to have to set up OAuth 2.0 independently for each one.
In all of these cases and more, this proxy can help.
Follow the instructions here to get started, and please [open an issue](https://github.com/simonrob/email-oauth2-proxy/issues) with any problems or suggestions.
For commercial support or feature requests, please also consider [sponsoring this project](https://github.com/sponsors/simonrob?frequency=one-time).

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "ghost",
"tipi_version": 66,
"version": "5.75.2",
"tipi_version": 67,
"version": "5.75.3",
"categories": [
"social",
"media"

View File

@ -2,7 +2,7 @@ version: "3.9"
services:
ghost:
image: ghost:5.75.2
image: ghost:5.75.3
container_name: ghost
depends_on:
- ghostdb

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "ghostfolio",
"tipi_version": 32,
"version": "2.34.0",
"tipi_version": 33,
"version": "2.35.0",
"categories": [
"finance"
],

View File

@ -3,7 +3,7 @@ version: "3.9"
services:
ghostfolio:
container_name: ghostfolio
image: ghostfolio/ghostfolio:2.34.0
image: ghostfolio/ghostfolio:2.35.0
restart: unless-stopped
ports:
- ${APP_PORT}:3333

View File

@ -5,9 +5,11 @@
"available": true,
"exposable": true,
"id": "hammond",
"tipi_version": 3,
"version": "0.0.21",
"categories": ["utilities"],
"tipi_version": 4,
"version": "0.0.22",
"categories": [
"utilities"
],
"description": "Self hosted vehicle and expense management system. Like Clarkson, but better",
"short_desc": "Self hosted vehicle and expense management system. Like Clarkson, but better",
"author": "Akhilrex, alfhou",
@ -20,5 +22,8 @@
"env_variable": "HAMMOND_TZ"
}
],
"supported_architectures": ["arm64", "amd64"]
"supported_architectures": [
"arm64",
"amd64"
]
}

View File

@ -3,7 +3,7 @@ version: "3.8"
services:
hammond:
container_name: hammond
image: alfhou/hammond:v0.0.21
image: alfhou/hammond:v0.0.22
ports:
- ${APP_PORT}:3000
volumes:

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "homebox",
"tipi_version": 8,
"version": "0.10.2",
"tipi_version": 9,
"version": "0.10.3",
"categories": [
"utilities"
],

View File

@ -2,7 +2,7 @@ version: "3.4"
services:
homebox:
image: ghcr.io/hay-kot/homebox:v0.10.2
image: ghcr.io/hay-kot/homebox:v0.10.3
container_name: homebox
restart: always
environment:

View File

@ -5,8 +5,8 @@
"exposable": true,
"port": 8099,
"id": "joplin",
"tipi_version": 11,
"version": "2.13.5",
"tipi_version": 12,
"version": "2.14.1",
"categories": [
"utilities"
],

View File

@ -3,7 +3,7 @@ version: "3.7"
services:
joplin:
container_name: joplin
image: florider89/joplin-server:2.13.5
image: florider89/joplin-server:2.14.1
restart: unless-stopped
depends_on:
- db-joplin

View File

@ -0,0 +1,48 @@
{
"name": "Lobe Chat",
"available": true,
"port": 3210,
"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": 2,
"version": "0.119.7",
"categories": [
"ai"
],
"short_desc": "LLM chatbot framework",
"author": "https://github.com/lobehub",
"source": "https://github.com/lobehub/lobe-chat",
"website": "https://github.com/lobehub/lobe-chat",
"form_fields": [
{
"type": "text",
"label": "OpenAI API Key",
"required": true,
"env_variable": "OPENAI_API_KEY"
},
{
"type": "url",
"label": "OpenAI API URL",
"required": false,
"env_variable": "OPENAI_PROXY_URL"
},
{
"type": "text",
"label": "Custom Models",
"hint": "Comma separated list of model IDs",
"required": false,
"env_variable": "CUSTOM_MODELS"
},
{
"type": "password",
"label": "Password",
"required": false,
"env_variable": "ACCESS_CODE"
}
],
"supported_architectures": [
"arm64",
"amd64"
]
}

View File

@ -0,0 +1,40 @@
version: '3.9'
services:
lobe-chat:
container_name: lobe-chat
image: lobehub/lobe-chat:v0.119.7
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- OPENAI_PROXY_URL=${OPEANAI_PROXY_URL}
- CUSTOM_MODELS=${CUSTOM_MODELS}
- ACCESS_CODE=${ACCESS_CODE}
ports:
- ${APP_PORT}:3210
restart: unless-stopped
networks:
- tipi_main_network
labels:
# Main
traefik.enable: true
traefik.http.middlewares.lobe-chat-web-redirect.redirectscheme.scheme: https
traefik.http.services.lobe-chat.loadbalancer.server.port: 3210
# Web
traefik.http.routers.lobe-chat-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.lobe-chat-insecure.entrypoints: web
traefik.http.routers.lobe-chat-insecure.service: lobe-chat
traefik.http.routers.lobe-chat-insecure.middlewares: lobe-chat-web-redirect
# Websecure
traefik.http.routers.lobe-chat.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.lobe-chat.entrypoints: websecure
traefik.http.routers.lobe-chat.service: lobe-chat
traefik.http.routers.lobe-chat.tls.certresolver: myresolver
# Local domain
traefik.http.routers.lobe-chat-local-insecure.rule: Host(`lobe-chat.${LOCAL_DOMAIN}`)
traefik.http.routers.lobe-chat-local-insecure.entrypoints: web
traefik.http.routers.lobe-chat-local-insecure.service: lobe-chat
traefik.http.routers.lobe-chat-local-insecure.middlewares: lobe-chat-web-redirect
# Local domain secure
traefik.http.routers.lobe-chat-local.rule: Host(`lobe-chat.${LOCAL_DOMAIN}`)
traefik.http.routers.lobe-chat-local.entrypoints: websecure
traefik.http.routers.lobe-chat-local.service: lobe-chat
traefik.http.routers.lobe-chat-local.tls: true

View File

@ -0,0 +1,13 @@
# Lobe Chat
LobeChat is an open-source, high-performance chatbot framework that supports
speech synthesis, multimodal, and extensible
([Function Call](https://platform.openai.com/docs/guides/function-calling)) plugin system.
## Settings
| Environment Variable | Required | Description | Example |
| -------------------- | -------- | ------------| --------|
| `OPENAI_API_KEY` | Yes | API key for OpenAI. You can generate it on [your OpenAI account page](https://platform.openai.com/api-keys). **Note:** Keep your `OPENAI_API_KEY` secure to prevent unauthorized access. | `sk-xxxxxx...xxxxxx` |
| `OPENAI_PROXY_URL` | No | Override the default OpenAI API base URL for requests. **Caution:** Only use a trusted proxy to ensure the security of your data. | `https://api.chatanywhere.cn/v1`<br/>The default value is<br/>`https://api.openai.com/v1` |
| `ACCESS_CODE` | No | Password to avoid leaking. If you want to have multiple passwords, use a comma separated list. **Security Best Practice:** Avoid storing passwords directly in environment variables. Use a secrets management service to protect sensitive information. | `awCTe)re_r74` or `rtrt_ewee3@09!` or `code1,code2,code3` |
| `CUSTOM_MODELS` | No | Control the model list. Use `+` to add a model, `-` to hide a model, and `model_name=display_name` to customize the display name of a model, separated by commas. | `qwen-7b-chat,+glm-6b,-gpt-3.5-turbo` |

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

@ -5,8 +5,8 @@
"exposable": true,
"port": 5230,
"id": "memos",
"tipi_version": 22,
"version": "0.18.1",
"tipi_version": 23,
"version": "0.18.2",
"categories": [
"utilities"
],

View File

@ -1,7 +1,7 @@
version: "3.7"
services:
memos:
image: neosmemo/memos:0.18.1
image: neosmemo/memos:0.18.2
container_name: memos
volumes:
- ${APP_DATA_DIR}/memos:/var/opt/memos

View File

@ -6,10 +6,13 @@
"short_desc": "Web-based MongoDB admin interface, written with Node.js and Express",
"author": "MongoDB",
"port": 8087,
"categories": ["development", "data"],
"categories": [
"development",
"data"
],
"description": "A web-based MongoDB admin interface written with Node.js, Express, and Bootstrap3",
"tipi_version": 1,
"version": "1.0.0",
"tipi_version": 2,
"version": "1.0.2",
"source": "https://github.com/mongo-express/mongo-express",
"website": "https://www.mongodb.com/",
"form_fields": [
@ -54,5 +57,8 @@
"env_variable": "ME_CONFIG_BASICAUTH_PASSWORD"
}
],
"supported_architectures": ["arm64", "amd64"]
"supported_architectures": [
"arm64",
"amd64"
]
}

View File

@ -2,7 +2,7 @@ version: "3.8"
services:
mongo-express:
container_name: mongo-express
image: mongo-express:1.0.0
image: mongo-express:1.0.2
restart: unless-stopped
ports:
- ${APP_PORT}:8081

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "pairdrop",
"tipi_version": 21,
"version": "1.10.2",
"tipi_version": 23,
"version": "1.10.5",
"categories": [
"media",
"data",

View File

@ -2,7 +2,7 @@ version: "3"
services:
pairdrop:
image: lscr.io/linuxserver/pairdrop:1.10.2
image: lscr.io/linuxserver/pairdrop:1.10.5
container_name: pairdrop
environment:
- PUID=1000

View File

@ -5,8 +5,8 @@
"exposable": true,
"port": 8012,
"id": "paperless-ngx",
"tipi_version": 10,
"version": "2.2.1",
"tipi_version": 12,
"version": "2.3.1",
"categories": [
"utilities"
],

View File

@ -2,7 +2,7 @@ version: '3.7'
services:
paperless-ngx:
container_name: paperless-ngx
image: ghcr.io/paperless-ngx/paperless-ngx:2.2.1
image: ghcr.io/paperless-ngx/paperless-ngx:2.3.1
restart: unless-stopped
depends_on:
- db
@ -75,7 +75,7 @@ services:
- tipi_main_network
gotenberg:
image: docker.io/gotenberg/gotenberg:7.10
image: docker.io/gotenberg/gotenberg:8.0
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.

View File

@ -10,8 +10,8 @@
]
},
"id": "pihole",
"tipi_version": 11,
"version": "2023.11.0",
"tipi_version": 12,
"version": "2024.01.0",
"url_suffix": "/admin",
"categories": [
"network",

View File

@ -3,7 +3,7 @@ version: "3.7"
services:
pihole:
container_name: pihole
image: pihole/pihole:2023.11.0
image: pihole/pihole:2024.01.0
restart: unless-stopped
hostname: pihole
dns:

View File

@ -0,0 +1,17 @@
{
"$schema": "../schema.json",
"name": "Planning Poker",
"port": 8880,
"available": true,
"exposable": true,
"id": "planning-poker",
"tipi_version": 1,
"version": "1.2.1",
"categories": ["development"],
"description": "",
"short_desc": "Online planning poker for scrum master.",
"author": "axeleroy",
"source": "https://github.com/axeleroy/self-host-planning-poker",
"form_fields": [],
"supported_architectures": ["amd64", "arm64"]
}

View File

@ -0,0 +1,43 @@
version: "3.9"
services:
planning-poker:
image: axeleroy/self-host-planning-poker:1.2.1
container_name: planning-poker
restart: unless-stopped
ports:
- ${APP_PORT}:8000
volumes:
- ${APP_DATA_DIR}/data:/data
networks:
- tipi_main_network
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:8000
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
labels:
# Main
traefik.enable: true
traefik.http.middlewares.planning-poker-web-redirect.redirectscheme.scheme: https
traefik.http.services.planning-poker.loadbalancer.server.port: 8000
# Web
traefik.http.routers.planning-poker-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.planning-poker-insecure.entrypoints: web
traefik.http.routers.planning-poker-insecure.service: planning-poker
traefik.http.routers.planning-poker-insecure.middlewares: planning-poker-web-redirect
# Websecure
traefik.http.routers.planning-poker.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.planning-poker.entrypoints: websecure
traefik.http.routers.planning-poker.service: planning-poker
traefik.http.routers.planning-poker.tls.certresolver: myresolver
# Local domain
traefik.http.routers.planning-poker-local-insecure.rule: Host(`planning-poker.${LOCAL_DOMAIN}`)
traefik.http.routers.planning-poker-local-insecure.entrypoints: web
traefik.http.routers.planning-poker-local-insecure.service: planning-poker
traefik.http.routers.planning-poker-local-insecure.middlewares: planning-poker-web-redirect
# Local domain secure
traefik.http.routers.planning-poker-local.rule: Host(`planning-poker.${LOCAL_DOMAIN}`)
traefik.http.routers.planning-poker-local.entrypoints: websecure
traefik.http.routers.planning-poker-local.service: planning-poker
traefik.http.routers.planning-poker-local.tls: true

View File

@ -0,0 +1,12 @@
This application is intended as a simplified and self-hostable alternative to
[Planning Poker Online](https://planningpokeronline.com/).
It features:
* Multiple deck types: Fibonacci, modified Fibonacci, T-Shirt sizes, powers of 2 and trust vote (0 to 5)
* Spectator mode
* Responsive layout
* Vote summary
* Translations _(English, French, German, Italian and Polish. [Contributions welcome!](#im-a-user-and-want-to-contribute-translations))_
It does not have fancy features like issues management, Jira integration or timers.

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

102
apps/rallly/config.json Normal file
View File

@ -0,0 +1,102 @@
{
"$schema": "../schema.json",
"name": "Rallly",
"available": true,
"port": 8208,
"exposable": true,
"id": "rallly",
"description": "Rallly is an open-source scheduling and collaboration tool designed to make organizing events and meetings easier.",
"tipi_version": 1,
"version": "3.4.2",
"categories": ["utilities"],
"short_desc": "Scheduling and collaboration tool",
"author": "lukevella",
"source": "https://github.com/lukevella/rallly",
"website": "https://rallly.co",
"supported_architectures": ["amd64"],
"form_fields": [
{
"type": "random",
"min": 32,
"max": 32,
"label": "Database Password",
"env_variable": "RALLLY_DB_PASSWORD"
},
{
"type": "random",
"min": 32,
"max": 32,
"label": "Secret key for User session",
"env_variable": "RALLLY_SECRET_KEY"
},
{
"type": "email",
"label": "NoReply Email",
"max": 50,
"min": 3,
"required": false,
"env_variable": "RALLLY_NOREPLY_EMAIL"
},
{
"type": "email",
"label": "Support Email",
"max": 50,
"min": 3,
"required": true,
"env_variable": "RALLLY_SUPPORT_EMAIL"
},
{
"type": "text",
"label": "Allowed Emails",
"hint": "Comma separated list of email addresses that are allowed to register and login. You can use wildcard syntax to match a range of email addresses.",
"max": 250,
"min": 3,
"required": false,
"env_variable": "RALLLY_ALLOWED_EMAILS"
},
{
"type": "text",
"label": "SMTP Host",
"max": 50,
"min": 3,
"required": true,
"env_variable": "RALLLY_SMTP_HOST"
},
{
"type": "number",
"label": "SMTP Port",
"max": 6,
"min": 3,
"required": true,
"env_variable": "RALLLY_SMTP_PORT"
},
{
"type": "boolean",
"label": "SMTP Secure",
"required": false,
"env_variable": "RALLLY_SMTP_SECURE"
},
{
"type": "boolean",
"label": "SMTP Enable TLS",
"required": false,
"env_variable": "RALLLY_SMTP_TLS_ENABLED"
},
{
"type": "text",
"label": "SMTP User",
"max": 50,
"min": 3,
"required": false,
"env_variable": "RALLLY_SMTP_USER"
},
{
"type": "password",
"label": "SMTP Password",
"max": 50,
"min": 3,
"required": false,
"env_variable": "RALLLY_SMTP_PWD"
}
]
}

View File

@ -0,0 +1,72 @@
services:
rallly:
container_name: rallly
image: lukevella/rallly:3.4.2
restart: always
depends_on:
rallly_db:
condition: service_healthy
ports:
- ${APP_PORT}:3000
environment:
- DATABASE_URL=postgres://tipi:${RALLLY_DB_PASSWORD}@rallly_db:5432/rallly
- SECRET_PASSWORD=${RALLLY_SECRET_KEY}
- NEXT_PUBLIC_BASE_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
- NOREPLY_EMAIL=${RALLLY_NOREPLY_EMAIL}
- SUPPORT_EMAIL=${RALLLY_SUPPORT_EMAIL}
- SMTP_HOST=${RALLLY_SMTP_HOST}
- SMTP_PORT=${RALLLY_SMTP_PORT}
- SMTP_SECURE=${RALLLY_SMTP_SECURE}
- SMTP_USER=${RALLLY_SMTP_USER}
- SMTP_PWD=${RALLLY_SMTP_PWD}
- SMTP_TLS_ENABLED=${RALLLY_SMTP_TLS_ENABLED}
- ALLOWED_EMAILS=${RALLLY_ALLOWED_EMAILS}
networks:
- tipi_main_network
labels:
# Main
traefik.enable: true
traefik.http.middlewares.rallly-web-redirect.redirectscheme.scheme: https
traefik.http.services.rallly.loadbalancer.server.port:
3000
# Web
traefik.http.routers.rallly-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.rallly-insecure.entrypoints: web
traefik.http.routers.rallly-insecure.service: rallly
traefik.http.routers.rallly-insecure.middlewares:
rallly-web-redirect
# Websecure
traefik.http.routers.rallly.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.rallly.entrypoints: websecure
traefik.http.routers.rallly.service: rallly
traefik.http.routers.rallly.tls.certresolver:
myresolver
# Local domain
traefik.http.routers.rallly-local-insecure.rule: Host(`rallly.${LOCAL_DOMAIN}`)
traefik.http.routers.rallly-local-insecure.entrypoints: web
traefik.http.routers.rallly-local-insecure.service: rallly
traefik.http.routers.rallly-local-insecure.middlewares:
rallly-web-redirect
# Local domain secure
traefik.http.routers.rallly-local.rule: Host(`rallly.${LOCAL_DOMAIN}`)
traefik.http.routers.rallly-local.entrypoints: websecure
traefik.http.routers.rallly-local.service: rallly
traefik.http.routers.rallly-local.tls: true
rallly_db:
container_name: rallly_db
image: postgres:14
restart: always
volumes:
- ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=${RALLLY_DB_PASSWORD}
- POSTGRES_DB=rallly
- POSTGRES_USER=tipi
networks:
- tipi_main_network
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U tipi']
interval: 5s
timeout: 5s
retries: 5

View File

@ -0,0 +1,28 @@
<div align="center">
<img src="https://raw.githubusercontent.com/lukevella/rallly/d36c363f60ffdbc7679bf0ae5c6cd74a48a79b47/assets/images/logo-color.svg" width="200px" alt="Rallly" />
</div>
<br />
<img src="https://raw.githubusercontent.com/lukevella/rallly/main/assets/images/splash.png" alt="Rallly" />
## Description
Schedule group meetings with friends, colleagues and teams. Create meeting polls to find the best date and time to organize an event based on your participants' availability. Save time and avoid back-and-forth emails.
Built with [Next.js](https://github.com/vercel/next.js/), [Prisma](https://github.com/prisma/prisma), [tRPC](https://github.com/trpc/trpc) & [TailwindCSS](https://github.com/tailwindlabs/tailwindcss)
## Runtipi configuration variables
| Label | Tipi ENV name | Type | Description | Required |
|-----------------|-------------------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------|----------|
| NoReply Email | RALLLY_NOREPLY_EMAIL | email | The email address that will be used to send emails. If not set, SUPPORT_EMAIL will be used instead. | NO |
| Support Email | RALLLY_SUPPORT_EMAIL | email | The email of whoever is managing this instance in case a user needs support. | YES |
| Allowed Emails | RALLLY_ALLOWED_EMAILS | text | Comma separated list of email addresses that are allowed to register and login. You can use wildcard syntax to match a range of email addresses. | NO |
| SMTP Host | RALLLY_SMTP_HOST | text | The host address of your SMTP server | YES |
| SMTP Port | RALLLY_SMTP_PORT | number | The port of your SMTP server | YES |
| SMTP Secure | RALLLY_SMTP_SECURE | boolean | Set to "true" if SSL is enabled for your SMTP connection | NO |
| SMTP Enable TLS | RALLLY_SMTP_TLS_ENABLED | boolean | Enable TLS for your SMTP connection | NO |
| SMTP User | RALLLY_SMTP_USER | text | The username (if auth is enabled on your SMTP server) | NO |
| SMTP Password | RALLLY_SMTP_PWD | password | The password (if auth is enabled on your SMTP server) | NO |

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "sabnzbd",
"tipi_version": 8,
"version": "4.1.0",
"tipi_version": 10,
"version": "4.2.1",
"categories": [
"media",
"utilities"
@ -16,5 +16,8 @@
"author": "Sabnzbd",
"source": "https://github.com/sabnzbd/sabnzbd",
"form_fields": [],
"supported_architectures": ["arm64", "amd64"]
"supported_architectures": [
"arm64",
"amd64"
]
}

View File

@ -2,7 +2,7 @@ version: '3'
services:
sabnzbd:
image: lscr.io/linuxserver/sabnzbd:4.1.0
image: lscr.io/linuxserver/sabnzbd:4.2.1
container_name: sabnzbd
ports:
- ${APP_PORT}:8080

View File

@ -12,6 +12,9 @@
"available": {
"type": "boolean"
},
"deprecated": {
"type": "boolean"
},
"exposable": {
"type": "boolean"
},

33
apps/seedsync/config.json Normal file
View File

@ -0,0 +1,33 @@
{
"$schema": "../schema.json",
"name": "SeedSync",
"available": true,
"port": 8800,
"exposable": true,
"id": "seedsync",
"description": "SeedSync is a tool to sync the files on a remote Linux server (like your seedbox, for example). It uses LFTP to transfer files fast!",
"tipi_version": 1,
"version": "0.8.6",
"categories": ["utilities"],
"short_desc": "SeedSync is a tool to sync the files on a remote Linux server.",
"author": "Inderpreet Singh",
"source": "https://github.com/ipsingh06/seedsync",
"website": "https://ipsingh06.github.io/seedsync/",
"supported_architectures": ["amd64", "arm64"],
"form_fields": [
{
"type": "number",
"label": "UID",
"hint": "Ensure any volume directories on the host are owned by the same user you specify",
"placeholder": "1000",
"env_variable": "SEEDSYNC_PUID"
},
{
"type": "number",
"label": "GUID",
"hint": "Ensure any volume directories on the host are owned by the same group you specify",
"placeholder": "1000",
"env_variable": "SEEDSYNC_PGID"
}
]
}

View File

@ -0,0 +1,41 @@
version: '3.9'
services:
seedsync:
container_name: seedsync
image: ipsingh06/seedsync:0.8.6
user: '${SEEDSYNC_PUID:-1000}:${SEEDSYNC_PGID:-1000}'
environment:
- TZ=${TZ}
volumes:
- ${APP_DATA_DIR}/data/config:/config
- ${ROOT_FOLDER_HOST}/media/torrents/complete:/downloads
ports:
- ${APP_PORT}:8800
restart: unless-stopped
networks:
- tipi_main_network
labels:
# Main
traefik.enable: true
traefik.http.middlewares.seedsync-web-redirect.redirectscheme.scheme: https
traefik.http.services.seedsync.loadbalancer.server.port: 8800
# Web
traefik.http.routers.seedsync-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.seedsync-insecure.entrypoints: web
traefik.http.routers.seedsync-insecure.service: seedsync
traefik.http.routers.seedsync-insecure.middlewares: seedsync-web-redirect
# Websecure
traefik.http.routers.seedsync.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.seedsync.entrypoints: websecure
traefik.http.routers.seedsync.service: seedsync
traefik.http.routers.seedsync.tls.certresolver: myresolver
# Local domain
traefik.http.routers.seedsync-local-insecure.rule: Host(`seedsync.${LOCAL_DOMAIN}`)
traefik.http.routers.seedsync-local-insecure.entrypoints: web
traefik.http.routers.seedsync-local-insecure.service: seedsync
traefik.http.routers.seedsync-local-insecure.middlewares: seedsync-web-redirect
# Local domain secure
traefik.http.routers.seedsync-local.rule: Host(`seedsync.${LOCAL_DOMAIN}`)
traefik.http.routers.seedsync-local.entrypoints: websecure
traefik.http.routers.seedsync-local.service: seedsync
traefik.http.routers.seedsync-local.tls: true

View File

@ -0,0 +1,27 @@
# SeedSync - Sync your seedbox. Fast.
SeedSync is a tool to sync the files on a remote Linux server (like your seedbox, for example). It uses LFTP to transfer files fast!
## Features
Built on top of LFTP, the fastest file transfer program ever
Web UI - track and control your transfers from anywhere
Automatically extract your files after sync
Auto-Queue - only sync the files you want based on pattern matching
Delete local and remote files easily
Fully open source!
## How it works
Install SeedSync on a local machine. SeedSync will connect to your remote server and sync files to the local machine as they become available.
You don't need to install anything on the remote server. All you need are the SSH credentials for the remote server.
FAQ: https://ipsingh06.github.io/seedsync/faq/
## Folder Info
| Root Folder | Container Folder |
|---------------------------------------|------------------|
| /runtipi/app-data/seedsync/data/config| /config |
| /runtipi/media/torrents/complete | /downloads |

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -6,8 +6,8 @@
"force_expose": true,
"port": 8207,
"id": "shlink",
"tipi_version": 3,
"version": "3.7.2",
"tipi_version": 4,
"version": "3.7.3",
"categories": [
"utilities"
],

View File

@ -2,7 +2,7 @@ version: "3.9"
services:
shlink:
container_name: shlink
image: ghcr.io/shlinkio/shlink:3.7.2
image: ghcr.io/shlinkio/shlink:3.7.3
environment:
- DEFAULT_DOMAIN=${APP_DOMAIN}
- IS_HTTPS_ENABLED=true

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "stirling-pdf",
"tipi_version": 15,
"version": "0.18.1",
"tipi_version": 16,
"version": "0.19.0",
"categories": [
"data",
"utilities"

View File

@ -1,7 +1,7 @@
version: "3.9"
services:
stirling-pdf:
image: ghcr.io/frooodle/s-pdf:0.18.1
image: frooodle/s-pdf:0.19.0
restart: unless-stopped
container_name: stirling-pdf
privileged: true

View File

@ -2,6 +2,7 @@
"$schema": "../schema.json",
"name": "teddit",
"available": true,
"deprecated": true,
"exposable": true,
"port": 8124,
"id": "teddit",

View File

@ -5,8 +5,8 @@
"exposable": true,
"id": "trilium",
"description": "Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases. ",
"tipi_version": 8,
"version": "0.62.1-beta",
"tipi_version": 9,
"version": "0.63.0-beta",
"categories": [
"utilities"
],

View File

@ -2,7 +2,7 @@ version: '3.7'
services:
trilium:
image: ghcr.io/zadam/trilium:0.62.1-beta
image: ghcr.io/zadam/trilium:0.63.0-beta
container_name: trilium
ports:
- ${APP_PORT}:8080

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "viewtube",
"tipi_version": 6,
"version": "0.14.2",
"tipi_version": 8,
"version": "0.15.1",
"categories": [
"media"
],

View File

@ -4,7 +4,7 @@ services:
viewtube:
restart: unless-stopped
container_name: viewtube
image: mauriceo/viewtube:0.14.2
image: mauriceo/viewtube:0.15.1
depends_on:
- viewtube-mongodb
- viewtube-redis

View File

@ -4,7 +4,7 @@ services:
viewtube:
restart: unless-stopped
container_name: viewtube
image: mauriceo/viewtube:0.14.2
image: mauriceo/viewtube:0.15.1
depends_on:
- viewtube-mongodb
- viewtube-redis

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "zipline",
"tipi_version": 8,
"version": "3.7.7",
"tipi_version": 9,
"version": "3.7.8",
"categories": [
"media"
],

View File

@ -3,7 +3,7 @@ version: '3.7'
services:
zipline:
container_name: zipline
image: ghcr.io/diced/zipline:3.7.7
image: ghcr.io/diced/zipline:3.7.8
ports:
- '${APP_PORT}:3000'
restart: unless-stopped