Rozwiązanie Discordu

Obsidian LiveSync CouchDB nie działa w CasaOS: co skonfigurować

A CasaOS user repeatedly failed to install or start an Obsidian LiveSync CouchDB app, while replies disagreed on whether the BigBear image itself was broken.

Najważniejszy wniosek: nie uznawaj obrazu za uszkodzony wyłącznie na podstawie błędu instalacji. Samodzielnie hostowany LiveSync wymaga poprawnych danych uwierzytelniających CouchDB, zapisywalnej trwałej pamięci masowej, inicjalizacji, CORS oraz dostępnego punktu końcowego. Szablon aplikacji instalowanej jednym kliknięciem nadal może wymagać ustawienia tych wartości.

Zrzut ekranu nieudanej instalacji CouchDB Obsidian LiveSync w CasaOS
Użyj wygenerowanej konfiguracji kontenera i logów, aby zidentyfikować warstwę, na której występuje błąd.
Błąd kontenera CouchDB w konfiguracji Obsidian LiveSync w CasaOS
Dokładny błąd kontenera wskazuje, czy należy naprawić dane uwierzytelniające, pamięć masową, inicjalizację czy sieć.

Ustaw wymagane zmienne CouchDB

Bieżące zmienne CouchDB w projekcie nadrzędnym wymagają danych uwierzytelniających administratora i nazwy bazy danych:

COUCHDB_USER=admin
COUCHDB_PASSWORD=strong-random-password
COUCHDB_DATABASE=obsidiannotes

Przeczytaj logi kontenera, zanim zaczniesz losowo edytować konfigurację

docker ps -a | grep -i couch
docker logs --tail 200 <container-name>

Szukaj brakujących zmiennych, błędów uprawnień, problemów z montowaniem konfiguracji, błędów inicjalizacji lub konfliktów portów.

Trwała pamięć masowa musi umożliwiać zapis

Projekt nadrzędny zwraca uwagę w konfiguracji pamięci CouchDB, że właścicielem katalogów danych i konfiguracji może być UID 5984. Nieprawidłowy właściciel może zatrzymać kontener.

Zweryfikuj CouchDB przed uruchomieniem Obsidian

curl -u admin:YOUR_PASSWORD http://SERVER_IP:5984/_up

Projekt nadrzędny oczekuje, że kontrola stanu CouchDB zwróci prawidłowy status przed konfiguracją wtyczki.

Zainicjalizuj bazę danych LiveSync

Działający proces CouchDB to nie cała konfiguracja. Uruchom bieżącą ścieżkę inicjalizacji projektu nadrzędnego, aby wymagane wartości bazy danych i konfiguracji istniały przed połączeniem wtyczki Obsidian.

Synchronizacja zdalna wymaga bezpiecznej ścieżki HTTPS

Projekt nadrzędny udostępnia teraz profile Caddy, Tailscale i Cloudflare. Używaj zwykłego HTTP tylko do testów lokalnych; synchronizacja zdalna lub mobilna powinna korzystać z obsługiwanej ścieżki HTTPS.

BigBear obecnie oferuje pakiet Obsidian LiveSync oparty na CouchDB. Porównaj wygenerowany plik compose ze zmiennymi projektu nadrzędnego, zamiast zakładać, że któraś ze stron ma rację.

Katalog aplikacji ZimaOS obejmuje obciążenia związane z Obsidianem, a konfiguracja Dockera w CasaOS pomaga wyjaśnić różnice między ustawieniami szablonu a ustawieniami środowiska uruchomieniowego.

ZimaBoard 2 wystarcza do obsługi tego lekkiego obciążenia bazy danych; trwałość nośnika danych ma większe znaczenie niż surowa moc obliczeniowa.

Porównaj szablon z aktualną konfiguracją Compose projektu nadrzędnego

Aktualna konfiguracja Compose projektu nadrzędnego uruchamia CouchDB ze zmiennymi wymaganymi do ustawienia nazwy użytkownika i hasła, trwałymi danymi oraz dedykowanym plikiem konfiguracji LiveSync. Jeśli szablon społecznościowy się różni, ustal różnicę, zanim nazwiesz obraz kontenera wadliwym. Obraz, szablon Compose i konfiguracja aplikacji to trzy odrębne warstwy.

Nie wymuszaj pochopnie użytkownika kontenera CouchDB

Aktualna konfiguracja Compose projektu nadrzędnego wyraźnie ostrzega przed ustawianiem stałej użytkownik: wartość, ponieważ punkt wejścia CouchDB uruchamia się z uprawnieniami wystarczającymi do zapisu konfiguracji, a następnie przełącza się na UID CouchDB. Szablon zastępujący to zachowanie może powodować błędy uprawnień podczas uruchamiania.

Sprawdź CORS po prawidłowym działaniu punktu końcowego sprawdzania stanu

Sprawny /_up Odpowiedź potwierdza, że CouchDB działa, ale nie że klienci Obsidian mogą z niego korzystać. Przetestuj nagłówki odpowiedzi z originem Obsidian i potwierdź, że konfiguracja LiveSync zezwala na oczekiwane originy komputerów i urządzeń mobilnych.

Nie wystawiaj bazy danych do otwartego internetu

Port CouchDB 5984 to punkt końcowy bazy danych, a nie strona udostępniania dla klientów. W przypadku zdalnej synchronizacji preferuj obsługiwane przez projekt nadrzędny wzorce HTTPS — Caddy, Tailscale lub Cloudflare — zamiast bezpośredniego przekierowania z routera na port 5984.

Zastosuj tę kolejność rozwiązywania problemów

  1. Kontener pozostaje uruchomiony.
  2. /_up zwraca stan „healthy” przy użyciu danych uwierzytelniających.
  3. Dane trwałe przetrwają ponowne uruchomienie.
  4. Inicjalizacja została ukończona.
  5. CORS jest skonfigurowany prawidłowo.
  6. Punkt końcowy HTTPS działa zdalnie.
  7. URI, użytkownik, hasło i baza danych wtyczki Obsidian muszą odpowiadać wartościom serwera.

Przejście bezpośrednio do ustawień wtyczki przed wykonaniem kroków 1–5 znacznie utrudnia rozwiązywanie problemów.

FAQ

Czy obraz BigBear jest na pewno wadliwy?

Dyskusja źródłowa tego nie udowodniła. Najpierw porównaj jej konfigurację Compose z aktualnymi wymaganiami projektu nadrzędnego.

Dlaczego CouchDB może działać, podczas gdy Obsidian nie działa?

Inicjalizacja bazy danych, CORS, dane uwierzytelniające, nazwa bazy danych i adres URL punktu końcowego nadal muszą się zgadzać.