Linux で Shlink を使用して独自の bit.ly サーバーをホストする方法

Linux で Shlink を使用して独自の bit.ly サーバーをホストする方法
テーブルの上に置かれたノートパソコンの写真。

Shlink は、Linux 用の強力なセルフホスト リンク短縮サービスです。短縮リンクのルートとして独自のドメイン名を使用できる、シンプルでありながら効果的なフレームワークを提供します。この記事では、Docker と Nginx を使用して Ubuntu Linux に独自の Shlink インスタンスをインストールする方法を説明します。

Shlink の最大のセールスポイントの 1 つは、独自にホストしながらも、短縮リンクに独自のカスタム ドメインを使用できることです。これにより、SaaS リンク短縮サービスの柔軟性と、自分のマシンでソフトウェアを実行するプライバシーが得られます。

デモ サーバーで実行されている Shlink を示すスクリーンショット。

それ以外にも、Shlinkには、QR コードの作成、リンク クエリの自動転送、複数セグメントのカスタム スラッグの作成など、さまざまな機能が備わっています。そのため、リンクの外観や動作を微調整できる Linux のリンク短縮サービスを探している場合、Shlink は便利なツールになります。

Shlink 用の Docker の入手

前提:この記事では、Ubuntu 22.04 VPS に Shlink をインストールしており、現在ドメイン名を所有していることを前提としています。

Linux に Shlink を導入する最初のステップは、Docker のコピーを取得することです。これを行うには、Docker プロジェクトの署名キーを次の Web サイトから取得します。

Docker バイナリのリポジトリ ファイルを作成します。

新しいリポジトリ ファイル内に次のコード行を貼り付けます。

次のコマンドを実行して、システムのリポジトリ リストを再読み込みしますapt update

Shlinkの依存関係のインストール

Docker リポジトリが起動したら、apt を使用して Shlink の依存関係を取得できます。

システムで「core」スナップ パッケージが利用可能であることを確認します。

Electronic Frontier Foundation から「certbot」スナップ パッケージを取得してインストールします。

Geolite2 ライセンスキーの取得

Shlink のもう 1 つの特徴は、リンクをクリックしたユーザーの大まかな位置を追跡できることです。この機能を使用するには、Geolite2 ライセンス サインアップページを開きます。

GeoLite ライセンスのサインアップ ページを示すスクリーンショット。

フォームに詳細を入力し、「続行」を押します。

メールの受信トレイを開き、MaxMind からの確認メールを探します。

メール内のリンクをクリックし、新しい MaxMind アカウントのパスワードを入力します。

MaxMind のパスワード作成リンクを示すスクリーンショット。

MaxMind アカウントにログインし、ダッシュボードで「ライセンス キーの管理」をクリックします。

スクリーンショットでは、

「新しいライセンス キーの生成」をクリックし、「確認」をクリックしてGeolite2 キーを作成します。

スクリーンショットでは、

Geolite2 ライセンス キーをマシン上のテキスト ファイルにコピーして保存します。

Shlink をインストールするには、まず仮想 Docker ネットワークを作成する必要があります。これは、デプロイする他のコンテナと通信できるアプリのプライベート ネットワークとして機能します。

PostgreSQL データベースをデプロイし、新しい仮想 Docker ネットワークにリンクします。

「POSTGRES_PASSWORD」環境変数の値をランダムなテキスト文字列に変更します。

ランダムな PostgreSQL DB パスワードを表示する端末。

次のコマンドを新しいターミナル セッションに貼り付けます。

DEFAULT_DOMAIN 変数の値をドメイン名に置き換えます。

デモ サーバーのデフォルトのドメイン値を表示する端末。

「GEOLITE_LICENSE_KEY」変数の値を個人のライセンス キーに変更します。

デモ Shlink サーバーの Geolite ライセンスを表示する端末。

「DB_PASSWORD」変数を PostgreSQL データベースのパスワードに置き換えます。

デモ サーバーの PostegreSQL DB パスワードを表示する端末。

押すEnterと Shlink インスタンスが起動します。

Shlink インターフェースのインストールとリンク

Shlink コンテナから API キーを取得し、クリップボードにコピーします。

次のコマンドを新しいターミナル セッションに貼り付けます。

「SHLINK_SERVER_URL」を、バックエンド コンテナーの「DEFAULT_DOMAIN」変数の値に置き換えます。

Shlink バックエンド インスタンスの完全な URL を表示するターミナル。

「SHLINK_SERVER_API_KEY」の値として API キーを貼り付けます。

Shlink バックエンド API キーを表示する端末。

押すEnterと、Shlink フロントエンド インターフェイスが起動します。

システム内で現在アクティブなコンテナをすべて一覧表示して、データベース、Shlink バックエンド、および Shlink フロントエンドが正常に動作していることを確認します。

完全な Shlink Web アプリを構築する 3 つのコンテナーを表示するターミナル。

Nginx を使用した SSL リバース プロキシの作成

この時点で、サーバー上で Shlink ソフトウェア スイートが稼働しています。ただし、これにアクセスするには、異なるドメインの 2 つのコンテナーを委任する SSL Web プロキシを作成する必要があります。

まず、Shlink のフロントエンド インターフェース用に新しい A レコードを作成します。私の場合は、フロントエンドの A レコードを「admin」に設定します。

デモ Shlink サーバーの 2 つの DNS レコードを示すスクリーンショット。

お気に入りのテキスト エディターを使用して、Shlink インスタンスのサイト構成ファイルを作成します。

次のコード ブロックを構成ファイル内に貼り付けます。

「YOUR-ROOT.DOMAIN」変数をルートドメインに置き換え、「SUBDOMAIN.YOUR-ROOT.DOMAIN」をフロントエンドインターフェースのサブドメインに置き換えます。

設定ファイルを保存し、Nginx で Web アプリを有効にします。

新しい設定を適用するには、Nginx デーモンをリロードします。

サーバーを Electronic Frontier Foundation に登録します。

Shlink インスタンス用の新しいマルチドメイン SSL 証明書をリクエストします。

インスタンスの管理コンソールに移動して、Shlink サーバーが正常に動作していることを確認します。私の場合は、「https://admin.helloserver.top」です。

Shlink インスタンスのデフォルトのランディング ページを示すスクリーンショット。

新しいインスタンスを使用するには、ランディング ページのShlinkメニュー項目をクリックします。

インスタンスのランディング ページの Shlink メニュー項目を示すスクリーンショット。

「短縮 URL の作成」カテゴリの短縮する URLテキスト ボックスに長い URL を貼り付けます。

短縮リンクのメタデータを入力し、「保存」をクリックしてリンクを作成します。

Shlink で短縮リンクを作成するためのフォームを示すスクリーンショット。

新しいブラウザ タブで新しい短縮 URL を開き、 Shlink ダッシュボードの[訪問]ボタンをクリックして、正常に動作しているかどうかをテストします。

Shlink のサンプル リンクの基本的な分析を示すスクリーンショット。

独自のリンク短縮サービスをインストールして展開することは、オンライン プライバシーを取り戻すための第一歩にすぎません。Torを使用して Ubuntu で独自の匿名 Web サイトをホストすることで、Linux がプライバシーのさらなる回復にどのように役立つかを学びます。

画像クレジット: Carlos Muza (UnsplashおよびShlink.io Developers経由)。すべての変更とスクリーンショットは Ramces Red によるものです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です