Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/acheong08/obi-sync
Reverse engineering of the native Obsidian sync and publish server
https://github.com/acheong08/obi-sync
obsidian-md obsidian-publish obsidian-sync obsidian-vault sync
Last synced: 3 months ago
JSON representation
Reverse engineering of the native Obsidian sync and publish server
- Host: GitHub
- URL: https://github.com/acheong08/obi-sync
- Owner: acheong08
- License: gpl-2.0
- Archived: true
- Created: 2023-08-17T09:32:11.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-12-28T13:14:27.000Z (12 months ago)
- Last Synced: 2024-05-21T00:55:19.248Z (7 months ago)
- Topics: obsidian-md, obsidian-publish, obsidian-sync, obsidian-vault, sync
- Language: Go
- Homepage: https://obsidian.md/sync
- Size: 198 KB
- Stars: 1,002
- Watchers: 21
- Forks: 61
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - acheong08/obi-sync - Reverse engineering of the native Obsidian sync and publish server (Go)
README
# Rev Obsidian Sync
Reverse engineered obsidian sync server (NOT OFFICIAL).
> [!WARNING]
> The main branch is the development branch. For stable usage, use the latest release.> [!NOTE]
> The plugin is broken on `obsidian >= 1.4.11`. This is intentional by the official ObsidianMD team. They have made clear their dissatisfaction with this project.
> [The Path Forward](https://github.com/acheong08/obi-sync/issues/29) - We are in the early stages of designing an alternative plugin that does not make use of existing code by ObsidianMD team. It is still in the design phase and [help](https://github.com/acheong08/obi-sync-lib/issues/1) is needed. For now, we can manually patch the files from https://github.com/obsidianmd/obsidian-releases/releases/. I will write up a wiki page or automate that soon.## Features
- End to end encryption
- Live sync (across devices)
- File history/recovery/snapshots
- Works natively on IOS/Android/Linux/MacOS/Windows... (via the plugin)
- Vault sharing
- [Publish (markdown only. no rendering yet)](https://github.com/acheong08/obi-sync/wiki/Obsidian-Publish)### Experimental
These features are not in the latest release but in the main branch. They might not be fully tested and are probably unstable.
- N/A
## To do
- Fix bugs
- Improve publish## Quickstart
> [!NOTE]
> The comprehensive documentation by @Aetherinox can be found in the [wiki](https://github.com/acheong08/obi-sync/wiki).[Quickstart with Docker](https://github.com/acheong08/rev-obsidian-sync/blob/main/docker-compose.yml)
### Environment variables
#### Required:
- `DOMAIN_NAME` - The domain name or IP address of your server. Include port if not on 80 or 433. The default is `localhost:3000`
#### Optional
- `ADDR_HTTP` - Server listener address. The default is `127.0.0.1:3000`
- `SIGNUP_KEY` - Signup API is at `/user/signup`. This optionally restricts users who can sign up.
- `DATA_DIR` - Where data is saved. Default `.`
- `MAX_STORAGE_GB` - The maximum storage per user in GB. Default `10`
- `MAX_SITES_PER_USER` - The maximum number of sites per user. Default `5`### Building & Running
- `git clone https://github.com/acheong08/obsidian-sync`
- `cd obsidian-sync`
- `go run cmd/obsidian-sync/main.go`Optional:
- Configure [nginx](https://github.com/acheong08/rev-obsidian-sync/wiki/Nginx-Configuration)
- HTTPS is recommended.When you're done, install and configure the [plugin](https://github.com/acheong08/rev-obsidian-sync-plugin)
## Adding a new user
`go run cmd/signup/main.go`
Alternatively:
```bash
curl --request POST \
--url https://yourdomain.com/user/signup \
--header 'Content-Type: application/json' \
--data '{
"email": "[email protected]",
"password": "example_password",
"name": "Example User",
"signup_key": ""
}'
```You can set the signup key via the `SIGNUP_KEY` environment variable. If it has not been set, you can exclude it from the request.