DROPBOX_ENABLED: "true":
- web (modulen
dropbox): länkning, projektets Dropbox-dialog och webhooken som Dropbox anropar. - third-party-datastore: en egen tjänst inne i podden som arbetar sig igenom kön av ändringar som ska skickas till eller hämtas från Dropbox.
- document-updater: med Dropbox aktiverat skriver den redigerarens ändringar till MongoDB i bakgrunden, några minuter efter att alla har lämnat ett projekt; först då går de till Dropbox.
Konfiguration
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" och git-bridge-StatefulSet från Git-integration måste finnas på plats: utan dem döljer kontoinställningarna avsnittet för projektsynkronisering.2
Secret
DROPBOX_TOKEN_CIPHER_PASSWORD krypterar användarnas Dropbox-tokens i MongoDB. Varje replik måste använda samma värde, och om det ändras senare måste alla användare länka Dropbox på nytt.3
Skapa databasindexen
Kör indexkommandona från Skapa databasindexen en gång, på replikuppsättningens primära nod:
4
Tillämpa och starta om
third-party-datastore.log finns bara när DROPBOX_ENABLED är "true".5
Öppna webhooken mot internet
Dropbox måste nå Lägg sedan till webhooken i Dropbox App Console enligt beskrivningen på Toolkit-sidan.
${OVERLEAF_SITE_URL}/dropbox/webhook från internet. Om din ingress eller lastbalanserare bara tillåter vissa sökvägar eller nätverk utifrån, tillåt den här; det är den enda sökväg som Dropbox anropar. Kontrollera den utanför klustret:Flera repliker
Inget extra utöver det deladeDROPBOX_TOKEN_CIPHER_PASSWORD:
- Webhooken kan nå vilken replik som helst. Den lägger bara ändringen i kön i Redis.
- Varje replik kör third-party-datastore, och var och en arbetar med den delade kön. En användares kö tas med ett lås i Redis, så bara en replik i taget skickar eller hämtar en viss användares ändringar.
- Varje repliks document-updater skriver inaktiva projekt i bakgrunden. Varje projekt tas från en delad lista i Redis, så det skrivs en gång.

