
無料のクロスプラットフォーム対応KeePass互換パスワードマネージャー
KeeWeb は、既存の KeePass データベース `kdbx` ファイルを開いたり、重要な認証情報を保存するための新しいボールトを作成できるブラウザおよびデスクトップ向けのパスワードマネージャーです。

KeeWeb は、KeePass、KeePassXC など他のアプリケーションで作成された kdbx ファイルの管理をサポートするパスワードマネージャーです。実行するプラットフォームを選択できます。KeeWeb はデスクトップアプリケーションとしてインストールして実行することも、Web ブラウザ上で実行することもできます。
Linux、Windows、MacOS をサポートしており、複数のアプリケーションやプラットフォームにまたがって最も重要な認証情報をシームレスに管理するためのツールを提供します。
資格情報ボールトの保存方法を選択できます。KeeWeb はデータベースをローカルファイルとして保存することをサポートしているほか、Dropbox、Google Drive、Microsoft OneDrive などの最も人気のあるクラウドサービスにパスワードボールトを保存することもできます。
KeeWeb と私たちについてさらに詳しく知るために、以下に最も重要なリンクをいくつか紹介します。
KeeWeb のコピーをセルフホスティングしたいですか?このアプリをサーバーでホストするために必要なものはすべてパッケージ内に含まれています。KeeWeb 自体は、単一の HTML ファイルと(オプションでオフラインアクセス用の)サービスワーカーを組み合わせたものです。
最新の配布ファイルは gh-pages ブランチからダウンロードできます。
KeeWeb を Docker コンテナ内でホストしたい場合は、環境にプルできる事前構築済みのイメージを提供しています。このセクションでは、docker run を使用するか、docker-compose.yml ファイルを設定して KeeWeb を実行する方法を説明します。
[!NOTE] Docker の完全な手順については、docker/keeweb readme をご覧ください。
以下のいずれかのイメージを 📄 docker-compose.yml または run コマンドで使用してください。
docker run を使用する場合は、次のコマンドを使用します。```shell
docker run -d --restart=unless-stopped -p 443:443 --name keeweb -v ${PWD}/keeweb:/config ghcr.io/keeweb/keeweb:latest
<br />
#### Docker Compose
`docker compose` を使用したいユーザーは、新しい `docker-compose.yml` を以下の内容で作成してください。```yml
services:
keeweb:
container_name: keeweb
image: ghcr.io/keeweb/keeweb:latest # Github image
# image: keeweb/keeweb:latest # Dockerhub image
restart: unless-stopped
volumes:
- ./keeweb:/config
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
リバースプロキシとして Traefik を使用し、SSL 証明書の管理を任せたい場合は、このコンテナを Traefik の背後に配置できます。
[!NOTE] 以下の手順は任意です。
Traefik を使用しない場合は、このセクションの手順をスキップできます。これは、このコンテナを Traefik の背後に配置したいユーザーのみを対象としています。
Traefik を使用しない場合、Keeweb コンテナを外部公開する際には、certbot/lets encrypt のようなサービスを利用して SSL 証明書を生成する必要があることを覚えておいてください。
最初の手順は、Traefik に Keeweb コンテナについて知らせることです。ラベル ではなく、Traefik の 動的ファイル を利用することを強くお勧めします。動的ファイルを使用すると、変更があった場合に Traefik を再起動することなく自動的にリフレッシュされます。
動的ファイル の代わりに ラベル を使用する場合、ラベルに変更を加えるたびに Traefik の再起動が必要になります。
以下のものを設定します:
middlewareroute(任意)route(セキュア)serviceresolverKeeweb を Traefik に追加するには、docker-compose.yml を開き、以下のラベルを Keeweb コンテナに適用する必要があります。domain.lan を実際のドメイン名に変更してください。```yml
services:
keeweb:
container_name: keeweb
image: ghcr.io/keeweb/keeweb:latest # Github image
# image: keeweb/keeweb:latest # Dockerhub image
restart: unless-stopped
volumes:
- ./keeweb:/config
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
labels:
# General
- traefik.enable=true
# Router > http
- traefik.http.routers.keeweb-http.rule=Host(`keeweb.localhost`) || Host(`keeweb.domain.lan`)
- traefik.http.routers.keeweb-http.service=keeweb
- traefik.http.routers.keeweb-http.entrypoints=http
- traefik.http.routers.keeweb-http.middlewares=https-redirect@file
# Router > https
- traefik.http.routers.keeweb-https.rule=Host(`keeweb.localhost`) || Host(`keeweb.domain.lan`)
- traefik.http.routers.keeweb-https.service=keeweb
- traefik.http.routers.keeweb-https.entrypoints=https
- traefik.http.routers.keeweb-https.tls=true
- traefik.http.routers.keeweb-https.tls.certresolver=cloudflare
- traefik.http.routers.keeweb-https.tls.domains[0].main=domain.lan
- traefik.http.routers.keeweb-https.tls.domains[0].sans=*.domain.lan
# Load Balancer
- traefik.http.services.keeweb.loadbalancer.server.port=443
- traefik.http.services.keeweb.loadbalancer.server.scheme=https
<br />
上記のラベルを追加したら、[dynamic.yml](#dynamicyml)セクションをスキップして、**[static.yml](#staticyml)**セクションに直接進んでください。
<br />
<br />
##### Dynamic.yml
**[labels](#labels)**を使用せず、動的ファイルを使用する場合は、最初に動的ファイルを作成する必要があります。Traefikの動的ファイルは通常`dynamic.yml`という名前です。新しい`middleware`、`router`、`service`をTraefik動的ファイルに追加して、新しいKeewebコンテナとその場所を認識させる必要があります。```yml
http:
middlewares:
https-redirect:
redirectScheme:
scheme: "https"
permanent: true
routers:
keeweb-http:
service: keeweb
rule: Host(`keeweb.localhost`) || Host(`keeweb.domain.lan`)
entryPoints:
- http
middlewares:
- https-redirect@file
keeweb-https:
service: keeweb
rule: Host(`keeweb.localhost`) || Host(`keeweb.domain.lan`)
entryPoints:
- https
tls:
certResolver: cloudflare
domains:
- main: "domain.lan"
sans:
- "*.domain.lan"
services:
keeweb:
loadBalancer:
servers:
- url: "https://keeweb:443"
これらのエントリは、Traefikのstatic.ymlファイルに配置されます。このファイルに変更を加えた場合は、その後Traefikを再起動する必要があります。
[!NOTE] この手順は、動的ファイル 方式を選択したユーザーのみを対象としています。
labelsを選択したユーザーは、certificatesResolvers セクションに進んでください。
以下の新しいセクションをstatic.ymlに追加してください。
```yml
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
network: traefik
watch: true
file:
filename: "/etc/traefik/dynamic.yml"
watch: true
<br />
上記のコードは、ラベルの代わりに**[動的ファイル](#dynamicyml)**を使用するためのものです。動的ファイルを別の場所に配置する場合は、`/etc/traefik/dynamic.yml`を変更してください。このパスはコンテナ内部からの相対パスであり、ホストマシンのマウントボリュームのパスではありません。Traefikはほとんどのファイルを`/etc/traefik/`フォルダに保持します。
<br />
上記を追加した後、Traefikの`docker-compose.yml`ファイルを開き、新しい動的ファイルの場所をTraefikが認識できるように新しいボリュームをマウントしてください。```yml
traefik:
container_name: traefik
image: traefik:latest
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /etc/localtime:/etc/localtime:ro
- ./config/traefik.yml:/etc/traefik/traefik.yml:ro
- ./config/dynamic.yml:/etc/traefik/dynamic.yml:ro
上記のように新しいボリュームを追加する必要があります:
/config/dynamic.yml:/etc/traefik/dynamic.yml:roホストマシン上で、dynamic.yml ファイルを config というサブフォルダに配置してください。このフォルダは、Traefik の docker-compose.yml ファイルと同じフォルダ内に置く必要があります。この場所を変更したい場合は、上記のマウントボリュームパスを適宜変更してください。
これを完了したら、セクション certificatesResolvers に進んでください。
[!NOTE] この手順は、上記で選択したオプション(dynamic file の設定方法、あるいは labels を使用する方法)のどちらでも必須です。
Traefik の static.yml ファイルを開きます。先ほど動的ファイルまたはラベルで追加した certResolver を定義する必要があります。certResolver を定義するために、certificatesResolvers という新しいセクションを追加します。この例では Cloudflare を使用しますが、以下のリストから任意のプロバイダを使用できます:
```yml
certificatesResolvers:
cloudflare:
acme:
email: [email protected]
storage: /cloudflare/acme.json
keyType: EC256
preferredChain: 'ISRG Root X1'
dnsChallenge:
provider: cloudflare
delayBeforeCheck: 15
resolvers:
- "1.1.1.1:53"
- "1.0.0.1:53"
disablePropagationCheck: true
<br />
上記のコードから使用したいDNS/SSLプロバイダーを選択したら、そのプロバイダーに設定が必要な特別な環境変数があるかどうかを確認する必要があります。**[Providers Page](https://doc.traefik.io/traefik/https/acme/#providers)** には、すべてのプロバイダーと、各プロバイダーに設定が必要な環境変数が記載されています。
<br />
この例では、`dnsChallenge` -> `provider` に **Cloudflare** を使用しているため、以下の環境変数を設定する必要があります:
- `CF_API_EMAIL`
- `CF_API_KEY`
<br />
Traefikの `docker-compose.yml` ファイルがある同じフォルダに `.env` 環境ファイルを作成し、以下を追加します:```yml
[email protected]
CF_API_KEY=Your-Cloudflare-API-Key
.env ファイルを保存して終了します。これらの環境変数を Traefik に検出させるには、Traefik コンテナを再起動する必要があります。Traefik を再起動するまでは、新しい SSL 証明書を生成できません。以下に追加する項目がまだありますので、static.yml ファイルの編集が終わってから後で再起動しても構いません。
最後に、Traefik の static.yml 内で、entryPoints が設定されていることを確認する必要があります。エントリポイントがまだ設定されていない場合にのみ、以下の内容を Traefik の static.yml ファイルに追加します。```yml
entryPoints:
http:
address: :80
http:
redirections:
entryPoint:
to: https
scheme: https
https:
address: :443
http3: {}
http:
tls:
options: default
certResolver: cloudflare
domains:
- main: domain.lan
sans:
- '*.domain.lan'
<br />
###### entryPoints (Cloudflare)
あなたのウェブサイトがCloudflareのプロキシサービスの背後にある場合、上記の`entryPoints`を変更して、CloudflareのIPアドレスを自動的に許可する必要があります。これは、エントリポイントが少し異なる形になることを意味します。
<br />
以下の例では、`forwardedHeaders` -> `trustedIPs` を追加し、CloudflareのすべてのIPを以下のリストに追加します。
- https://cloudflare.com/ips/```yml
http:
address: :80
forwardedHeaders:
trustedIPs: &trustedIps
- 103.21.244.0/22
- 103.22.200.0/22
- 103.31.4.0/22
- 104.16.0.0/13
- 104.24.0.0/14
- 108.162.192.0/18
- 131.0.72.0/22
- 141.101.64.0/18
- 162.158.0.0/15
- 172.64.0.0/13
- 173.245.48.0/20
- 188.114.96.0/20
- 190.93.240.0/20
- 197.234.240.0/22
- 198.41.128.0/17
- 2400:cb00::/32
- 2606:4700::/32
- 2803:f800::/32
- 2405:b500::/32
- 2405:8100::/32
- 2a06:98c0::/29
- 2c0f:f248::/32
http:
redirections:
entryPoint:
to: https
scheme: https
https:
address: :443
http3: {}
forwardedHeaders:
trustedIPs: *trustedIps
http:
tls:
options: default
certResolver: cloudflare
domains:
- main: domain.lan
sans:
- '*.domain.lan'
ファイルを保存し、TraefikとKeewebのコンテナを再起動してください。
このセクションでは、Authentikのインストールと設定方法については説明しません。KeewebをAuthentikに統合する方法についてのみ説明します。
Authentikの管理パネルにサインインし、左側のナビゲーションからApplications -> Providersを選択します。新しいページの上部にあるCreateをクリックします。


providerには、Proxy Providerを選択します。

次のプロバイダー値を追加します:
Keeweb ForwardAuthdefault-source-authentication (Welcome to authentik!)default-provider-authorization-implicit-consent (Authorize Application)**Forward Auth (single application)**を選択します:
https://keeweb.domain.lan
完了したら、Createをクリックします。次に左側のメニューからApplications -> Applicationsを選択します。新しいページの上部にあるCreateをクリックします。


次のパラメータを追加します:
Keeweb (Password Manager)keewebSecurityKeeweb ForwardAuthNoneany
保存したら、左側のメニューからApplications -> Outpostsを選択します:

自分のOutpostを見つけて編集します。

Keeweb (Password Manager)を右側のSelected Applicationsボックスに移動します。

上記のTraefikガイドに従った場合、**dynamic fileまたはlabels**のいずれかを使用してKeewebコンテナをTraefikに追加する方法が示されています。選択したオプションに応じて、以下の該当セクションのガイドに従ってください。
Keewebのdocker-compose.ymlを開き、ラベルtraefik.http.routers.keeweb-https.middlewaresにauthentik@fileを追加して、Authentikをミドルウェアとして含めるようにラベルを修正します。以下の例と同様のものになるはずです:```yml
services:
keeweb:
container_name: keeweb
image: ghcr.io/keeweb/keeweb:latest # Github image
# image: keeweb/keeweb:latest # Dockerhub image
restart: unless-stopped
volumes:
- ./keeweb:/config
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
labels:
# General
- traefik.enable=true
# Router > http
- traefik.http.routers.keeweb-http.rule=Host(`keeweb.localhost`) || Host(`keeweb.domain.lan`)
- traefik.http.routers.keeweb-http.service=keeweb
- traefik.http.routers.keeweb-http.entrypoints=http
- traefik.http.routers.keeweb-http.middlewares=https-redirect@file
# Router > https
- traefik.http.routers.keeweb-https.rule=Host(`keeweb.localhost`) || Host(`keeweb.domain.lan`)
- traefik.http.routers.keeweb-https.service=keeweb
- traefik.http.routers.keeweb-https.entrypoints=https
- traefik.http.routers.keeweb-https.middlewares=authentik@file
- traefik.http.routers.keeweb-https.tls=true
- traefik.http.routers.keeweb-https.tls.certresolver=cloudflare
- traefik.http.routers.keeweb-https.tls.domains[0].main=domain.lan
- traefik.http.routers.keeweb-https.tls.domains[0].sans=*.domain.lan
# Load Balancer
- traefik.http.services.keeweb.loadbalancer.server.port=443
- traefik.http.services.keeweb.loadbalancer.server.scheme=https
<br />
##### Dynamic.yml
[動的ファイル](#dynamicyml)を使用する場合は、Traefikの`dynamic.yml`ファイルを開き、`authentik@file`ミドルウェアを適用して、次のようにします:
<br />```yml
keeweb-https:
service: keeweb
rule: Host(`keeweb.localhost`) || Host(`keeweb.domain.lan`)
entryPoints:
- https
middlewares:
- authentik@file
tls:
certResolver: cloudflare
domains:
- main: "domain.lan"
sans:
- "*.domain.lan"
上記のすべてを行った後、Traefik および Authentik コンテナを再起動してください。それらが再起動したら、keeweb.domain.lan にアクセスできるようになり、Authentik での認証が求められます。認証が完了すると、Keeweb のホーム画面にリダイレクトされ、ボールトファイルを読み込むように要求されます。
このセクションでは、指定できる環境変数と、コンテナ起動時にマウントできるボリュームについて説明します。
コンテナを起動する前に、以下の環境変数を変更できます。
以下のボリュームをこのコンテナにマウントできます。
| ボリューム | 説明 |
|---|---|
./keeweb:/config | Keeweb、nginx設定、オプションのSSL証明書/キーを保存するパス |
上記のボリュームをマウントすると、以下のフォルダにアクセスできるようになります。
セルフホスト環境でDropboxサポートを設定するには Wikiページ を参照してください。
[!NOTE] KeeWeb v1.19.0+ をビルドするには、Node v20.9.0 LTS 以上が必要です。 複数のNodeバージョンが必要な場合は、
nvmをインストールしてください。# install nvm wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash # install node 20 nvm install 20 # switch to node 20 nvm use 20
すべてのKeeWebリポジトリをクローンする最も簡単な方法は次のとおりです。```bash curl https://raw.githubusercontent.com/keeweb/keeweb/develop/dev-env.sh | bash -
<br />
KeeWebは **grunt コマンドライン** を使用してビルドできます。各プラットフォームには複数のコマンドがあります。いずれかを選択してください。
<br />
### プラットフォーム: Windows
以下の2つのコマンドのいずれかを実行して、`Windows` 向けのKeeWebをビルドできます。
<br />
#### Gruntを使用する```shell
grunt dev-desktop-win32 --skip-sign
npm run dev-desktop-windows
<br />
### プラットフォーム: Linux
KeeWeb を `Linux` 向けにビルドするには、提供されている以下の2つのコマンドのうちいずれか1つを実行してください:
<br />
#### Grunt を使用する```shell
grunt dev-desktop-linux --skip-sign
npm run dev-desktop-linux
<br />
<br />
### プラットフォーム: MacOS
以下の2つのコマンドのいずれかを実行することで、`MacOS`向けのKeeWebをビルドできます。
#### Gruntを使用する```shell
grunt dev-desktop-darwin --skip-sign
npm run dev-desktop-macos
<br />
ビルドが完了すると、すべての (html ファイルは `dist/` フォルダに配置されます。KeeWeb をビルドするには、以下のコマンドを使用してください。
<br />
インストーラをビルドせずにデスクトップ(Electron)アプリを実行するには、`grunt` でアプリをビルドし、次に以下のいずれかのコマンドで KeeWeb を起動してください。
<br />```bash
npm run dev
npm run electron
デバッグ用のビルド:
npm run dev を実行http://localhost:8085 を開くビルドが完了すると、出力ファイルは tmp に生成されます:
KeeWeb の開発は無償ではありません。時間がかかり、有料のコード署名証明書やドメインが必要です。
このボタンでプロジェクトを支援したり、「ありがとう」を伝えられます:
さらに、開発者を直接 GitHub でスポンサー することもできます。
注意: 寄付は、いかなるサービスの契約も意味しません。
私たちは常にコントリビューターを募集しています。Keeweb やその他のプロジェクトに役立つものを提供できると思われる場合、あなたの提案をぜひレビューさせていただきます。コントリビューションを提出する前に、以下のリソースをご確認ください:
コードは書けないけれど助けたいですか?
コードは書けないけれど助けたいですか?
| トピック | リンク | 説明 |
|---|
| アプリ | Web、デスクトップ | アプリケーションをお試しください |
| デモ | Web、ベータ | KeeWeb の安定版とベータ版をお試しください |
| サービス | ファビコン取得 | KeeWeb に統合されたサービス |
| ブランチ | docker/alpine-base、docker/keeweb | プロジェクトに関連する重要なブランチ |
| タイムライン | リリースノート、TODO | 今後の計画をご覧ください |
| 1ページで | 機能、FAQ | KeeWeb 開発に関する情報 |
| ウェブサイト | keeweb.info | 公式ウェブサイトをご覧ください |
| ソーシャル | kee_web | ソーシャルメディアでチェックしてください |
| 寄付 | OpenCollective、GitHub | プロジェクトの継続を支援してください |
| サービス | バージョン | イメージリンク |
|---|
| 環境変数 | デフォルト | 説明 |
|---|
PUID | 1000 | コンテナを実行するユーザーID |
PGID | 1000 | コンテナを実行するグループID |
TZ | Etc/UTC | タイムゾーン |
PORT_HTTP | 80 | HTTPポートを定義します |
PORT_HTTPS | 443 | HTTPSポートを定義します |
| フォルダ | 説明 |
|---|
📁 keys | SSL証明書 cert.crt とキー cert.key を保存します |
📁 log | すべてのnginx/コンテナログ |
📁 nginx | nginx.conf、resolver.conf、ssl.conf、site-confs を含む |
📁 www | Keewebファイル、画像、プラグインを保存するフォルダ |
![]() Antelle 💻 📆 🔍 | ![]() Aetherinox 💻 📆 🔍 | ![]() HarlemSquirrel 💻 📆 |