app: add obsidian-livesync (#683)

This commit is contained in:
Nicolas Meienberger 2023-06-11 13:43:22 +02:00 committed by GitHub
parent 4393b66003
commit c1bf977d95
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 118 additions and 3 deletions

View File

@ -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

View 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"
}
]
}

View 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

View 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

View 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.

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB