Я устал от Яндекс.Диска и «неработающего» CleanShot Cloud и сделал своё облако для скриншотов

Я устал от Яндекс.Диска и «неработающего» CleanShot Cloud и сделал своё облако для скриншотов

Собрал своё мини-облако для скриншотов: одна горячая клавиша, и у меня в буфере короткая ссылка с превью в Telegram и аккуратной страницей просмотра.

Скриншоты у меня — рабочая валюта: я постоянно кидаю их клиентам, в задачи команде, в переписки и заметки. И каждый раз бесит одно и то же: лишняя возня и «вот вам файл где-то в облаке, разберётесь».

Если вы тоже часто отправляете скриншоты клиентам, команде или в задачи, то наверняка поймёте: бесит не сам скрин, а вся возня после него — загрузка, ссылка, доступы, лишние пояснения.

Сначала я делал это через Яндекс.Диск. Как хранилище он норм, но как инструмент, чтобы быстро поделиться — боль: лишние клики, неочевидные ссылки, которые каждый раз приходится объяснять. Потом купил CleanShot X и понял, каким должен быть идеальный сценарий: снял — и сразу поделился. Но в России CleanShot Cloud нормально не работает, и в какой-то момент стало очевидно: если я хочу этот удобный процесс, значит, придётся собрать своё маленькое облако под себя

База скриншотов с 2022 года на 35Гб
База скриншотов с 2022 года на 35Гб

Что я хотел получить (чек-лист требований)

Мне не нужен был ещё один сервис, который надо настраивать, поддерживать и держать в голове. Нужен был один простой сценарий: сделал скрин, нажал горячую клавишу, получил ссылку. Поэтому я собрал для себя простой чек-лист требований:

  • Один хоткей → ссылка готова и уже в буфере обмена
  • Короткий URL без мусора: ss.pilotnikov.com/JOxw9eTk
  • Просмотр как у сервиса: превью по центру + кнопка «Скачать»
  • Поддержка не только картинок, но и видео (с нормальным плеером и fullscreen)
  • Превью в мессенджерах (Telegram и т.п.), чтобы ссылка выглядела как сервис, а не как случайный файл
  • Приватность по умолчанию: чтобы страницы и файлы не улетали в индексацию и не попадали в веб-архивы

Всё. Если эти пункты выполняются, значит инструмент решает задачу.

Как я это собрал

Я не хотел создавать сервис. Мне нужно было вернуть удобную привычку: сделал скриншот и отправил ссылку, без лишних папок, ручных загрузок и выдачи доступа.

На Mac у меня уже был готовый набор: CleanShot X сохраняет исходники, Compresto автоматически сжимает и складывает готовые файлы отдельно. Оставалось связать это одним действием. Я сделал bash-скрипт: он берёт самый свежий файл, присваивает ему короткий код для ссылки, загружает на сервер и кладёт URL в буфер обмена. Чтобы вообще не думать про терминал, я обернул запуск в Raycast и повесил на хоткей. Получилось ровно то, чего не хватало: «скрин → хоткей → ссылка».

Серверную часть тоже не усложнял: поддомен на Beget, папка для файлов и один view.php. Он по коду находит нужный файл и показывает его на аккуратной странице просмотра — картинку или видео. Всё собиралось по принципу: минимум деталей, максимум удобства.

Как это работает в реальной жизни

В реальной жизни это выглядит так:

  • Делаю скриншот в CleanShot X (у меня это на средней кнопке Logi MX Master 3S).
  • Compresto автоматически сжимает файл и кладёт его в папку «готовых».
  • Нажимаю хоткей в Raycast — скрипт забирает последний файл, заливает на ss.pilotnikov.com и копирует ссылку в буфер.
  • Вставляю ссылку в Telegram/чат/задачу.
  • И самое приятное: ссылка открывается не «файлом», а нормальной страницей просмотра, плюс в мессенджерах появляется превью.
Как это работает: CleanShot X → Compresto → Bash → Хостинг → URL в буфер.
Как это работает: CleanShot X → Compresto → Bash → Хостинг → URL в буфер.

Как устроено: Mac + простой PHP на сервере

Если совсем простыми словами, у меня две части: Mac, где появляются скриншоты, и сервер, где они лежат и открываются по короткой ссылке.

На Mac

  • CleanShot X сохраняет скриншоты и записи экрана.
  • Compresto автоматически сжимает их и кладёт в папку «готовых».
  • Мой скрипт по хоткею берёт самый свежий файл, присваивает ему короткий код для ссылки, загружает на сервер и копирует URL в буфер.

На сервере

  • Загруженные файлы лежат в папке /files.
  • Короткая ссылка вида ss.pilotnikov.com/owiMZfcB через .htaccess ведёт на один обработчик — view.php.
  • view.php по коду находит файл и показывает страницу просмотра: картинку, видео или кнопку «скачать».

Видео показываю через Plyr, подключаю его локально (без CDN) и только на страницах, где он реально нужен. Для картинок всё проще: адаптивное превью по центру и клик для открытия оригинала.

В итоге это не «облако» в привычном смысле, а быстрый конвейер: снял → загрузил → отправил ссылку → открыл красиво.

Просмотр по ссылке: видео открывается прямо в браузере
Просмотр по ссылке: видео открывается прямо в браузере

Почему превью в Telegram реально экономит время

Ссылка с превью в Telegram: сразу видно, что внутри — открывают быстрее.
Ссылка с превью в Telegram: сразу видно, что внутри — открывают быстрее.

Превью в Telegram не для красоты. Это реально влияет на то, как люди воспринимают ссылку и насколько охотно по ней переходят.

Когда ты кидаешь в чат просто файл или длинную ссылку, это выглядит как что-то непонятное, и не ясно, что внутри. Её легко пропустить, отложить на потом или вообще не открыть. А когда ссылка сразу превращается в карточку: заголовок, описание и миниатюра скриншота — это воспринимается как нормальный инструмент. Понятно, что внутри, и понятно, зачем открывать.

Для меня это важно именно в рабочей переписке:

  • с клиентом — чтобы быстрее согласовывать правки и не тратить время на объяснения «откройте вот это»;
  • внутри команды — чтобы задача читалась с одного взгляда;
  • в заметках/CRM — чтобы по ссылке было видно, что там лежит, не открывая.

По сути, мета-теги для превью превращают «файл где-то на сервере» в удобный рабочий артефакт. И это напрямую экономит время на коммуникации.

Приватность: чтобы рабочие скрины не «светились» в интернете

Для меня это принципиально: это не фотохостинг и не публичная галерея. В скриншотах часто остаются рабочие детали — переписки, интерфейсы админок, цифры, куски ТЗ. Поэтому сервис должен быть удобным для обмена ссылкой, но не должен попадать в поиск и архивы.

Что я сделал на базовом уровне:

  • страницы и файлы помечены как noindex/nofollow (через заголовки и meta), чтобы поисковики не индексировали контент;
  • запретил кэширование/сниппеты и «показ картинок» в выдаче;
  • закрыл сервис от веб-архивов, чтобы случайно не появлялись сохранённые копии.

При этом важно понимать границу: «не индексируется» ≠ «защищено паролем». Если кто-то получил прямую ссылку, он сможет открыть её. Поэтому в URL используется короткий случайный код, чтобы ссылку нельзя было угадать по порядку, и я не храню там ничего, что должно быть строго закрытым.

Если буду усиливать дальше, то сделаю код длиннее и добавлю авто-удаление старых файлов. Но даже текущая версия закрывает главный риск: мои рабочие скриншоты не превращаются в контент для поиска и архивов.

Что это говорит обо мне как о SEO-специалисте

Для меня SEO — это не только семантика, структура и тексты. Это ещё и скорость работы команды: как быстро мы фиксируем проблему, показываем правку, согласовываем изменения и фиксируем результат.

Этот мини-сервис вырос из реальной рутины. Скриншоты постоянно участвуют в согласованиях, задачах и отчётах, и если шаринг неудобный, теряется время на пустом месте. Я сделал так, чтобы один хоткей закрывал всю цепочку: ссылка, превью, просмотр.

Итоги и что дальше

В итоге я получил ровно то, что хотел: быстрый и предсказуемый сценарий «скрин → хоткей → ссылка». Ссылка короткая, открывается на аккуратной странице просмотра, видео смотрится прямо в браузере, а в Telegram сразу появляется превью. И главное: всё живёт на моём поддомене и не улетает в поиск — это рабочий инструмент, а не публичная витрина.

Зачем я написал эту статью? Чтобы показать простую мысль: такой инструмент может собрать любой, у кого есть желание и базовый техничный кругозор. Тут нет большой разработки, всё держится на понятной связке: скриншоты на Mac → загрузка по горячей клавише → простой обработчик на сервере.

Если захотите повторить, минимальный план такой:

  • поддомен и папка для файлов на хостинге;
  • короткие ссылки (правило для URL) → страница просмотра;
  • локальный скрипт, который берёт последний файл и заливает на сервер;
  • базовая приватность: noindex и запрет архивов, чтобы рабочие скрины не улетали в поиск.

Если буду допиливать дальше, то по минимуму:

  • авто-удаление старых файлов (30–90 дней);
  • сделать код в ссылке длиннее (меньше риск угадывания);
  • кнопка «удалить» по отдельной скрытой ссылке;
  • постер/превью для видео.

Отдельно могу показать и техническую сборку: .htaccess, view.php, шаблон страницы просмотра и bash-скрипт, который отправляет файл на сервер.

Больше таких историй в Telegram:

66