mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2025-12-13 01:35:57 +00:00
133 lines
4.0 KiB
Markdown
133 lines
4.0 KiB
Markdown
# Setup a CouchDB server
|
|
|
|
## Configure
|
|
|
|
The easiest way to set up a CouchDB instance is using the official [docker image](https://hub.docker.com/_/couchdb).
|
|
|
|
Some initial configuration is required. Create a `local.ini` to use Self-hosted LiveSync as follows:
|
|
|
|
```ini
|
|
[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 = /_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
|
|
```
|
|
|
|
## Run
|
|
|
|
### Docker CLI
|
|
|
|
You can launch CouchDB using your `local.ini` like this:
|
|
```
|
|
$ docker run --rm -it -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -v /path/to/local.ini:/opt/couchdb/etc/local.ini -p 5984:5984 couchdb
|
|
```
|
|
*Remember to replace the path with the path to your local.ini*
|
|
|
|
Run in detached mode:
|
|
```
|
|
$ docker run -d --restart always -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -v /path/to/local.ini:/opt/couchdb/etc/local.ini -p 5984:5984 couchdb
|
|
```
|
|
*Remember to replace the path with the path to your local.ini*
|
|
|
|
### Docker Compose
|
|
Create a directory, place your `local.ini` within it, and create a `docker-compose.yml` alongside it. The directory structure should look similar to this:
|
|
```
|
|
obsidian-livesync
|
|
├── docker-compose.yml
|
|
└── local.ini
|
|
```
|
|
|
|
A good place to start for `docker-compose.yml`:
|
|
```yaml
|
|
version: "2.1"
|
|
services:
|
|
couchdb:
|
|
image: couchdb
|
|
container_name: obsidian-livesync
|
|
user: 1000:1000
|
|
environment:
|
|
- COUCHDB_USER=admin
|
|
- COUCHDB_PASSWORD=password
|
|
volumes:
|
|
- ./data:/opt/couchdb/data
|
|
- ./local.ini:/opt/couchdb/etc/local.ini
|
|
ports:
|
|
- 5984:5984
|
|
restart: unless-stopped
|
|
```
|
|
|
|
And finally launch the container
|
|
```
|
|
# -d will launch detached so the container runs in background
|
|
docker compose up -d
|
|
```
|
|
|
|
## Access from a mobile device
|
|
If you want to access Self-hosted LiveSync from mobile devices, you need a valid SSL certificate.
|
|
|
|
### Testing from a mobile
|
|
In the testing phase, [localhost.run](https://localhost.run/) or something like services is very useful.
|
|
|
|
example using localhost.run:
|
|
```
|
|
$ ssh -R 80:localhost:5984 nokey@localhost.run
|
|
Warning: Permanently added the RSA host key for IP address '35.171.254.69' to the list of known hosts.
|
|
|
|
===============================================================================
|
|
Welcome to localhost.run!
|
|
|
|
Follow your favourite reverse tunnel at [https://twitter.com/localhost_run].
|
|
|
|
**You need a SSH key to access this service.**
|
|
If you get a permission denied follow Gitlab's most excellent howto:
|
|
https://docs.gitlab.com/ee/ssh/
|
|
*Only rsa and ed25519 keys are supported*
|
|
|
|
To set up and manage custom domains go to https://admin.localhost.run/
|
|
|
|
More details on custom domains (and how to enable subdomains of your custom
|
|
domain) at https://localhost.run/docs/custom-domains
|
|
|
|
To explore using localhost.run visit the documentation site:
|
|
https://localhost.run/docs/
|
|
|
|
===============================================================================
|
|
|
|
|
|
** your connection id is xxxxxxxxxxxxxxxxxxxxxxxxxxxx, please mention it if you send me a message about an issue. **
|
|
|
|
xxxxxxxx.localhost.run tunneled with tls termination, https://xxxxxxxx.localhost.run
|
|
Connection to localhost.run closed by remote host.
|
|
Connection to localhost.run closed.
|
|
```
|
|
|
|
https://xxxxxxxx.localhost.run is the temporary server address.
|
|
|
|
### Setting up your domain
|
|
|
|
Set the A record of your domain to point to your server, and host reverse proxy as you like.
|
|
Note: Mounting CouchDB on the top directory is not recommended.
|
|
Using Caddy is a handy way to serve the server with SSL automatically.
|
|
|
|
I have published [docker-compose.yml and ini files](https://github.com/vrtmrz/self-hosted-livesync-server) that launch Caddy and CouchDB at once. Please try it out.
|
|
|
|
And, be sure to check the server log and be careful of malicious access.
|