igoryakus

ShotHost

Максимально быстрая загрузка скриншотов.

Делаете скриншот, и ссылка на него сразу оказывается в буфере обмена. Файл в это время уходит в фоне на ваш собственный сервер, без публичных хостингов, рекламы и капч.

На Mac это нативное приложение в строке меню: все настройки в одном окне, пауза, ручная загрузка файла, последние ссылки и уведомление с кнопкой «Открыть». Для Windows есть скрипт PowerShell.

Приложение для macOS Windows Свой VPS Открытый код
01
Скриншот сохранён SCR-20261011-jvpl.png
02
Ссылка в буфере обмена yakus.ru/shothost/SCR-20261011-jvpl_2af3a7d3
03
Загрузка на ваш сервер

Возможности

  • Мгновенная загрузкаСкриншот отправляется на сервер в тот же момент, когда файл записывается на диск.
  • Ссылка сразуГотовая ссылка появляется в буфере обмена ещё до окончания копирования, ей можно делиться сразу.
  • Максимальная скоростьПрямая загрузка на ваш VPS без очередей и задержек публичных хостингов.
  • Ваш серверИзображения лежат на вашем собственном VPS под вашим полным контролем.
  • Приложение в строке менюНативное приложение для macOS: настройка в одном окне, проверка соединения, автозапуск при входе в систему.
  • Без рекламыНикаких баннеров, всплывающих окон, водяных знаков и капч.
  • Вечное хранениеФайлы хранятся, пока вы сами их не удалите, ничего не пропадает автоматически.
  • Открытый кодВесь код на GitHub под лицензией MIT: сервер на PHP, приложение на Swift.

Инструкция по настройке

Свой сервер, SSH-ключ и клиент на компьютере. Семь шагов, и скриншоты летят на ваш VPS.

  1. 01

    Подготовка VPS

    Вам понадобится собственный VPS. Убедитесь, что у вас есть SSH-доступ с правами root или sudo.

  2. 02

    Настройка SSH-доступа по ключу

    Для безопасной и автоматической выгрузки скриншотов необходим доступ по SSH-ключу.

    Создание ключа:

    • macOS / Linux: Откройте терминал и введите ssh-keygen -t ed25519. Нажимайте Enter до завершения.
    • Windows: Откройте PowerShell или командную строку и также введите ssh-keygen -t ed25519.

    Установка ключа на сервер:

    Выполните команду на вашем компьютере (заменив user и ip):

    ssh-copy-id -i ~/.ssh/id_ed25519.pub user@your_server_ip

    Если ssh-copy-id не доступен, вручную скопируйте содержимое вашего .pub файла в файл ~/.ssh/authorized_keys на сервере.

  3. 03

    Установка Nginx, PHP и Git

    Выполните команды на сервере:

    sudo apt update
    sudo apt install nginx php-fpm git
  4. 04

    Клонирование проекта

    Перейдите в директорию веб-сервера и склонируйте проект. Владельцем папки files должен быть пользователь, под которым вы заходите по SSH, иначе клиент не сможет загружать в неё файлы. Группа www-data и права 2775 нужны, чтобы Nginx мог отдавать файлы, а новые файлы получали ту же группу:

    cd /var/www/html
    sudo git clone https://github.com/igoryakus/shothost.git
    sudo chown -R $USER:www-data /var/www/html/shothost
    sudo chmod 2775 /var/www/html/shothost/files
  5. 05

    Настройка Nginx

    Отредактируйте конфигурацию сайта (обычно /etc/nginx/sites-available/default):

    location /shothost/ {
        try_files $uri $uri/ /shothost/index.php?$args;
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; # Проверьте вашу версию PHP    }
    }

    После изменений перезапустите Nginx: sudo systemctl restart nginx

  6. 06

    Настройка клиента (macOS)

    1. Скачайте ShotHost для macOS из блока «Скачать» выше. Можно собрать приложение и самостоятельно: ./macos-app/build-app.sh (нужны Xcode Command Line Tools).

    2. Откройте ShotHost.dmg и перетащите ShotHost.app в «Программы». Запустите ShotHost из «Программ». Приложение подписано без сертификата Apple, поэтому в первый раз macOS его заблокирует и покажет предупреждение: нажмите «Готово», откройте Системные настройки → Конфиденциальность и безопасность, прокрутите до раздела «Безопасность», нажмите «Все равно открыть» рядом со строкой «Файл „ShotHost“ заблокирован» и подтвердите паролем или Touch ID. Это нужно сделать один раз. Если кнопки нет, снова запустите ShotHost, чтобы она появилась.

    3. При первом запуске откроется окно настроек. Заполните поля:

    • Папка: куда macOS сохраняет скриншоты, например ~/Pictures/Screenshots. Её можно задать в приложении «Снимок экрана» (Shift+Cmd+5) → Параметры → Сохранить в.
    • Сервер: IP-адрес или домен VPS.
    • SSH-порт: 22, если вы не меняли порт SSH.
    • Пользователь: тот, под которым вы заходите по SSH (шаг 2).
    • SSH-ключ: закрытый ключ из шага 2, например ~/.ssh/id_ed25519 (файл без .pub).
    • Папка ShotHost: папка склонированного проекта на сервере. При установке по шагу 4 это /var/www/html/shothost/. Файлы загружаются в её подпапку files. Если проект лежит в другом месте, узнайте путь на сервере командой cd путь/к/shothost && pwd.
    • Сайт: домен или IP, на котором открывается ShotHost, без пути, например https://example.com. Ссылка строится из сайта и названия папки: https://example.com/shothost/имя_скриншота. Ниже полей показан пример ссылки.
    • Показывать окно со ссылкой после загрузки: после загрузки появляется окно, в нём кнопка «Показать» открывает скриншот в браузере. Окно закрывается само через 10 секунд. Если выключить, вместо окна будет приходить уведомление.

    Нажмите «Проверить соединение». Если появилась зелёная галочка, нажмите «Сохранить». Сообщение «Соединение есть, но папка … не найдена или недоступна для записи» значит, что SSH работает, но такой папки нет или у пользователя нет прав на запись. Проверьте папку командой ls -ld /var/www/html/shothost/files на сервере: владельцем должен быть ваш пользователь. Если это не так, выполните chown и chmod из шага 4.

    Окна у приложения нет, только значок в строке меню. Если значка не видно (например, он спрятан за вырезом экрана), запустите ShotHost из «Программ» ещё раз, и откроются настройки.

    4. Чтобы приложение работало постоянно, включите в настройках «Запускать при входе в систему».

  7. 07

    Настройка клиента (Windows)

    1. Скачайте скрипт для Windows shothost.ps1 из блока «Скачать» выше.

    2. Откройте его в текстовом редакторе и настройте переменные в начале файла (пути к папкам, данные сервера).

    3. Для запуска откройте PowerShell и выполните скрипт. Чтобы он работал в фоне, можно создать ярлык в папке «Автозагрузка» (Win+R → shell:startup) с командой:

    powershell.exe -WindowStyle Hidden -File "C:\путь\к\shothost.ps1"

    Примечание: Убедитесь, что у вас разрешен запуск скриптов. Проверить текущую политику можно командой:

    Get-ExecutionPolicy -List

    Если напротив CurrentUser или LocalMachine не указано RemoteSigned или Unrestricted, разрешите запуск:

    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser