まとめ
log on 2023-05-22 適当に Ubuntu / t2.micro / 8GB でインスタンスを作る
Dockerをインストール
Polisをインストール
$ git clone https://github.com/compdemocracy/polis.git$ sudo apt install make$ cp example.env .env$ make startdocker compose -f docker-compose.yml -f docker-compose.dev.yml --env-file .env uppermission denied while trying to connect to the Docker daemon ...10分経ってもビルドが終わらない
SSL証明書
メインREADMEで説明されているDocker Composeインフラストラクチャは、安全でない自己署名SSL証明書を使用しています。これは事前に生成され、ソースコードに公開されて保存されています。このHTTPSの実装は、テストにのみ適しています。
create account
unauthorized domain: https://3.87.68.32
server.tsif (
!domainOverride &&
!hasWhitelistMatches(host) &&
!routeIsWhitelistedForAnyDomain
) {
logger.info("not whitelisted", { headers: req.headers, path: req.path });
return next("unauthorized domain: " + host);
}
.envSSL証明書
このサイトにアクセスできません DNS_PROBE_FINISHED_NXDOMAIN
% sudo killall -HUP mDNSResponderCertbot failed to authenticate some domains (authenticator: standalone). The Certificate Authority reported these problems:
Domain: *****
Type: dns
Detail: DNS problem: NXDOMAIN looking up A for ***** - check that a DNS record exists for this domain; DNS problem: NXDOMAIN looking up AAAA for ***** - check that a DNS record exists for this domain
$ sudo python3 -mhttp.server 80@nishio: SSL証明書の作り方とかよくわからない素人質問なんですけど、30分ほど前に新しくDNSにAレコードを書き足したサブドメインに対してLet's Encryptで証明書を作ろうとしてNXDOMAINエラーになるのって、しばらく待つしかないんですかね
証明書ができた
file-server/nginx.Dockerfileとfile-server/nginx/nginx-ssl.site.default.confをいじる
nginx-ssl.site.default.confはコピーした
diff--- a/file-server/nginx.Dockerfile
+++ b/file-server/nginx.Dockerfile
@@ -1,10 +1,12 @@
FROM docker.io/nginx:1.21.5-alpine
-COPY nginx/nginx-ssl.site.default.conf /etc/nginx/conf.d/default.conf
+COPY nginx/nginx-ssl.site.nhiro.conf /etc/nginx/conf.d/default.conf
# We only use these in testing.
COPY nginx/certs/snakeoil.cert.pem /etc/nginx/certs/snakeoil.cert.pem
COPY nginx/certs/snakeoil.key.pem /etc/nginx/certs/snakeoil.key.pem
+COPY fullchain.pem /etc/nginx/certs/fullchain.pem
+COPY privkey.pem /etc/nginx/certs/privkey.pem
conf.diff
server_name _;
- ssl_certificate /etc/nginx/certs/snakeoil.cert.pem;
- ssl_certificate_key /etc/nginx/certs/snakeoil.key.pem;
+ ssl_certificate /etc/nginx/certs/fullchain.pem;
+ ssl_certificate_key /etc/nginx/certs/privkey.pem;
ssl_session_timeout 10m;
$ docker compose up --detach --build --no-deps nginx-proxy
しばらく経ったらBad Gatewayで死んでた
polis-dev-nginx-proxy-1 | 2023/05/24 04:16:35 [error] 32#32: *12492 connect() failed (111: Connection refused) while connecting to upstream, client: ::ffff:133.200.136.32, server: _, request: "GET /7xrm9snjcc HTTP/2.0", upstream: "http://172.18.0.5:5000/7xrm9snjcc", host: "polis.nhiro.org", referrer: "https://t.co/"
うーん、nginxの先で死んでるのか
開発の観察目的で開発サーバをそのまま本番運用しているのでアクセスが集中するとダメなのかもな
原因究明のためにログを見ると良さそう、どこだろ
詳細レポート表示がエラーになる
GET /report/undefined/api/v3/reports?report_id=r2bafdsneascdm6sbmnad 404
undefined--
polisってログインせずに投票できたんだ