This commit is contained in:
Jazys 2023-08-30 23:00:10 +02:00
commit fa6a38f4b7
41 changed files with 449 additions and 45 deletions

View File

@ -122,6 +122,7 @@ This is the official repository for the Tipi App Store. It contains all the apps
- [SimpleX SMP](https://github.com/simplex-chat/simplexmq) - A reference implementation of the SimpleX Messaging Protocol for simplex queues over public networks.
- [Sonarr](https://github.com/Sonarr/Sonarr) - TV show manager for Usenet and BitTorrent
- [Sshwifty](https://github.com/nirui/sshwifty/) - Web SSH & Telnet (WebSSH & WebTelnet client)
- [Stirling-PDF](https://github.com/Frooodle/Stirling-PDF) - Locally hosted web application that allows you to perform various operations on PDF files.
- [Syncthing](https://github.com/syncthing/syncthing) - Continuous File Synchronization
- [Tailscale](https://github.com/tailscale/tailscale) - The easiest, most secure way to use WireGuard and 2FA
- [Tandoor](https://github.com/TandoorRecipes/recipes) - Drop your collection of links and notes. Get Tandoor and never look back onto a time without recipe management, storage, sharing and collaborative cooking!

View File

@ -5,8 +5,8 @@
"exposable": true,
"port": 8119,
"id": "bookstack",
"tipi_version": 11,
"version": "23.06.20230703",
"tipi_version": 12,
"version": "23.08.20230830",
"description": "BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information. Default login: admin@admin.com password: password",
"short_desc": "BookStack is a self-hosted platform for organising and storing information.",
"author": "Dan Brown",

View File

@ -1,7 +1,7 @@
version: "3.7"
services:
bookstack:
image: lscr.io/linuxserver/bookstack:23.06.20230703
image: lscr.io/linuxserver/bookstack:23.08.20230830
container_name: bookstack
environment:
- APP_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}

View File

@ -5,12 +5,10 @@ services:
image: filebrowser/filebrowser:s6
ports:
- ${APP_PORT}:80
environment:
- PUID=1000
- PGID=1000
volumes:
- ${ROOT_FOLDER_HOST}/app-data:/srv/app-data
- ${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
networks:

View File

@ -4,7 +4,7 @@ filebrowser provides a file managing interface within a specified directory and
- **username**: admin
- **password**: admin
<br />
## Features
Please refer to our docs at [https://filebrowser.org/features](https://filebrowser.org/features)

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "filestash",
"tipi_version": 2,
"version": "397fd8b",
"tipi_version": 3,
"version": "latest",
"categories": ["utilities"],
"description": "A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze",
"short_desc": "A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze",

View File

@ -2,7 +2,7 @@ version: "2"
services:
filestash:
container_name: filestash
image: machines/filestash:397fd8b
image: machines/filestash:latest
restart: unless-stopped
environment:
- APPLICATION_URL=${APP_DOMAIN}

View File

@ -5,7 +5,7 @@
"available": true,
"exposable": true,
"id": "ghost",
"tipi_version": 41,
"tipi_version": 42,
"version": "5.60.0",
"categories": [
"social",

View File

@ -16,7 +16,7 @@ services:
database__connection__user: tipi
database__connection__password: ${GHOST_DATABASE_PASSWORD}
database__connection__database: ghosttipi
url: http://localhost:${APP_PORT}
url: ${APP_PROTOCOL:-http}://${APP_DOMAIN}
volumes:
- ${APP_DATA_DIR}/content:/var/lib/ghost/content
networks:

View File

@ -1,3 +1,6 @@
# Install Information
After Ghost is installed, head over to https://yourdomain.com/ghost/ to finish setup and create the admin account!
# A painless self-hosted Blog
Ghost is a powerful app for new-media creators to publish, share, and grow a business around their content. It comes with modern tools to build a website, publish content, send newsletters & offer paid subscriptions to members.

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": false,
"id": "gladys",
"tipi_version": 16,
"version": "4.27.0",
"tipi_version": 17,
"version": "4.27.2",
"categories": [
"automation"
],

View File

@ -3,7 +3,7 @@ version: '3'
services:
gladys:
container_name: gladys
image: gladysassistant/gladys:v4.27.0
image: gladysassistant/gladys:v4.27.2
privileged: true
restart: on-failure
stop_grace_period: 1m

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "grafana",
"tipi_version": 11,
"version": "9.5.8",
"tipi_version": 13,
"version": "10.1.0",
"categories": [
"data"
],

View File

@ -3,7 +3,7 @@ version: "3"
services:
grafana:
container_name: grafana
image: grafana/grafana-oss:9.5.8
image: grafana/grafana-oss:10.1.0
ports:
- ${APP_PORT}:3000
volumes:

View File

@ -5,8 +5,8 @@
"exposable": true,
"port": 8128,
"id": "immich",
"tipi_version": 38,
"version": "1.75.2",
"tipi_version": 40,
"version": "1.76.1",
"categories": [
"data",
"photography"

View File

@ -3,7 +3,7 @@ version: "3.7"
services:
immich:
container_name: immich
image: altran1502/immich-proxy:v1.75.2
image: altran1502/immich-proxy:v1.76.1
ports:
- ${APP_PORT}:8080
depends_on:
@ -43,7 +43,7 @@ services:
immich-server:
container_name: immich-server
image: altran1502/immich-server:v1.75.2
image: altran1502/immich-server:v1.76.1
command: ["start-server.sh"]
volumes:
- ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
@ -68,7 +68,7 @@ services:
immich-microservices:
container_name: immich-microservices
image: altran1502/immich-server:v1.75.2
image: altran1502/immich-server:v1.76.1
command: ["start-microservices.sh"]
volumes:
- ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
@ -93,7 +93,7 @@ services:
immich-machine-learning:
container_name: immich-machine-learning
image: altran1502/immich-machine-learning:v1.75.2
image: altran1502/immich-machine-learning:v1.76.1
volumes:
- ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
- ${APP_DATA_DIR}/data/immich-ml-cache:/cache
@ -114,7 +114,7 @@ services:
immich-web:
container_name: immich-web
image: altran1502/immich-web:v1.75.2
image: altran1502/immich-web:v1.76.1
restart: unless-stopped
networks:
- tipi_main_network

View File

@ -0,0 +1,30 @@
{
"$schema": "../schema.json",
"name": "Linkwarden",
"port": 8199,
"available": true,
"exposable": true,
"id": "linkwarden",
"tipi_version": 1,
"supported_architectures": ["amd64"],
"version": "v1.0.1",
"categories": ["data"],
"description": "A self-hosted, open-source collaborative bookmark manager to collect, organize and archive webpages.",
"short_desc": "A self-hosted, open-source collaborative bookmark manager",
"author": "Linkwarden",
"source": "https://github.com/linkwarden/linkwarden",
"form_fields": [
{
"type": "random",
"label": "Linkwarden DB Password",
"min": 32,
"env_variable": "LINKWARDEN_DB_PASSWORD"
},
{
"type": "random",
"label": "Linkwarden Nextauth Secret",
"min": 32,
"env_variable": "LINKWARDEN_NEXTAUTH_SECRET"
}
]
}

View File

@ -0,0 +1,57 @@
version: "3.7"
services:
linkwarden:
image: ghcr.io/selfhostedhub/linkwarden:v1.0.1
container_name: linkwarden
environment:
- DATABASE_URL=postgresql://tipi:${LINKWARDEN_DB_PASSWORD}@linkwarden-db:5432/linkwarden
- NEXTAUTH_SECRET=${LINKWARDEN_NEXTAUTH_SECRET}
- NEXTAUTH_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
restart: unless-stopped
volumes:
- ${APP_DATA_DIR}/data/linkwarden:/data/data
ports:
- ${APP_PORT}:3000
depends_on:
- linkwarden-db
networks:
- tipi_main_network
labels:
# Main
traefik.enable: true
traefik.http.middlewares.linkwarden-web-redirect.redirectscheme.scheme: https
traefik.http.services.linkwarden.loadbalancer.server.port: 3000
# Web
traefik.http.routers.linkwarden-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.linkwarden-insecure.entrypoints: web
traefik.http.routers.linkwarden-insecure.service: linkwarden
traefik.http.routers.linkwarden-insecure.middlewares: linkwarden-web-redirect
# Websecure
traefik.http.routers.linkwarden.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.linkwarden.entrypoints: websecure
traefik.http.routers.linkwarden.service: linkwarden
traefik.http.routers.linkwarden.tls.certresolver: myresolver
# Local domain
traefik.http.routers.linkwarden-local-insecure.rule: Host(`linkwarden.${LOCAL_DOMAIN}`)
traefik.http.routers.linkwarden-local-insecure.entrypoints: web
traefik.http.routers.linkwarden-local-insecure.service: linkwarden
traefik.http.routers.linkwarden-local-insecure.middlewares: linkwarden-web-redirect
# Local domain secure
traefik.http.routers.linkwarden-local.rule: Host(`linkwarden.${LOCAL_DOMAIN}`)
traefik.http.routers.linkwarden-local.entrypoints: websecure
traefik.http.routers.linkwarden-local.service: linkwarden
traefik.http.routers.linkwarden-local.tls: true
linkwarden-db:
container_name: linkwarden-db
image: postgres
restart: unless-stopped
environment:
- POSTGRES_USER=tipi
- POSTGRES_PASSWORD=${LINKWARDEN_DB_PASSWORD}
- POSTGRES_DB=linkwarden
volumes:
- ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data
networks:
- tipi_main_network

View File

@ -0,0 +1,30 @@
# Linkwarden
## [](https://github.com/linkwarden/linkwarden#intro--motivation)Intro & motivation
**Linkwarden is a self-hosted, open-source collaborative bookmark manager to collect, organize and archive webpages.** The objective is to organize useful webpages and articles you find across the web in one place, and since useful webpages can go away (see the inevitability of [Link Rot](https://www.howtogeek.com/786227/what-is-link-rot-and-how-does-it-threaten-the-web/)), Linkwarden also saves a copy of each webpage as a Screenshot and PDF, ensuring accessibility even if the original content is no longer available.
Additionally, Linkwarden is designed with collaboration in mind, sharing links with the public and/or allowing multiple users to work together seamlessly.
[![](https://github.com/linkwarden/linkwarden/raw/main/assets/showcase_image.png)](https://github.com/linkwarden/linkwarden/blob/main/assets/showcase_image.png)
**A bit of a "history"** Linkwarden has been completely rebuilt and redesigned from ground up, so pretty much the only thing it has in common with its predecessor is the idea behind it - bookmark management.
## Features
- ✅ Auto capture a screenshot and a PDF of each link.
- ✅ Organize links by collection, name, description and multiple tags.
- ✅ Collaborate on gathering links in a collection.
- ✅ Customize the permissions of each member.
- ✅ Share your collected links with the world.
- ✅ Search, filter and sort by link details.
- ✅ Responsive design and supports most browsers.
## Screenshots
[![](https://github.com/linkwarden/linkwarden/raw/main/assets/collections.png)](https://github.com/linkwarden/linkwarden/blob/main/assets/collections.png)
[![](https://github.com/linkwarden/linkwarden/raw/main/assets/collaborators.png)](https://github.com/linkwarden/linkwarden/blob/main/assets/collaborators.png)
[![](https://github.com/linkwarden/linkwarden/raw/main/assets/link_details.png)](https://github.com/linkwarden/linkwarden/blob/main/assets/link_details.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "logto",
"tipi_version": 6,
"version": "1.7.0",
"tipi_version": 7,
"version": "1.8.0",
"force_expose": true,
"categories": [
"security"

View File

@ -4,7 +4,7 @@ services:
depends_on:
logto-db:
condition: service_healthy
image: svhd/logto:1.7.0
image: svhd/logto:1.8.0
container_name: logto
entrypoint: ["sh", "-c", "npm run cli db seed -- --swe && npm start"]
ports:

View File

@ -10,7 +10,7 @@
]
},
"id": "pihole",
"tipi_version": 8,
"tipi_version": 9,
"version": "2023.05.2",
"url_suffix": "/admin",
"categories": [

View File

@ -18,12 +18,10 @@ services:
environment:
TZ: ${TZ}
WEBPASSWORD: ${APP_PASSWORD}
FTLCONF_REPLY_ADDR4: 10.21.21.201
cap_add:
- NET_ADMIN
networks:
tipi_main_network:
ipv4_address: 10.21.21.201
- tipi_main_network
labels:
# Main
traefik.enable: true

View File

@ -0,0 +1,20 @@
{
"$schema": "../schema.json",
"name": "Stirling-PDF",
"port": 8234,
"available": true,
"exposable": true,
"id": "stirling-pdf",
"tipi_version": 1,
"version": "0.13.0",
"categories": [
"data",
"utilities"
],
"description": "Locally hosted web application that allows you to perform various operations on PDF files.",
"short_desc": "Powerful locally hosted web based PDF manipulation tool.",
"author": "Frooodle",
"source": "https://github.com/Frooodle/Stirling-PDF/",
"form_fields": []
}

View File

@ -0,0 +1,40 @@
version: "3.7"
services:
stirling-pdf:
image: ghcr.io/frooodle/s-pdf:0.13.0
restart: unless-stopped
container_name: stirling-pdf
privileged: true
ports:
- ${APP_PORT}:8080
volumes:
- ${APP_DATA_DIR}/datatrainingData:/usr/share/tesseract-ocr/4.00/tessdata #Required for extra OCR languages
- ${APP_DATA_DIR}/dataextraConfigs:/configs
- ${APP_DATA_DIR}/datacustomFiles:/customFiles/
networks:
- tipi_main_network
labels:
# Main
traefik.enable: true
traefik.http.middlewares.stirling-pdf-web-redirect.redirectscheme.scheme: https
traefik.http.services.stirling-pdf.loadbalancer.server.port: 8080
# Web
traefik.http.routers.stirling-pdf-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.stirling-pdf-insecure.entrypoints: web
traefik.http.routers.stirling-pdf-insecure.service: stirling-pdf
traefik.http.routers.stirling-pdf-insecure.middlewares: stirling-pdf-web-redirect
# Websecure
traefik.http.routers.stirling-pdf.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.stirling-pdf.entrypoints: websecure
traefik.http.routers.stirling-pdf.service: stirling-pdf
traefik.http.routers.stirling-pdf.tls.certresolver: myresolver
# Local domain
traefik.http.routers.stirling-pdf-local-insecure.rule: Host(`stirling-pdf.${LOCAL_DOMAIN}`)
traefik.http.routers.stirling-pdf-local-insecure.entrypoints: web
traefik.http.routers.stirling-pdf-local-insecure.service: stirling-pdf
traefik.http.routers.stirling-pdf-local-insecure.middlewares: stirling-pdf-web-redirect
# Local domain secure
traefik.http.routers.stirling-pdf-local.rule: Host(`stirling-pdf.${LOCAL_DOMAIN}`)
traefik.http.routers.stirling-pdf-local.entrypoints: websecure
traefik.http.routers.stirling-pdf-local.service: stirling-pdf
traefik.http.routers.stirling-pdf-local.tls: true

View File

@ -0,0 +1,64 @@
<p align="center"><img src="https://raw.githubusercontent.com/Frooodle/Stirling-PDF/main/docs/stirling.png" width="80" ><br><h1 align="center">Stirling-PDF</h1>
</p>
This is a powerful locally hosted web based PDF manipulation tool using docker that allows you to perform various operations on PDF files, such as splitting merging, converting, reorganizing, adding images, rotating, compressing, and more. This locally hosted web application started as a 100% ChatGPT-made application and has evolved to include a wide range of features to handle all your PDF needs.
Stirling PDF makes no outbound calls for any record keeping or tracking.
All files and PDFs are either purely client side, in server memory only during the execution of the task or within a temporay file only for execution of the task.
Any file which has been downloaded by the user will have already been deleted from the server by that time.
Feel free to request any features or bug fixes either in github issues or our [Discord](https://discord.gg/Cn8pWhQRxZ)
## Features
- Full interactive GUI for merging/splitting/rotating/moving PDFs and their pages.
- Split PDFs into multiple files at specified page numbers or extract all pages as individual files.
- Merge multiple PDFs together into a single resultant file
- Convert PDFs to and from images
- Reorganize PDF pages into different orders.
- Add/Generate signatures
- Format PDFs into a multi-paged page
- Scale page contents size by set %
- Adjust Contrast
- Crop PDF
- Auto Split PDF (With physically scanned page dividers)
- Flatten PDFs
- Repair PDFs
- Detect and remove blank pages
- Compare 2 PDFs and show differences in text
- Add images to PDFs
- Rotating PDFs in 90 degree increments.
- Compressing PDFs to decrease their filesize. (Using OCRMyPDF)
- Add and remove passwords
- Set PDF Permissions
- Add watermark(s)
- Convert Any common file to PDF (using LibreOffice)
- Convert PDF to Word/Powerpoint/Others (using LibreOffice)
- Convert HTML to PDF
- URL to PDF
- Extract images from PDF
- Extract images from Scans
- Add page numbers
- Auto rename file by detecting PDF header text
- OCR on PDF (Using OCRMyPDF)
- PDF/A conversion (Using OCRMyPDF)
- Edit metadata
- Dark mode support.
- Custom download options (see [here](https://github.com/Frooodle/Stirling-PDF/blob/main/images/settings.png) for example)
- Parallel file processing and downloads
- API for integration with external scripts
For a overview of the tasks and the technology each uses please view [groups.md](https://github.com/Frooodle/Stirling-PDF/blob/main/Groups.md)
Hosted instance/demo of the app can be seen [here](https://pdf.adminforge.de/) hosted by the team at adminforge.de
## Technologies used
- Spring Boot + Thymeleaf
- PDFBox
- IText7
- [LibreOffice](https://www.libreoffice.org/discover/libreoffice/) for advanced conversions
- [OcrMyPdf](https://github.com/ocrmypdf/OCRmyPDF)
- HTML, CSS, JavaScript
- Docker
- PDF.js
- PDF-LIB.js

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "tandoor",
"tipi_version": 2,
"version": "1.5.5",
"tipi_version": 3,
"version": "1.5.6",
"categories": [
"data"
],

View File

@ -2,7 +2,7 @@ version: "3.7"
services:
tandoor:
container_name: tandoor
image: ghcr.io/tandoorrecipes/recipes:1.5.5
image: ghcr.io/tandoorrecipes/recipes:1.5.6
volumes:
- ${APP_DATA_DIR}/data/staticfiles:/opt/recipes/staticfiles
- ${APP_DATA_DIR}/data/mediafiles:/opt/recipes/mediafiles

View File

@ -10,8 +10,8 @@
]
},
"id": "transmission",
"tipi_version": 7,
"version": "4.0.3",
"tipi_version": 8,
"version": "4.0.4",
"categories": [
"utilities"
],

View File

@ -1,7 +1,7 @@
version: "3.7"
services:
transmission:
image: lscr.io/linuxserver/transmission:4.0.3
image: lscr.io/linuxserver/transmission:4.0.4
container_name: transmission
dns:
- ${DNS_IP}

16
apps/viewtube/config.json Normal file
View File

@ -0,0 +1,16 @@
{
"$schema": "../schema.json",
"name": "ViewTube",
"port": 8180,
"available": true,
"exposable": true,
"id": "viewtube",
"tipi_version": 1,
"version": "0.12.2",
"categories": ["media"],
"description": "The open source, privacy-conscious way to enjoy your favorite YouTube content.",
"short_desc": "The open source, privacy-conscious way to enjoy your favorite YouTube content.",
"author": "ViewTube",
"source": "https://github.com/ViewTube/viewtube",
"form_fields": []
}

View File

@ -0,0 +1,66 @@
version: '3'
services:
viewtube:
restart: unless-stopped
container_name: viewtube
image: mauriceo/viewtube:0.12.2
depends_on:
- viewtube-mongodb
- viewtube-redis
volumes:
- ${APP_DATA_DIR}/data/viewtube:/data
environment:
- VIEWTUBE_DATABASE_HOST=viewtube-mongodb
- VIEWTUBE_REDIS_HOST=viewtube-redis
- VIEWTUBE_SECURE=true
- VIEWTUBE_CORS_ORIGIN=${APP_PROTOCOL:-http}://${APP_DOMAIN}
# - VIEWTUBE_YOUTUBE_COOKIE=
# - VIEWTUBE_YOUTUBE_IDENTIFIER=
ports:
- ${APP_PORT}:8066
networks:
- tipi_main_network
labels:
# Main
traefik.enable: true
traefik.http.middlewares.viewtube-web-redirect.redirectscheme.scheme: https
traefik.http.services.viewtube.loadbalancer.server.port: 8066
# Web
traefik.http.routers.viewtube-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.viewtube-insecure.entrypoints: web
traefik.http.routers.viewtube-insecure.service: viewtube
traefik.http.routers.viewtube-insecure.middlewares: viewtube-web-redirect
# Websecure
traefik.http.routers.viewtube.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.viewtube.entrypoints: websecure
traefik.http.routers.viewtube.service: viewtube
traefik.http.routers.viewtube.tls.certresolver: myresolver
# Local domain
traefik.http.routers.viewtube-local-insecure.rule: Host(`viewtube.${LOCAL_DOMAIN}`)
traefik.http.routers.viewtube-local-insecure.entrypoints: web
traefik.http.routers.viewtube-local-insecure.service: viewtube
traefik.http.routers.viewtube-local-insecure.middlewares: viewtube-web-redirect
# Local domain secure
traefik.http.routers.viewtube-local.rule: Host(`viewtube.${LOCAL_DOMAIN}`)
traefik.http.routers.viewtube-local.entrypoints: websecure
traefik.http.routers.viewtube-local.service: viewtube
traefik.http.routers.viewtube-local.tls: true
viewtube-mongodb:
container_name: viewtube-mongodb
restart: unless-stopped
image: mongo:5
networks:
- tipi_main_network
volumes:
- ${APP_DATA_DIR}/data/db:/data/db
viewtube-redis:
container_name: viewtube-redis
restart: unless-stopped
image: redis:7
networks:
- tipi_main_network
volumes:
- ${APP_DATA_DIR}/data/redis:/data

View File

@ -0,0 +1,44 @@
ViewTube is an alternative YouTube frontend that lets you watch, search and discover YouTube videos without ads or tracking. It's built to be mobile and desktop friendly, with dark and light themes, and a touch-friendly video player with gestures. You can create an account separately from YouTube, read comments, watch playlists, subscribe to channels and receive push notifications for new uploads It's built using [Nuxt](https://nuxt.com/) and [Nest](https://nestjs.com/).
You can find the documentation at [viewtube.wiki](https://viewtube.wiki)
## Features
- Watch videos without ads or tracking
- Built from the ground up to be mobile and desktop friendly
- Dark and light themes
- Touch friendly video player with gestures
- Supports loop, speed, autoplay and volume
- Create an account separately from Youtube
- Read comments
- Search for videos
- Watch playlists
- Subscribe to channels and see their latest uploads
- Receive push notifications for subscribed channels
- Integrated SponsorBlock support
## Where does ViewTube get the data from?
ViewTube does not use the official Youtube API. It instead scrapes the data from the website using a combination of custom built tools and the following open source libraries.
- [node-ytdl-core](https://github.com/fent/node-ytdl-core)
- [node-ytsr](https://github.com/TimeForANinja/node-ytsr)
- [node-ytpl](https://github.com/TimeForANinja/node-ytpl)
- [yt-comment-scraper](https://github.com/FreeTubeApp/yt-comment-scraper)
- [yt-channel-info](https://github.com/FreeTubeApp/yt-channel-info)
## Screenshots
### Homepage
[![Screenshot-Homepage](https://camo.githubusercontent.com/7ca1b34ee39d918f86a7043a3ffae08b574d5630975255eb8840536e7e169248/68747470733a2f2f692e6962622e636f2f476b35744b51372f6c78743179306d6b2e6a7067)](https://camo.githubusercontent.com/7ca1b34ee39d918f86a7043a3ffae08b574d5630975255eb8840536e7e169248/68747470733a2f2f692e6962622e636f2f476b35744b51372f6c78743179306d6b2e6a7067)
### Video
[![Screenshot-Video](https://camo.githubusercontent.com/07ecf2f4a9e61eb326d2125375f674020cbf97b1a998defdeb21fd8d1aa6f8f7/68747470733a2f2f692e6962622e636f2f52544c327633662f6732656a663777662e6a7067)](https://camo.githubusercontent.com/07ecf2f4a9e61eb326d2125375f674020cbf97b1a998defdeb21fd8d1aa6f8f7/68747470733a2f2f692e6962622e636f2f52544c327633662f6732656a663777662e6a7067)
### Channel
[![Screenshot-Channel](https://camo.githubusercontent.com/b50d3f852326d5436cc32507eb2ee48d036092ae1cba3bc61485a8a4661d0ffd/68747470733a2f2f692e6962622e636f2f68396d663179642f366a3435616f35722e6a7067)](https://camo.githubusercontent.com/b50d3f852326d5436cc32507eb2ee48d036092ae1cba3bc61485a8a4661d0ffd/68747470733a2f2f692e6962622e636f2f68396d663179642f366a3435616f35722e6a7067)

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,37 @@
## (Optional) Use cookies from a real account
You can provide your own cookies to circumvent any Rate Limiting Issue.
### YouTube cookie
- Navigate to YouTube in a web browser
- Log in, preferrably with a separate account you don't use often
- Open up the dev tools console
- Type `document.cookie`
- Copy the entire response into the `VIEWTUBE_YOUTUBE_COOKIE` environment variable
### YouTube identifier
- Navigate to a video
- Right click and click "view source"
- Press CTRL+F to search for "ID\_TOKEN"
- Copy this value into the `VIEWTUBE_YOUTUBE_IDENTIFIER` environment variable
```
"form_fields": [
{
"type": "text",
"label": "Youtube Cookie",
"hint": "Optional, Read below",
"required": false,
"env_variable": "VIEWTUBE_YOUTUBE_COOKIE"
},
{
"type": "text",
"label": "Youtube Identifier",
"hint": "Optional, Read below",
"required": false,
"env_variable": "VIEWTUBE_YOUTUBE_IDENTIFIER"
}
]
```

View File

@ -5,8 +5,8 @@
"no_gui": true,
"port": 9993,
"id": "zerotier",
"tipi_version": 3,
"version": "1.10.6",
"tipi_version": 4,
"version": "1.12.1",
"categories": [
"network",
"security"

View File

@ -2,7 +2,7 @@ version: "3.7"
services:
zerotier:
container_name: zerotier
image: zerotier/zerotier:1.10.6
image: zerotier/zerotier:1.12.1
restart: on-failure
command: "${NETWORK_ID}"
cap_add:

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "zipline",
"tipi_version": 4,
"version": "3.7.3",
"tipi_version": 5,
"version": "3.7.4",
"categories": [
"media"
],

View File

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