app: add obsidian-livesync (#683)
This commit is contained in:
parent
4393b66003
commit
c1bf977d95
|
@ -55,15 +55,15 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Jellyfin](https://github.com/jellyfin/jellyfin) - A media server for your home collection
|
||||
- [Jellyseerr](https://github.com/Fallenbagel/jellyseerr) - Fork of overseerr for Jellyfin support
|
||||
- [Joplin](https://github.com/laurent22/joplin) - Privacy focused note-taking app
|
||||
- [Kanboard](https://github.com/kanboard/kanboard) - Kanboard is a free and open source Kanban project management software.- [Kapowarr](https://github.com/Casvt/Kapowarr) - Kapowarr is a software to build and manage a comic book library, fitting in the *arr suite of software.
|
||||
- [Kanboard](https://github.com/kanboard/kanboard) - Kanboard is a free and open source Kanban project management software.
|
||||
- [Kapowarr](https://github.com/Casvt/Kapowarr) - Kapowarr is a software to build and manage a comic book library, fitting in the \*arr suite of software.
|
||||
- [Kavita](https://github.com/Kareadita/Kavita) - Kavita is a fast, feature rich, cross platform reading server
|
||||
- [Libreddit](https://github.com/spikecodes/libreddit) - Private front-end for Reddit
|
||||
- [LibrePhotos](https://github.com/LibrePhotos/librephotos) - Complete photo management service
|
||||
- [LibreTranslate](https://github.com/LibreTranslate/LibreTranslate) - Free and Open Source Machine Translation API. 100% self-hosted, offline capable and easy to setup
|
||||
- [Lidarr](https://github.com/Lidarr/Lidarr) - Looks and smells like Sonarr but made for music.
|
||||
- [Lidarr On Steroids](https://github.com/youegraillot/lidarr-on-steroids) - Lidarr with some muscles thanks to deemix
|
||||
- [LinkStack](https://github.com/LinkStackOrg/LinkStack) - LAbout
|
||||
LinkStack - the ultimate solution for creating a personalized & professional profile page.
|
||||
- [LinkStack](https://github.com/LinkStackOrg/LinkStack) - The ultimate solution for creating a personalized & professional profile page.
|
||||
- [Lodestone Core](https://github.com/Lodestone-Team/lodestone_core) - Server hosting tool for Minecraft and other multiplayers
|
||||
- [Logto](https://github.com/logto-io/logto) - Logto is a cost-effective open-source alternative to Auth0.
|
||||
- [Mastodon](https://github.com/mastodon/mastodon) - Your self-hosted, globally interconnected microblogging community
|
||||
|
@ -87,6 +87,7 @@ LinkStack - the ultimate solution for creating a personalized & professional pro
|
|||
- [Nitter](https://github.com/zedeus/nitter) - Alternative Twitter front-end
|
||||
- [NocoDB](https://github.com/nocodb/nocodb) - Open Source Airtable Alternative
|
||||
- [Node-RED](https://github.com/node-red/node-red) - Low-code programming for event-driven applications
|
||||
- [Obsidian LiveSync](https://github.com/vrtmrz/self-hosted-livesync-server) - LiveSync couchdb backend for Obsidian
|
||||
- [OneDev](https://code.onedev.io/onedev/server) - Self-hosted Git Server with Kanban and CI/CD
|
||||
- [Openbooks](https://github.com/evan-buss/openbooks) - Search and Download eBooks
|
||||
- [Overseerr](https://github.com/sct/overseerr) - Request management and media discovery tool for the Plex ecosystem
|
||||
|
|
43
apps/obsidian-livesync/config.json
Normal file
43
apps/obsidian-livesync/config.json
Normal file
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"$schema": "../schema.json",
|
||||
"name": "Obsidian LiveSync",
|
||||
"port": 5984,
|
||||
"available": true,
|
||||
"exposable": true,
|
||||
"no_gui": true,
|
||||
"id": "obsidian-livesync",
|
||||
"tipi_version": 1,
|
||||
"version": "3.1.2",
|
||||
"categories": ["utilities"],
|
||||
"description": "LiveSync couchdb backend for Obsidian",
|
||||
"short_desc": "LiveSync couchdb backend for Obsidian",
|
||||
"author": "vorotamoroz",
|
||||
"source": "https://github.com/vrtmrz/self-hosted-livesync-server",
|
||||
"form_fields": [
|
||||
{
|
||||
"type": "text",
|
||||
"label": "CouchDB username",
|
||||
"min": 5,
|
||||
"required": true,
|
||||
"env_variable": "OBSIDIAN_LIVESYNC_USER"
|
||||
},
|
||||
{
|
||||
"type": "password",
|
||||
"label": "CouchDB password",
|
||||
"max": 50,
|
||||
"min": 8,
|
||||
"required": true,
|
||||
"env_variable": "OBSIDIAN_LIVESYNC_PASSWORD"
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"label": "CouchDB port",
|
||||
"hint": "Default is 5984",
|
||||
"min": 1,
|
||||
"max": 65535,
|
||||
"required": false,
|
||||
"default": "5984",
|
||||
"env_variable": "CUSTOM_PORTOBSIDIAN_LIVESYNC_PORT"
|
||||
}
|
||||
]
|
||||
}
|
22
apps/obsidian-livesync/data/local.ini
Normal file
22
apps/obsidian-livesync/data/local.ini
Normal file
|
@ -0,0 +1,22 @@
|
|||
[couchdb]
|
||||
single_node=true
|
||||
max_document_size = 50000000
|
||||
|
||||
[chttpd]
|
||||
require_valid_user = true
|
||||
max_http_request_size = 4294967296
|
||||
|
||||
[chttpd_auth]
|
||||
require_valid_user = true
|
||||
authentication_redirect = /e=_/_utils/session.html
|
||||
|
||||
[httpd]
|
||||
WWW-Authenticate = Basic realm="couchdb"
|
||||
enable_cors = true
|
||||
|
||||
[cors]
|
||||
origins = app://obsidian.md,capacitor://localhost,http://localhost
|
||||
credentials = true
|
||||
headers = accept, authorization, content-type, origin, referer
|
||||
methods = GET, PUT, POST, HEAD, DELETE
|
||||
max_age = 3600
|
42
apps/obsidian-livesync/docker-compose.yml
Normal file
42
apps/obsidian-livesync/docker-compose.yml
Normal file
|
@ -0,0 +1,42 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
obsidian-livesync:
|
||||
container_name: obsidian-livesync
|
||||
image: couchdb:3.1.2
|
||||
ports:
|
||||
- ${OBSIDIAN_LIVESYNC_PORT:-${APP_PORT}}:5984
|
||||
environment:
|
||||
- COUCHDB_USER=${OBSIDIAN_LIVESYNC_USER}
|
||||
- COUCHDB_PASSWORD=${OBSIDIAN_LIVESYNC_PASSWORD}
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/couchdb:/opt/couchdb/data
|
||||
- ${APP_DATA_DIR}/data/local.ini:/opt/couchdb/etc/local.ini
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.obsidian-livesync-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.obsidian-livesync.loadbalancer.passhostheader: true
|
||||
traefik.http.services.obsidian-livesync.loadbalancer.server.port: 5984
|
||||
# Web
|
||||
traefik.http.routers.obsidian-livesync-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.obsidian-livesync-insecure.entrypoints: web
|
||||
traefik.http.routers.obsidian-livesync-insecure.service: obsidian-livesync
|
||||
traefik.http.routers.obsidian-livesync-insecure.middlewares: obsidian-livesync-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.obsidian-livesync.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.obsidian-livesync.entrypoints: websecure
|
||||
traefik.http.routers.obsidian-livesync.service: obsidian-livesync
|
||||
traefik.http.routers.obsidian-livesync.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.obsidian-livesync-local-insecure.rule: Host(`obsidian-livesync.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.obsidian-livesync-local-insecure.entrypoints: web
|
||||
traefik.http.routers.obsidian-livesync-local-insecure.service: obsidian-livesync
|
||||
traefik.http.routers.obsidian-livesync-local-insecure.middlewares: obsidian-livesync-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.obsidian-livesync-local.rule: Host(`obsidian-livesync.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.obsidian-livesync-local.entrypoints: websecure
|
||||
traefik.http.routers.obsidian-livesync-local.service: obsidian-livesync
|
||||
traefik.http.routers.obsidian-livesync-local.tls: true
|
7
apps/obsidian-livesync/metadata/description.md
Normal file
7
apps/obsidian-livesync/metadata/description.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
## Obsidian LiveSync
|
||||
|
||||
Self-hosted database for synchronizing Obsidian vaults.
|
||||
|
||||
1. Install the **Self-hosted LiveSync** plugin from the [Obsidian Community Plugins](obsidian://show-plugin?id=obsidian-livesync) page.
|
||||
2. Connect to your server by entering the URL in the plugin settings using a domain name or IP address.
|
||||
3. If you are not exposing the app you have to use `http://<tipi-ip>:5984` as the URL.
|
BIN
apps/obsidian-livesync/metadata/logo.jpg
Normal file
BIN
apps/obsidian-livesync/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.9 KiB |
Loading…
Reference in New Issue
Block a user