Merge branch 'master' into app/Atuin
This commit is contained in:
commit
c382d0d9fd
68
.github/scripts/readme-generator.ts
vendored
Normal file
68
.github/scripts/readme-generator.ts
vendored
Normal file
|
@ -0,0 +1,68 @@
|
|||
import fs from "fs";
|
||||
|
||||
type App = {
|
||||
name: string;
|
||||
description: string;
|
||||
link: string;
|
||||
};
|
||||
|
||||
const getAppsList = async () => {
|
||||
const apps: Record<string, App> = {};
|
||||
// fetch apps from app store repo
|
||||
const res = await fetch(
|
||||
"https://api.github.com/repos/runtipi/runtipi-appstore/contents/apps"
|
||||
);
|
||||
|
||||
const data = await res.json();
|
||||
const appNames = data.map((app) => app.name);
|
||||
|
||||
for (const app of appNames) {
|
||||
const config = await fetch(
|
||||
`https://raw.githubusercontent.com/runtipi/runtipi-appstore/master/apps/${app}/config.json`
|
||||
);
|
||||
const appConfig = await config.text();
|
||||
try {
|
||||
const appConfigJson = JSON.parse(appConfig);
|
||||
|
||||
if (!appConfigJson.deprecated) {
|
||||
apps[app] = {
|
||||
name: appConfigJson.name,
|
||||
description: appConfigJson.short_desc,
|
||||
link: appConfigJson.source,
|
||||
};
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(`Error parsing config for ${app}`);
|
||||
}
|
||||
}
|
||||
|
||||
return { apps };
|
||||
};
|
||||
|
||||
const appToReadme = async (app) => {
|
||||
return `- [${app.name}](${app.link}) - ${app.description}`;
|
||||
};
|
||||
|
||||
const writeToReadme = (appsList) => {
|
||||
const baseReadme = fs.readFileSync(
|
||||
__dirname + "/../../templates/README.md",
|
||||
"utf8"
|
||||
);
|
||||
const finalReadme = baseReadme.replace("<!appsList>", appsList);
|
||||
fs.writeFileSync(__dirname + "/../../README.md", finalReadme);
|
||||
};
|
||||
|
||||
const main = async () => {
|
||||
const apps = await getAppsList();
|
||||
const appKeys = Object.keys(apps["apps"]);
|
||||
let appsList = "";
|
||||
|
||||
for (let i = 0; i < appKeys.length; i++) {
|
||||
const appFinal = await appToReadme(apps["apps"][appKeys[i]]);
|
||||
appsList += i == 0 ? appFinal : "\n" + appFinal;
|
||||
}
|
||||
|
||||
writeToReadme(appsList);
|
||||
};
|
||||
|
||||
main();
|
2
.github/workflows/readme-generator.yml
vendored
2
.github/workflows/readme-generator.yml
vendored
|
@ -14,7 +14,7 @@ jobs:
|
|||
uses: oven-sh/setup-bun@v1
|
||||
|
||||
- name: Generate new README.md file
|
||||
run: bun readme-generator.ts
|
||||
run: bun .github/scripts/readme-generator.ts
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
|
|
18
README.md
18
README.md
|
@ -1,9 +1,9 @@
|
|||
# Tipi App Store ⛺️
|
||||
|
||||
This is the official repository for the Tipi App Store. It contains all the apps that are available for download on [Tipi](https://github.com/meienberger/runtipi).
|
||||
|
||||
This is the official repository for the Tipi App Store. It contains all the apps that are available for download on [Tipi](https://github.com/runtipi/runtipi).
|
||||
|
||||
## Apps available
|
||||
|
||||
|
||||
- [2FAuth](https://github.com/Bubka/2FAuth) - Manage your Two-Factor Authentication codes.
|
||||
- [Activepieces](https://github.com/activepieces/activepieces) - True zapier alternative.
|
||||
- [Actual Budget](https://github.com/actualbudget/actual-server) - Local-first OpenSource Budget tool
|
||||
|
@ -103,7 +103,6 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Mastodon](https://github.com/mastodon/mastodon) - Your self-hosted, globally interconnected microblogging community
|
||||
- [Conduit](https://gitlab.com/famedly/conduit) - Conduit is a simple, fast and reliable chat server written in Rust
|
||||
- [Mealie](https://github.com/hay-kot/mealie) - Mealie is a self-hosted recipe manager and meal planner.
|
||||
- [Mealie v0.5.6](https://github.com/hay-kot/mealie) - Mealie is a self-hosted recipe manager and meal planner.
|
||||
- [Memos](https://github.com/usememos/memos) - Memo hub for knowledge management and collaboration.
|
||||
- [MeTube](https://github.com/alexta69/metube) - youtube-dl web UI
|
||||
- [Mind](https://github.com/Casvt/MIND) - A simple self hosted reminder platform that uses push to send notifications to your device.
|
||||
|
@ -183,7 +182,6 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Tandoor](https://github.com/TandoorRecipes/recipes) - Recipe collection manager.
|
||||
- [Tasks.md](https://github.com/BaldissaraMatheus/Tasks.md) - A self-hosted, file based task management board.
|
||||
- [Tautulli](https://github.com/Tautulli/Tautulli) - Monitoring and tracking tool for Plex Media Server.
|
||||
- [teddit](https://codeberg.org/teddit/teddit) - Alternative Reddit front-end focused on privacy https://teddit.net
|
||||
- [Tooljet](https://github.com/ToolJet/ToolJet) - Alternative to retool to construct CRM dashboard
|
||||
- [Traefik Certs Dumper](https://github.com/kereis/traefik-certs-dumper) - Dumps Let's Encrypt certificates of a specified domain which Traefik stores in acme.json.
|
||||
- [Transmission (VPN)](https://github.com/haugene/docker-transmission-openvpn) - BitTorrent client with VPN support.
|
||||
|
@ -206,11 +204,11 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Your Spotify](https://github.com/Yooooomi/your_spotify) - Self hosted Spotify tracking dashboard.
|
||||
- [ZeroTier](https://github.com/zerotier/ZeroTierOne) - Easy to use zero configuration VPN.
|
||||
- [Zipline](https://github.com/diced/zipline) - A ShareX/file upload server that is easy to use, packed with features, and with an easy setup!
|
||||
|
||||
|
||||
## How to sumbit an app
|
||||
|
||||
|
||||
If you want to see new apps on Tipi you can either:
|
||||
|
||||
- [Open an issue](https://github.com/meienberger/runtipi-appstore/issues) on this repository and members of the community will add it
|
||||
|
||||
- [Create a discussion](https://github.com/runtipi/runtipi-appstore/discussions) on this repository and members of the community will add it
|
||||
- [Join the Discord](https://discord.gg/Bu9qEPnHsc) members of the community will add it.
|
||||
- Fork this repo and create the necessary files for a Tipi app. Follow this [guide](<[https://github.com/meienberger/runtipi/wiki/Adding-your-own-app](https://www.runtipi.io/docs/contributing/adding-a-new-app)>)
|
||||
- Fork this repo and create the necessary files for a Tipi app. Follow this [guide](https://www.runtipi.io/docs/contributing/adding-a-new-app)`
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "budibase",
|
||||
"tipi_version": 70,
|
||||
"version": "2.15.2",
|
||||
"tipi_version": 73,
|
||||
"version": "2.15.5",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: '3.7'
|
||||
services:
|
||||
budibase:
|
||||
image: budibase/budibase:2.15.2
|
||||
image: budibase/budibase:2.15.5
|
||||
restart: unless-stopped
|
||||
container_name: budibase
|
||||
ports:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8138,
|
||||
"id": "code-server",
|
||||
"tipi_version": 20,
|
||||
"version": "4.20.0",
|
||||
"tipi_version": 21,
|
||||
"version": "4.20.1",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
code-server:
|
||||
image: lscr.io/linuxserver/code-server:4.20.0
|
||||
image: lscr.io/linuxserver/code-server:4.20.1
|
||||
container_name: code-server
|
||||
environment:
|
||||
- PUID=1000
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "dashdot",
|
||||
"tipi_version": 14,
|
||||
"version": "5.8.2",
|
||||
"tipi_version": 15,
|
||||
"version": "5.8.3",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.5"
|
||||
services:
|
||||
dashdot:
|
||||
image: mauricenino/dashdot:5.8.2
|
||||
image: mauricenino/dashdot:5.8.3
|
||||
restart: unless-stopped
|
||||
container_name: dashdot
|
||||
privileged: true
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
"no_gui": true,
|
||||
"port": 1999,
|
||||
"id": "email-oauth2-proxy",
|
||||
"tipi_version": 1,
|
||||
"version": "2024.01.04",
|
||||
"tipi_version": 2,
|
||||
"version": "2024.01.22",
|
||||
"categories": [
|
||||
"utilities",
|
||||
"security"
|
||||
|
@ -17,5 +17,8 @@
|
|||
"author": "simonrob",
|
||||
"source": "https://github.com/simonrob/email-oauth2-proxy",
|
||||
"form_fields": [],
|
||||
"supported_architectures": ["arm64", "amd64"]
|
||||
}
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -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.01.04
|
||||
image: ghcr.io/blacktirion/email-oauth2-proxy-docker:2024.01.22
|
||||
ports:
|
||||
- ${APP_PORT}:80
|
||||
restart: unless-stopped
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "emulatorjs",
|
||||
"tipi_version": 6,
|
||||
"version": "1.8.2",
|
||||
"tipi_version": 7,
|
||||
"version": "1.8.3",
|
||||
"categories": [
|
||||
"gaming"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.7"
|
|||
services:
|
||||
emulatorjs:
|
||||
container_name: emulatorjs
|
||||
image: lscr.io/linuxserver/emulatorjs:1.8.2
|
||||
image: lscr.io/linuxserver/emulatorjs:1.8.3
|
||||
ports:
|
||||
- ${APP_PORT}:80
|
||||
- 8165:3000
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "ghost",
|
||||
"tipi_version": 68,
|
||||
"version": "5.76.0",
|
||||
"tipi_version": 69,
|
||||
"version": "5.76.1",
|
||||
"categories": [
|
||||
"social",
|
||||
"media"
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.9"
|
|||
|
||||
services:
|
||||
ghost:
|
||||
image: ghost:5.76.0
|
||||
image: ghost:5.76.1
|
||||
container_name: ghost
|
||||
depends_on:
|
||||
- ghostdb
|
||||
|
|
|
@ -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": 13,
|
||||
"version": "0.120.5",
|
||||
"tipi_version": 14,
|
||||
"version": "0.120.6",
|
||||
"categories": [
|
||||
"ai"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: '3.9'
|
|||
services:
|
||||
lobe-chat:
|
||||
container_name: lobe-chat
|
||||
image: lobehub/lobe-chat:v0.120.5
|
||||
image: lobehub/lobe-chat:v0.120.6
|
||||
environment:
|
||||
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
||||
- OPENAI_PROXY_URL=${OPEANAI_PROXY_URL}
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "wekan",
|
||||
"tipi_version": 2,
|
||||
"version": "7.27",
|
||||
"tipi_version": 3,
|
||||
"version": "7.28",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.7"
|
|||
|
||||
services:
|
||||
wekan:
|
||||
image: ghcr.io/wekan/wekan:v7.27
|
||||
image: ghcr.io/wekan/wekan:v7.28
|
||||
container_name: wekan
|
||||
environment:
|
||||
# https://github.com/wekan/wekan/blob/main/docker-compose.yml
|
||||
|
|
|
@ -1,81 +0,0 @@
|
|||
import fs from "fs";
|
||||
|
||||
type App = {
|
||||
name: string;
|
||||
description: string;
|
||||
link: string;
|
||||
};
|
||||
|
||||
const getAppsList = async () => {
|
||||
const apps: Record<string, App> = {};
|
||||
// fetch apps from app store repo
|
||||
const res = await fetch(
|
||||
"https://api.github.com/repos/runtipi/runtipi-appstore/contents/apps"
|
||||
);
|
||||
|
||||
const data = await res.json();
|
||||
const appNames = data.map((app) => app.name);
|
||||
|
||||
for (const app of appNames) {
|
||||
const config = await fetch(
|
||||
`https://raw.githubusercontent.com/runtipi/runtipi-appstore/master/apps/${app}/config.json`
|
||||
);
|
||||
const appConfig = await config.text();
|
||||
try {
|
||||
const appConfigJson = JSON.parse(appConfig);
|
||||
|
||||
apps[app] = {
|
||||
name: appConfigJson.name,
|
||||
description: appConfigJson.short_desc,
|
||||
link: appConfigJson.source,
|
||||
};
|
||||
} catch (e) {
|
||||
console.error(`Error parsing config for ${app}`);
|
||||
}
|
||||
}
|
||||
|
||||
return { apps };
|
||||
};
|
||||
|
||||
const appToReadme = async (app) => {
|
||||
return `- [${app.name}](${app.link}) - ${app.description}`;
|
||||
};
|
||||
|
||||
const writeToReadme = async (appsList) => {
|
||||
let finalReadme = `# Tipi App Store ⛺️
|
||||
|
||||
This is the official repository for the Tipi App Store. It contains all the apps that are available for download on [Tipi](https://github.com/meienberger/runtipi).
|
||||
|
||||
## Apps available
|
||||
|
||||
${appsList}
|
||||
|
||||
## How to sumbit an app
|
||||
|
||||
If you want to see new apps on Tipi you can either:
|
||||
|
||||
- [Open an issue](https://github.com/meienberger/runtipi-appstore/issues) on this repository and members of the community will add it
|
||||
- [Join the Discord](https://discord.gg/Bu9qEPnHsc) members of the community will add it.
|
||||
- Fork this repo and create the necessary files for a Tipi app. Follow this [guide](<[https://github.com/meienberger/runtipi/wiki/Adding-your-own-app](https://www.runtipi.io/docs/contributing/adding-a-new-app)>)`;
|
||||
|
||||
await fs.writeFileSync("README.md", finalReadme);
|
||||
};
|
||||
|
||||
const main = async () => {
|
||||
const apps = await getAppsList();
|
||||
const appKeys = Object.keys(apps["apps"]);
|
||||
let appsList: string = "";
|
||||
|
||||
for (let i = 0; i < appKeys.length; i++) {
|
||||
const appFinal = await appToReadme(apps["apps"][appKeys[i]]);
|
||||
if (i == 0) {
|
||||
appsList = appsList + appFinal;
|
||||
} else {
|
||||
appsList = appsList + "\n" + appFinal;
|
||||
}
|
||||
}
|
||||
|
||||
await writeToReadme(appsList);
|
||||
};
|
||||
|
||||
main();
|
15
templates/README.md
Normal file
15
templates/README.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
# Tipi App Store ⛺️
|
||||
|
||||
This is the official repository for the Tipi App Store. It contains all the apps that are available for download on [Tipi](https://github.com/runtipi/runtipi).
|
||||
|
||||
## Apps available
|
||||
|
||||
<!appsList>
|
||||
|
||||
## How to sumbit an app
|
||||
|
||||
If you want to see new apps on Tipi you can either:
|
||||
|
||||
- [Create a discussion](https://github.com/runtipi/runtipi-appstore/discussions) on this repository and members of the community will add it
|
||||
- [Join the Discord](https://discord.gg/Bu9qEPnHsc) members of the community will add it.
|
||||
- Fork this repo and create the necessary files for a Tipi app. Follow this [guide](https://www.runtipi.io/docs/contributing/adding-a-new-app)`
|
Loading…
Reference in New Issue
Block a user