完全解決 something went wrong この気持ち悪いエラーを、私の尊敬する GPT4 ユーザーがどうしてこのような目に遭わなければならないのか!
使用するもの#
docker
nginx proxy manager
必要なもの#
gpt にアクセスできるサーバー、私は日本を使用しており、warp ipv6 で解放された GPT(オプション、オンラインデプロイプラットフォーム vercel を使用することも可能)
ドメイン名をサーバーに解決する
openai アカウント
linux コマンドラインの基本操作を理解する
操作を開始する#
サーバー warp ipv6 解放 gpt#
参考にした勇哥 ykk のスクリプト
1 を選択して warp-go をインストール
次に 2 を選択して WARP 単スタック IPV6 をインストール
サーバーに docker と docker compose をインストール#
サーバーには必ず何かがあるはず!私の linux システムは Ubuntu で、以下は Ubuntu システムのデモです。異なる linux バージョンではコマンドが異なる場合がありますので、自分でググってください。
古いバージョンをアンインストール#
sudo apt-get remove docker \
docker-engine \
docker.io
APT を使用してインストール#
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
docker をインストール#
sudo apt-get install docker.io
docker compose をインストール#
curl -L "https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Nginx proxy manager をインストール#
データを保存するための npm フォルダーを新規作成#
cd /root
mkdir npm
cd npm
docker-compose.yml ファイルを編集#
vim docker-compose.yml
version: "3"
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# これらのポートは <host-port>:<container-port> の形式です
- '80:80' # 公開HTTPポート
- '443:443' # 公開HTTPSポート
- '81:81' # 管理用Webポート
# 露出したい他のストリームポートを追加
# - '21:21' # FTP
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
# ホストでIPv6が有効でない場合はこれをコメント解除
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./data/mysql:/var/lib/mysql
コンテナを実行#
docker-compose up -d
npm web パネルに入る#
サーバーのハードウェアファイアウォール(サーバー提供者のインターフェースの firewall)とサーバー自体のソフトウェアファイアウォールを必ず有効にしてください。Ubuntu では ufw です。
npm のウェブアドレスはあなたのサーバー ip:81 です。
最初にユーザー名やパスワードなどを設定するように求められます。
デフォルトのユーザー名は [email protected] です。
デフォルトのパスワードは changeme です。
npm の詳細についてはこの記事を参照してください。私の linux の基礎は多くが彼のチュートリアルを実践して学んだものです。
pandora をインストール#
ここでは、Accesstoken を環境変数にハードコーディングする方法を示します。私は一度アクセスするたびに入力するのが面倒なので、直接書き込んでいます。後で npm のアクセスリストを使用して乱用されないようにします。
accesstoken を取得する方法
ChatGPT 公式サイトにログイン後、F12 を開いてhttps://chat.openai.com/api/auth/session リクエストの戻り値にある accessToken を確認してください。
docker run \
-itd \
--name pandora2 \
--restart always \
-p 7862:7861 \
-e PANDORA_ACCESS_TOKEN=あなたのacesstoken \
-e PANDORA_SERVER='0.0.0.0:7861' \
pengzhile/pandora
ファイアウォールが応答ポート(7861)を開いていることを確認した後、まず ip: ポートで正常に動作しているか確認してください。
正常でない場合は!docker logs pandora でエラーメッセージを確認し、その後 chatgpt に尋ねてください。一般的には問題ないはずです!
リバースプロキシの設定#
現在 npm と pandora は正常に動作しています。次に行うべきことは、ドメイン名でアクセスできるようにすることです。まず、あなたのドメイン名があなたの ip に解決されていることを確認してください。
私は dnspod で管理しているので、こちらで解決済みです。
次に npm を設定します。
domain names は設定するドメイン名です。私はサブドメインをお勧めします。もし一つのプロジェクトだけなら、ルートドメインをそのまま使っても大丈夫です。
次にこの forward hostname/ip 無思考で 127.0.0.1 を入力しないでください!
npm は docker コンテナ内でブリッジを介してサーバーに接続されているため、サーバーのローカルポートを通過しています。したがって、ここにはあなたの docker のゲートウェイを入力して、データが常にあなたのサーバー内で転送されるようにします。(私の説明が不明瞭であれば申し訳ありません。docker の 6 つのネットワークモードは学んだことがありますが、すっかり忘れてしまいました。私は文系です。)
docker ゲートウェイを取得#
ip route
次に forward port ポートは 7862 を使用します。なぜなら、私は 2 つを配置しており、1 つは友人と一緒に使用するための gpt 普通号で 7861 ポートを占有しているため、もう 1 つは私の 20 ドルの月額の尊貴な gpt4 サブスクリプションユーザー用に 7862 ポートを開いています。
次に ssl 証明書では新しい証明書を取得するか、または一部のドメイン証明書を取得することを選択してください。自分で研究してください。
アクセス制限の設定#
これは非常に重要です。自分のために小さな環境を開くのか、それとも完全に公開するのかに関わります。
allow ここをあなたのipアドレスまたはこのgptにアクセスする特定のipに変更してください;
deny all;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
私は寮にいるので、どのようにダイヤルしても特定の番号帯の ip が与えられます。したがって、この番号帯の ip 範囲のみに制限しました。もちろん、npm のアクセスリストを使用してアクセスする ip を制限したり、パスワードを設定したりすることもできます。私は試しましたが、うまくいきませんでした。私は nginx の古い方法を使って直接設定ファイルに書くことにしました。
私が寮にいるときは、非常にうまくアクセスできます。
外にいるときは、宿舎のソフトルーターの vmess サーバーポートに接続して、宿舎の内部ネットワーク環境を利用してアクセスします。私は怠け者なので、内部ネットワークポートを通過させるのは非常に危険です。破られた場合、すべての内部ネットワークデバイスが公開されてしまいます。
別のプロキシサーバーを設定してアクセスすることもできますし、パスワードを設定することもできます。
すべての設定が完了したら、モバイルデータでアクセスして ip 制限が成功したか確認してください。
pake を使用してイメージをパッケージ化するウェブページ#
環境設定 Windows/Linux 注意点#
-
非常に重要 Tauri が提供する依存関係ガイドを確認してください。
-
依存関係ガイドの内容をすべてインストールして再起動してください。
インストール#
npm install -g pake-cli
あなたの gpt ウェブページをパッケージ化する#
pake url
その後、名前を付けるように指示されます。また、アイコンを DIY することもできます。pake のチュートリアルドキュメントは本当に非常に明確で、とても良いです!
これ以上は詳しく述べません。
大成功!#
二言、優雅!
何か不明な点があれば、Twitterで私にメッセージを送ってください。初めてのチュートリアル作成で、多くの欠陥があるかもしれませんが、これは私が実践から得た成果です。読んでいただきありがとうございます。