banner
三文字

方寸之间

居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
github
email
misskey

GitHubを使用して、独自の短縮URLサービスを構築する

前の 2 日間、偶然にも GitHub で興味深いプロジェクトを見つけました。このプロジェクトでは、自分自身のサーバーやデータベースに依存せずに短縮 URL サービスを構築することができます。私自身も試してみましたが、非常に簡単でした。ここでは、自分の構築手順を記録しておきますので、興味のある方はぜひ試してみてください。

必要条件#

  1. 2 つの GitHub リポジトリを作成します。1 つはサーバーのソースコードを格納し、サービスを提供するためのもの(url_shortener)、もう 1 つはリンクを格納するためのデータベース(url_shortener_db)です。
  2. ドメインを登録します(オプション)。登録していない場合は、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/";

上記のusernamerepo-nameを自分のユーザー名とリポジトリ名に置き換えることに注意してください。また、最後の/を忘れずに入力してください。これがリンクを取得するための重要な部分です

GitHub Pages の設定#

次に、GitHub Pages の設定を行います。この部分も非常に簡単です。

リポジトリのSettingsオプションをクリックし、GitHub Pagesセクションを見つけ、Sourceでブランチを設定します:
image

以下の部分は必要に応じて選択してください:

自分のドメインを使用しない場合#

  1. リポジトリからCNAMEファイルを削除します。
  2. 404.htmlファイルのvar PATH_SEGMENTS_TO_SKIP = 0;var PATH_SEGMENTS_TO_SKIP = 1;に変更します。
  3. これで終了です。次のセクションに進むことができます。

自分のドメインを使用している場合#

  1. ドメインのサービスプロバイダーに移動し、CNAME レコードを追加し、ドメインをusername.github.ioに向けます。usernameは自分の GitHub のユーザー名に置き換えることを忘れないでください。
  2. 数分待ちます(ドメインの解決には時間がかかるため、事前に行うことをお勧めします)。その後、GitHub Pages セクションに移動し、自分のドメインを入力し、Enforce HTTPSをチェックすることをお勧めします。その後、Saveをクリックし、ページをリフレッシュすると、以下の内容が表示されます:
    image
  3. CNAMEファイルのドメインを設定したドメインに変更します。
  4. これで設定は完了です。次はテストを行うことができます。

テストの実行#

  1. データベースとして使用する GitHub リポジトリで、リンクを短縮するための問題を作成します。タイトルにはリンクが必要ですが、他の項目は何も入力する必要はありません。そのまま Submit してください。

  2. しばらく待ってから、ブラウザでリンクhttps://<your-domain>/<issue-no>を検索します。例:https://tldr.plus/2。このリンクをクリックすると、私のブログに移動します。ここで、tldr.plusは私のドメインであり、1は問題の階層を表しています。

まとめ#

手間がかかると感じる場合は、私が構築したサービスを使用することもできます。ここをクリックしてリンクを提供してください。

ここで誰かが良い説明をしてくれていますので、参考にしてください。

参考#

Minimal URL shortener that can be entirely hosted on GitHub pages.

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。