├── .github
└── workflows
│ └── release.yml
├── .gitignore
├── AUTHORS.md
├── CHANGELOG.md
├── COPYING
├── README.md
├── app.svg
├── bin
├── build
├── occ
├── publish
├── release
└── server
├── default_settings.patch
├── keeweb-version
├── keeweb
├── .travis.yml
├── AUTHORS.md
├── CHANGELOG.md
├── COPYING
├── Makefile
├── appinfo
│ ├── info.xml
│ └── routes.php
├── css
│ └── style.css
├── img
│ └── app.svg
├── js
│ ├── script.js
│ └── viewer.js
├── lib
│ ├── AppInfo
│ │ └── Application.php
│ ├── Controller
│ │ └── PageController.php
│ └── Migration
│ │ ├── MimeTypeMigration.php
│ │ ├── RegisterMimeType.php
│ │ └── UnregisterMimeType.php
├── package-lock.json
├── package.json
├── phpunit.integration.xml
├── phpunit.xml
├── src
│ └── viewer.js
├── templates
│ ├── main.php
│ └── manifest.appcache.php
├── tests
│ ├── bootstrap.php
│ ├── integration
│ │ └── AppTest.php
│ └── unit
│ │ └── controller
│ │ └── PageControllerTest.php
└── webpack.js
├── mock_codesignconfig.patch
└── updater.patch
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | # Before running this, have the changelog and keeweb-version files updated for the new version
2 |
3 | name: Release
4 | on:
5 | workflow_dispatch:
6 | inputs:
7 | version:
8 | description: "The version to build, tag and publish to the appstore, without any v prefix"
9 | required: true
10 | commit_email:
11 | description: "The email address used for the release commit"
12 | required: true
13 | default: "me+release-ci@jhass.eu"
14 |
15 | jobs:
16 | release:
17 | runs-on: ubuntu-latest
18 | steps:
19 | - uses: actions/checkout@v4
20 | - name: Prepare Keeweb
21 | run: |
22 | git clone -b "$(cat keeweb-version)" https://github.com/keeweb/keeweb.git keeweb-source
23 | sudo npm install -g grunt
24 | - name: Build and publish
25 | run: |
26 | git config --local user.email "$COMMIT_EMAIL"
27 | git config --local user.name "Github Actions Release Job"
28 | git remote set-url origin "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$GITHUB_REPOSITORY.git"
29 | echo "$APPSTORE_KEY" > "$SIGNING_KEY"
30 | bin/release "$VERSION"
31 | env:
32 | VERSION: ${{github.event.inputs.version}}
33 | COMMIT_EMAIL: ${{github.event.inputs.commit_email}}
34 | APPSTORE_KEY: ${{secrets.APPSTORE_KEY}}
35 | NC_AUTH_TOKEN: ${{secrets.NC_AUTH_TOKEN}}
36 | SIGNING_KEY: ${{github.workspace}}/keeweb.key
37 | GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
38 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .env
2 | nextcloud/
3 | ncdev/
4 | keeweb-source/
5 | keeweb/build/
6 | keeweb/templates/keeweb.php
7 | keeweb/templates/service-worker.js
8 | keeweb/js/viewer.js
9 | keeweb/js/viewer.js.map
10 | keeweb/js/viewer.js.LICENSE.txt
11 | keeweb/node_modules/
12 | .idea/
--------------------------------------------------------------------------------
/AUTHORS.md:
--------------------------------------------------------------------------------
1 | keeweb/AUTHORS.md
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | keeweb/CHANGELOG.md
--------------------------------------------------------------------------------
/COPYING:
--------------------------------------------------------------------------------
1 | keeweb/COPYING
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Keeweb for Nextcloud
2 |
3 | **WARNING: KeeWeb itself is not maintained any longer (see note about NC 28 and newer below) and future versions of Nextcloud may not be supported any longer!**
4 |
5 | **Clarification about the KeeWeb upstream for July 2024: eventhough there is some recent activity in the upstream project, the issue
6 | https://github.com/keeweb/keeweb/issues/2022 is still not closed and there is also no new release of KeeWeb yet
7 | (see https://github.com/keeweb/keeweb/releases).**
8 |
9 | **Also keep in mind that KeeWeb only supports files in KDBX 3 format. Files in KDBX 4 format will get corrupted when opening and editing them in KeeWeb,
10 | see [https://github.com/keeweb/keeweb/issues/2001](https://github.com/keeweb/keeweb/issues/2001)! So keep your files in KDBX 3 format if you want to
11 | use them in KeeWeb as well!**
12 |
13 | [Nextcloud](https://nextcloud.com/) is an open source, self-hosted file sync and share and communication app platform.
14 | [Keeweb](https://keeweb.info/) is a web application for working with databases of the Keepass password manager.
15 |
16 | This integrates the two with each other. Just click on a \*.kdbx file in Your Nextcloud to open it.
17 |
18 | 
19 |
20 | **Note about Nextcloud 28 and newer:**
21 |
22 | Thanks to the help by @florian-forestier, in January 2024 a new release was published which supports Nextcloud 28.
23 |
24 | However as of July 2024 the upstream project "KeeWeb" did not get any official new release since
25 | July 2021 (also see https://github.com/keeweb/keeweb/releases).
26 |
27 | You may have a look at https://github.com/jhass/nextcloud-keeweb/issues/204 (KeeWeb upstream maintenance) and/or
28 | https://github.com/jhass/nextcloud-keeweb/issues/221 (Maintainers for KeeWeb for Nextcloud).
29 |
30 | Any help is appreciated!
31 |
32 | ## Install
33 |
34 | 1. Go to the releases page, download the latest version.
35 | 1. Extract it to `your_nextcloud/custom_apps`, for example with `tar xvf keeweb-0.6.21.tar.gz -C /path/to/your/nextcloud/custom_apps`.
36 | 1. Go to "Apps" and then "Not enabled", scroll down to "Experimental" and enable it.
37 |
38 | To update to a new version, simply repeat these steps.
39 |
40 | ## Development setup
41 |
42 | ```
43 | git clone https://github.com/jhass/nextcloud-keeweb.git
44 | cd nextcloud-keeweb
45 |
46 | # You can skip this if you only want to build the appstore or source packages
47 | git clone -b stable20 https://github.com/nextcloud/server.git nextcloud
48 | ln -sf "$(pwd)/keeweb" nextcloud/apps
49 | cd nextcloud && git submodule update --init && cd -
50 |
51 | git clone https://github.com/keeweb/keeweb.git keeweb-source
52 |
53 | # Install npm -- this might require a more recent npm than your distro's, see https://github.com/nodesource/distributions on how to deploy it
54 | # Once npm is installed, install grunt and bower; instead of relying on your distro's, you can do
55 | sudo npm install -g grunt
56 |
57 | # Build nextcloud-keeweb - this will build with the current tested release
58 | # If you want to update to a newer version of Keeweb or use the development version, you also need to modify the patches for it
59 | bin/build
60 |
61 | # Finally, run the nextcloud server
62 | bin/server
63 | # Alternatively, you can build the app package to test on a running nextcloud by doing
64 | cd keeweb
65 | make dist
66 | # The package that can be installed in the nextcloud app folder is here: ./build/artifacts/appstore/keeweb.tar.gz
67 | ```
68 |
69 | ## Contributing
70 |
71 | 1. Fork the repository and clone your fork.
72 | 1. Create a new branch.
73 | 1. Commit your patch.
74 | 1. Push the branch and open a pull request.
75 |
--------------------------------------------------------------------------------
/app.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
77 |
--------------------------------------------------------------------------------
/bin/build:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | realpath() {
5 | [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
6 | }
7 |
8 | cd "$(dirname "$(realpath "$0")")/.."
9 |
10 | if [[ ! -d keeweb-source || ! -d keeweb-source/.git ]]; then
11 | echo "keeweb-source is missing or not a git repository"
12 | exit 1
13 | fi
14 |
15 | # This is the Git branch/tag of Keeweb
16 | #
17 | # Please keep in mind that the existing patch files may not work
18 | # when you update to a newer version!
19 | version="$(cat keeweb-version)"
20 |
21 | cd keeweb-source
22 |
23 | echo "Building version $version"
24 |
25 | git clean -xf
26 | git fetch
27 | git checkout .
28 | git checkout "$version"
29 | git symbolic-ref -q HEAD && git pull || true
30 |
31 | git apply < ../mock_codesignconfig.patch
32 | git apply < ../default_settings.patch
33 | git apply < ../updater.patch
34 |
35 | npm install
36 | npm ci
37 |
38 | NODE_OPTIONS=--openssl-legacy-provider npx grunt build-web-app --skip-sign --force
39 | cp -v dist/index.html ../keeweb/templates/keeweb.php
40 | cp -v dist/service-worker.js ../keeweb/templates/
41 | sed -i -e 's|||g' ../keeweb/templates/keeweb.php
42 | sed -i -e 's|>