Mix Space はシンプルでありながら、簡単ではない個人ブログシステムです。速く、現代的です。これを利用して、自分だけの個人空間を構築し、生活を記録し、知識を共有することができます。
バックエンド Core プロジェクト#
システム / 環境要件#
- Linux / MacOS (推奨 Debian11 / 12)チュートリアルは Debian11 / 12 を例にしています
- Linux カーネル > 4.19
- Docker、Docker-Compose
- 1Panel+OpenResty(オプション)
必要な準備#
- ドメイン名:本記事で使用するのは二重ドメインモード、つまりフロントエンド
www.vlo.cc
、バックエンドapi.vlo.cc
- フロントエンドとバックエンドのドメインに必要な SSL 証明書:全サイト HTTPS が必要です
壹・Docker / Docker-Compose のインストール#
サーバーが海外にあり、1Panel を使用する必要がある場合は、1Panel インストールスクリプトを直接実行して、1Panel と Docker / Docker-Compose を一括でインストールできます。
まず、いくつかの必要なパッケージをインストールします:
apt update
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates
次に、Docker の GPG 公開鍵と apt ソースを追加します:
curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
国内のマシンは清華 TUNA の国内ソースを使用できます:
curl -sS https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
その後、システムを更新した後に Docker CE をインストールできます。
apt update
apt install docker-ce docker-ce-cli containerd.io
Docker 公式が公開している Github から最新バージョンの docker-compose を直接インストールできます:
curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
この時点で docker-compose version
コマンドを使用してインストールが成功したか確認できます。
贰・Core のデプロイ#
一・設定ファイルの取得#
cd /opt && mkdir -p mx-space/core && cd $_
# docker-compose.ymlファイルを取得
wget https://fastly.jsdelivr.net/gh/mx-space/core@master/docker-compose.yml
二・Core 設定ファイルの変更#
cd /opt/mx-space/core
vim docker-compose.yml
environment フィールドに対応する部分の内容を変更し、yaml 構文に合うように調整し、保存してください。
Warning
デフォルトの MongoDB データベースと Redis にはパスワードが設定されていません。必要がない場合は、データベースポートを開放しないでください!パスワードが必要な場合やリモートデータベースを使用する場合は、公式ドキュメントに従って設定してください(私はできます!🥰)
JWTキー
:16 文字以上 32 文字以下の文字列を入力する必要があります。これはユーザーの JWT を暗号化するために使用されます。自分のキーを必ず保存し、他人に漏らさないでください。許可されたドメイン
:許可されたドメインを入力する必要があります。通常はフロントエンドのドメインです。複数のドメインを許可する場合は、英語のカンマで区切ります。(オプション)暗号化を有効にするか
:データベースの暗号化を有効にする場合は、false を true に変更します。暗号化を有効にした場合は、下に暗号化キーを入力する必要があります。(オプション)暗号化キー
:これが何か分からない場合は、この機能を有効にしないことをお勧めします。具体的な内容は https://mx-space.js.org/usage/security.html を参照してください。
::: warning
このキーはデータベースを暗号化するために使用されます!失われるとバックアップから復元できなくなります!必ず記録して保存してください!
暗号化を有効にする場合、キーの長さは 64 ビットで、小文字のアルファベットと数字のみでなければなりません。そうでない場合、初期化時にエラーが発生します。これは不可逆的であるため、自分のキーを必ず保存してください。したがって、API キーを本当に暗号化する必要がない限り、使用を強くお勧めしません。
キーはopenssl rand -hex 32
コマンドで生成できます。必ず記憶してください。
:::
三・Core の起動!#
cd /opt/mx-space/core
docker-compose pull && docker compose up -d
叁・リバースプロキシと更新#
一・リバースプロキシ#
1Panel+OpenResty を例にします:
- 静的ウェブサイトを新規作成
- SSL 証明書を設定して HTTPS を有効にする
- NGINX 設定ファイルの最後の
}
の上に新しい行を追加し、以下の設定を貼り付けて保存します
二重ドメインバックエンドリバースプロキシの例
## リバースプロキシ開始
## WebSocket
location /socket.io {
proxy_pass http://127.0.0.1:2333/socket.io;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_http_version 1.1;
add_header Cache-Control no-cache;
}
## その他
location / {
proxy_pass http://127.0.0.1:2333;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
}
## リバースプロキシ終了
単一ドメインの前後リバースプロキシの例
## リバースプロキシ開始、公式ドキュメントをそのままコピー
## WebSocketアドレス
location /socket.io {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:2333/socket.io;
}
## APIアドレス
location /api/v2 {
proxy_pass http://127.0.0.1:2333/api/v2;
}
## 簡易レンダリングアドレス
location /render {
proxy_pass http://127.0.0.1:2333/render;
}
## フロントエンドアドレス
location / {
proxy_pass http://127.0.0.1:2323;
}
## バックエンドアドレス
location /proxy {
proxy_pass http://127.0.0.1:2333/proxy;
}
location /qaqdmin {
proxy_pass http://127.0.0.1:2333/proxy/qaqdmin;
}
## RSSアドレス
location ~* \/(feed|sitemap|atom.xml) {
proxy_pass http://127.0.0.1:2333/$1;
}
## リバースプロキシ終了
リバースプロキシの設定が完了したら、バックエンドにアクセスします https:// バックエンドドメイン /proxy/qaqdmin
例: https://api.example.cc/proxy/qaqdmin
ページの指示に従って初期化を完了します。
完了後に正しくバックエンドにリダイレクトされない場合は、
再度 https://api.example.cc/proxy/qaqdmin にアクセスしてください。
三・Core の更新#
cd /opt/mx-space/core
docker-compose pull && docker compose up -d
肆・参考記事#
Debian 12 / Ubuntu 24.04 に Docker および Docker Compose をインストールするチュートリアル
公式デプロイメントドキュメント
この記事は Mix Space によって xLog に同期更新されました。原始リンクは https://www.vlo.cc/posts/jc/mix-deploy