ブラウザで使える軽量パスワードマネージャーです。パスワードデータは 7zip (AES-256) で暗号化してローカルに保存します。
- サーバー: server.py (Python 標準ライブラリのみ / 外部依存なし)
- フロントエンド: public/ (HTML / CSS / JS)
- 保存先:
data/(GitHub には アップロードしません。.gitignoreで除外)
- root 権限 (
sudo) python3gitp7zip(7z) ※ 無ければインストーラーが自動インストールしますtailscale(任意。リモートから HTTPS でアクセスしたい場合のみ)
curl -fsSL https://raw.githubusercontent.com/hirogura/spw/main/install-spw.sh -o install-spw.sh
sudo bash install-spw.shgit clone https://github.com/hirogura/spw.git /opt/lxd-data/spw
cd /opt/lxd-data/spw
sudo bash install-spw.shインストーラーは以下のことを行います。
python3/git/7zを確認(不足時は自動インストール)- GitHub リポジトリ
https://github.com/hirogura/spw.gitを/opt/lxd-data/spwに取得・更新- 既に Git リポジトリがある場合は
origin/mainに更新 - 既存のデータディレクトリ
data/は保持されます
- 既に Git リポジトリがある場合は
data/backupsディレクトリを作成- systemd サービス
spw.serviceを登録・起動 - Tailscale Serve の設定(tailscale がある場合のみ)
インストール完了時に表示されます。例:
- ローカル:
http://<IP>:3345 - Tailscale HTTPS:
https://<ホスト名>:3344
ポートは環境変数 PORT で変更できます。
sudo PORT=8080 bash install-spw.shブラウザでアクセスし、初回アクセス時に SPW のログインパスワードを設定してください。
以降のパスワードデータは data/spw.zip に AES-256 で暗号化して保存されます。
インストール後に更新する場合も、インストーラーを再実行します。
sudo bash /opt/lxd-data/spw/install-spw.shまたは Git リポジトリを直接更新します。
cd /opt/lxd-data/spw
git pull
sudo systemctl restart spw※ install-spw.sh を再実行すると、ローカルで変更したコード(コミットしていない変更)は origin/main に上書きされます。
パスワードデータ data/ を丸ごとコピーしてください。
sudo tar czf /tmp/spw-backup.tar.gz -C /opt/lxd-data/spw data復元する場合は同じ場所に展開してください。
sudo systemctl stop spw
sudo tar xzf /tmp/spw-backup.tar.gz -C /opt/lxd-data/spw
sudo systemctl start spw# 1. サービスを停止・無効化
sudo systemctl stop spw
sudo systemctl disable spw
# 2. データをバックアップ(残す場合。削除してよい場合はスキップ)
sudo tar czf /tmp/spw-backup.tar.gz -C /opt/lxd-data/spw data
# 3. サービス定義とインストール先を削除
sudo rm /etc/systemd/system/spw.service
sudo systemctl daemon-reload
sudo rm -rf /opt/lxd-data/spw
# 4. Tailscale Serve を解除(設定していた場合のみ)
sudo tailscale serve offsudo bash install-spw.sh # GitHub から再インストールこのプロジェクトは MIT License の下で公開されています。
data/ が残っていれば、以前のデータをそのまま引き継げます。
