Photo Stream — это более простой способ хранить ваши фотографии, изначально созданный @maxvoltar, а теперь поддерживаемый @waschinski, @boerniee и их друзьями. Простой в использовании, самостоятельный хостинг, никакого отслеживания, только фотографии.
Демо-версия этого репозитория размещена на бесплатном плане Render.
Нам нравится фотографировать и делиться ими. Проблема в том, что в наши дни сложно владеть своими фотографиями и тем, как они представлены в социальных сетях, поэтому мы решили выделить для них место. Вы размещаете его самостоятельно, где хотите (Netlify, Github Pages...), вы все контролируете.
Ранее рекомендуемым способом установки Photo Stream было создание репозитория. На мой взгляд, это было не совсем оптимально, и, будучи поклонником Docker, я начал работать над оптимизацией для запуска Photo Stream в контейнере. Вот почему конфигурация была перенесена из _config.yml
в .env
поэтому при переключении с исходного репозитория вам придется соответствующим образом настроить файл .env
.
В Docker Hub есть изображение, которое вы можете получить, используя:
docker pull waschinski/photo-stream:latest
Альтернативно загрузите файл docker-compose.yml
, при необходимости измените конфигурацию и используйте следующую команду, чтобы запустить Photo Stream:
docker-compose up -d
Папку photos
можно смонтировать как том. Обязательно поместите свои фотографии в папку original
.
linux/arm/v6
):Предварительные требования: docker и docker-compose установлены на RPI.
В разделе комментариев к image
docker-compose.yml раскомментируйте раздел build
и настройте для BASE_IMAGE
значение arm32v6/ruby:3.1.2-alpine3.16
.
Затем docker-compose build
Затем docker-compose up -d
Загрузите последнюю версию со страницы выпуска и распакуйте ее.
Для запуска Photo Stream убедитесь, что вы соответствуете следующим требованиям:
Способ их установки зависит от вашей ОС. Пользователи Debian будут использовать sudo apt-get install build-essential
а в MacOS у вас все будет хорошо с xcode-select --install
.
Проверьте, установлен ли у вас уже Ruby ( ruby -v
). Если вы этого не сделаете, вы можете следовать инструкциям по установке, представленным здесь.
Инструкции по установке libvips можно найти здесь.
Далее вам нужно будет установить Jekyll (достаточно простого gem install bundler jekyll
). Прежде чем продолжить, убедитесь, что вы соответствуете его требованиям или установили их.
Как только все эти требования будут выполнены, вы, наконец, сможете установить все драгоценные камни, необходимые для Photo Stream (вы должны находиться в папке Photo Stream):
bundle install
Создайте форк этого репозитория и добавьте свои собственные фотографии в папку photos/original
. Войдите в свою учетную запись Render или создайте новую. Создайте новый статический сайт на панели Render Dashboard. Подключите свою учетную запись Github и выберите хранилище фотопотоков. Выберите правильную ветку и настройте команду сборки ( bundle exec jekyll build
) и каталог публикации ( _site
). В разделе «Дополнительно» вы Add Secret File
и создаете файл .env
, содержащий настроенные вами переменные среды. Возможно, вы сможете изменить этот файл непосредственно в своем репозитории и пропустить предыдущий шаг (добавление секретного файла), но я это не проверял.
Поместите свои фотографии (без изменения размера) в каталог photos/original
. При желании вы можете дать им имя, которое будет отображаться в заголовке страницы с фотографиями и в RSS-канале.
Эта команда будет обслуживать статическую страницу на вашем локальном компьютере. http://локальный хост:4000
bundle exec jekyll serve
Вы также можете статически создать свой сайт для загрузки на обычный веб-хостинг.
bundle exec jekyll build
Теперь загрузите содержимое каталога _site/ на свой веб-сервер.
Просто запустите скрипт, который вам нужен, прямо из папки _scripts
, вот так:
sh ./_script/build-n-lftp.sh
build.sh
создаст ваш сайт, а rsync.sh
и lftp.sh
синхронизируют его соответственно. build-n-rsync.sh
и build-n-lftp.sh
просто выполняют оба шага за один. Не забудьте добавить конфигурацию синхронизации в файл .env
.
Первое, что вам нужно сделать, это отредактировать пару вещей в /.env
:
TITLE
: название вашего фотопотока.EMAIL
: Ваш адрес электронной почты (эта строка необязательна, ее можно удалить).AUTHOR_NAME
: Ваше имя.AUTHOR_EMAIL
: ваш адрес электронной почты (необязательно).AUTHOR_WEBSITE
: Ваш веб-сайт (может быть адресом этого потока фотографий).DESCRIPTION
: Описание вашего фотопотока.BASEURL
: следует оставить пустым или удалить. URL
: где будет транслироваться этот поток фотографий (пример: https://maxvoltar.photo
), НЕ должен заканчиваться на /, иначе ссылки будут перепутаны.SHOW_RSS_FEED
: установите значение 1
или 0
, чтобы включить или отключить отображение кнопки RSS-канала.SHOW_OFFICIAL_GITHUB
: установите значение 1
или 0
, чтобы включить или отключить показ ссылки на официальный репозиторий github.DEFAULT_REVERSE_SORT
: установите значение 1
чтобы изменить порядок сортировки фотографий и сначала показывать самые старые фотографии. По умолчанию 0
.ALLOW_ORDER_SORT_CHANGE
: установите значение 1
, чтобы пользователи могли менять порядок сортировки фотографий на обратный.ALLOW_ORIGINAL_DOWNLOAD
: установите значение 1
, чтобы пользователи могли загружать фотографии в исходном размере.ALLOW_INDEXING
: установите значение 0
, чтобы сканеры не индексировали ваш поток фотографий путем добавления метатегов robots
. По умолчанию 1
.ALLOW_IMAGE_SHARING
: установите значение 1
чтобы пользователи могли делиться изображениями с друзьями. По умолчанию 1
.TWITTER_USERNAME
: ваше имя пользователя в Твиттере или удалите/прокомментируйте эту строку.GITHUB_USERNAME
: ваше имя пользователя Github или удалите/прокомментируйте эту строку.INSTAGRAM_USERNAME
: ваше имя пользователя Instagram или удалите/прокомментируйте эту строку.SYNCUSER
: ваше имя пользователя используется lftp/rsync в сценариях оболочки для синхронизации вашего сайта с вашим веб-сервером.SYNCPASS
: ваш пароль используется lftp/rsync в сценариях оболочки для синхронизации вашего сайта с веб-сервером.SYNCSERVER
: URL-адрес вашего веб-сервера, используемый lftp/rsync в сценариях оболочки, с которым будет синхронизироваться ваш сайт.SYNCFOLDER
: папка на вашем веб-сервере, используемая lftp/rsync в сценариях оболочки, с которой будет синхронизироваться ваш сайт. Не включайте @
-часть в свои социальные идентификаторы. Ссылки на ваши профили Github, Twitter и Instagram отображаются только в том случае, если они установлены.
Прежде чем опубликовать ваш веб-сайт, Jekyll изменит размер ваших фотографий на 3 разных сегмента:
/photos/large
: они отображаются только тогда, когда пользователь переходит на страницу с фотографиями. По умолчанию их размер изменяется до 2048 в ширину и 2048 в высоту. При желании вы можете изменить их, изменив значения в /_config.yml
(по умолчанию они выглядят примерно так: resize_to_limit: [2048, 2048]
)./photos/thumbnail
: используются в сетке. Photo Stream загрузит все миниатюры выше сгиба, а затем еще больше по мере прокрутки вниз; все для экономии полосы пропускания. Стандартный размер для них — 640 на 640 (максимум), но при необходимости вы также можете изменить его./photos/tint
: то, что вы видите, когда страница загружает первую партию миниатюр, которая также используется в качестве фона для страниц с фотографиями.