Синхронізація Obsidian без болю: Чому я обрав Syncthing і як його встановити (Частина 1)
У попередній статті ми детально розібрали, чому Obsidian став моїм головним інструментом для організації знань (Second Brain) і як правильна структура допомагає тримати все під контролем. Але щойно ваша база знань починає розростатися, виникає найголовніше питання: як синхронізувати свої нотатки між усіма пристроями?
Можна використовувати iCloud або Google Drive, але рано чи пізно ви зіткнетеся з дублюванням файлів, конфліктами версій або зависанням синхронізації на мобільному. Офіційний Obsidian Sync — чудове рішення, але воно платне.
Мій вибір — Syncthing. Це потужний, безкоштовний і абсолютно приватний інструмент, який ідеально вписався в мою екосистему з macOS, Windows 11, смартфона та власного VPS-сервера.
Що таке Syncthing і як він працює?
Syncthing — це open-source програма для безперервної децентралізованої синхронізації файлів (Continuous File Synchronization).
На відміну від традиційних хмарних сховищ (Dropbox, GDrive), де ваші файли лежать на чужому сервері, Syncthing використовує архітектуру Peer-to-Peer (P2P). Це означає, що ваші пристрої обмінюються файлами напряму одне з одним, минаючи центральні сервери.
Основні переваги технології:
Абсолютна приватність. Файли передаються лише між вашими пристроями по зашифрованому каналу (TLS). Ніхто інший не має до них доступу.
Блокова синхронізація. Якщо ви змінили одне слово у великому файлі, Syncthing передасть лише цей змінений шматочок (блок), а не весь файл. Для тисяч дрібних
.mdфайлів Obsidian це забезпечує блискавичну швидкість.Робота в локальній мережі (LAN). Якщо ваш ноутбук і комп'ютер знаходяться в одній Wi-Fi мережі, файли передаватимуться зі швидкістю вашого роутера, навіть без доступу до інтернету.
Навіщо тут VPS сервер?
Оскільки архітектура децентралізована, пристрої можуть синхронізуватися лише тоді, коли обидва включені та знаходяться онлайн. Щоб не тримати домашній ПК постійно увімкненим, я додав у цю схему свій VPS сервер на Ubuntu. Він виступає як «always-on» (завжди увімкнений) вузол.
Схема проста: я пишу нотатку на MacBook у кав'ярні, вона миттєво відлітає на VPS. Коли я повертаюся додому і вмикаю Windows-ПК, він забирає цю нотатку з VPS. Магія!
Встановлення: Озброюємо наші пристрої
Syncthing має клієнти під будь-яку платформу. Оскільки мій робочий процес розділений між різними ОС, ось як я підготував кожен пристрій.
1. macOS (Apple Silicon M1)
Для маководів найпростіший шлях для фонової роботи — використання пакетного менеджера Homebrew (ми ж любимо термінал, правда?).
Bash
brew install syncthing
brew services start syncthing
Після цього Syncthing запускається як фоновий сервіс і буде автоматично стартувати при включенні Mac. Інтерфейс керування доступний у браузері за адресою http://localhost:8384. (Якщо ви віддаєте перевагу графічному інтерфейсу, можна завантажити додаток Syncthing-macOS з GitHub).
2. Windows
Для Windows я обрав найпростіший і найбільш очевидний шлях — завантаження з офіційного сайту.
Достатньо зайти на офіційну сторінку https://syncthing.net/downloads/, знайти розділ для Windows і завантажити стандартний інсталятор. Встановлення проходить у кілька кліків, як і будь-якої іншої звичайної програми. Все максимально просто і зрозуміло: після інсталяції програма запускається у фоновому режимі, а весь процес налаштування відбувається через зручний веб-інтерфейс у браузері (за замовчуванням це http://localhost:8384).
(Також на цій же сторінці можна знайти SyncTrayzor — це офіційно рекомендована оболонка, яка додає зручну іконку в системний трей біля годинника, щоб вікно термінала не муляло очі).
3. Ubuntu VPS (Серверна частина — наше «завжди онлайн» ядро)
Як я вже казав, P2P-синхронізація вимагає, щоб пристрої були онлайн одночасно. Щоб не залежати від увімкненого домашнього комп'ютера чи відкритого ноутбука, я використовую свій VPS на Ubuntu як постійний вузол-посередник (hub).
Я вирішив не ускладнювати систему Docker-контейнерами і встановив Syncthing безпосередньо в операційну систему як класичний Linux-сервіс. Це дає максимальну продуктивність і прозорість налаштувань.
Крок 1. Встановлення з офіційного репозиторію
Щоб завжди отримувати найсвіжіші оновлення разом із стандартним apt upgrade, ми додамо офіційний репозиторій розробників. Виконуємо в терміналі сервера:
Bash
# 1. Завантажуємо PGP-ключ, щоб система довіряла цьому репозиторію
sudo curl -s -o /usr/share/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.txt
# 2. Додаємо сам репозиторій у список джерел Ubuntu
echo "deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
# 3. Оновлюємо список пакетів та встановлюємо Syncthing
sudo apt update && sudo apt install syncthing
Крок 2. Магія systemd (Робота у фоновому режимі)
Якщо після встановлення просто написати в консолі syncthing, програма запуститься, але щойно ви закриєте термінал (відключитесь від SSH) — вона вимкнеться.
Нам потрібно, щоб Syncthing працював як демон (фонова служба) і автоматично запускався після кожного перезавантаження сервера. Для цього в Linux використовується менеджер служб systemd. Розробники Syncthing вже дбайливо підготували для нас конфігурацію, нам залишається лише її активувати.
Важливе правило безпеки: Ніколи не запускайте Syncthing від імені користувача root! Це створює дірку в безпеці. Ми будемо запускати сервіс від імені вашого звичайного користувача.
Виконуємо наступні команди (замініть your_username на ім'я вашого користувача на сервері):
Bash
# Додаємо сервіс в автозавантаження (він буде стартувати разом із системою)
sudo systemctl enable syncthing@your_username.service
# Запускаємо сервіс прямо зараз
sudo systemctl start syncthing@your_username.service
# Перевіряємо статус (має світитися зелений напис "active (running)")
sudo systemctl status syncthing@your_username.service
4. Смартфон
Android: Тут все ідеально. Офіційний додаток
Syncthingз Google Play працює бездоганно, підтримує фонову синхронізацію та дозволяє обрати будь-яку папку в пам'яті телефону.iOS (iPhone/iPad): Офіційного клієнта немає через закритість файлової системи Apple, але є чудовий аналог — Mobius Sync. Він чудово працює з папками Obsidian на iOS, хоча і має обмеження на фонову роботу (Apple не дає стороннім додаткам довго висіти у фоні).
Крок 3. Налаштування безпечного доступу до Вебпанелі (Nginx + Домен)
За замовчуванням вебінтерфейс Syncthing для безпеки доступний лише локально (за адресою 127.0.0.1:8384). Багато хто радить просто відкрити цей порт назовні, але ми не будемо цього робити — це серйозна дірка в безпеці.
Ми підемо професійним шляхом: налаштуємо Reverse Proxy (зворотний проксі) та захистимо нашу панель сучасним шифруванням.
Навіщо потрібен домен? Щоб реалізувати захищений протокол HTTPS та отримати SSL-сертифікат. Таким чином, ваш доступ до панелі Syncthing (і всі паролі) будуть надійно зашифровані. Ви можете використовувати будь-який вільний домен, який у вас вже є, або зареєструвати безкоштовний (наприклад, у зоні .pp.ua).
Панель управління (мій досвід з HestiaCP) На своєму VPS я використовую панель управління сервером Hestia. Це дуже зручний і потужний комбайн, у якому вже встановлено все необхідне. З її допомогою візуально налаштовувати домени, DNS, пошту та файрвол — одне задоволення.
Невеличкий відступ: Hestia має звичку при оновленнях перезаписувати конфіги доменів, написані вручну. Це може зламати автоматичне оновлення SSL-сертифікатів від Let’s Encrypt. Щоб зробити все грамотно, потрібно використовувати кастомні шаблони Hestia. Свого часу я сильно попарився з цим питанням, тому детальну інструкцію зі створення шаблонів Hestia я напишу в окремій статті.
Налаштування Nginx Якщо коротко, суть полягає в тому, щоб додати домен на ваш сервер і налаштувати Nginx так, щоб він перехоплював зовнішній трафік і перенаправляв його на локальний порт Syncthing.
Ось основна частина конфігураційного файлу Nginx (блок location), яка дозволяє направляти запити з вашого домену на панель Syncthing:
Nginx
# 3. Основний проксі на Syncthing
location / {
# Перенаправляємо трафік на локальний порт Syncthing
proxy_pass http://127.0.0.1:8384;
location ~* ^.+\.(css|htm|html|js|mjs|json|xml|apng|avif|bmp|cur|gif|ico|jfif|jpg|jpeg|pjp|pjpeg|png|svg|tif|tiff|webp|aac|caf|flac|m4a|midi|mp3|ogg|opus|wav|3gp|av1|avi|m4v|mkv|mov|mpg|mpeg|mp4|mp4v|webm|otf|ttf|woff|woff2|doc|docx|odf|odp|ods|odt|pdf|ppt|pptx|rtf|txt|xls|xlsx|7z|bz2|gz|rar|tar|tgz|zip|apk|appx|bin|dmg|exe|img|iso|jar|msi|webmanifest)$ {
try_files $uri @fallback;
root %home%/%user%/web/%domain%/public_html;
expires max;
}
}
location @fallback {
proxy_pass http://127.0.0.1:8384;
}
💡 Примітка: У конфізі ми вказуємо
[http://127.0.0.1:8384](http://127.0.0.1:8384)(або IP вашого VPS), тому що Nginx та Syncthing знаходяться на одному сервері. Nginx виступає в ролі надійного охоронця, який приймає зовнішній зашифрований HTTPS-трафік і передає його всередину системи.
Після налаштування домену та застосування конфігів ви зможете відкрити панель у браузері за адресою вашого домену (наприклад, [https://syncthing.mydomen.pp.ua](https://syncthing.mydomen.pp.ua)) і відразу встановити надійний пароль адміністратора.
Крок 4. Перший запуск та базова безпека (Встановлення пароля)
Після того, як ми успішно налаштували домен та Nginx, настав час вперше зайти в нашу контрольну панель Syncthing на сервері.
Відкриваємо браузер і вводимо адресу нашого домену (наприклад, https://syncthing.mydomen.pp.ua). Оскільки це перший запуск, панель відкриється відразу, без запиту пароля. Але не лякайтеся: ви одразу побачите велике червоне попередження про те, що ваш інтерфейс не захищений. Це найважливіший етап налаштування сервера!
Як встановити пароль адміністратора:
У верхньому правому куті натисніть на кнопку «Дії» (Actions).
Виберіть пункт «Налаштування» (Settings).
Перейдіть на вкладку «Графічний інтерфейс» (GUI).
Введіть ім'я користувача (наприклад,
adminабо своє ім'я) та придумайте надійний пароль.(Опціонально) Тут же, на вкладці GUI, можна змінити тему оформлення на темну (Dark) — ваші очі подякують, якщо ви, як і я, звикли до темної теми в Obsidian та редакторах коду.
Натисніть «Зберегти» (Save).
Одразу після збереження панель перезавантажиться і попросить вас ввести щойно створені логін та пароль. Тепер ваш сервер Syncthing надійно захищений: трафік шифрується через HTTPS завдяки домену, а доступ закритий паролем.
Знайомство з інтерфейсом: Де лежить магія Syncthing?
Тепер, коли всі 4 пристрої (MacBook, Windows, смартфон та VPS) встановлені та готові до роботи, давайте розберемося, як саме вони будуть знаходити один одного.
У Syncthing немає централізованих акаунтів, реєстрацій чи email-адрес. Вся система побудована на криптографії. При першому запуску програма на кожному вашому пристрої генерує унікальний криптографічний ключ — Device ID (Ідентифікатор пристрою). Це довгий рядок з літер та цифр, який виглядає приблизно так: UKV6H...-....-....-.....
Щоб два пристрої почали довіряти один одному і змогли обмінюватися нотатками Obsidian, їм потрібно «познайомитися» — тобто ви маєте скопіювати Device ID з одного пристрою і додати його на інший.
Як знайти свій Device ID: На будь-якому з ваших пристроїв відкрийте панель Syncthing, натисніть у правому верхньому куті «Дії» (Actions) -> «Показати ID» (Show ID). З'явиться вікно з вашим довгим ідентифікатором та зручним QR-кодом (який ідеально підходить для швидкого підключення смартфона).
У наступній частині ми почнемо найцікавіше: створимо нашу топологію мережі. Я покажу, як правильно пов'язати MacBook, Windows та смартфон із нашим VPS-сервером, як створити першу спільну папку для бази Obsidian і налаштувати рятівний файл .stignore
Синхронізація Obsidian без болю (Частина 2): Топологія, папки та рятівний .stignore
У попередній частині ми встановили Syncthing на всі наші пристрої та надійно захистили панель управління на VPS-сервері. Тепер настав час змусити цю оркестровку працювати як єдиний механізм.
Топологія мережі: Чому сервер — це центр Всесвіту
Оскільки Syncthing працює за принципом P2P, ви можете з'єднати кожен пристрій з кожним (MacBook з Windows, Windows з телефоном і т.д.). Це називається топологією «Павутина» (Mesh).
Але для бази Obsidian це поганий варіант. Чому? Ноутбуки засинають, комп'ютери вимикаються, а телефон жорстко економить заряд батареї у фоновому режимі. Якщо ви напишете нотатку на Mac і закриєте кришку, ваш Windows-ПК її не отримає, поки Mac знову не прокинеться.
Тому ми побудуємо Зіркоподібну топологію (Star Topology). Наш завжди увімкнений VPS-сервер буде центром (хабом), а всі інші пристрої (MacBook, Windows, смартфон) будуть підключатися тільки до нього.
Як зв'язати пристрої:
Зайдіть у панель Syncthing на вашому MacBook. Натисніть «Додати віддалений пристрій» (Add Remote Device).
Введіть Device ID вашого VPS-сервера (як його знайти, ми розбирали в кінці першої частини) і назвіть його, наприклад,
Ubuntu-VPS.Тепер відкрийте вебпанель вашого VPS-сервера. Через кілька секунд там з'явиться жовте сповіщення: «Пристрій MacBook хоче підключитися». Натисніть «Додати».
Повторіть цю процедуру для Windows-ПК та смартфона: з кожного з них додайте ID сервера, а на сервері — підтвердіть запити.
💡 Результат: Тепер сервер знає про всі ваші пристрої, а кожен пристрій знає лише про сервер. Ідеально.
Створюємо першу спільну папку для Obsidian
Припустімо, ваша актуальна база знань Obsidian зараз лежить на MacBook. З нього і почнемо.
У панелі Syncthing на Mac натисніть «Додати папку» (Add Folder).
Вкладка «Загальне»: * Назва папки:
Obsidian Vault(або будь-яка інша).Шлях до папки: вкажіть реальний шлях до вашої бази (наприклад,
/Users/username/Documents/Obsidian).
Вкладка «Спільний доступ» (Sharing): * Поставте галочку навпроти нашого
Ubuntu-VPS.Натисніть «Зберегти».
Щойно ви це зробите, у вебпанелі VPS-сервера вискочить сповіщення: «MacBook хоче поділитися папкою Obsidian Vault». Натискаємо «Додати», вказуємо шлях на сервері (наприклад, /home/username/obsidian_sync) і зберігаємо. Сервер почне завантажувати ваші файли.
Коли файли опиняться на сервері, зайдіть у налаштування цієї папки на сервері, перейдіть на вкладку «Спільний доступ» і розшарте її для Windows та смартфона. Вони отримають запит, ви вкажете, куди зберегти базу на ПК та в телефоні, і синхронізація запуститься!
Магія .stignore: Рятуємося від конфліктів та сміття
А тепер — найважливіший крок, без якого ваша синхронізація Obsidian рано чи пізно перетвориться на жах.
Річ у тім, що різні операційні системи створюють приховані системні файли. Mac всюди розкидає .DS_Store, Windows створює desktop.ini та Thumbs.db. Якщо Syncthing почне ганяти ці файли між пристроями, у вас буде вічний безлад.
Більше того, сам Obsidian має у папці .obsidian специфічний файл workspace (або workspace-mobile). У ньому зберігається інформація про те, які вкладки у вас зараз відкриті, ширина панелей тощо. Він оновлюється щосекунди, коли ви працюєте. Якщо він буде синхронізуватися, поки ви працюєте одночасно на двох пристроях — конфлікт файлів неминучий.
Щоб цього уникнути, у Syncthing є Шаблони ігнорування (Ignore Patterns).
Відкрийте налаштування папки Obsidian Vault (на будь-якому пристрої), перейдіть на вкладку «Шаблони ігнорування» і вставте цей рятівний список:
Plaintext
// Ігноруємо системне сміття macOS
.DS_Store
.AppleDouble
.LSOverride
._*
.Trash-*
// Ігноруємо системне сміття Windows
desktop.ini
Thumbs.db
$RECYCLE.BIN/
// КРИТИЧНО ДЛЯ OBSIDIAN:
// Ігноруємо робочі простори (залишаємо лише самі нотатки та налаштування плагінів)
.obsidian/workspace
.obsidian/workspace.json
.obsidian/workspace-mobile
.obsidian/workspace-mobile.json
// Ігноруємо папку з конфліктами самого Syncthing (про всяк випадок)
.stversions/
Натисніть «Зберегти».
🔥 Важливий нюанс: Файл
.stignoreне синхронізується автоматично між пристроями! Вам потрібно скопіювати цей список і вручну вставити його у вкладку «Шаблони ігнорування» для цієї папки на кожному вашому пристрої (на Mac, на Windows, на сервері та в телефоні).
Що ми отримали в результаті?
Тепер у вас є власна, повністю безкоштовна, зашифрована хмара. Ви можете писати код у Neovim або створювати замітку в Obsidian на своєму Mac, і через 2 секунди вона вже буде на вашому Windows-ПК та в телефоні. Сервер надійно зберігатиме копію, навіть якщо всі ваші гаджети розрядяться.
Бонус: Захист від випадкового видалення (Керування версіями)
Є одне золоте правило, про яке часто забувають новачки: синхронізація — це не резервна копія (не бекап).
Уявіть ситуацію: ви випадково видалили важливу папку з нотатками на MacBook (або якийсь плагін Obsidian дав збій і затер текст). Syncthing спрацює ідеально і блискавично — він миттєво, слухняно видалить ці файли на вашому Windows-ПК, на телефоні та на сервері. Все, дані втрачено.
Щоб запобігти такій катастрофі, у Syncthing є вбудована кілер-фіча — Керування версіями файлів (File Versioning).
Найкраще увімкнути цю функцію саме на нашому VPS-сервері, оскільки він є центром нашої "зірки", завжди онлайн і має достатньо місця на диску для зберігання історії змін.
Як налаштувати захист від видалення:
Відкрийте панель Syncthing вашого VPS-сервера.
Натисніть «Редагувати» (Edit) на вашій спільній папці
Obsidian Vault.Перейдіть на вкладку «Керування версіями» (File Versioning).
У випадаючому списку оберіть «Кошик для файлів» (Trash Can File Versioning).
У полі очищення (Clean out after) вкажіть, скільки днів зберігати видалені файли. Я рекомендую ставити 30 днів.
Натисніть «Зберегти».
(Альтернативно можна обрати «Просте керування версіями» (Simple File Versioning) — тоді сервер буде зберігати вказану кількість попередніх версій кожного файлу при його зміні, наприклад, останні 5 версій).
Як це працює тепер: Якщо ви випадково видалите або зіпсуєте нотатку на ноутбуці чи телефоні, сервер слухняно прибере її з основної робочої папки, але турботливо сховає копію у прихованій директорії .stversions на своєму диску. Якщо станеться біда, ви завжди зможете зайти на сервер (через SSH або FTP) і відновити втрачений файл з архіву.
Ось тепер ваша система не лише безкоштовна, швидка і приватна, але й абсолютно куленепробивна!
