1
0
hugo/content/blog/2022-07-08-misskey.md

85 lines
2.3 KiB
Markdown
Raw Normal View History

2024-04-23 13:21:26 +00:00
+++
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}
```