結論だけ知りたい人
NocoDBとは
データベースと接続してExcel感覚でDB操作が出来るOSSです。また、作成したDBをもとに、API、Swagger UIを自動生成してくれます。
アカウントや権限の設定も行なえるので、社内向けの簡単なアプリのバックエンドとして利用しようと思いNocoDBのセルフホストを行ないました。
ホスティング環境
ホスティング先 : AWS EC2 VPC プライベートネットワーク内
OS : AlmaLinux
Version : 9.2 (Turquoise Kodkod)
接続先DB : RDS MySQL
npx create-nocodb-app
コマンドでインストールを行ない、
NginxをリバースプロキシとしてSSL化しました。
今回ハマったこと
NocoDBにアップロードした静的ファイルがダウンロード(表示)できない
詳細 ~問題発生から沼るまで~
NocoDBのAttachment型に設定した項目に、画像をアップロード。
アップロードは成功するが、画像が表示されず、ダウンロードボタンを押しても失敗する。
開発者ツールでリクエストを確認してみたら、リクエストURLがhttpになっていて、cross-originで引っかかっている。
NocoDBの環境変数でそれらしきもの(NUXT_PUBLIC_BACKEND_URL)を見つけたので、.env
にhttpsで設定してNocoDBを再起動するも、変化なし。。。
https://docs.nocodb.com/getting-started/environment-variables
bashrc
の設定や別の方法でのデプロイなど色々試しましたが、どれも上手くいかず沼沼沼
解決方法
NocoDBのissuesを漁っていたところ、それらしきissueを発見!
NUXT_PUBLIC_BACKEND_URL
ではなく、NC_PUBLIC_URL
でhttps://hogehoge
と設定したら静的ファイルのリクエストURLがhttpsになりました。(swagger UIのリクエスト先も、httpsに変わりました)
NocoDBの環境変数ページの説明に、招待メールの送信に使用と書かれていたので、関係ないものと思いこんでいました。。。
改めて、公式ドキュメントを確認しても解決できない問題は、Githubのissuesを隈なく探してみましょうという教訓になりました。