docs: migrate Authentik (SSO keystone) to edge2 CT 105

- Authentik -> edge2 CT 105 (Postgres pg_dump/restore; SECRET_KEY carried verbatim; zero-downtime until ~2s cutover)
- Multi-block Caddy cutover: auth.echo6.co + notes.echo6.co outpost/forward_auth -> 100.64.0.36:9000
- runbook: add reboot tailscale-before-docker gotcha; clarify dnsmasq must NOT be repointed (points at Caddy host)
- source left stopped + intact on Contabo as cold rollback

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Matt Johnson 2026-06-18 05:49:07 +00:00
commit 44f0257376
140 changed files with 4013 additions and 24 deletions

View file

@ -0,0 +1,175 @@
{
"remoteType": "",
"useCustomRequestHandler": false,
"couchDB_URI": "https://notes.echo6.co",
"couchDB_USER": "",
"couchDB_PASSWORD": "",
"couchDB_DBNAME": "cc-db",
"liveSync": true,
"syncOnSave": false,
"syncOnStart": true,
"savingDelay": 200,
"lessInformationInLog": false,
"gcDelay": 0,
"versionUpFlash": "",
"minimumChunkSize": 20,
"longLineThreshold": 250,
"showVerboseLog": false,
"suspendFileWatching": false,
"trashInsteadDelete": true,
"periodicReplication": false,
"periodicReplicationInterval": 60,
"syncOnFileOpen": false,
"encrypt": false,
"passphrase": "",
"usePathObfuscation": false,
"doNotDeleteFolder": false,
"resolveConflictsByNewerFile": false,
"batchSave": true,
"batchSaveMinimumDelay": 5,
"batchSaveMaximumDelay": 60,
"deviceAndVaultName": "",
"usePluginSettings": false,
"showOwnPlugins": false,
"showStatusOnEditor": true,
"showStatusOnStatusbar": true,
"showOnlyIconsOnEditor": false,
"hideFileWarningNotice": false,
"networkWarningStyle": "",
"usePluginSync": false,
"autoSweepPlugins": false,
"autoSweepPluginsPeriodic": false,
"notifyPluginOrSettingUpdated": false,
"checkIntegrityOnSave": false,
"batch_size": 25,
"batches_limit": 25,
"useHistory": true,
"disableRequestURI": true,
"skipOlderFilesOnSync": true,
"checkConflictOnlyOnOpen": false,
"showMergeDialogOnlyOnActive": false,
"syncInternalFiles": false,
"syncInternalFilesBeforeReplication": false,
"syncInternalFilesIgnorePatterns": "\\/node_modules\\/, \\/\\.git\\/, \\/obsidian-livesync\\/",
"syncInternalFilesTargetPatterns": "",
"syncInternalFilesInterval": 60,
"additionalSuffixOfDatabaseName": "",
"ignoreVersionCheck": false,
"lastReadUpdates": 0,
"deleteMetadataOfDeletedFiles": false,
"syncIgnoreRegEx": "",
"syncOnlyRegEx": "",
"customChunkSize": 60,
"readChunksOnline": true,
"watchInternalFileChanges": true,
"automaticallyDeleteMetadataOfDeletedFiles": 0,
"disableMarkdownAutoMerge": false,
"writeDocumentsIfConflicted": false,
"useDynamicIterationCount": false,
"syncAfterMerge": false,
"configPassphraseStore": "",
"encryptedPassphrase": "",
"encryptedCouchDBConnection": "%$NA/UWgH5dpizBJ9wynM8oH46b8eDpK/irIUl0+auH7Xt9PXtqetQ4v+OF4Rv3I0ofiV+RyS9jiw8pmslHpl0QKX+10TTZLahMgjHWa6Br1UR35bDF+ipYa5mJ1FW2SKzBsh8I/OAvtDP+Xbhwc6wtpWDZd7cAlBK3RiRjO4H1EqafMlCaTIn4YzhsKxHhvnhDxoj3GMWSb9cTkL9XMoklU7K1s9dmy8NbtBuEcskd38O1Nvi+OpQ7LxvyeiTX5WE+cT5QKDQXmo8YmJWblAZcGufZRLoQTadfqqrIiAbx+FHzgt+NCHDMhsq9cSsQk3MjId8MIpd8ZBsy2DEq0o62widVjXHwOZEiQCtweelT7JyMgVzjmcGTw7VGSF2GNG6I08tKMOS8fTHCNH1cczhjIDqOepuPDgTNbtK7iVPipRveVAWG15wHVk+ajTH+gI7nI7f6GeLbM3rm/TA+Z87jMAgwSAc145tAs8SaqLLldZLiKgVZUOAoSHIdusTVaxuLAzLd9pM5id3GzGhYO72HOlAK+LQ7hjYI9ae+r678oKEWXFEsqTwDIQ+YI5eSCNqHjZFvA6BWzwtnNZjbr9nkGqBJGJPNl0a/0IhMcCZ4FVVFhV85HxmxuRsLJChBq+O1QNbxgW70O6RnSrLGqt45P5slH1U0VJuBH0ojwCz/GZ5JNro9pSSM+89Fcxc+ybYjsZdd0Xjoni8bZiUvI7UiYrrlmE3rv5P7UfRQtcT9bbSiy4afB8uActMNehDw1pAOOD60xjfjbT8HWNCWjCtuq7XHml4i5Awyi96+6dH2iAB643lQnFY6nZHUoN8FNRvb/iP3HMbdSXmHkTL3IHAKGLgqA5YxlidcZPB+HKsSJ0PVBV6T/eQbQ10QQCXiitRkmm9R/tKgAj5nM6Ovtgrb12MU+8S7/Gt4h4q+t/1AVLHWcitUhuwOpMSHkFlA6jU+IOHFv29VktQ2rjbFWM8ZNqDOMvgXeUH/7RyvE+5S6Z0QLifQu0wBYgLNoM9T6vLjBC6icOdZt2sNM7cuDmYFj4wCW5nUL05y1j0ApIp3XztHrZsZqGCLbzi/tvHwWiMRI5bYsANe69earnFH6yFU0JqOyUz4kJL8x5YxFlBF2BsnCbEd7UxILRvhJtoGRO8ERG0aBBgzhufGQS9gA9IZmCIpvJx06SMMeJiPMWJLaidNLXWIuDam6qWc8OKNiDh",
"permitEmptyPassphrase": false,
"remoteConfigurations": {
"legacy-couchdb": {
"id": "legacy-couchdb",
"name": "CouchDB Remote",
"uri": "%$NA/UWgH5dpizBJ9wynM8oH46b8eDpK/irIUl0+auH7XWM1auwn9V2hYzAR3bYfYmjGreYlBfj3zkwsY9hQMwnfunoYlYjiM0DyZcH+Z2cllge/7Z9fRllpb0bmLiwVqcyWmHPrtkpDHfm79HGl0Z+5xmQKXwBj0rPV3YDlhHvpnNJAw7oeJDpflAblTiJVO5V6XY5jDhU7ibVWSCr+zd5Y3/noYQQ8r9XUwsunNGcAEtD3cHcCGAiCdn4gwFSqfgE024wGYx8eYmVRTizr3wcVLirY6h+xh1D2Jb2z3AIwHV3veStn2rKFJ8KoMgWFOBduPnSlQiIQ7hyrqTZGSu+Uc3hdm8rkboiSOmad8RRowxVaApgFi1ihfnfAXdVr+MAgPA3UFCMRuI0+q8yfjvKPCeUDIWSdP0josvJUkQ6CDnhDTOb5At/S2lT+naU0JVP6gv3RElxtTIyAlRS1GoamRf4h68LiFgXRHPrbiVrvEqJ7kZLsOkrS+iMpJ/mkFZdlbuWkD7ayYIZ95p2DruiZ31ge8OkJeBE2Yk2POvWuton10sgxL74n9D/Y+bCHeFrTTKFxTy10Ky8VAD6+xbFV0GK5qsO8gv4t66L2g1mLzc2YbCgH9Zd9arrGPiX6Dppk0rLkYLhZmliVA8KTK2ow1nKlPqbvhlQg9peaWXDcjdbHudXB/1GQFzqpN9+pqj3gpy4p9fN3fTpOqDMJvQNBbjLqArk9oSS2DVm7AZ4qFLSAS6G1Bspi043TnJB5Ap7pnwDLJZgBrsNQDiC96F/a5U0n9MS2Aj0PgDrPM6CJXYEgAgPbx/lSK7Tw==",
"isEncrypted": true
}
},
"activeConfigurationId": "legacy-couchdb",
"P2P_ActiveRemoteConfigurationId": "",
"useIndexedDBAdapter": false,
"useTimeouts": false,
"writeLogToTheFile": false,
"doNotPaceReplication": false,
"hashCacheMaxCount": 300,
"hashCacheMaxAmount": 50,
"concurrencyOfReadChunksOnline": 40,
"minimumIntervalOfReadChunksOnline": 50,
"hashAlg": "xxhash64",
"suspendParseReplicationResult": false,
"doNotSuspendOnFetching": false,
"useIgnoreFiles": false,
"ignoreFiles": ".gitignore",
"syncOnEditorSave": false,
"keepReplicationActiveInBackground": false,
"pluginSyncExtendedSetting": {},
"syncMaxSizeInMB": 50,
"settingSyncFile": "",
"writeCredentialsForSettingSync": false,
"notifyAllSettingSyncFile": false,
"isConfigured": true,
"settingVersion": 10,
"enableCompression": false,
"accessKey": "",
"bucket": "",
"endpoint": "",
"region": "",
"secretKey": "",
"useEden": false,
"maxChunksInEden": 10,
"maxTotalLengthInEden": 1024,
"maxAgeInEden": 10,
"disableCheckingConfigMismatch": false,
"displayLanguage": "def",
"enableChunkSplitterV2": false,
"disableWorkerForGeneratingChunks": false,
"processSmallFilesInUIThread": false,
"notifyThresholdOfRemoteStorageSize": 0,
"usePluginSyncV2": true,
"usePluginEtc": false,
"handleFilenameCaseSensitive": false,
"doNotUseFixedRevisionForChunks": true,
"showLongerLogInsideEditor": false,
"sendChunksBulk": false,
"sendChunksBulkMaxSize": 1,
"useSegmenter": false,
"useAdvancedMode": false,
"usePowerUserMode": false,
"useEdgeCaseMode": false,
"enableDebugTools": false,
"suppressNotifyHiddenFilesChange": false,
"syncMinimumInterval": 2000,
"P2P_Enabled": false,
"P2P_AutoAccepting": 0,
"P2P_AppID": "self-hosted-livesync",
"P2P_roomID": "",
"P2P_passphrase": "",
"P2P_relays": "wss://exp-relay.vrtmrz.net/",
"P2P_AutoBroadcast": false,
"P2P_AutoStart": false,
"P2P_AutoSyncPeers": "",
"P2P_AutoWatchPeers": "",
"P2P_SyncOnReplication": "",
"P2P_RebuildFrom": "",
"P2P_AutoAcceptingPeers": "",
"P2P_AutoDenyingPeers": "",
"P2P_IsHeadless": false,
"P2P_DevicePeerName": "",
"P2P_turnServers": "",
"P2P_turnUsername": "",
"P2P_turnCredential": "",
"P2P_useDiagRTC": false,
"doctorProcessedVersion": "0.25.27",
"bucketCustomHeaders": "",
"couchDB_CustomHeaders": "",
"useJWT": true,
"jwtAlgorithm": "ES512",
"jwtKey": "-----BEGIN PRIVATE KEY-----\nMIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBnKJOpWxPc1T5IoQN\nsWrMfNUg0vaZUUCsSRiEJKnlDcl17joI8LylqbHdNr1pmI+onIGQg+mOweGz7jCv\nGDBF4bqhgYkDgYYABAFrCDcCiOCE53P/qivBpG3UytUKm8GpYxx5slGMx0XsAy9P\nBzZe+GIDEE23NNPplQR7FbDTVFA9AM12sFwc/ylDpgClxxDWW3Z3yKnW7reOFI/5\niIzKxj+XcIvpiS29L/b4gJSgOS1rjeY5VGCMb53iWFK4poK4ZLCv821OH3bCAoUy\n8w==\n-----END PRIVATE KEY-----\n",
"jwtKid": "livesync-cc",
"jwtSub": "cc",
"jwtExpDuration": 5,
"useRequestAPI": false,
"bucketPrefix": "",
"chunkSplitterVersion": "v3-rabin-karp",
"E2EEAlgorithm": "v2",
"processSizeMismatchedFiles": false,
"forcePathStyle": true,
"syncInternalFileOverwritePatterns": "",
"useOnlyLocalChunk": false,
"maxMTimeForReflectEvents": 0,
"tweakModified": 1781558066465
}