はじめに
クラウド全盛の昨今ですが、あえてクラウド化に逆らうセルフホスティングの話をします。クラウドに任せるのではなく、自分のサーバの中に自分で使うwebサービスを建てる、そういうおはなしです。
Self-hosting (web services) - Wikipedia
今回はそんなself-hostingにおすすめのwebアプリケーションをドドーンと紹介します。
計算機の歴史は常に振り子でした。
集中処理と分散処理、逐次処理と並列処理、同期処理と非同期処理、RISCとCISC...
これらは決して排他的に対立するということもないのですが、どちらが主流かというのは時代のトレンドとともに振り子のように揺れ動いてきました。
「クラウドとオンプレ」「所有と非所有」というのもまたその一つですね。
利点と欠点
まず利点はなんといっても、自分のデータを自分の手元においておけることです。
データが手元にあり通信経路が暗号化されていれば、クラウド事業者が技術的・契約的・法的問題でデータを消したり見ることはありません。
すべてのデータは手元にあり、(適切に設定して運用していてソフトウェアに穴がなければ)他人が見ることも消すこともありません。
また、事業者の気ままな変更に付き合う必要がないということも挙げられます。
たとえばEvernoteは度々、大幅なサービスの変更を行っいています。
これに追従できていればいいのですが、「余計な改定しやがっておかげで使えないぜ!」と憤慨しているユーザもたくさんいます。
Self-hostingであれば、ある時点で動くコードを永遠に死守することができます。とくにコンテナ環境であれば古いライブラリを封入しておくことも簡単です(脆弱性対策は自分でする必要はあります)。
「〇〇が使えないサービスになったから次は△△に引っ越し」などといっても、△△が第2の〇〇にならない保証はどこにもありません。
EvernoteからNotionに引っ越したところで、Notionが未来永劫安住の地となることはなく、サービス終了や値上げの心配は相変わらず残ります。
これを自前化することにより、Evernote朝からNotion朝への王朝交代ではなく、情報の主権を自らに取り戻すことができます。
2022年の春、ロシアからさまざまなグローバル企業が撤退しています。
もし時の政権が変なことをして世界中から総スカンを食らった場合、自分のデータであってもアクセスできなくなるというリスクがあることが明らかとなってしまいました。
そのような政治的事態が起きないにこしたことはありませんが、これもクラウド依存のリスクといえるでしょう。
独自の拡張や変更、サービス間の連携を自分で組めるといった点も利点です。
外部の事業者のサービスの場合は彼らが公開しているAPIしか使えないわけですが、自前で動かしているのであれば「APIでは届かないところを背後のsqlを直接操作して解決」「データのファイルを直接書き換える」「rate limitを気にせず大量操作」「自分で新機能を追加」といった技も可能になります。
欠点はその適切に設定して運用し、脆弱性対策を自分でして、かつ穴がないことを確認する責任は常に自分にあるということです。
「ふくいナビ」事件を笑っていることはできません。そのような事件が起きたら自分で自分のデータのバックアップを探してきて自分で復旧しないといけないのです。
自由と自立にはそれなりの責任と手間、時には苦労が伴います...
フリーソフトにはないプロプラ製品の魅力とは、その責任や手間をお金で買うことができる、ということですね。
もちろん、サーバを買うお金、RAIDを組んでそのHDDのお世話をするお金、UPSをつけてピーピー鳴き始めたら電池を交換するお金、電気代といったものもかかります。
利点 | 欠点 | |
クラウド |
|
|
自前 |
|
|
構成
基本的構成
わたしのサイトでは、基本的に以下のような形でつくってあります。
- httpsを解釈するreverse proxy (VPS内)
- httpで動くアプリケーション (自宅サーバdocker内)
- 両者はVPNでつながる
露出する頭だけVPSにおいておき、背後のアプリケーションは自宅においてVPNでつなげるというのが基本的な構成です。
そのこころは以下です。
- リバースプロキシでSSLクライアント証明書を要求・検証することで、他人のアクセスを排除
- VPSでの処理をは最小限にする(なるべく安いVPSを使う)
- なるべく自宅サーバ側で処理をする
- 自宅にグローバルIPをつけたくない(自分しかアクセスしない場合で、自分の端末でVPNが動いているとしても、ランデブーポイントを外物に用意する必要がある)
sslh
nginxやapacheの前段にsslhをつけるとsshとopenvpn(のtcp接続)も443に同居させることができます。
「tcpは80, 443以外禁止」といった公衆WiFiでも幸せになれます。
sslhはSNIの解釈も可能なので、SNIの処理もsslhにやらせるとnginxやapacheは不要になります。
SSLHでHTTPS, SSH, OpenVPNを443番ポートに共存させる - Qiita
1つのアドレス・ポートを SSH (over SSL) と HTTPS で使う - Qiita
sslhの代わりにstunnel, haproxyを使うこともできますね。
Haproxyを用いて443ポートで複数サービスをホストする - Qiita
このnginxやapacheを用いない構成の場合、sslh, stunnel, haproxyはバーチャルサーキットを暗号化するレイヤのみ扱うので、websocketだろうが未知のHTTP変種・拡張だろうが関与せず何でも通るという利点があります(HTTP/3のudpは除く)。
欠点はキャッシュもなく、ログ類も乏しく、セキュリティ上の応答ヘッダー追加、本当の接続元のIPアドレスを要求に追加するといった加工も不可能ということでしょうか。
今回はこの欠点を考慮してこの方式は採用しませんでした。
それ以外のリバースプロキシ
さらに以下のようなものをつかうと、別のL4〜L6あたりのレイヤにそのまま対応することもできますね(ESNIはECHに変わるみたいですが...HTTP/3ってSCTPの夢を達成できるのでしょうかね)。
devopsext/esni-rev-proxy: Golang reverse proxy with ESNI support on top of TLS 1.3
WebサーバーのHTTP/3対応をNginxのリバースプロキシでするためのDockerイメージが出来ました - Qiita
QUIC及びHTTP/3対応のNGINXサーバーを構築 - Qiita
iptablesでUDPも振り分ける
sslhを使うことで、443/tcpを2.4GHzみたいに便利なゴミ捨て場状態にすることができました。
そのゴミ捨て場精神をtcpからudpにも拡大し、53/udpや443/udpに対してdemulitiplexをすることができます。
fortigateを導入しなくてもiptables -m string
で簡易DPI(deep?)できます。
例えば、以下のような方法で53/udpにやってきたdnsとwireguardを分離することができます。1
iptables -t nat -A PREROUTING \
-p udp \
-m udp --dport 53 \
-m string --algo kmp --from 28 --to 31 --hex-string '|01000000|' \
-j DNAT --to-destination 127.0.0.1:51820
Protocol & Cryptography - WireGuard
同じことを443/udpにすれば、sslhで443/tcpにopenvpn-tcpが同居していたのと同じことを、wireguardで行うことができます。
「udpは53, 443以外禁止」といった公衆WiFiでも幸せになれます。
実際はudpの規制をしているような公衆WiFiでは大抵443/udpも通らないので53/udpを使うことになります。
今後、ssh over QUICやNFS over QUICみたいなのが登場して、「443/udpに同居する様々なQUICをリバースプロキシする」といった手法も登場してくることでしょう。
現在でもcaddyを使えばできそうですね(未確認)。
Global options (Caddyfile) — Caddy Documentation
OSIレイヤ分離的に気持ち悪い、レイヤバイオレーションだ、せっかく多数の/etc/protocolsや/etc/servicesが作られたのに全部443/udpに退化している、といえばそうなのですが、SSL-VPNのような製品が多数出回っているのに今更それを言ってもね、使えるプロトコルが規制されているのだから仕方ないじゃん、使えるものは便利に使うぜ、という感じかもしれません。
内部アクセス
自宅内からのアクセスのために自宅内にもhttpdを建てておくと、自宅内からのアクセス時に自宅-VPS-自宅
の往復が発生することもなくなります。
自宅内のDNSサーバにはちゃんと自宅内のIPアドレスを返答するようにしてもらいます。
今時のブラウザは「出先からはhttps、自宅にいるときはhttp」といった構成は好みませんので(HSTSしましょう)、自宅にいるときでもssl接続できるように証明書の共有をうまく作る必要があります。
certbotが動いた後にはscpするようにしておきましょう。
その他の方式
今回は443/tcpに山のように同居している連中を「ほどく」作業をVPSにやらせていますが、以下のように443をそのまま自宅まで引き回すという解決策もあります。
VPSをゲートウェイにして自宅サーバーで443番ポートを公開しhttpsを利用する - Qiita
このほうが構成はシンプルになります。
欠点としては、VPSは生きているのに自宅サーバ(あるはVPN)が落ちたときに503や502のエラーすら出てこなくなり、「すみません現在復旧作業中です」という案内をすぐ掲示することが困難ということが挙げられます。
私の場合、NextCloudで他人とファイルをシェアしているので案内が出せないのは困るため、この構成はとりませんでした。
「VPSもクラウドだろ、撤退できてないじゃないか」問題
SaaSを使わずにIaaSだけを使う、という意味でこうしたわけですが「VPSも使いたくない」といった場合は素直に自宅に固定IPアドレスをつけるか、torを使って.onion
ドメインで公開という手になりますね。
自宅のラズパイを Tor Onion Service にして外から SSH 接続する - Qiita
あるいはVPSやEC2ではなくawsマネージドサービスだけ使うことにして、VPNとLBだけ使うといった構成もありでしょう。
オンプレサーバーをターゲットにしたALBリバースプロキシ環境を構築してみる | DevelopersIO
セキュリティの確認
この手の作業をしていると、つい「正しいIDとPasswordを入れた時にうまくいく」ことばかり気にしていて、「正しくないIDやPasswordでは入れない」ことを確認し忘れるといったことがあります。
また、保護したつもりだったが保護してなかった、というミスもありえます。
そこで、「正しく受理している」「正しく拒否している」ことを確認するためのシェルスクリプトを作っておき、作業後には必ず実行する、cronで毎日実行して失敗したらメールさせるようにしましょう。
curlに-w '%{http_code}\n'
をつけると、200とか401とか帰ってきます。
--resolve hoge.example.com:80:192.168.1.1
といった指定をすると、自宅内にいても強制的にvps側のアドレスに接続に行かせるとか、SNIやHost:
に好きな値をいれることもできます。
デスクトップ用アプリもほしい!
頑張ってElectronを書かなくても、以下のようなものを使えばこれらwebサービスはだいたいデスクトップアプリになります(オンラインでしか使えませんが)。
GitHub - jiahaog/nativefier: Make any web page a desktop application
Unite for macOS
Fluid – Turn any webpage into a real Mac App
lotato - lost in a sea of browser tabs?
ユーザ認証
以下で紹介しているwebアプリケーションの中にはユーザ認証機能を全くもっていないものもあります。
自分1人で使うだけならhttpsクライアント証明書を必須にしたり、VPN接続している端末からのみ接続可能にしておけばそれで十分ですが、他人にもログインさせるとなるとそれでは少し困ります。
そのような場合もauth0みたいな外部サービスを頼るのではなく、keycloakを自分でたてて、webアプリケーションにoauth2を話させるかoauth2-proxyやkeycloak gatekeeperを入れることで幸せになれるかもしれません。
シングルユーザしか想定していないアプリの場合はどのユーザも同じ画面が表示されるわけですが、少なくとも見知らぬ赤の他人が接続することはなくなります。
最小構成で OAuth2 Proxy を使ったHTTPなページでユーザー名を表示する - Qiita
問題はアプリ側が独自のログイン画面を持っているがoauth2に対応していない場合です。
ssoは諦めるか、oauth2-proxyが生成するX-Forwarded-Email
やX-Forwarded-User
(またはX-Forwarded-Preferred-Username
)ヘッダーを信用するように改造する必要があります。
長くなりましたが、ここまで前座でした。
webアプリカタログの歌 「GNUには1024人」
マダム、これがwebアプリのカタログです!
以下、GPLなのかBSDなのか等は別として、すべてオープンソースです。基本的には「有償・プロプラから撤退」という話の記事なので、redmineとかmediawikiとかは掲載していません。
特にここでリンクしていませんが、すべてDockerfileやcomposeがgithubにあります。
localstackを使わずに自分でawsもどきを立てよう、というほど大変ではありませんのでご安心を!
NextCloud
代替対象: Dropbox, Google Drive, One Drive
ファイルをどんどんおいて、共有したり共有しなかったり、プラグインで遊んだりと様々なことができます。
おそらく「self-hosting」といったときに一番有名なソフトでしょう。
PHPで動いているせいかちょっと重いこともあるのですが、安定稼働するとかなり便利です。
OnlyOfficeを追加すると、Google DocumentsやOffice 365の代わりにもなります。
どこまで使えるかどうかは人によるとはおもいますが、たいして複雑なオフィス文書の機能を使っていな私にとってはこれで十分です。
PhotoPrism
代替対象: Google Photos, iCloud Photos, Amazon Photos
Browse Your Life in Pictures – PhotoPrism
画像の山をtensorflowで食べて写っているものを認識して視覚化してくれます。
DAVも話せるので、DAVに写真をバックアップするようなアプリをスマホにいれれば同期してくれます。
そうではなくても、NextCloudの中身を直接(DAV経由などではなく)ファイルシステムからReadOnlyで読ませればスライドショー用UIになります。
似たものにPhotonixというのがありますが、まだあまりこなれていないのかPythonの例外がそのまま画面に出たりしました。
gitbucket
代替対象: github
恥ずかしいコードも秘密のコードもgithubに置かなくてOK!年収を診断することは出来ませんが流出の心配も減るでしょう、不正ログインされなければ。
他にも、gitlab, giteaなどいいろいろあります。
gitlabは重いですが、giteaは軽くていいかんじです。
「gitea」の検索結果 - Qiita
giteaのfork、forĝejoが登場したとのことです。
ownCloudに対するNextCloudみたいな経緯のようみにえます。
Forgejo – Beyond coding. We forge.
ユリアーモ辞書(エスペラント辞書)でforĝejo
wallabag
代替対象: Pocket
以下に細かいお話があるのでどうぞ。
「後で読む」サービスのwallabagを自分で建てよう - Qiita
freshrss
代替対象: Feedly
FreshRSS, a free, self-hostable aggregator…
RSSリーダです。
ちなみにうちでは、ファームウェア更新告知や声優さん等のwebのhtmlをとってきて、xpathや正規表現でゴミを捨ててからgitbucketにdiffを蓄積し、差分とスクショをfreshrssに出す自前プログラムを動かしています。
「はてなアンテナ」の代替ですね。
転売屋はこういうのを真剣にやって、在庫復活を捉えているんでしょうね...
ArchiveBox
代替対象: archive.org, 魚拓サービス, Evernote WebClipper
自分でwebアーカイブを作るというものです。
上記のWallabagは登録したものをRSSで出力できますので、以下のような方法で連携することもできます。
ArchiveBox + Pocket + Fessで作る、いつでもどこでもマイ魚拓(全文検索付き) - Qiita
残念ながらArchiveBoxの出力としてRSSやgitを使うことはできないようです。
APIがありますので色々できます。
Leanote
代替対象: Evernote, Notion, Google Note
Leanote - open source alternative to Evernote · GitHub
日本ではあまり知られていないソフトですが、中国の人が開発しているようです。
Evernoteの代わりになります。
デスクトップアプリやiOSアプリもあります。
かなりよく出来ていて、お陰様で最近の私はEvernoteへの依存度がかなりヘリました。
markdownも使えますし、ビジュアルなエディッタも使えます。
デスクトップアプリからはenmlのインポートができます。
REST APIもあります。
標準ですといわゆる中華フォントなのですが、ソースのある場所で、
grep -l Hiragino -r . | xargs perl -i.bak -pe 's/Hiragino Sans GB/Hiragino Sans/g;'
という呪文を唱えるとあら不思議、日本語フォントになります(一部追加修正が必要)。
githubも中国語が多いですが、日本語話者でもだいたい何書いてあるかくらいはわかるし英語での質問には英語で答えてくれているのでそんなに困りません。
排外主義者・国粋主義者・右翼にはおすすめできないかもしれませんが、普通の人には普通におすすめできるソフトですね。
emacs用modeもあります。
aborn/leanote-emacs: A minor mode writing markdown note using leanote platform in emacs.
WBO
代替対象: Google Jamboard
ブラウザの中で動くホワイトボード、お絵かき掲示板です。
同じURLを開いている複数のブラウザで同じ絵をみることができますので、zoomなどで画面共有しているときに、ちょっと図を描くのに便利です。
私はiPadのSafariでApplePencilで絵を描き、それをPCのブラウザ経由でzoom共有するという使い方をしています。
lovasoa/whitebophir: Online collaborative Whiteboard that is simple, free, easy to use and to deploy
Vikunja
代替対象: todoist, wondrlist
todoを管理するツールです。
そのままですと日本語変換を確定した瞬間に追加されてしまいますが、keyup.enter
をkeydown.enter
に置換すれば治ります。
keydownとkeyupの違いに気をつけて!IME入力時に順番が違う! - Qiita
Wekan
代替対象: Trello
カンバン型タスク管理ツールです。
左にある「未着手」を右にある「進行中」にすすめていくあれです。
Trelloのおもらし事件のようにならないよう、「公開」には気をつけましょう。
他のvirtual hostも同じですが、やはり特に理由がない限りはクライアント証明書は必須にしておくのが安心ですね。
似たようなツールは他にもたくさんありますので、探してみるのも良さそうです。
11 Best Open Source Project Management Software [Self-hosted]
HedgeDoc
代替対象: HackMD
HackMDのオープン版であるCodiMDが名前が変わってHedgeDocになりました。
qiitaの下書きにも使えますし、プレゼンテーションを作ったり共有したりもできます。
BulletNotes
代替対象: workflowy
jean/BulletNotes: Personal Knowledgebase, Note Taking, Scheduling
BulletNotes.io
箇条書きするノートです。
他にもvim風のものでvimflowyというのがあります。
GitHub - WuTheFWasThat/vimflowy: An open source productivity tool drawing inspiration from workflowy and vim
Vimflowy
日本語は環境によってはちょっと挙動が怪しいことがあります。
githubにパッチがあるので当てましょう。
開発が止まっていますが、Hackflowyというものもあります。
こちらはwebsocketを大量に生成する、日本語のキーイベント(229)が遅い等の問題が多くて実用できませんでした💧
GitHub - abhshkdz/HackFlowy: Workflowy clone, built using Backbone.js & Socket.io
agendav
代替対象: Googleカレンダー
GitHub - agendav/agendav: A CalDAV web client similar to Google Calendar
caldavのwebインターフェイスです。
なので背後にcaldavサーバを置くと、なんとgoogleカレンダーのようなものができます。
caldavサーバにはbaikalが使えます。
rainloop
代替対象: gmail, Yahoo mail
GitHub - RainLoop/rainloop-webmail: Simple, modern & fast web-based email client
imapのwebインターフェイスです。
なので背後にimapサーバをおくと、なんと(以下略
メール関連で必要なものを全部一つにまとめたコンテナとしてMailuというのがあります。
私はfetchmail, procmail, spamassassin, postfix, dovecot, DNS等の連携を自分で作ってしまったので利用したことはないのですが、昨今のメールのセキュア化(domainkey, SPF, MTA-STS, DANEなど)は結構大変なのでこういうのがあるのは良いですね。
Mailu/Mailu: Insular email distribution - mail server as Docker images
overleaf
代替対象: overleaf, sharelatex
GitHub - overleaf/overleaf: A web-based collaborative LaTeX editor
これがあれば/usr/local/share/texmf/
の巨漢にSSDを圧迫されて泣くことはもうありませんね。
-shell-escape
を追加して、apt install gnuplot graphviz
しておけばグラフもこの中で作成できます。
Overleafを使った日本語論文の作成 - Qiita
Overleaf(旧sharelatex)環境の構築 - Qiita
vaultwarden (旧称bitwarden_rs)
代替対象: lastpass, 1password
世の中のwebサイトに数多あるパスワードを管理するサービスです。
でもそれをクラウドに置くのって安全なの?命綱を握られてない?という話は当然出てきます。
bitwardenはそういうサービスのうちの一つでして、サーバ側のコードが公開されています。
オープンソースのパスワード管理ソフトはたくさんありますが、iOSクライアントがあるか、多要素認証はできるか、とか言いだすと選択肢は狭まります。
bitwardenはこれらに対応しています。
公式のサーバはお金を払わないと使えない機能があったり、重かったりとあまり実用的ではありません。
そこで登場するのが、非公式互換サーバvaultwardenです。
資源をあまり必要としない上に、yubikeyによる多要素認証も可能になります。
公式のクライアントでは、ログイン画面の⚙️(歯車マーク)からサーバのURLを指定可能です。
ユーザに非常事態が発生して長期に渡り連絡がとれない(つまり死亡)というときに、あらかじめ指定された者(つまり遺族)に非常アクセスを許可する仕組みもあります。
個人でも家族でも企業や団体でも、こういうのを建てて緊急事態アクセスを設定しておくと「何か」あったときに残された人が苦労しないで済むかもしれません(残された人がこのサーバを維持管理できるかは分かりませんが、普通、サーバは一ヶ月程度は無保守でも動きますよね?)。
いつ誰が新型コロナウイルスに感染して戦線離脱するかわからないご時世、組織のDR, BCPとして構成員個人のパスワード管理の重要性が高まっています。
bitwarden_rsでパスワード管理サーバーをセルフホスティング
vaultwarden自体を動かしているサーバが落ちた時にそれを再起動・再デプロイするのに必要な認証情報までvaultwardenに任せてしまうと「鍵が金庫の中にある」「缶切りが缶の中にある」という状態になります。
以下のものを使って、定期的にkeepass形式に変換して安全な場所に置いておきましょう(日本語を使っている場合はutf8を使うよう一部修正が必要です)。
Komga
代替対象: Apple BooksのiCloud連携
手元にあるPDFやepubをwebブラウザから読むことができます。
漫画向けなのでライブラリの中に「シリーズ」という概念があります。
この手のものではCalibre-webが有名ですが、ライブラリが大きくなると遅くてきついです。
Komgaは数万冊いれても動きます。
いくつかのiOSやAndroidのアプリと連携ができるので、それも便利です。
Jellyfin
代替対象: iCloud Music Library
Jellyfin: The Free Software Media System
自分の手持ちの音楽をブラウザから再生することができるメディアサーバーです。
NextCloudやKomgaもそうですが、自分で買ったものを自分だけが再生できるようにするのなら著作権法上の問題はありません。
もちろん、自分だけがログインできるように守ってあげしまょう。
音声しかないのにm4aではなくmp4になっていると再生できずに止まってしまいます。
ffprobeでvideoがなかったらffmpegでm4aに-vn -c:a copy
するようなshell scriptを書いて回してあげましょう。
DLNAにも対応していますが、その場合はnetwork=host
が必要になります。
Jellyfinでメディアサーバを作ろう - Qiita
【Jellyfin】自分だけのメディアサーバー - Qiita
DLNAだけが目的(WebUIでの再生は不要)なら、MiniDNLAがおすすめです。
複数のMiniDLNAインスタンスを起動して、アクセス制御する - Qiita
paperless-ng
代替対象: ScanSnap Home
スキャンされたレシート、ハガキ、チラシといった紙切れのPDFを管理するシステムです(書籍向けではありません)。
tesseractのOCR精度は売り物ほど良くはありませんし、分かち書き言語を前提とした検索システムなので日本語の検索はしにくいですし、QRコードの認識といったこともしてくれませんが、djangoのREST APIが使えますのでそこは自分でいくらでも強化できます。
ScanSnapで一万冊の本をスキャンして管理して読むおはなし #書籍以外の紙 - Qiita
Exment
代替対象: MS Access, Excel, Googleスプレッドシート
Exment | エクスメント - システム無料、基本機能充実。シンプルで軽快なオープンソースWebデータベースをあなたに
Webデータベースソフトです。
大昔のHyperCard, 桐みたいなやつですね。
本体はPHP、バックエンドはmysql類でREST APIでも操作できます。
別のテーブルを参照することもできるので第3正規形もできますし、カード画面でjavascriptを入れることができるので(セキュリティはさておき)なんでもし放題、ちょっとしたデータ管理なら十分ですね。
うちは同じ型が幾つもあるタイプのごちゃごちゃしたファイルや、普段は外して置いてある外付けHDDといった物品の管理に使っています。
ただ、残念ながら以下ような欠点があるようです。
- APIのエラーメッセージまで日本語
- datetime型にTimeZoneという概念がない
- 「金額」のデータタイプの通貨が限られる
- APIでsql的なものは使えない
- PHP8未対応
この会社は本体はOSSで配布して、商用サポートやプラグインの開発でお金を稼いでいるようです。
WordPress, MovableTypeとかと同じビジネスモデルですね。
exment-git/docker-exment: exment env
Exment - Qiita
Laravel製のオープンソースWebDB『Exment』が正式リリース2年なので、これまでとこれからをまとめてみた - Qiita
webssh
代替対象: aws cloudshell, cloud9のターミナルなど
GitHub - huashengdun/webssh: Web based ssh client
ブラウザからsshできるようになります。
便利なのかセキュリティホールなのかは微妙な気もしますが、何かあったときに便利かもしれません...
おわりに
と、これらのソフトの作者の皆様のおかげで、我々はプライバシーと財布をサブスク課金クラウドから取り返すことができます。
深く感謝です。
企業で建てたいけど面倒・管理が心配、という方は弊社までご連絡ください(嘘です😀)。
残念ながら「プライバシーを売りたくない、お金も払いたくない、自力でやる元気もない、けど使いたい」というような都合の良い話はありません。
そういうことを言っていると、半田病院のようになります。
経済学にフリーランチはありません。
子ども食堂も教会の炊き出しも天から無料で降ってきたものではありません、誰かが労力や財力を寄付しているものなのです。
深く感謝しつつ、我々も寄付やコミットをしていきましょう。
「地獄は善意で満ちているが、天国は善行で満ちている」と申します、偽善でも売名でも自己満足でもいいので善行を積み重ねましょう。
参考リンク
こちらも参考にさせていただきました。
個人的にセルフホストしてるソフトウェア 2021 | 備忘ノート
Dockerで即実行できる、社内・自宅向けオープンソースWebアプリ - Qiita
セルフホスティングへの回帰 - hub
Awesome Self Hosted | LibHunt
Self-Hosted Alternatives to Popular Services
The Top 210 Self Hosted Open Source Projects
-
DNSクエリーの頭はトランザクションIDですので、稀にマッチします。「稀」といっても誕生日のパラドクスが示す通り直感的に感じるより多いのですが、自分のドメイン名への多少のクエリーを捨てても自分は困らない(他人は困るかもしれない)ことでしょう。 ↩