85 lines
2.3 KiB
Markdown
85 lines
2.3 KiB
Markdown
+++
|
|
date = "2022-07-08"
|
|
tags = ["misskey","heroku"]
|
|
title = "misskeyをherokuで立てる[2022年度版]"
|
|
slug = "misskey"
|
|
+++
|
|
|
|
pleromaと同じくmisskeyをherokuで立てるのにも多少の苦労があるかもしれません。さらに運用するとなると様々な問題が絡んできます。
|
|
|
|
今回もherokuでmisskeyのインスタンスを立ち上げるまでのヒントを書いていければと思います。
|
|
|
|
ref : https://misskey-hub.net/docs/install/manual.html
|
|
|
|
```sh
|
|
$ git clone https://github.com/misskey-dev/misskey.git
|
|
$ cd misskey
|
|
$ cp .config/example.yml .config/default.yml
|
|
$ vim .config/default.yml
|
|
```
|
|
|
|
```yml:.config/default.yml
|
|
db:
|
|
host: $DB_HOST
|
|
port: $DB_PORT
|
|
db: $DB_NAME
|
|
user: $DB_USER
|
|
pass: $DB_PASS
|
|
extra:
|
|
ssl: { rejectUnauthorized: false }
|
|
|
|
redis:
|
|
host: $REDIS_HOST
|
|
port: $REDIS_PORT
|
|
pass: $REDIS_PASS
|
|
```
|
|
|
|
まずmisskeyと[heroku-postgres](https://devcenter.heroku.com/articles/connecting-heroku-postgres)を接続するポイントは、`ssl:true`ではなく`ssl:{ rejectUnauthorized: false }`です。
|
|
|
|
|
|
必要な情報は以下から得ましょう。
|
|
|
|
```sh
|
|
$ heroku addons:create heroku-postgresql:hobby-dev
|
|
$ heroku pg:credentials:url
|
|
|
|
$ heroku addons:create heroku-redis:hobby-dev
|
|
$ heroku redis:credentials
|
|
```
|
|
|
|
```sh
|
|
$ yarn install
|
|
$ yarn build
|
|
$ yarn run init
|
|
$ yarn start
|
|
```
|
|
|
|
redisへの接続に問題があります。heroku-redisの接続制限的に厳しいのかもしれません。`ioredis`が使われるようになったみたいです。
|
|
|
|
https://devcenter.heroku.com/ja/articles/connecting-heroku-redis#connecting-in-node-js
|
|
|
|
編集するファイルとしては、`packages/backend/src`にある db/redis, server/index.ts, config/load.ts などです。
|
|
|
|
`process.env.PORT`や`process.env.HEROKU_REDIS_AQUA_URL`, `process.env.HEROKU_REDIS_AQUA_URL`などを設定してみるといいかも。
|
|
|
|
Procfileには、`web: NODE_ENV=production yarn start`を書きます。
|
|
|
|
### rediscloud
|
|
|
|
回避策として`addons:rediscloud`を使用すると動きます。
|
|
|
|
```sh
|
|
$ heroku addons:create rediscloud:30
|
|
$ heroku config
|
|
redis://default:${REDIS_CLOUD_PASS}@${REDIS_CLOUD_HOST}:${REDIS_CLOUD_PORT}
|
|
```
|
|
|
|
```.config/default.yml
|
|
redis:
|
|
host: ${REDIS_CLOUD_HOST}
|
|
port: ${REDIS_CLOUD_PORT}
|
|
family: 4 # 0=Both, 4=IPv4, 6=IPv6
|
|
pass: ${REDIS_CLOUD_PASS}
|
|
```
|
|
|