今回は、10分おきにモロヘイヤのタグフィードを確認して、新着があればTwitterに投稿するという流れにしました。
使うノードはこんな感じです。
RSSを取得、必要な個数分だけ抽出、新着のチェック、Twitterへの投稿。
10分おきにしました
モロヘイヤで生成されるタグフィードを指定するだけです。
フィードの個数を指定できます。
私は、5個を指定しました。
なので、最大5個まで新着を投稿できます。
10分間で6回投稿していた場合は、1個スルーされることになりますが、そんなに頻繁に投稿しないし、
そもそもTwitterに凍結されそうですねw
5個のフィードが新着であるか確認し、新着のみを次のノードに渡します。
const staticData = getWorkflowStaticData('global');
var pushitem= []
if (staticData.lastIsoData === undefined) {
lastUnixDate = Date.parse('01 Jan 1970 00:00:00 GMT')
} else {
lastUnixDate = Date.parse(staticData.lastIsoData)
}
items.reverse().forEach((val, index) => {
currentIsoDate = val.json.isoDate
val.json.title = val.json.title.replace("[@karasu_sue@md.korako.me]","")
val.json.title = val.json.title.replace("#ニノクロ","")
currentUnixDate = Date.parse(currentIsoDate)
if (lastUnixDate < currentUnixDate) {
staticData.lastIsoData = currentIsoDate
pushitem.push(val)
}
});
return pushitem
投稿者とタグは消すことにしました。
お一人様なので投稿者を判別する必要はなしです。
事前にAPIキーを取得して登録しておきます。 createを選択して完了です。
WorkflowStaticDataはテスト実行では取得できないので、実際に動くかは本当に動かさないとわかりません。
とりあえず、右上からActiveにトグルを変更して、Workflow Executionsを確認します。
無事動いてることを確認したら完了、失敗していてもどこでエラーが出ているか判断できます。
このやり方だったらIFTTTとかもあるんですが、なんとなく今回はn8nに挑戦してみました。
新着のチェックを自分でコード書かないといけない面倒くささはあるものの、自由度は高いし、このコード自体は汎用的なのでなんにでも使えそうです。
何よりJavaScript出かけるのが楽でした。
とりあえず私のなかだとこれ以外に使う用途がないのでなんかn8nを無駄にしている気がしますが、
これは安定して動いていますし、少し前に話題になっていたものを試せたので満足してます。
てなわけで、この辺で。
]]>── というわけで、GoToSocialを試してみました。
GoToSocialはその名前の通りGoで作られた軽量なサーバで、
Mastodonとの互換性を重視して作られているみたいです。
特徴は何といってもWebクライアントが付属しておらず、バックエンドのみということ!
なので利用するにはMastodonなどのクライアントが必要になります。
また、細かい設定がコンフィグから可能になっており、柔軟性も重視していることがうかがえます。
詳しくはリポジトリを確認してください。
ちなみに、GoToSocialはまだα版でリリースにはまだ時間がかかりそうな感じに見えます。
実装の状況はこちらでも確認できるので、気になる方はチェックしてみてください。
今回用意したのはRaspberry Pi 3B。
軽量とのことなのできっと余裕で動くでしょう!
一応ドキュメントもあるので軽く参考にしていきます。
事前にセットアップと一応Docker環境を用意しておきます。
めんどくさいのでDockerで行きましょう。
version: '2.3'
services:
postgres:
image: postgres
restart: always
environment:
POSTGRES_USER: gotosocial
POSTGRES_PASSWORD: gotosocial
POSTGRES_DB: gotosocial
volumes:
- ./data/postgres:/var/lib/postgresql/data
ports:
- '127.0.0.1:15432:5432'
とりあえず起動確認しておく。
続いてGoToSocial。
実はこちらもDockerを試そうと思ったんですが、動かなかったので普通にやります。
まずはドキュメント通り、Goが入っている環境でビルドする必要があるので、私の場合はWSLで環境を用意してビルドしました。
ビルドしたら、完成したgotosocialとWebディレクトリをラズパイにコピります。
続いてコンフィグ。
コンフィグは、こちらのものを同じディレクトリに用意して、イイ感じに修正していきます。
リバプロとか用意しなくても普通に動くみたいなので今回はそのように設定します。
項目 | 内容 |
---|---|
host | 使うドメインを指定します |
port | 443 |
db/port | 15432(Dockerで指定したやつ) |
db/user | Dockerで指定したやつ |
db/password | Dockerで指定したやつ |
db/database | Dockerで指定したやつ |
storage/basePath | 私は直下(./storage)に設定 |
storage/serveBasePath | /media (こっちのほうがいいかなって) |
letsEncrypt/certDir | 私は直下(./storage/certs)に設定 |
letsEncrypt/emailAddress | 自分のアドレス |
と、こんな感じでしょうか。
それでは起動します。
./gotosocial --config-path ./config.yaml server start
起動するときはこんな感じでコンフィグのパスを指定してあげればOK。
特にエラーが出ずにポスグレにつないだよっていわれれば起動完了。
その後少し待つとLet’s Encryptで証明書の取得をしてくれます。
それが完了したらユーザの作成をします。
./gotosocial --config-path ./config.yaml admin account create \
--username ユーザ名 \
--email メアド \
--password 'パスワード'
ユーザの承認。
./gotosocial --config-path ./config.yaml admin account confirm --username ユーザ名
ユーザのAdmin権限昇格
./gotosocial --config-path ./config.yaml admin account promote --username ユーザ名
ここまで完了したら、ブラウザでアクセスしてみます。
こんな感じに表示されればOK、PinaforeとTuskyをお勧めされるのでどちらかにアクセスして、あとは普通にログインしてホームが表示されればOK!
ちなみにPinaforeはこんな感じです。
ただ、残念なことにユーザの編集みたいなのはないみたいです。
ついでにHyperspaceでも試しました。
こちらはユーザプロフィールの編集が可能でした。
起動後から少し触っていましたが、特に連合していない状態のメモリ使用量はOS込みで200MBを切っており確かに軽量。
ラズパイでも全然大丈夫そうですが、人が増えた時どうなるかは不明。
設定の問題かストリーミングが一切機能せずTLが終始おかしい状態でした。
またラズパイで試したときはなんだかわからないけど画像がアップロードできなくなったり色々起きました。
普段はスマホとかデスクトップクライアントしか使わないよって人には個人的にかなりありだと思っていて、
ラズパイ3B相当の超軽量サーバでも動作可能なので、例えばVultrの350円くらいの512MBインスタンスとか借りても十分かもしれないです。(ストレージ別でw)
日々開発も進んでいるようで、個人的に今一番注目しているプロジェクトですが、
私はMastodonのWebUIが気に入っているので特に乗り換えたりする予定はないかなって思ってます・・。(え
とはいえ軽量なPleromaとかと比べても構築の難易度がすごおおおおおく楽なので慣れてない人でサクッと建てれて良いかなと。
と、感想はこんな感じ?
ちなみに、試した以下のクライアントでは動作しませんでした。
まだまだAPI足りてないって感じなんでしょうね。
VultrでDockerを利用して立てたときのメモです。
よくわからず適当にやってるのであってるか不明。
docker-compose.yaml
version: '2.3'
services:
postgres:
image: postgres:12.5-alpine
restart: always
environment:
POSTGRES_USER: gotosocial
POSTGRES_PASSWORD: gotosocial
POSTGRES_DB: gotosocial
volumes:
- ./data/postgres:/var/lib/postgresql/data
gotosocial:
image: superseriousbusiness/gotosocial:0.1.0-SNAPSHOT
restart: always
environment:
GTS_CONFIG_PATH: ./config.yaml
ports:
- '127.0.0.1:4001:4001'
volumes:
- ./data/gotosocial/config.yaml:/gotosocial/config.yaml
- ./data/gotosocial/storage:/gotosocial/storage
depends_on:
- postgres
mkdir -p data/gotosocial/storage
nginx
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream streaming {
server 127.0.0.1:4001 fail_timeout=0;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=CACHE:10m inactive=7d max_size=1g;
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name gs.korako.me;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_certificate /etc/letsencrypt/live/どめいん/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/どめいん/privkey.pem;
keepalive_timeout 70;
sendfile on;
client_max_body_size 80m;
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
add_header Strict-Transport-Security "max-age=31536000";
location / {
try_files $uri @proxy;
}
location @proxy {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Proxy "";
proxy_pass_header Server;
proxy_pass http://backend;
proxy_buffering on;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_cache CACHE;
proxy_cache_valid 200 7d;
proxy_cache_valid 410 24h;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
add_header X-Cached $upstream_cache_status;
add_header Strict-Transport-Security "max-age=31536000";
tcp_nodelay on;
}
Mastodonのやつですが・・w
とりあえずこれで動くことを確認。
てことで、今日はこの辺で。
では、また。
── というわけで、コントローラーの話。
5月1日に周囲では売り切れ&高騰状態だったダブルスタイルコントローラーが、たまたま近所の電気屋で売ってたので購入。
ちょうどMHRを初めて既存のJoy-Conだと操作しづらいなぁとか思っていた時で、
HORIのグリップコントローラーと迷いつつも1つで2役はお得かなとか思ってこちらを選びました・・・
まあ騙されたんですけどね。
購入後のファーストインプレッションは、
ちゃっちいw
でした。
とは言えそこまで気にせず、ちょっと重いしちゃっちいけどJoy-Conよりはましかなとか思って使っていました。
元々Switchであんまりゲームをやらないのと、これを使っていたのはMHRプレイ時のみだったのもあり、
使用時間はおそらく15時間もいっていないと思います(MHRのプレイ時間から計算)
最初の異変は右スティックの異音。
ギコギコ音が鳴るんですよねwばねか何か?
音はうるさいけど動くのでこちらは放置な感じでしたが、あんまりいい気分はせず。
問題は左スティック。
なんだかキャラの動きがおかしいなとは感じていましたが、きっと自分のPSが足りてないからだろうとか思ってました。
しかし、昨日たまたまダブルスタイルコントローラーを付けてDQXをやっていた時に、キャラが明らかにちゃんと動いていないことを確認!
そのあと補正設定を見たら左スティックがまともに反応していませんでした・・・
たった15時間のプレイにしか持たないこれ。
持った感じも想像以上にちゃっちかったし。
そしてそもそもMHRやるにはちょっと微妙な気がします、重いし、L,Rも不安定だったのでそちらも壊れるのは時間の問題だったかもしれないし。
私の二度と買わないであろうメーカーにCYBERが加わることになりました。ハイ。
てなわけで、改めてHORIのグリップコントローラーと、怪しい箱コンアダプタを注文、今は届くのを待ってる感じです。
アダプタはDualSenseも使えるらしいのでそこは試してみたからのお楽しみということでw
(なおこれはお試しなのでそこまで期待してないよ)
てなわけで、買うならライセンス品一択かもしれないという話でした。
]]>── というわけで、コントローラーの話です。
私は基本的にPCゲームしかやらず、ゲームもマウス、KBでやるタイプなんですが、
MHWとか一部のアクションゲームとかそもそもCS向けのゲームをやるのにはコントローラーのほうが相性がいいということで、
少し色々と検討・比較してみました。
言わずもがな、PS4のコントローラー。
PS4を使っている人はなじみがあっていいんですが、私にはどうにもフィットせず・・
使っているとめちゃくちゃ力んでしまってすぐ疲れてゲームどころではない感じ。
PCにも対応していて、充電式、そして無線。
Xbox oneのコントローラー。
きっとWindowsユーザであればみんな検討したことある奴。
手にもフィットするし私としてはアナログスティックが斜めについているのが良いところ。
残念なのは電池式。
これは単三2本で約40時間くらいといった感じで、すぐ交換という形になってしまいます。
一応充電する用のバッテリーとかあるんですけど、買うか迷うところです。
それを買うのか、それともエネループを買うのか・・・
偉い人教えて。
PS5のコントローラー。
PS4から色々進化してめちゃくちゃ使い心地が改善しています。
ただ、左のスティックの位置はやっぱり上がいいな・・・
Windowsでも使えますが、Steam以外だとどこまで行けるか不明。
ちなみに、かったPS5はもはや置物状態で全く使っていません。
とりあえず箱コンを使ってます。
で、タイトルの通り電池をどうするかですね。
今は有線でやってるのでいいんですが、ケーブル邪魔なので出来れば無線にしたいところ。
やっすい電池を大量に買い込むか、エネループを買うか、専用のバッテリーを買うか。
エネループだったらOculus Quest2のコントローラーとかでも使えそうだし、それ以外でも汎用性高いのでそっちがいいのかなぁ。
とりあえずよそ様のレビューないか探しつつ、
もし微妙そうならDualSenseも視野に入れてやっていこうかなというところ。
ではこの辺で。
また。
── というわけで、今日はモロヘイヤのお話です。
私がよくTL上でモロヘイヤの話をしているので、当然皆さん知っていますよね??
え?知らない?
モロヘイヤはおひたしにしたり、てんぷらにするとおいしい・・・
というのは冗談で、モロヘイヤについてMastodonだけでは語り切れなかったのですが、
どうしても推していきたいツールなので、勝手に紹介していきたいと思います。
※内容については十分確認していますが、誤りがありましたらすみません
モロヘイヤは通称で、正式名称は「mulukhiya-toot-proxy」で、名前の通りトゥート(Mastodonの投稿の名称,Postのこと)をプロキシを通して色々してくれるツールです。
モロヘイヤは、Mastodon、Misskey、Pleroma、めいすきーに対応しており、
投稿された内容を確認して、短縮URLを元に戻したり、なうぷれ対応したり、
Amazonのリンクを短くしたり(普通にはるとめちゃ長いよね!)・・。
通常対応されていないメディア形式を変換してくれたりなどなど・・
ここでは紹介できないくらい色々あります。
基本的にモロヘイヤはコントローラとハンドラによって機能が実装されていて、
管理者が必要な機能のみに絞ることも可能ですし、その中からユーザ自身が使いたくない機能を無効にすることもできます。
※ハンドラの一覧はWikiをご参照ください。
モロヘイヤは元々「キュアスタ!」でAmazonのリンクって長いよねぇとか話してたところから始まりました。
当時のキュアスタ!ユーザだったぷーざ氏(現在は管理者)によって、このツールは生まれ、現在も色々な便利機能が追加され続けています。
で、実はモロヘイヤはWikiが充実しているのでここに書くほどのことではないんですが
折角なので画像付きで!というのが目的になります。
私がいくつかの機能をピックアップして魅力を紹介できればと思いまする!
インスタンスにモロヘイヤが導入されていることを確認してください。
鯖缶に聞いてみるなどなど?
自身が鯖缶の場合は、Wikiを確認して導入してみてください。
Mastodonの鯖缶であれば導入までそこまで大変ではありません。
Mastodon以外でも、Rubyなどを扱ったことがある場合も同様です。
そうでなくても、rbenvなどでサクッといれちゃいましょうw
Mulukhiya HOMEと呼ばれるWebUIがモロヘイヤには備え付けられています。
各インスタンスの/mulukhiyaにアクセスすることで利用可能です。
ここではモロヘイヤに関する様々なユーザ設定を行うことができます。
基本的にモロヘイヤの各機能を利用する際は、Mulukhiya HOMEで最初にトークンの登録をする必要があるので、
まずはそれをやっていただくことになります。
この後たくさんの機能が出てきますが、基本的にユーザにより無効化することができます(できるよね?)
コマンドトゥートと呼ばれる機能を使うことで、WebUIで行える設定を投稿で行ったり、
機能の有効・無効を切り替えられます。(鯖缶により無効にされている機能は有効には出来ないかな?)
ここ追記予定
投稿されたURLに関連する処理です。
幾つかありますが、ここでは主だったやつだけを。
短縮URL好きですか? 鳥を使っていたころはわざわざそういうサービスを探してとかやっていたことがありましたが、
Mastodonでは500文字も投稿できるのでその必要はありません。
逆に開くのに躊躇してしまう短縮URLはこの機能により元の状態に戻ります。
ただしくエンコードされていない場合、URLの一部が切れてしまったり不完全な状態になることを防ぎます。 痒いところに手が届く機能ですね。
Amazonのリンクって長いですよね・・・
これを自動的に必要な分だけ残して短くします!
ちなみにこの機能はモロヘイヤができるきっかけとなったものでもあります。
ハッシュタグについても色々あります!
個人的にはテーマ鯖とかそういうところではかなり重宝するかなと思うので、是非お勧めしたい機能です。
※タグ関連は基本的に公開(Public)な投稿にしか反映されません
デフォルトハッシュタグ、皆さんは覚えているでしょうか。
theboss.techから始まっていくつかのサーバに導入されたあの機能です。
モロヘイヤを使えば無改造でデフォルトハッシュタグを導入することができます。
※公開投稿のみに付与
画像ならimage、動画ならvideo、音楽ならaudioなど、
投稿されたメディアのタイプに応じて自動でハッシュタグをつけてくれる機能です。
Mastodonを含みほとんどはインスタンスにメディアを絞り込む機能が標準でついていることがありますが、
ここではそのタイプ別に応じてハッシュタグで仕分けすることができるので、探すのが非常に楽になります。
ハッシュタグ辞書は、用意された辞書を使い、その単語を含む投稿がある場合に自動的にハッシュタグをつけてくれる機能です。
日本語形態素解析エンジン?みたいなのはあえて使わず、単純にマッチしたものが対象になります。
ハッシュタグ辞書は、管理者が編集する場所を用意すれば、ユーザ同士でも追加したりできるので、
テーマ鯖とかで重宝するかなといった感じです。
また、WebUIでハッシュタグ辞書に何が使われているかなどを確認することができます。
ちなみに、辞書はGoogleスプレッドシートで簡単に作ることができます。
Wiki参照
実況用タグの詳細については、キュアスタ!ブログが細かく書かれているので、そちらを見ていただいた方がいいのですが、
一時的に投稿するハッシュタグを固定して、実況モードにすることができる機能です。
キュアスタ!ではMastodon側に改造が施されていますが、この機能はMulukhiya HOMEにも実装があるため、そちらでも簡単に使うことができます。
また、管理者がプログラム(番組表)を設定している場合は、設定するタグをリストから選択できるようになります。
時間を指定した場合、その時間になれば自動的に固定したタグがクリアされます。
例えば、キュアスタ!に登録していないけど実況に参加したいなどの場合は、
この機能を利用してデフォルトハッシュタグと実況タグを固定して参加!みたいなのが可能です。
また、この機能は専用のWebUI以外にも、コマンドトゥートと呼ばれるものを使うことでも利用が可能です。
詳細はキュアスタ!Blogをみてみてください。
JPEG以外の画像(GIF、透過PNGなどは除く)は、指定のデフォルト形式に自動で変換させられます。
設定できるのは、JPEGとWebPです。
これは、たくさんアップロードされる画像の容量を削減するための機能です。
ある程度画質が犠牲にされますが(私は気にならない)、メディアの容量が削減されるので鯖缶には嬉しい機能です。
それ以外にも、通常はアップロードをサポートされていない形式も変換してくれます。
動画なら、H.264に。音楽ならmp3に。
MastodonのブックマークやMisskeyのお気に入りなどを行った際に、
DropboxやGROWI、Lemmyなどにその内容を転送することができます。
設定はMulukhiya HOMEから行うことができます。
また、ブックマーク以外でも、コマンドトゥートと呼ばれる機能を使うことでクリッピングすることもできます。
※Dropbox以外は公開の投稿しかクリッピングできません
※Lemmy連携についてはキュアスタ!Blogをみてみてください
Annictと呼ばれる見たアニメなどを管理できるサービスと連携し、
投稿したレビューなどを自動でMastodonなどに投稿することができます。
詳細はこれまたキュアスタ!Blogが詳しく書いているのでそちらをご覧ください。
アニメ系のテーマ鯖だと結構便利な機能だと思います。
ハッシュタグnowplayingに続いてSpotifyのURLや曲のタイトルなどを入れることで、
自動的に対応しているサービスのリンクを付与してくれる機能です。
Mastodonでは画像とかも貼り付けてくれます。
また、音楽以外にもYouTubeの動画にも対応しています。
詳細はキュアスタ!Blogにて。。。w
Mastodonなどの投稿をSlack互換webhookで行えるようにする機能です。
これを利用すれば、簡単なSlackやDiscordのBOTは変更なしでそのまま使うことができます。
※私もDiscordBOTをそのまま使ってるよ!
webhookのURLはMulukhiya HOMEから確認が可能です。
メディアカタログでは、インスタンスのローカル内でアップロードされた画像の一覧を見ることができます。
メディアの投稿を絞り込んだものや、ユーザのプロフィールで設定しているハッシュタグを含む投稿を、
Atomフィードとして提供してくれる機能です。
と・・・
こんなところでしょうか。
色々機能があって紹介ができていないのもあったりしますが、
気になるものがあれば言っていただければ追加で紹介します!
そのほか細かいところなどは、Wikiを確認していただければと思います。
あとは使ってもらえると嬉しいので、鯖缶の人は是非導入していただきたいのと、
試すだけなら私のMastodonインスタンスか、Pleromaインスタンスに登録していただければと思うので、いつでも声をかけてください。
※作者のぷーざさんのインスタンスはもちろん、キュアスタ!でも導入されています
てなわけでこの辺で。
では、また。
※力尽きて中途半端なのでアップデートかけるかもしれないです
]]>── えー・・・
久々ですね。ネタがないわけじゃないんですが書くのがめn
とにかくまあ色々です。
てことで、最近なんかMXの録画がちゃんと動いてなくて、ちょうど死に始めたタイミングで嵐が来てたのでそのせいかなぁとか思ってたんですが、どうやらアンテナケーブルの接触が問題だった様子。
うちは古い家なのでよくあるプスってさすタイプじゃなくて、同軸ケーブルをイイ感じに剥いて刺さなきゃいけなくて、
どうやら心線と編組線が接触してたのか、うまくついてなかったのかそれが原因だったみたい。
先端も長年のあれで色変わっていたので5センチくらい切って新たに加工して完了。
いやぁ・・・このタイプマジでめんどいのでやめてほしい。
特にうちのコンセント古いせいかぐらぐらしててうまく刺さらないので・・・
てなわけでMXが無事映るように、そして調子悪かったtvkも映るように・・
もっと早くやっておけば取れたアニメもあったのに!!
(今tvkはろくにアニメ放送してくれなくなったので不要)
てことでこの辺で。
では、また。
── というわけで、私の個人Pleromaインスタンス“鴉は安息を夢見る”ですが、 最近の個人的方針によってDockerを利用してやっていました。
PleromaのDockerと言うと、れどめに紹介があって、
私もそれを使っていましたが、Pleromaの作り上?コンフィグをDockerイメージの中に含めないといけないらしく、
これらもそのスタイルなため、毎回わざわざビルドが必要になっていました。
※Envで渡すこともできるらしいが・・・
で、
私が今使っているサーバだとCPUが1Coreしかないかなり貧弱な状態なので、ビルドが結構長く煩わしい状態でした。
そこでOTPリリース。
OTPリリースを使えばビルドが不要になるとのことで、これを試してみることにしました。
色々と調べて3個ほど見つけたんですが、いまいち使えるのかぱっとせず。
凄い古い奴とか、そのサイト用のやつだったりとか・・・
ってことで今回は自分用に作ることにしました。
Dockerfileとか全然わからないのですが、とりあえず見様見真似で出来たものが・・・
こちらです!
んで解説。
結局ビルドは必要ですが、Stableな奴を持ってきて解凍するだけなので時間もかからないですし、イメージもそれなりに小さくなりました。
私の場合nginxは別個なのでPleromaとPostgreSQLのみです。
スクリプトについては、参考元から拝借したやつで実際にこれで構築したわけじゃないので出来るかわからないですが、たぶん?平気です。
※使うときは自己責任で・・・
最初に全部のファイルをフォルダに配置、
docker-compose.ymlにDBの設定を書きます。 ※重要
そしたらスクリプトを動かしてsetup!
これで対話式の設定とマイグレまで走ります。
対話式のところは一部デフォだとダメな奴があるので注意。
※間違えたらdataフォルダ毎消せば・・・
一応絵文字とかやれるようにフォルダ作るようにしていますが、これ事前に作って大丈夫かな?
動作確認はまだ途中ですが、ひとまずは問題なく動いています。
アプデするときはビルドしなおせばOK。
てなわけでDockerをリリースビルドのものに変えました。
動作自体は軽くなったりするのかはわからないですが、とりあえずはこれでアプデ作業が楽になりました。
新規構築するときもサクッと出来るので非常に楽かなと思います。
今後Pleromaを建てるぞ!っていう人の役に立てればと思いますが、くれぐれも公式のドキュメントを読んでの対応お願いします!
※私は個人の記事読んでMastodon建てたら盛大なミスをやらかし1年後に不具合に見舞われる事態になりましたので・・・
今日はこの辺で。
では、また。
── 特にネタもないので、おそらくそろそろPlumeを使い始めて3か月ほどたつのかな?と思うので、
今思っている感想とかなんだかをとりあえず思ったまま書いてみようかと思います。
やっぱりブログをAPに流せるっていいですね。
コメントついたりとかは・・・ないですが、お気に入りとかブーストとかあるのは個人的にプラス。
画面もごちゃごちゃしていないので、シンプルで使いやすい感じ。
※さすがにWrite.asほどじゃないですがw
現状の設定だとChromeではリッチエディタを使えないこと(対処策ある?かな?)
使えたとしても個人的にはリッチエディタはめちゃくちゃ使いづらかった。。
個人的にこのみなエディタは、GROWIみたいなやつ。
※デモサイト
そこら辺の議論は出ているっぽいので、色々変わってくるといいなとか思いまする。
メディアがサポートされているのはうれしいのですが、たくさんアップロードしていると管理がかなり大変になりそうです。
と言うかすでになっている・・・w
メディアギャラリーは今のスタイルじゃなくてもう少し見やすい感じになると嬉しいところ。
何ならこう・・Misskeyのドライブみたいな。
特に記事作成時の“図“、プルダウンなので大量に出てきます・・・
おいおい何か変わってくるといいなぁと期待。
あと、メディアと言えば表示される画像サイズ、あれ固定っぽいのでLightbox的な感じのがあるといいなとか。
現状のテーマって、カード(っていうの?)が並んでいるタイプですが、
これをもう少しシンプルなスタイルになるといいなとか思ったり。
一列に、サムネ・タイトル・サブタイ・投稿者・ブログ・2つのアイコン、をたてに並べるとか。
CSS頑張ればできると思うのですが、私の知識ではどうにもならず、そのうちまた挑戦したいところです。
これもIssueで見た気がしますが、現状のテーマの色の調整を、ユーザが設定画面からできるようになると嬉しいかも?
感想とか言いつつ、気になるところのほうが多い感じで好きかって言ってみましたが、大体こんなところでしょうか。
個人的にはMisskeyとの相性が悪く使い物になっていないので、どこかでMisskey側にアプローチしたいところですががが・・・
とまあ気に入ってはいるので、今後もブログはこちらにたくさん書いていくかと思います。
願わくばユーザが増えて、開発に参加する人とかが出てきてくれると嬉しいです。
では、また。
]]>── と言うわけで、最近使っていない端末で色々できることがないかなぁとか思っていて、
前回はNexus7にUbuntu Touchを入れたんですが、今回はGPD Pocketの出番です。
GPD Pocketは出た当初は結構話題になった気がしますが、今は競合製品もたくさん出ていたり、
GPD Pocket自体が性能悪かったりであんまり話題になっていない気がします。
で、
私自身も今はずっと在宅勤務だったり、今のご時世わざわざスタバでドヤるのもあれなので、すっかり押入れにしまって使わない子になっていました。
※もともと引きこもってるとかいうのは無しで
日本語向けならここを見ればよい?
簡単に言えば、7インチで高精細な1920x1200タッチディスプレイを搭載しているパソコン。
いわゆるUMPCとかいうやつですね。
昔でいうとSony type PとかKOHJINSHAとか。
GPD Pocketは標準でWindows10とUbuntu MATEに対応しています。
なので、特に事情がなければそれを使うのが一番いいかなと言う感じです。
でもそれじゃ普通なんですよ・・・
折角使わない端末、どうせ色々やったところで使うことがないので、どうせなら色々試したい。
実は最初はArch Linuxを入れてみたいなぁとか思っていたので、その関係でAlter Linuxを試すつもりだったんですが、
これがなかなかうまくいかなかったので諦めて、そこの関連でSerene Linuxを選んだ感じでした。
こっち見たほうが早いです
簡単に言えば、FedoraベースでXfce採用の軽量ディストリ?
最初から日本語対応されているのが特徴。
Serene Linuxに特にドキュメントがないきがしますが、気にせずRufusのDDモードで書き込みます。
で、取り合えず普通にライブを起動してインストール。
特に気にすることもなく、私はWindows領域は消し去って入れました。
キーボードはUS選べばOK。
インストールが終わったらGPD向けの設定を色々やっていきます。
respinのやつとか、fedoraむけのやつとか見ながらやっていきます。
大体は以下の感じ?
とかとか。
と思ったんですが、なんかWi-Fiも使えるし、音量も明るさも変えられる、音も出る。
バッテリーもちゃんと残量見れる・・・
ある程度普通に動いてるので、とりあえず必要なことだけやっていきます。
1.画面回転
これはディスプレイ設定から普通に。
2.タッチの回転
ここを参考に設定。
3.DPIも忘れず調整
外観→フォント→DPI。大体140くらい?
と言っても、入れただけなので特にないんですが・・・
中身はFedoraなのでずっとCentOS使っている私としてはやりやすいかも?
Xfceももう数回目なので少しだけ慣れてきました。
動作はそれほど重くはないので大丈夫そうですが、デフォで入っているブラウザがFirefoxベースのやつなのでそこだけ変えたいところ。
あとは色々いじってみます。
今日はこの辺で。
では、また。
Plumeにオリジナルのダークテーマを追加しました。
※こんなかんじ!
今回追加したのは青をベースにしたものです。
cure-blue_darkと言う名前にしているので、もしよろしければ試してみてください。
今更ですが、どういう感じでテーマを編集しているか一応書いておこうと思います。
私自身はWebデザインを学んだことがある人ではないですし、
今後そのつもりもない人です。
個人的にみやすいなぁとか思った風にいじっているだけなので、そこだけご了承ください。
デフォルトのテーマは、セリフ体っていうんですかね。
個人的にはあんまり好きじゃなくて、サンセリフ体にしています。
ついでに、フォントサイズがめちゃデカかったので小さくしています。
ページの幅がデフォルトだと狭いので、少し広めにとっています。
ついでに見出し(H1,H2あたり)のマージントップを広げています。
実は・・・
私むらさきいろ好きじゃないんです・・・
とまあこんな感じですw
ちなみに名前ですが、Mastodon時代から自作テーマの名前にキュアを付けているので、その流れを引き継いでいるだけなので深い意味はありません。
テーマについては、案があれば受け付けているのでお気軽に相談してください。
カラースキームだけでもこんなのいいんじゃない?とかあれば作ってみます。
※例
/* Color Scheme */
$gray: #f3f3f3;
$black: #242424;
$white: #f8f8f8;
$purple: #7765e3;
$lightpurple: #c2bbee;
$red: #e92f2f;
$yellow: #ffe347;
$green: #23f0c7;
作り方はドキュメントにも載っているので参考に。
では、また。
あかるい青テーマと、くらい緑テーマも追加しました。
wineは消えました・・・
ついでに、ダークテーマの文字色は少し暗めに。
フッターも暗くしました。
私自身が把握しているところだけなので、曖昧だったりしますがご了承ください。
情報にアップデートがありましたら、また追記いたします。
Plumeは“分散ブログプラットフォーム“です。
簡単にいえばブログを書いたりすることができるところで、かつ自分でサーバをたてて使うことができます。
分散・・・ そうです。MastodonとおなじActivityPubに対応していて、Fediverseに参加することができます。
Plumeでは、Plume同士は勿論、MastodonやPleromaなどと連合することが可能です。
Plumeのユーザをフォローしておけば新着記事が(Mastodonなどの)普通のユーザの投稿のように流れてきて、
それをFavしたりRN(BT)したりできます。もちろんメンションも可能です!
ブログっていうとなんか難しい感じかもしれないですが、Mastodonなどにかけない長文を書いてみたり、
小説とかニュースとか?自分なりのメモとか、気軽に使って頂いて大丈夫です。
まずは登録して使ってみることをお勧めします!
Plumeの記事はMarkdown記法に対応しています。
技術的な話をすると、CommonMarkを使用しているみたいです。
CoomonMarkの使い方は上記リンク先を見て頂ければある程度分かるかと思います。
書き方はドキュメントにも書かれていますが、
ここではいくつか紹介しようかと思います。
テーブルを書くことができます。
※CSSがあれなんですが・・・ 追記:CSS付けました
| Syntax | Description |
| ----------- | ----------- |
| Header | Title |
| Paragraph | Text |
Syntax | Description |
---|---|
Header | Title |
Paragraph | Text |
脚注を使うことができます1
[^1]
という感じで書くことができます、数字以外を入れることもできますが出力される場合は数字連番になります。
脚注を使うことができます[^1]
[^1]: 記事ないで邪魔しない感じにメモなどをかけますね
記事ないで邪魔しない感じにメモなどをかけますね
チェックボックス付きのタスクリストを作成できます。 カッコの中にxを書くことで、チェックを付けたりできます。
- [x] Write the press release
- [ ] Update the website
- [ ] Contact the media
コードハイライトを使うことができます。
```を使ってハイライトしたいところを囲います。
バッククォートの後に言語を記載すれば、その言語に合わせてハイライトしてくれます。
使える言語については、こちらを確認してください。
.e-content img{
width:296px;
transition: all 1s ease-in-out;
}
.e-content img:checked{
width:100%;
}
```css
.e-content img{
width:296px;
transition: all 1s ease-in-out;
}
.e-content img:checked{
width:100%;
}
```
Markdownは普通に改行しても、見た目上改行が入らず一つの段落となります。
段落を分けたい場合は、文章の間を1行あける必要があります。
また、</br>
や半角スペース2つ、\
を入れることで段落内で改行ができます。
Markdownは普通に改行しても、見た目上改行が入らず一つの段落となります。\
段落を分けたい場合は、文章の間を1行あける必要があります。
また、`</br>`や半角スペース2つ、`\`を入れることで段落内で改行ができます。
MarkdownではHTMLタグも使用可能です。
small
とか、mark
とか。
残念ながら文字色変えたりとかは出来なそう・・・
styleとかもダメでした。
あとは、detailsとかですかね。
見出しについては、CommonMarkの拡張に対応していないらしいので、
こちらの記事を参考にしてください。
Plumeで使える連合機能はこんな感じです。
記事内で@karasu_sue@ple.korako.me
の形でユーザ名を記載することで、そのユーザにメンションが可能です。
もちろん、コメント欄でも同じようなことができます。
記事内でハッシュタグを記載すると、投稿に自動的に紐づいてくれます。
Mastodonなどでも見た目見えないですが内部的についているので、検索で見つけやすくなります。
#Plume とか、こんな感じで。
記事に対してお気に入りやブーストができます。
何かしら記事に対してアクションがあったときに、通知で確認することができます。
メンションはコメント欄で確認ができます。
なお、ユーザ自身にメンションしても届きません。
Plumeではメディアのアップロードをサポートしています。
ダッシュボードや、投稿ページからメディアをアップロードすることで、記事内で使用可能です。
アップロード画面はこんな感じ。
アップロード後に、メディア一覧(ギャラリー)にこのように表示されます。
アップロード後の画面化、メディア一覧の各詳細から、Markdown記法用のカスタム構文をコピー可能です。
このインスタンスで使われているテーマは私が独自に適用しているものなので、
フォントとか気に入らないぞ!っていうのあれば、何か提案お願いします・・・(かなり適当に作ってます・・)
あとは、デフォルトのテーマにも戻せるので、そちらでも。
デフォルトにはダークテーマもありますので。
とりあえずこんなところでしょうか。
なんか書いた方がいいような情報を見つけたら、随時更新していこうと思います!
では、また。
]]>と言うわけで、普通にHTMLタグを使って追加する方法で、目次を利用する方法を取るしかない。
その方法は以下。
すきな感じで、アンカーに飛べるようリンクを付ける。
例えばこんな感じで。
---
## 目次
- [タイトル1](#タイトル1)
- [子タイトル1](#子タイトル1)
- [タイトル2](#タイトル2)
- [タイトル3](#タイトル3)
- [タイトル4](#タイトル4)
---
アンカーは、大体見出しにつけると思うので、見出しは以下のように。
# <div id="タイトル1">タイトル1</div>
なんか色々なんか色々なんか色々なんか
## <div id="子タイトル1">子タイトル</div>
なんか色々なんか色々なんか
# <div id="タイトル2">タイトル2</div>
なんか色々なんか色々
で、それをやると下のようになる。1
なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々
なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々なんか色々
なんか色々なんか色々なんか色々なんか色々なんか色々
なんか色々なんか色々なんか色々なんか色々
なんか色々なんか色々なんか色々なんか色々
なんか色々なんか色々なんか色々なんか色々
なんか色々なんか色々なんか色々なんか色々
なんか色々なんか色々なんか色々なんか色々
なんか色々なんか色々なんか色々なんか色々
なんか色々なんか色々なんか色々なんか色々
なんか色々なんか色々なんか色々なんか色々
なんか色々なんか色々なんか色々なんか色々
どうやらPlumeではリンクに自動的にpostcontentがつくみたい?
── というわけで、最近はHexoでブログ書いてみたり、GROWIでブログ書いてみたり、Plumeでブログ書いたりとかそんなことをしていましたが、
Plume用に借りているサーバのリソースがわずかに余っているので、ちょっとだけ気になっていたLemmyを無理やりぶち込んでみました。
私自身、Redditとかいうリンクアグリゲータ系(っていうの?)を一切使ったことがなく、
少し前にPrismoを触って、これは合わないなと思っていたんですが。
最近Fediで色々な情報が流れてくるたびに、Misskeyでクリップしているのを、
折角だからLemmyとかにやったらいいんじゃないかなと思っていたので、ちらちらと気になっていました。
で、思い立ったが吉日。
たてまつりました。(意味が違う)1
PlumeとPleromaとEpicyonが同居しているやばいところです。
今回もDockerを使うので、特に書くことなし!
ドキュメント読んでサクッと入れます。
文章で表せないのですが、私としてはPrismoよりLemmyのほうが好みです。
最初こういうサイトは、共有したいから投稿するっていう明確ななにかをもっていないといけないのかと思っていましたが、
少し触っていて、自分でふと思ったことをメモしておく場所として使ってもいいかもしれないと思いました。
実際、私自身そこまで共有したいことがあったりとか、普段から情報を集めまくっている人ではないので、
おそらくメモしたりとかそういう使い方になってくると思います。
私はFediに来てから、MastodonなりMisskeyなりほぼすべて自分で建てたサーバにしかいないので、
ほかの方のインスタンスだとどうふるまっていいか混乱してしまうので、
やはり自分で建てたインスタンスと言うのは居心地がいいし投稿しやすい。
あれ、特に書くことないな・・・
連合の仕組みが少し気になるところ、
ドキュメントみて設定したのですが、案の定というかリモートのコミュニティに参加しても古い情報は特に流れてこず、
必要なら自分で検索しないとダメみたい?です。
こちらからほかのインスタンスのコミュニティに投稿したりとかはまだしていないので、
正しく動いているかは不明ですが、そのうち色々やっていければと思います。
あとは、そのうちMastodonなりMisskeyなりPleromaなりに投稿が流れてくればよいかなと思う次第です。
その場合、フォローするのはコミュニティ単位ですかね。
API自体は公開されているので、個人的にいつも見たいようなニュースとかは、自動で投稿するようにしてもよいかなぁとか思っています。
あとは前述のとおり自分用のメモとかそんな感じ?
大体は、スマホ情報とかゲームのリリース情報ばかり見ているのでそんなのばっかりになりそう。
私自身はあんまり議論したりとかに使わない気がするので、そんな感じです。
HexoのブログはいまPlumeがあるので使わなくなっていますが、
コメントと連携するやつは私も試してみたいので、機会があれば。
と言うわけで、今日はこの辺で。
では、また。
]]>てなわけで、Plumeを少し使ってみて気になったところをつらつら書いていきます。
ほかのPlumeインスタンスでは起きていなかったのですが、
うちのインスタンスだとChromeでPlumeにつないだ時に、以下のようなエラーが出ます。
Error loading Rust wasm module 'plume_front': CompileError: WebAssembly.instantiateStreaming(): Wasm code generation disallowed by embedder
Uncaught (in promise) CompileError: WebAssembly.instantiateStreaming(): Wasm code generation disallowed by embedder
解決策はいくつか乗っていたけど、セキュリティを落としてしまうらしいので、試してはいません。
いや、だからどうしたって話ですが、
改行するたびにスペース入れたり、好きな数改行できなかったり、
めちゃだるいです・・・
似たようなサービスの、Write.asだとそこらへんはクリアしていますし、
HexoやGROWIなどのMarkdownを扱えるサービスでも改行周りはいい感じにやってくれているので、そういうオプション欲しいです。はい。
以前書きましたが、日本語や特殊文字でブログ名や記事名を付けると、Misskeyから検索不可になります。
Misskey側が特殊文字を処理しきれていないようにも見えましたが、個人的にはPlume側のリンクもユニークな何かにするなり、
オプションで好きなURLにできたりするとよいなと、そんなところ。
今のところ回避方法は、事前に英数字のみのタイトルで公開して、即差し替えるといった感じでしょうか。
これで行けます。
記事を投稿したらFediverseに配信されると思うのですが・・・・
うーん。
Misskeyでフォローしている分には流れてこないんですよね、待ちきれなくて検索かけてしまったのでそこは調査必要な感じ。
ジョブとかどういう風になっているか全く知らないので・・・
あとはMastodon側からもフォローしてみて、どういう風になるかチェックしたいかなと思います。
正直、新着が通知されないのはかなり致命的なので何とかしたいところ。
色々試したら、たまにちゃんと配信されているようでした。
ただ、何回かやってるとうんともすんとも言わなくなって、そのまま再起動するまでダメって感じです。
なんだかコンソールでエラーが出てました。
気になったものだけ書いていきます
thread '<unnamed>' panicked at 'instance::shared_inbox: user error: (Some(Object({"error": String("Gone")})), Inbox(InvalidObject(None)))', src/inbox.rs:30:9
Warning: Responding with 404 Not Found catcher.
Warning: Missing required query parameter 'page'.
Shared inbox error: Db(DatabaseError(UniqueViolation, "duplicate key value violates unique constraint \"follows_unique_ap_url\""))
私がメインで使っているMisskeyからまともに扱えないという時点でかなりマイナスポイント。
デザインとかも簡単にいじれますし、機能的にもかなり良いので、上記のマイナス面が解消されれば引き続き使い続けられるかなと感じてます。
ただ、現状は開発は遅めですし、使用者も少ないので中々難しいかもしれないです。
本当は私がなんらかの修正や報告をして貢献できればいいんですが、そこまでの知識などがないところが残念です。
(私が残念な人)
そんな感じで、ちょっと使ってみたのでつらつら書いてみました。
では、また。