Photo Stream は、最初に @maxvoltar によって作成され、現在は @waschinski、@boerniee およびその友人によって管理されている、写真のためのよりシンプルなホームです。使いやすく、自己ホスト型、追跡なし、写真のみ。
Render の無料プランでホストされているこのリポジトリのデモがあります。
私たちは写真を撮って共有するのが好きです。問題は、最近では自分の写真を実際に所有すること、そしてその写真がソーシャル メディア上でどのように表現されているかを実際に所有することが難しいことです。そこで、私たちは写真のための場所を作ることにしました。どこでも (Netlify、Github Pages など)、自分でホストし、制御できます。
以前は、フォト ストリームをインストールする推奨方法は、リポジトリをフォークすることでした。私の意見では、これは実際には最適ではなかったので、Docker のファンである私は、コンテナー内で Photo Stream を実行するための最適化に取り組み始めました。そのため、設定が_config.yml
から.env
に移動されたため、最初のリポジトリから切り替えるときは、それに応じて.env
ファイルを設定する必要があります。
Docker Hub にイメージがあり、次を使用してプルできます。
docker pull waschinski/photo-stream:latest
あるいは、 docker-compose.yml
ファイルをダウンロードし、必要に応じて構成を変更し、次のコマンドを使用してフォト ストリームを実行します。
docker-compose up -d
photos
フォルダーはボリュームとしてマウントできます。写真は必ずoriginal
という名前のフォルダーに入れてください。
linux/arm/v6
のみ):前提条件: RPI に docker と docker-compose がインストールされている
docker-compose.yml のコメントimage
セクションで、 build
セクションのコメントを解除し、 BASE_IMAGE
引数をarm32v6/ruby:3.1.2-alpine3.16
に設定します。
次にdocker-compose build
次に、 docker-compose up -d
リリース ページから最新バージョンを取得して抽出します。
フォト ストリームを実行するには、次の要件を満たしていることを確認してください。
これらのインストール方法はOSによって異なります。 Debian ユーザーはsudo apt-get install build-essential
を使用しますが、MacOS ではxcode-select --install
で問題ありません。
Ruby が既にインストールされているかどうかを確認します ( ruby -v
)。そうでない場合は、ここに記載されているインストール手順に従ってください。
libvips のインストール方法については、ここを参照してください。
次に、Jekyll をインストールする必要があります (単純なgem install bundler jekyll
で十分です)。続行する前に、その要件を満たしているか、それらもインストールしていることを確認してください。
これらの要件がすべて満たされたら、最終的に Photo Stream に必要なすべての gem をインストールできます (Photo Stream フォルダーにあるはずです)。
bundle install
このリポジトリをフォークし、独自の写真をphotos/original
フォルダーに追加します。レンダー アカウントにログインするか、新しいアカウントを作成します。レンダー ダッシュボードに新しい静的サイトを作成します。 Github アカウントに接続し、フォトストリーム リポジトリを選択します。正しいブランチを選択し、ビルド コマンド ( bundle exec jekyll build
) とパブリッシュ ディレクトリ ( _site
) を調整します。 [詳細設定] で、 Add Secret File
、調整した環境変数を含む.env
ファイルを作成します。このファイルをリポジトリ内で直接変更し、前の手順 (シークレット ファイルの追加) をスキップすることもできるかもしれませんが、私はこれをテストしていません。
写真 (サイズ変更されていないもの) をphotos/original
ディレクトリに置きます。オプションで、写真ページおよび RSS フィードのタイトルとして表示される名前を付けることができます。
このコマンドは、ローカル マシン上で静的ページを提供します。 http://ローカルホスト:4000
bundle exec jekyll serve
サイトを静的に構築して、通常の Web ホストにアップロードすることもできます。
bundle exec jekyll build
次に、_site/ ディレクトリの内容を Web サーバーにアップロードします。
次のように、 _scripts
フォルダーから直接実行する必要があるスクリプトを実行するだけです。
sh ./_script/build-n-lftp.sh
build.sh
サイトを構築し、 rsync.sh
とlftp.sh
それに応じてサイトを同期します。 build-n-rsync.sh
とbuild-n-lftp.sh
は、両方のステップを 1 つで実行するだけです。 .env
ファイルに同期構成を追加することを忘れないでください。
最初に行うことは、 /.env
内のいくつかの内容を編集することです。
TITLE
: フォトストリームのタイトル。EMAIL
: あなたの電子メール アドレス (この行はオプションです。削除できます)。AUTHOR_NAME
: あなたの名前。AUTHOR_EMAIL
: あなたの電子メール アドレス (オプション)。AUTHOR_WEBSITE
: あなたの Web サイト (このフォト ストリームのアドレスである可能性があります)。DESCRIPTION
: フォトストリームの説明。BASEURL
: 空のままにするか削除する必要がありますURL
: この写真はどこでライブ配信されますか (例: https://maxvoltar.photo
)。/ で終わることはできません。そうしないと、リンクが混乱します。SHOW_RSS_FEED
: RSS フィード ボタンの表示を有効または無効にするには、 1
または0
に設定します。SHOW_OFFICIAL_GITHUB
: 公式 github リポジトリへのリンクの表示を有効または無効にするには、 1
または0
に設定します。DEFAULT_REVERSE_SORT
: これを1
に設定すると、写真の並べ替え順序が逆になり、最も古い写真が最初に表示されます。デフォルトは0
です。ALLOW_ORDER_SORT_CHANGE
: これを1
に設定すると、ユーザーが写真の並べ替え順序を逆にできるようになります。ALLOW_ORIGINAL_DOWNLOAD
: ユーザーが写真を元のサイズでダウンロードできるようにするには、これを1
に設定します。ALLOW_INDEXING
: クローラーがメタ タグrobots
を追加してフォト ストリームのインデックスを作成しないようにするには、これを0
に設定します。デフォルトは1
です。ALLOW_IMAGE_SHARING
: ユーザーが友人と画像を共有できるようにするには、これを1
に設定します。デフォルトは1
です。TWITTER_USERNAME
: Twitter ユーザー名、またはこの行を削除/コメントします。GITHUB_USERNAME
: Github ユーザー名、またはこの行を削除/コメント化します。INSTAGRAM_USERNAME
: Instagram のユーザー名、またはこの行を削除/コメントします。SYNCUSER
: サイトを Web サーバーに同期するためにシェル スクリプト内の lftp/rsync によって使用されるユーザー名。SYNCPASS
: サイトを Web サーバーに同期するためにシェル スクリプト内の lftp/rsync によって使用されるパスワード。SYNCSERVER
: サイトの同期先となるシェル スクリプト内の lftp/rsync によって使用される Web サーバーの URL。SYNCFOLDER
: サイトが同期されるシェル スクリプト内の lftp/rsync によって使用される Web サーバー上のフォルダー。ソーシャル ハンドルの@
部分を含めないでください。 Github、Twitter、Instagram プロフィールへのリンクは、設定されている場合にのみ表示されます。
Web サイトを公開する前に、Jekyll は写真のサイズを 3 つの異なるバケットに変更します。
/photos/large
: これらは、ユーザーが写真ページに移動した場合にのみ表示されます。デフォルトでは、これらは最大幅 2048、高さ 2048 にサイズ変更されます。必要に応じて、 /_config.yml
の値を変更することでこれらを変更できます (デフォルトでは、 resize_to_limit: [2048, 2048]
のようになります)。/photos/thumbnail
: これらはグリッドで使用されます。フォト ストリームはすべてのサムネイルをスクロールせずに見える範囲にロードし、下にスクロールするにつれてさらにサムネイルをロードします。すべては帯域幅を節約するためです。これらの標準サイズは 640 x 640 (最大) ですが、必要に応じてこれを変更することもできます。/photos/tint
: ページがサムネイルの最初のバッチを読み込むときに表示されるもの。写真ページの背景としても使用されます。