Uruchom serwer synchronizacji samodzielnie.
Serwer synchronizacji przechowuje zapieczętowane pudełka, prowadzi licznik dla każdego sejfu i sprawdza podpis przed przyjęciem zmiany. Nigdy nie przechowuje klucza i nigdy nie widzi nazwiska, więc uruchomienie własnej kopii kosztuje bardzo mało.
Wybierz, gdzie działa i gdzie mieszkają obiekty. Strona przygotowuje konfigurację, a Ty wklejasz ją tam, gdzie powinna być.
Trzy miejsca, w których może działać.
Ten sam kod obsługuje wszystkie trzy. Cloudflare Worker wymaga od Ciebie jedynie konta; plik binarny lub kontener wymaga maszyny, którą już masz. Którą opcję wybierzesz, klucze sejfu zostają na Twoich urządzeniach.
Cloudflare Worker
Darmowy plan utrzymuje mały serwer. Indeks to baza danych D1, a obiekty trafiają do kubełka zgodnego z S3, więc dla prywatnego sejfu nie ma nic do utrzymywania ani do płacenia.
Natywny plik binarny
Jeden proces na Linuksie, macOS lub Windows. Obsługuje zwykły HTTP i oczekuje proxy przed sobą dla HTTPS. Pudełka są zapieczętowane i podpisane tak czy inaczej, więc zwykły HTTP nie jest tu słabością.
Kontener
Ten sam plik binarny z tymi samymi ustawieniami, przekazanymi jako zmienne środowiskowe. Użyj go, gdy maszyna już uruchamia kontenery i wolisz nie budować z kodu źródłowego.
Żadnego serwera
Synchronizacja jest opcjonalna. Sejf może pozostać na jednym urządzeniu z lokalną kopią zapasową i nigdy nie dotknąć sieci. Serwer można dodać później, bez zmian wewnątrz sejfu.
Odpowiedz na cztery pytania, skopiuj wynik.
Ustawienia mają jedną postać wszędzie: pole TOML albo to samo pole jako zmienna środowiskowa. Worker przyjmuje tylko kubełki S3; plik binarny i kontener zapisują też do zwykłych katalogów i do repozytorium Git.
Pobierz i rozpakuj ZIP do samodzielnego hostowania. Kompilator Rust nie jest potrzebny.
GitHub Releases · self-host ZIP
Konfiguracja została zaktualizowana.
Przed wdrożeniem utwórz bazę danych i zasobnik. Zastąp wszystkie wartości zastępcze.
Przed uruchomieniem utwórz katalogi magazynu i zastąp wszystkie wartości zastępcze.
Kopiowanie nie powiodło się. Zaznacz tekst i skopiuj go ręcznie.
Kopiowanie nie powiodło się. Zaznacz tekst i skopiuj go ręcznie.
Sekrety zostają w Worker secrets, nigdy w pliku. Worker zapisuje tylko do magazynu zgodnego z S3.
Plik binarny obsługuje zwykły HTTP. Postaw przed nim proxy, gdy maszyna jest dostępna z internetu.
Kontener nasłuchuje na każdym interfejsie wewnątrz siebie, więc opublikowany port do niego dociera.
Wybierz przynajmniej jedno miejsce dla zapieczętowanych pudełek. Serwer odmawia startu bez niego.
Wartości w ostrych nawiasach wypełniasz sam. Nic, co tu wpiszesz, nie opuszcza strony: tekst jest składany w Twojej przeglądarce.
Wskaż na niego swoje sejfy.
Nowy sejf używa sync.confidex.me. Zmiana adresu to jedno ustawienie w aplikacji, a sejf dalej działa: adres nie jest częścią sejfu ani jego tożsamości.
- W aplikacji
- Otwórz ustawienia sejfu i zamień adres serwera synchronizacji na swój własny. Aplikacja sama dodaje ścieżkę API.
- Wspólne źródło
- Aplikacja i API mogą działać na jednej domenie. Przekieruj prefiks API do serwera, a wszystko inne do aplikacji.
- Konta
- Żadnego do założenia. Sejf rejestruje się sam, wysyłając swój podpisany zamek, a zastąpić go może tylko posiadacz klucza podpisującego.
- Kilka serwerów
- Jeden sejf rozmawia z jednym serwerem naraz. Przejście na inny to to samo jedno ustawienie.
Co musi robić właściciel serwera.
Bardzo mało, i nic z tego nie dotyczy sekretów. Serwer przechowuje zapieczętowane pudełka i indeks, który na nie wskazuje. Kopia zapasowa to kopia obu.
Kopie zapasowe
Skopiuj indeks i magazyn obiektów razem. Obiekty są niezmienne i nazwane swoim skrótem, więc kopia zrobiona podczas działania serwera pozostaje poprawna.
Aktualizacje
Zamień plik binarny albo wdróż Worker ponownie. Schemat indeksu jest nakładany przy starcie dla natywnego indeksu i plikiem schematu dla D1.
Dostęp
Dane uwierzytelniające magazynu autoryzują serwer wobec jego własnego magazynu. Nie mają nic wspólnego z kluczami sejfu i nie mogą otworzyć ani jednego pudełka.
Licencja
Serwer jest na licencji GNU AGPL-3.0. Zmiany, które uruchamiasz dla innych ludzi, pozostają otwarte; kopia, którą uruchamiasz dla siebie, nie niesie żadnego obowiązku.