🔄 Своя Dropbox-альтернатива: Syncthing

🔄 Своя Dropbox-альтернатива: Syncthing

🧠 Зачем?

Облачные сервисы — удобно, но:

  • не хочется платить Google/Dropbox за хранение своих файлов
  • хочется моментально синхронизировать фото, документы и заметки между устройствами
  • и делать это на своём сервере, без отправки данных «в облако»

👉 Решение — Syncthing:
децентрализованный, зашифрованный, open source-синк между любыми устройствами.


🚀 Что ты получишь?

  • 📂 Автосинк папок между сервером, ноутбуком, телефоном (Android/iOS)
  • 🔒 Сквозное шифрование и передача по локальной сети
  • ☁️ Собственный "Dropbox", но без интернета и подписок

📦 Что уже готово

  • ✅ Docker и Docker Compose установлены
  • ✅ Traefik настроен (по этой инструкции)
  • ✅ У тебя есть домен вида sync.home.example.com

Создай папку для данных и конфигов:

mkdir -p /opt/docker/syncthing

⚙️ Docker Compose конфигурация

Добавляем в наш docker-compose.yml:

  syncthing:
    <<: *defaults
    image: syncthing/syncthing
    container_name: syncthing
    hostname: my-syncthing
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - /opt/docker/syncthing:/var/syncthing
    ports:
      - 22000:22000/tcp  # TCP-передача
      - 22000:22000/udp  # QUIC-передача
      - 21027:21027/udp  # Обнаружение устройств в локалке
    healthcheck:
      test: curl -fkLsS -m 2 127.0.0.1:8384/rest/noauth/health | grep -o --color=never OK || exit 1
      interval: 1m
      timeout: 10s
      retries: 3
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.syncthing-opt.rule=Host(`sync.home.example.com`)"
      - "traefik.http.routers.syncthing-opt.entrypoints=https"
      - "traefik.http.routers.syncthing-opt.tls.certresolver=myresolver"

Запускаем:

docker compose up -d

Теперь интерфейс доступен по адресу:
🔗 https://sync.home.example.com


👩‍💻 Первичная настройка Syncthing

  1. Зайди в веб-интерфейс
  2. Установи имя устройства (например, home-server)
  3. Добавь папку для синка (например, /var/syncthing/shared)
Папки внутри контейнера можно смонтировать в volumes, если хочешь доступ снаружи

💻 Подключаем ноутбук (Linux, macOS, Windows)

  1. Скачай Syncthing: https://syncthing.net/downloads/
  2. Установи и запусти
  3. Зайди в интерфейс (обычно http://localhost:8384)
  4. Добавь устройство → введи Device ID сервера
  5. На сервере подтверди соединение
  6. Настрой общую папку

Готово — теперь всё будет синхронизироваться автоматически.


📱 Подключаем Android

  1. Установи Syncthing Android
  2. Запусти, прими права на хранилище
  3. Подключи устройство:
    • Зайди в «Устройства» → «Добавить»
    • Отсканируй QR-код сервера (или введи ID)
  4. Добавь папки:
    • Например, DCIM/Camera для автосинка фото
    • Или Download, чтобы забирать файлы с телефона на сервер

🍏 Подключаем iOS

Для iOS есть Syncthing для iOS (Mobius) — он работает в фоне, но с ограничениями:

  • Запуск синка требует открыть приложение
  • Нельзя синкать системные папки напрямую (ограничения iOS)

Но ты можешь:

  • Добавить «каталоги» внутри приложения (например, документы, заметки)
  • Настроить обмен с сервером или ноутбуком

🔐 Безопасность та же: сквозное шифрование, без сторонних облаков.


🛡️ Безопасность

  • Все соединения — шифруются
  • Нет стороннего сервера: синк происходит напрямую
  • Синхронизация работает по локальной сети, если оба устройства в одной Wi-Fi

🧠 Что можно синхронизировать?

  • 📸 Фото и видео с телефона
  • 📄 Документы, заметки, пароли
  • 🔁 Папку Downloads с ноутбука и сервера
  • 🗂️ Бэкапы, проекты, конфиги

🎁 Бонус: автоматическая очистка и версионирование

Syncthing умеет:

  • Хранить версии файлов
  • Автоматически удалять старые файлы
  • Переименовывать удалённые/изменённые файлы в .stversions

Настраивается для каждой папки в её свойствах.


✅ Результат

ВозможностьЕсть ✅
Мгновенный синк между всеми девайсами
Поддержка Android и iOS
Полная автономность и приватность
HTTPS-доступ через Traefik
Без подписок и сторонних серверов

📎 Полезные ссылки

Read more

🎧 Свой подкаст-сервер за 5 минут: Podgrab

🎧 Свой подкаст-сервер за 5 минут: Podgrab

✨ Зачем? Подкасты — отличный способ учиться, развлекаться и быть в курсе мира. Но что, если: * Хочется слушать подкасты офлайн * Хочется архивировать любимые шоу * Не устраивают сторонние сервисы, реклама и трекеры Решение: Podgrab — простой подкаст-граббер, который автоматически скачивает новые выпуски с любого RSS. А в связке с Audiobookshelf ты получаешь полноценный медиасервер.

Безопасное управление конфигурациями в Ansible: Полное руководство по использованию rescue и always

Безопасное управление конфигурациями в Ansible: Полное руководство по использованию rescue и always

Введение: Почему это важно В мире DevOps и системного администрирования существует простое правило: всё ломается. Особенно в самый неподходящий момент. Когда вы изменяете конфигурацию критического сервиса (например, Nginx), цена ошибки может быть очень высока — от простого даунтайма до потери данных. Ansible предлагает элегантное решение для безопасного внесения изменений через механизм

Использование ~/.ssh/authorized_keys для управления входящими SSH-соединениями

Использование ~/.ssh/authorized_keys для управления входящими SSH-соединениями

Файл ~/.ssh/authorized_keys позволяет настроить команды, которые будут выполняться при входящих SSH-соединениях. Это полезный инструмент для управления доступом и обеспечения безопасности, особенно при работе с резервным копированием данных. Настройка резервного копирования с использованием authorized_keys В данном примере рассматривается использование authorized_keys для настройки резервного копирования базы данных Bacula

Смазывать или не смазывать? Вот в чём вопрос (спойлер: смазывать)

Смазывать или не смазывать? Вот в чём вопрос (спойлер: смазывать)

Если вы когда-нибудь слушали, как ваш 3D-принтер поёт на Z-оси вместо того, чтобы плавно ехать, как по маслу (буквально), — скорее всего, вы уже задавались этим вопросом: чем смазывать кинематику и когда вообще это делать? Спокойно. Без фанатизма и бутылки литола. Сейчас разберёмся, что мажем, чем мажем и зачем. Для валов