2023-02-04 13:22:13 +00:00
2023-02-03 20:03:11 +00:00
2023-02-03 20:03:11 +00:00
✌️
2023-02-03 13:45:43 +00:00
✌️
2023-02-03 13:45:43 +00:00
✌️
2023-02-03 13:45:43 +00:00
✌️
2023-02-03 13:45:43 +00:00
fix
2023-02-04 13:22:13 +00:00
fix
2023-02-04 13:22:13 +00:00
2023-02-04 03:47:26 +09:00
✌️
2023-02-03 13:45:43 +00:00

Media Proxy for Misskey

Misskeyの/proxyが単体で動作しますMisskeyのコードがほぼそのまま移植されています

Fastifyプラグインとして動作する気がします。
pnpm startfastify-cliが動作します。

セットアップ方法

まずはgit cloneしてcdしてください。

git clone https://github.com/misskey-dev/media-proxy.git
cd media-proxy

pnpm install

NODE_ENV=production pnpm install

config.jsを追加

次のような内容で、設定ファイルconfig.jsをルートに作成してください。

import { readFileSync } from 'node:fs';

const repo = JSON.stringify(readFileSync('./package.json', 'utf8'));

export default {
    // UA
    userAgent: `MisskeyMediaProxy/${package.version}`,

    // プライベートネットワークでも許可するIP CIDRdefault.ymlと同じ
    allowedPrivateNetworks: [],

    // ダウンロードするファイルの最大サイズ
    maxSize: 262144000,

    // フォワードプロキシ
    // proxy: 'http://127.0.0.1:3128'
}

サーバーを立てる

適当にサーバーを公開してください。
ここではmediaproxy.example.comで公開するものとします。

メモ書き程度にsystemdでの開始方法を残しますが、もしかしたらAWS Lambdaとかで動かしたほうが楽かもしれません。
サーバーレスだとsharp.jsが動かない可能性が高いため、そこはなんとかしてください

systemdサービスのファイルを作成…

/etc/systemd/system/misskey-proxy.service

エディタで開き、以下のコードを貼り付けて保存(ユーザーやポートは適宜変更すること):

[Unit]
Description=Misskey Media Proxy

[Service]
Type=simple
User=misskey
ExecStart=/usr/bin/npm start
WorkingDirectory=/home/misskey/media-proxy
Environment="NODE_ENV=production"
Environment="PORT=3000"
TimeoutSec=60
StandardOutput=journal
StandardError=journal
SyslogIdentifier=media-proxy
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable media-proxy
sudo systemctl start media-proxy

3000ポートまでnginxなどでルーティングしてやります。

Misskeyのdefault.ymlに追記

mediaProxyの指定をdefault.ymlに追記し、Misskeyを再起動してください。

mediaProxy: https://mediaproxy.example.com
Description
Media Proxy for Misskey
Readme AGPL-3.0 245 KiB
Languages
TypeScript 52.8%
JavaScript 47.2%