ABRoot |
OS をイミュータブル OS 化するツール |
– |
ルート・パーティションをカレントとアップデート用で 2 つ用意し A/B テスト方式でパーティションを切り替えるツール。カレントのルート・パーティションは書き込み禁止にし、各種変更は、もう片方のアップデート用に行うことで、アップデートの失敗でもフォールバックできるようにする。Go 言語で実装された単体バイナリで動作する。Vanilla OS などのイミュータブル OS で使われる。OSTree と似たコンセプトだが、OSTree は git などのように変更をコミットする方式であるのに対し、ABRoot はパーティションを切り替える。 |
Albius |
Linux 系 OS インストール時のバックエンド |
– |
Vanilla OS の、OS インストーラーのバックエンドとして Go 言語で書かれたアプリ。現在は汎用化されており、OS のインストールだけでなく、SquashFS や OCI(コンテナイメージ)のインストールなどにも対応している。従来のシェルスクリプトによる実行でなく、JSON 形式でインストール・プロセスを記述できるのが特徴。主に CUI ベースのインストーラーとして使われるが、GNOME 用 GUI フロントエンドには、Python ベースの Vanilla Installer がある。 |
Ansible |
SSH 接続による操作の自動化ツール(ターミナル操作の自動化みたいなもの) |
Wikipedia |
VM、LXC、Docker 含む OS のセットアップ、定型処理など SSH 接続経由でできることであれば何でも自動化できる。利点は、接続先には何もインストールしなくてもいいこと。似たような環境構築系に Terraform がある。両者の違いは Ansible は対象のシステム操作を自動化するため、対象システムのコマンドを熟知していないといけないのに対し、Terraform は「プロバイダー」という形で対象システムの操作を Terraform の書式で汎用化してくれる。しかし、Terraform はデフォルトでクラウド系のサービスを対象としているため、ベアメタルの環境構築には「俺様プロバイダー」を作成する必要がある。 |
Authelia |
ユーザー認証と承認を行う Web フロントエンド |
– |
Go 言語で書かれており、Nginx などのリバース・プロキシと連動して利用する。リバース・プロキシがネットワーク内のサービスに転送する前にログイン認証などの処理を担ってくれる。つまり Docker ネットワーク内の各々のコンテナは認証機能を実装しなくても済む。 |
CoreDNS |
単体バイナリで動く、軽量・高速な DNS サーバー |
Wikipedia |
Go 言語で書かれた、ローカルでも使える名前解決サーバーだが、Pi-Hole のような DNS シンクホールとしても使われる。再帰検索には向かない。つまり、特定のドメイン下にあるサブドメインの名前解決向け。 DNS シンクホールには Blocky も参照。 |
CRYSTALS-KYBER |
NIST 主催の Post Quantum Cryptography 勝者の暗号アルゴリズム |
Wikipedia |
量子コンピューターによる(素因数分解などの)演算に耐性のあるアルゴリズム。Go による実装は、CloudFlare の CIRCL がある。 |
DistroBOX |
OCI ベースの仮想 Linux 環境管理ツール |
– |
Linux 上で仮想 Linux 環境を作り、その上でアプリを実行するアプリ。とは言え VM ではなく、LXC や chroot に近い。OCI 互換の Docker や Podman などのコンテナ上でユーザー・スペースを動作させるため、オーバーヘッドは少ない。イミュータブルな OS(Endless OS や Fedora Silverblue など)で、ミュータブル(変更可能)な環境を構築するのに使われる。仮想化とは言え、ホストのリソース(カーネルなど)は共有されるため、セキュリティが強化されるわけではない。 |
Grafana |
ネットワーク・モニタリング・ツール |
Wikipedia |
TypeScript と Go で書かれた OSS でログやリソースなどを可視化する Web アプリケーション。Wikipedia なども監視用ツールとして利用している。 |
Guacamole |
VNC、RDP および SSH 接続を WebUI 上で操作できる、統括 Web アプリ |
Wikipedia |
複数サーバ、VM やコンテナなどの管理を 1 画面で管理したい場合に使う。 |
headscale |
メッシュ VPN を構築できる Go で書かれたサーバー |
– |
WireGurard を使ったメッシュ VPN で有名な Tailscale のコントロール・サーバーをオンプレミスで建てられる。Tailscale も OSS ではあるものの、VPN のメッシュを構築するには、Tailscale 社のコントロール・サーバーにつなげないといけない。このコントロール・サーバーをオンプレミスで建てられる。この VPN メッシュにつなげるには WireGuard 対応したクライアントで接続可能である。 |
Heimdall |
ダッシュボード Web アプリ |
– |
PHP で書かれた OSS のダッシュボードアプリ。ブックマークをダッシュボード形式で一画面に収める。 |
Kasm |
コンテナ内で仮想 OS を実行し、ブラウザでアクセスするツール |
– |
VNC の一種で、Kasm Technologies 社によるオープンソースのブラウザ型リモート・デスクトップ・サーバー。サーバー・クライアント・ツールに KasmVNC などがある。通常の VNC と違うのは、サーバーをコンテナ上で動かすため、管理がしやすく、カプセル化しやすいため、セキュリティ保護にも役立つ。また、アプリごとにブラウザのエンドポイントを公開できる。 |
Keyoxide |
アカウントの所有もしくは保有を証明する OSS の分散型 ID 証明サービス |
— |
あるアカウントが、匿名性を保ちつつも、本人のものであることの信憑性を得るために、PGP 公開鍵や各種 Web サービスの OAuth 認証など、複数アカウントを 1 つのプロファイルに紐づけることで行うサービス。OSS の Web サービスであり、分散型なので、どのように同期されるか試してみて、使えそうなら俺様アプリのアカウントに Keyoxide の Key を使い、紐づいたサービスの OAuth 認証をパスしたらアプリのアカウントを発行という使い方にも利用できる。 Keyoxide の Key の例 |
Portainer |
Docker コンテナの GUI 管理ツール |
– |
docker-compose と Kubernetes の中間のようなもの。Rancher よりは OpenShift に近い。 |
Rancher |
Kubernets の API を GUI でコンテナを管理するツール |
– |
K3S 含む Kubernets のクラスタを管理する。 |
Rufus |
USBフラッシャー |
Wikipedia |
ブート可能な USB フラッシュドライブや Live USB をフォーマットし作成する Windows 用アプリ。macOS や Linux の RaspberryPi Imager みたいなもの。 |
SOPS |
Mozilla による暗号化用のエディタ |
– |
バイナリデータの暗号化だけでなく、YAML・JSON・ENV・INI ファイル内の「暗号化された値を復号」したり「値を暗号化する」ことができる。これはデータを暗号化しつつも、従来のデータ・フォーマットのまま使うことができるメリットを生む。 また OpenPGP に限らず、AWS の KMS、GCP の KMS、Azure Key Vault や age といった多彩なキー・サーバー(暗号鍵管理サービス、KMS)に対応している。 |
Swagger |
Web API の仕様定義ファイルおよびドキュメント化 |
Wikipedia |
RESTful API におけるインターフェースを定義するための規格や仕様の定義書、およびビューアー。 OpenAPI の元となっているフォーマット。オンライン・エディタ |
Syncthing |
OSS の P2P 型ディレクトリ同期ツール |
wiki |
Go 言語で書かれた OSS のツールで、Dropbox のような使い勝手で異なるマシン間のフォルダ(ディレクトリ)の同期を行ってくれる。10 年選手のアプリで現在もメンテナンスされている。基本は LAN 内での同期だが、外部を介して同期を行う場合、E2E で暗号化したファイルを同期するため、万が一にも安心できる。 |
Trilium Notes |
オープンソースのナレッジベース |
– |
Javascript で書かれており、複数マシンでコンテンツを同期したり、サーバー・クライアント型で利用することもできる。 |
Uptime Kuma |
サーバ・モニタリング・ツール |
– |
Node.js (Javascript) ベースの OSS サーバ or サービス・モニタリング・ツール |
Vanilla Installer |
Vanilla OS インストーラーのフロントエンド |
– |
Vanilla OS の、OS インストール時に使われるフロントエンド。バックエンドには Albius が使われる。Python で書かれており、GTK4 と Adwaita を利用して GUI を実装している。 |
VSO Utility |
OS アップデートやメンテナンスのタスク実行ツール |
– |
VSO (Vanilla System Operator) は、Vanilla OS などのイミュータブルな OS 向けで Go 言語で書かれている。作成したタスクを実行する意味では cron に似ているが、時間ベースではなく任意のタスクを指定できることから、make に近いのかもしれない。 |
言語処理100本ノック |
プログラミング、データ分析、研究のスキルを習得することを目指した問題集 |
– |
東北大学乾研究室のプログラミング基礎勉強会で使われているコンテキスト。面白いし、大変ためになる。 |