前の 2 日間、偶然にも GitHub で興味深いプロジェクトを見つけました。このプロジェクトでは、自分自身のサーバーやデータベースに依存せずに短縮 URL サービスを構築することができます。私自身も試してみましたが、非常に簡単でした。ここでは、自分の構築手順を記録しておきますので、興味のある方はぜひ試してみてください。
必要条件#
- 2 つの GitHub リポジトリを作成します。1 つはサーバーのソースコードを格納し、サービスを提供するためのもの(url_shortener)、もう 1 つはリンクを格納するためのデータベース(url_shortener_db)です。
- ドメインを登録します(オプション)。登録していない場合は、GitHub Pages のドメイン(
username.github.io
)を直接使用することもできます。ただし、私は自分で登録したドメイン(blog.johan.zone)を使用しました。
ソースコードの取得と設定#
まず、このサービスのソースコードを取得する必要があります。このリポジトリを直接フォークすることもできますし、私のリポジトリをフォークすることも歓迎します。
次に、自分のリポジトリをローカルにクローンします(もちろん、GitHub のウェブページ上で直接操作することもできます)。404.html
ファイルのGITHUB_ISSUES_LINK
フィールドを自分のurl_shortener_db
リポジトリに向けるように変更します。このリポジトリのissues
は、リンクを格納するデータベースとして機能します:
var GITHUB_ISSUES_LINK =
"https://api.github.com/repos/username/repo-name/issues/";
上記のusername
とrepo-name
を自分のユーザー名とリポジトリ名に置き換えることに注意してください。また、最後の/
を忘れずに入力してください。これがリンクを取得するための重要な部分です
GitHub Pages の設定#
次に、GitHub Pages の設定を行います。この部分も非常に簡単です。
リポジトリのSettings
オプションをクリックし、GitHub Pages
セクションを見つけ、Source
でブランチを設定します:
以下の部分は必要に応じて選択してください:
自分のドメインを使用しない場合#
- リポジトリから
CNAME
ファイルを削除します。 404.html
ファイルのvar PATH_SEGMENTS_TO_SKIP = 0;
をvar PATH_SEGMENTS_TO_SKIP = 1;
に変更します。- これで終了です。次のセクションに進むことができます。
自分のドメインを使用している場合#
- ドメインのサービスプロバイダーに移動し、CNAME レコードを追加し、ドメインを
username.github.io
に向けます。username
は自分の GitHub のユーザー名に置き換えることを忘れないでください。 - 数分待ちます(ドメインの解決には時間がかかるため、事前に行うことをお勧めします)。その後、GitHub Pages セクションに移動し、自分のドメインを入力し、Enforce HTTPSをチェックすることをお勧めします。その後、
Save
をクリックし、ページをリフレッシュすると、以下の内容が表示されます:
CNAME
ファイルのドメインを設定したドメインに変更します。- これで設定は完了です。次はテストを行うことができます。
テストの実行#
-
データベースとして使用する GitHub リポジトリで、リンクを短縮するための問題を作成します。タイトルにはリンクが必要ですが、他の項目は何も入力する必要はありません。そのまま Submit してください。
-
しばらく待ってから、ブラウザでリンク
https://<your-domain>/<issue-no>
を検索します。例:https://tldr.plus/2
。このリンクをクリックすると、私のブログに移動します。ここで、tldr.plus
は私のドメインであり、1
は問題の階層を表しています。
まとめ#
手間がかかると感じる場合は、私が構築したサービスを使用することもできます。ここをクリックしてリンクを提供してください。
ここで誰かが良い説明をしてくれていますので、参考にしてください。
参考#
Minimal URL shortener that can be entirely hosted on GitHub pages.