technicalsuwako.moe/www/blog/prosody-modhttpupload-xep36.../index.html

160 行
11 KiB
HTML
Raw Blame 履歴

このファイルには曖昧(ambiguous)なUnicode文字が含まれています

このファイルには、他の文字と見間違える可能性があるUnicode文字が含まれています。 それが意図的なものと考えられる場合は、この警告を無視して構いません。 それらの文字を表示するにはエスケープボタンを使用します。

<article>
<header>
<h1>【Prosody】mod_http_upload(XEP-0363)を有効にする方法</h1>
<a href="/">トップページに戻る</a>
<div class="info">
凜、
<time datetime="2021-10-17T00:00:00Z">
2021年10月17日
</time>
&mdash;
<a href="/tags/jp/">jp</a>,
<a href="/tags/blog/">blog</a>,
<a href="/tags/prosody/">prosody</a>,
<a href="/tags/xmpp/">xmpp</a>
<hr />
</div>
</header>
<section>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd" lang="ja" xml:lang="ja">
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<meta name="author" content="テクニカル諏訪子" />
<meta name="description" content="デジタル自主のロリ神様" />
<meta property="og:title" content="テクニカル諏訪子" />
<meta property="og:type" content="website" />
<meta property="og:locale" content="ja_JP" />
<meta property="og:site_name" content="テクニカル諏訪子" />
<meta property="og:url" content="http://6qiatzlijtqo6giwvuhex5zgg3czzwrq5g6yick3stnn4xekw26zf7qd.onion/blog/prosody-modhttpupload-xep363-active-way/" />
<meta property="og:image" content="../../static/lolilolisuwa.jpg" />
<link rel="alternate" type="application/atom+xml" title="テクニカル諏訪子 feed" href="../../blog.atom" />
<title>テクニカル諏訪子: 【Prosody】mod_http_upload(XEP-0363)を有効にする方法</title>
<link rel="stylesheet" type="text/css" href="../../static/style.css" />
</head>
<body>
<div class="container">
<img src="/static/Eqjk_WgVQAE2psn-new.jpeg" class="header-img" alt="ヘッダー" />
<p>
<a href="/">トップ</a> |
<a href="/about/">自己紹介</a> |
<a href="/contact/">連絡先</a> |
<a href="/freelancer/">フリーランス</a> |
<a href="/support/">支援♡</a> |
<a href="/service/">サービス</a> |
<a href="/i2pabout/">I2Pについて</a>
</p>
<p>
<a href="/blog.atom">RSSで登録</a> |
<a href="https://social.076.ne.jp/TechnicalSuwako">Pleromaでフォロー</a> |
<a href="https://video.076.ne.jp/c/technicalsuwako">PeerTubeで登録</a> |
<a href="https://www.technicalsuwako.jp">一般ネット</a> |
<a href="http://6qiatzlijtqo6giwvuhex5zgg3czzwrq5g6yick3stnn4xekw26zf7qd.onion/">Tor</a> |
<a href="http://technicalsuwako.i2p/">I2P</a>
</p>
<hr />
<p>XMPPサーバーを設置するなら、Prosodyは一番大人気ですね。<br />
でも、すぐファイル転送機能性を使えないと気づきました。<br />
ネットで、機能性を有効にする方法は殆どないんです。<br />
日本語のネットも英語のネットもありません。</p>
<p>でも、あたしは有効ように出来ましたので、本日は説明してみます。<br />
<code>ドメイン</code>」と見たら、自分のドメイン名(例:<code>tatoe.jp</code>)に変えてください。</p>
<h1 id="heading">コマンドライン</h1>
<p>まずは<code>mercurial</code><code>git</code>みたいなバージョン管理ソフト)をインストールすると、「<code>prosody-modules</code>」ってレポジトリーを受け取ります。<br />
まだやらなかったら、SSL証明書を申請します。</p>
<pre style="background-color:#f8f8f8;overflow-x: auto"><code>apt install mercurial <span style="color:#666">&amp;&amp;</span> <span style="color:#a2f">cd</span> /usr/lib/prosody <span style="color:#666">&amp;&amp;</span> hg clone https://hg.prosody.im/prosody-modules/ modules-extra
certbot certonly -d ドメイン -d upload.ドメイン -d chat.ドメイン -d proxy.ドメイン --deploy-hook <span style="color:#b44">&#34;prosodyctl --root cert import /etc/letsencrypt/live&#34;</span>
</code></pre><h1 id="prosody">Prosodyのコンフィグファイル</h1>
<p>次は、「<code>/etc/prosody/prosody.cfg.lua</code>」ファイルを編集して下さい。</p>
<p><code>modules_enabled = {</code>」で、まずは「<code>http_upload</code>」を無効様にします。</p>
<pre style="background-color:#f8f8f8;overflow-x: auto"><code> <span style="color:#080;font-style:italic">-- HTTP modules</span>
<span style="color:#b44">&#34;http&#34;</span>;
<span style="color:#b44">&#34;bosh&#34;</span>; <span style="color:#080;font-style:italic">-- Enable BOSH clients, aka &#34;Jabber over HTTP&#34;</span>
<span style="color:#b44">&#34;websocket&#34;</span>; <span style="color:#080;font-style:italic">-- XMPP over WebSockets</span>
<span style="color:#080;font-style:italic">--&#34;http_files&#34;; -- Serve static files from a directory over HTTP</span>
<span style="color:#080;font-style:italic">--&#34;http_upload&#34;; -- Enables file sharing between users</span>
...
</code></pre><h2 id="heading-1">プラグインパスで</h2>
<pre style="background-color:#f8f8f8;overflow-x: auto"><code><span style="color:#080;font-style:italic">-- Prosody will always look in its source directory for modules, but</span>
<span style="color:#080;font-style:italic">-- this option allows you to specify additional locations where Prosody</span>
<span style="color:#080;font-style:italic">-- will look for modules first. For community modules, see https://modules.prosody.im/</span>
<span style="color:#080;font-style:italic">--plugin_paths = {}</span>
plugin_paths <span style="color:#666">=</span> { <span style="color:#b44">&#34;/usr/lib/prosody/modules/&#34;</span>, <span style="color:#b44">&#34;/usr/lib/prosody/modules-extra/&#34;</span> }
</code></pre><h2 id="httplog--">HTTPで(なければ、「log = {」の前に貼って下さい)</h2>
<pre style="background-color:#f8f8f8;overflow-x: auto"><code><span style="color:#080;font-style:italic">-- HTTP</span>
https_ports <span style="color:#666">=</span> { <span style="color:#666">5281</span> }
https_interfaces <span style="color:#666">=</span> { <span style="color:#b44">&#34;*&#34;</span>, <span style="color:#b44">&#34;::&#34;</span> }
cross_domain_bosh <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">true</span>
consider_bosh_secure <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">true</span>
http_paths <span style="color:#666">=</span> {
register_web <span style="color:#666">=</span> <span style="color:#b44">&#34;/register-on-$host&#34;</span>;
bosh <span style="color:#666">=</span> <span style="color:#b44">&#34;/http-bind&#34;</span>; <span style="color:#080;font-style:italic">-- Serve BOSH at /http-bind</span>
files <span style="color:#666">=</span> <span style="color:#b44">&#34;/&#34;</span>; <span style="color:#080;font-style:italic">-- Serve files from the base URL</span>
}
http_host <span style="color:#666">=</span> <span style="color:#b44">&#34;ドメイン&#34;</span>
http_default_host <span style="color:#666">=</span> <span style="color:#b44">&#34;ドメイン&#34;</span>
http_external_url <span style="color:#666">=</span> <span style="color:#b44">&#34;ドメイン&#34;</span>
trusted_proxies <span style="color:#666">=</span> { <span style="color:#b44">&#34;127.0.0.1&#34;</span>, <span style="color:#b44">&#34;::1&#34;</span>, <span style="color:#b44">&#34;192.168.1.1&#34;</span>, }
</code></pre><h2 id="ssl">SSL証明書で</h2>
<pre style="background-color:#f8f8f8;overflow-x: auto"><code><span style="color:#080;font-style:italic">-- HTTPS currently only supports a single certificate, specify it here:</span>
https_certificate <span style="color:#666">=</span> <span style="color:#b44">&#34;/etc/prosody/certs/ドメイン.crt&#34;</span>
https_key <span style="color:#666">=</span> <span style="color:#b44">&#34;/etc/prosody/certs/ドメイン.key&#34;</span>
</code></pre><h2 id="virtualhost">VirtualHostで</h2>
<pre style="background-color:#f8f8f8;overflow-x: auto"><code><span style="color:#080;font-style:italic">----------- Virtual hosts -----------</span>
<span style="color:#080;font-style:italic">-- You need to add a VirtualHost entry for each domain you wish Prosody to serve.</span>
<span style="color:#080;font-style:italic">-- Settings under each VirtualHost entry apply *only* to that host.</span>
VirtualHost <span style="color:#b44">&#34;ドメイン&#34;</span>
disco_items <span style="color:#666">=</span> {
{ <span style="color:#b44">&#34;upload.ドメイン&#34;</span> };
}
legacy_ssl_ports <span style="color:#666">=</span> { <span style="color:#666">5223</span> }
</code></pre><h2 id="component">Componentで</h2>
<pre style="background-color:#f8f8f8;overflow-x: auto"><code><span style="color:#080;font-style:italic">------ Components ------</span>
<span style="color:#080;font-style:italic">-- You can specify components to add hosts that provide special services,</span>
<span style="color:#080;font-style:italic">-- like multi-user conferences, and transports.</span>
<span style="color:#080;font-style:italic">-- For more information on components, see https://prosody.im/doc/components</span>
...
Component <span style="color:#b44">&#34;upload.ドメイン&#34;</span> <span style="color:#b44">&#34;http_upload&#34;</span>
http_upload_file_size_limit <span style="color:#666">=</span> <span style="color:#666">209715200</span> <span style="color:#080;font-style:italic">-- 200 MiB</span>
http_upload_quota <span style="color:#666">=</span> <span style="color:#666">2097152000</span>
http_max_content_size <span style="color:#666">=</span> <span style="color:#666">209715200</span>
http_external_url <span style="color:#666">=</span> <span style="color:#b44">&#34;https://upload.ドメイン:5281/&#34;</span>
http_upload_path <span style="color:#666">=</span> <span style="color:#b44">&#34;/var/lib/prosody/files&#34;</span>
legacy_ssl_ports <span style="color:#666">=</span> { <span style="color:#666">5223</span> }
Component <span style="color:#b44">&#34;proxy.ドメイン&#34;</span> <span style="color:#b44">&#34;proxy65&#34;</span>
proxy65_address <span style="color:#666">=</span> <span style="color:#b44">&#34;ドメイン&#34;</span>
legacy_ssl_ports <span style="color:#666">=</span> { <span style="color:#666">5223</span> }
</code></pre><h1 id="nginx">Nginxのコンフィグファイル</h1>
<p>最後はnginxのコンフィグファイルです。<br />
「/etc/nginx/conf.d/prosody.conf」というファイルを開いて</p>
<pre style="background-color:#f8f8f8;overflow-x: auto"><code>location /upload {
proxy_pass http://localhost:5000;
proxy_set_header Host &#34;upload.$host&#34;;
client_max_body_size 200M;
}
</code></pre><h1 id="heading-2">サービスの再起動</h1>
<p>勿論、サービスの再起動は必要となります。</p>
<pre style="background-color:#f8f8f8;overflow-x: auto"><code>systemctl restart prosody nginx
</code></pre><p><img src="modhttpupload.png" alt="" /></p>
<p>以上</p>
<hr />
<a href="https://github.com/piranha/gostatic">gostatic</a>で創作しました。<a href="https://git.076.ne.jp/TechnicalSuwako/StaticSuwako">Git</a>
</div>
</body>
</html>
</section>
</article>