Drone + Nginx + GitLabの連携

droneの手前でNginxをおいた途端、GitLabの認証がうまくいかなくなり、だいぶハマってしまいました。

発生したエラーはこれだけ。

The redirect URI included is not valid.

GitLab側で見えるエラーなので、それ以上確認のしようがありません。

何度もドキュメントを確認していたら、ちゃんと書いてありました。

erver {
  listen 443;
  server_name your.server.domain;

  location / {
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
    proxy_pass http://drone;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_buffering off;

    chunked_transfer_encoding off;
  }
}

upstream drone {
  server drone-server:8000;
}
~

参考:
http://docs.drone.io/setup-with-nginx/

elecrton-vueでweb用にbuildする

ビルドのコマンドは以下の通りです。
package.jsonに記載があります。

yarn build:web

ビルドされたソースはdis/webに作られます。

ただこのままだと

Uncaught ReferenceError: process is not defined

が発生します。

動作に問題はないのですが、不要なエラーが出ているのが気になるところです。

解決方法としてはindex.htmlの以下の部分を削除します。


参考:
https://github.com/SimulatedGREG/electron-vue/issues/195

解決策は提示されてますが、electron用のテンプレートなので、特に対応しようという感じではないようですね。

CORSの対策

https://stackoverflow.com/questions/35588699/response-to-preflight-request-doesnt-pass-access-control-check

https://stackoverflow.com/questions/32304973/http-options-method-not-allowed-for-users-database-in-couchdb

CouchDBの初期設定

_usersのDBがないのでいろいろと調べていると、ドキュメントに次のように書かれてました。

When you run 2.0 as a single node, it doesn’t create system databases on startup. You have to do this manually:

curl -X PUT http://127.0.0.1:5984/_users

curl -X PUT http://127.0.0.1:5984/_replicator

curl -X PUT http://127.0.0.1:5984/_global_changes
See the next section for the cluster setup instructions.

http://docs.couchdb.org/en/2.0.0/install/index.html#single-node-setup

上記のAPIを叩かなくても、GUIのセットアップ画面からシングルノードに設定できます。
(画像は設定済みなので、わかりづらいですが)

expressで自動更新

開発してる時はプログラムを修正したら自動で更新したいものです。
そんなときはnodemonを入れましょう。

yarn add global nodemon

起動時は次のようにnodeの代わりにnodemonを使います。

nodemon app.js