Compare commits

...
87 Commits
Author SHA1 Message Date
Lauri Ojansivu 7d09a649ac Prepare v9.00 release 2026-04-27 03:38:04 +03:00
Lauri Ojansivu 040ed6e605 v9.00 2026-04-27 03:17:40 +03:00
Lauri Ojansivu d7e36f5157 Updated ChangeLog. 2026-04-27 03:03:47 +03:00
Lauri Ojansivu 1a08003834 Merge pull request #6314 from aminsaidane/fix/mycards-subscription
Fix/mycards subscription
2026-04-26 22:38:43 +03:00
Lauri Ojansivu 64bc6ea71c Updated ChangeLog. 2026-04-26 22:01:14 +03:00
Lauri Ojansivu ef4161889a Updated website.
Thanks to xet7 !
2026-04-26 21:59:13 +03:00
aminsaidane dd9d6083c0 fix:remove leftover code 2026-04-26 14:38:00 +01:00
aminsaidane 027b6a45a1 fix(myCards): fix subscription crash caused by non-cursor in publish return* 2026-04-26 14:32:30 +01:00
Lauri Ojansivu b717e5d7ad Updated ChangeLog. 2026-04-24 22:33:24 +03:00
Lauri Ojansivu 74965f5f95 Updated dependencies.
Thanks to developers of dependencies !
2026-04-24 22:32:25 +03:00
Lauri Ojansivu fa812faf6d Updated ChangeLog. 2026-04-24 22:06:50 +03:00
Lauri Ojansivu b459151798 Updated dependencies.
Thanks to developers of dependencies !
2026-04-24 22:05:36 +03:00
Lauri Ojansivu 73679919fb Updated ChangeLog. 2026-04-24 21:51:08 +03:00
Lauri Ojansivu 58b0ae29e1 Revert Fix MongoDB duplicate key error in notification_cleanup cron job.
Thanks to xet7 !
2026-04-24 21:50:18 +03:00
Lauri Ojansivu 773931a538 Updated ChangeLog. 2026-04-24 16:41:08 +03:00
Lauri Ojansivu 1ef814fe6b Merge pull request #6311 from Raawen-dev/fix-cron-5110-only
Fix MongoDB duplicate key error in notification_cleanup cron job (Issue #5110)
2026-04-24 16:33:34 +03:00
Lauri Ojansivu b010c687f3 Merge branch 'main' into fix-cron-5110-only 2026-04-24 16:33:18 +03:00
Lauri Ojansivu 05950fb287 Merge pull request #6310 from Raawen-dev/fix-popup-6221-only
Fix list actions popup overflow (Issue #6221)
2026-04-24 16:19:56 +03:00
RAWEN KHEFIFI 56a685983b Merge upstream/main into fix-cron-5110-only 2026-04-23 17:54:47 +01:00
RAWEN KHEFIFI 339c0a2bb7 Fix MongoDB duplicate key error in notification_cleanup cron job (#5110)
- Add check to remove existing cron job before adding
- Wrap job logic in try-catch for duplicate key errors
- Prevents E11000 error in cronHistory collection
2026-04-23 17:51:13 +01:00
RAWEN KHEFIFIandRaawen-dev a790453c9a Fix list actions popup overflow (#6221)
- Append CSS fix to existing popup.css
- Add max-height: 300px and overflow-y: auto to .pop-over-list
- Prevents list actions menu from overflowing viewport
- Tested working on Mac (Chrome/Firefox)

Co-authored-by: Raawen-dev <rawenkhefifi19@gmail.com>
2026-04-23 17:50:45 +01:00
RAWEN KHEFIFI 04eb8a8fbb Fix list actions popup overflow (Issue #6221)
- Add max-height: 300px to .pop-over-list
- Enable scrolling with overflow-y: auto
- Prevent popup from overflowing viewport
2026-04-23 15:42:05 +01:00
Lauri Ojansivu 4ab1bc9638 Updated ChangeLog. 2026-04-23 05:00:38 +03:00
Lauri Ojansivu 699b9a9c71 Update release and version scripts. 2026-04-23 04:59:20 +03:00
Lauri Ojansivu 3a203d274d Release scripts: Fix version detection.
Thanks to xet7 !
2026-04-23 03:46:25 +03:00
Lauri Ojansivu 887511fdda Updated ChangeLog. 2026-04-23 03:43:17 +03:00
Lauri Ojansivu 64f58455ff Update releases scripts.
Thanks to xet7 !
2026-04-23 03:41:59 +03:00
Lauri Ojansivu 5163ec0da2 Updated ChangeLog. 2026-04-23 01:59:52 +03:00
Lauri Ojansivu c47eb013b4 Fix UI hangs and data loss by disabling changeStreams, until there is new Meteor release that included bugfix to changeStreams.
Thanks to bcook-konza and italojs !

Fixes #6307
2026-04-23 01:55:13 +03:00
Lauri Ojansivu d4cbe12316 Updated translations. 2026-04-23 01:34:57 +03:00
Lauri Ojansivu 794222c85e Updated ChangeLog. 2026-04-23 01:26:56 +03:00
Lauri Ojansivu 675c661114 Updated HoF.
Thanks to xet7 !
2026-04-23 01:07:46 +03:00
Lauri Ojansivu 7700efde1f Update security.md etc.
Thanks to xet7 !
2026-04-23 00:44:47 +03:00
Lauri Ojansivu 16832124ce Updated dependencies.
Thanks to developers of dependencies !
2026-04-22 03:53:46 +03:00
Lauri Ojansivu bf5ca3d3eb Added back jam packages. Updated dependencies.
Thanks to xet7 !
2026-04-22 03:47:13 +03:00
Lauri Ojansivu 189b6cae84 Merge pull request #6306 from wekan/dependabot/github_actions/actions/deploy-pages-5
Bump actions/deploy-pages from 4 to 5
2026-04-21 09:08:55 +03:00
Lauri Ojansivu 9bf0114148 Merge pull request #6305 from wekan/dependabot/github_actions/docker/setup-buildx-action-4
Bump docker/setup-buildx-action from 3 to 4
2026-04-21 09:08:37 +03:00
Lauri Ojansivu 9f3bbb5ed2 Merge pull request #6304 from wekan/dependabot/github_actions/actions/upload-pages-artifact-5
Bump actions/upload-pages-artifact from 4 to 5
2026-04-21 09:08:15 +03:00
dependabot[bot] 85b981e1c7 Bump actions/deploy-pages from 4 to 5
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-20 22:22:25 +00:00
dependabot[bot] eb5ac8b7dd Bump docker/setup-buildx-action from 3 to 4
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3 to 4.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-20 22:22:22 +00:00
dependabot[bot] 5ef32af248 Bump actions/upload-pages-artifact from 4 to 5
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-20 22:22:18 +00:00
Lauri Ojansivu 9cb5837e3e Updated ChangeLog. 2026-04-18 19:14:46 +03:00
Lauri Ojansivu 5ae9c2b7ac Merge pull request #6303 from Raawen-dev/first-fix
Fix Issue #6007: Add permission checks to list width method
2026-04-18 19:12:06 +03:00
RAWEN KHEFIFI 7d16fed34e Fix Issue #6007: Add permission checks to applyListWidth method
- Add user authentication check
- Add board membership verification
- Change update to updateAsync to fix server error
- List widths now persist after page refresh
2026-04-18 17:04:58 +01:00
Lauri Ojansivu db2701f1d7 Update release scripts. In Progress.
Thanks to xet7 !
2026-04-17 18:34:36 +03:00
Lauri Ojansivu 76818e2c98 Updated ChangeLog. 2026-04-17 15:02:27 +03:00
Lauri Ojansivu c4e084ffbb Fix MongoDB replicaset setup at docker-compose.yml.
Thanks to C0rn3j.

Fixes #6297
2026-04-17 14:59:24 +03:00
Lauri Ojansivu a10b28bf6a Updated ChangeLog. 2026-04-17 14:50:30 +03:00
Lauri Ojansivu 90c0110615 Merge pull request #6299 from snowsky/main
Update cards.js
2026-04-17 14:46:00 +03:00
Hao 73c594bb36 Update cards.js
Fix the error:

```
Exception from sub myCards id xxx TypeError: Promise.await is not a function
```
2026-04-16 18:40:58 -05:00
Lauri Ojansivu 903544c680 Prepare v8.99 release 2026-04-16 22:15:49 +03:00
Lauri Ojansivu 32e1ec9d22 Release scripts: Update versions.
Thanks to xet7 !
2026-04-16 22:11:57 +03:00
Lauri Ojansivu 3516a21329 Prepare v8.98 release 2026-04-16 21:00:29 +03:00
Lauri Ojansivu f6198dee30 Release scripts: Updated creating Helm Charts to docs/wekan and docs/charts.
Thanks to xet7 !
2026-04-16 20:57:46 +03:00
Lauri Ojansivu 13f14df880 Updated Helm Charts. 2026-04-16 20:36:37 +03:00
Lauri Ojansivu f3ae64cf21 Prepare v8.98 release 2026-04-16 19:55:20 +03:00
Lauri Ojansivu 1820804b9f Fix Helm Chart parts to docs/wekan and docs/charts.
Thanks to xet7 !
2026-04-16 19:53:24 +03:00
Lauri Ojansivu d3d76b12f7 Prepare v8.98 release 2026-04-16 17:12:56 +03:00
Lauri Ojansivu 51ad6ed99d Release scripts: use node:24-slim directly.
Thanks to xet7 !
2026-04-16 17:11:24 +03:00
Lauri Ojansivu 1c8cea9ada Prepare v8.98 release 2026-04-16 16:47:23 +03:00
Lauri Ojansivu a0c190137d Release scripts: Use 24-slim fallback.
Thanks to xet7 !
2026-04-16 16:45:37 +03:00
Lauri Ojansivu 83e1845290 Prepare v8.98 release 2026-04-16 16:19:55 +03:00
Lauri Ojansivu 052d8c1584 Release scripts: Require only newest version number when releasing.
Thanks to xet7 !
2026-04-16 16:18:11 +03:00
Lauri Ojansivu 7b0e2213cf Release scripts: Fix updating version numbers.
Thanks to xet7 !
2026-04-16 16:06:19 +03:00
Lauri Ojansivu 05e6d15478 Prepare v8.98 release 2026-04-16 15:47:05 +03:00
Lauri Ojansivu be0283381b Release scripts: Use latest available Node.js slim docker images when building.
Thanks to xet7 !
2026-04-16 15:47:05 +03:00
github-actions[bot] 379a92846e v8.98 2026-04-16 12:33:19 +00:00
Lauri Ojansivu bb6163a70f Prepare v8.98 release 2026-04-16 15:32:31 +03:00
Lauri Ojansivu 10f009f5b1 Release scripts: Fix indentation at release-all.yml.
Thanks to xet7 !
2026-04-16 15:30:13 +03:00
Lauri Ojansivu 19c882ed2f Prepare v8.98 release 2026-04-16 15:23:37 +03:00
Lauri Ojansivu e7cb6ac6f0 Updated ChangeLog. 2026-04-16 15:20:40 +03:00
Lauri Ojansivu 38e488ee4a Moved Helm Charts from helm directory to docs/wekan and docs/charts to be at wekan.fi/wekan and wekan.fi/charts.
Thanks to xet7 !
2026-04-16 15:18:14 +03:00
Lauri Ojansivu 589fa30fd1 Updated ChangeLog. 2026-04-16 15:05:44 +03:00
Lauri Ojansivu 64d351d835 Commented out requirement to update website manually.
Thanks to xet7 !
2026-04-16 15:04:19 +03:00
Lauri Ojansivu 4151ecb7e7 Release scripts: Update versions at wekan.fi/install/ as part of GitHub Actions builds.
Thanks to xet7 !
2026-04-16 15:01:10 +03:00
Lauri Ojansivu f4b5e5f07d Updated ChangeLog. 2026-04-16 14:51:42 +03:00
Lauri Ojansivu c1639ea589 Update markdown docs links from docs to docs2.
Thanks to xet7 !
2026-04-16 14:50:12 +03:00
Lauri Ojansivu 21b0ab064c Updated ChangeLog. 2026-04-16 14:38:32 +03:00
Lauri Ojansivu 1c0d8e9964 Moved docs to docs2, and wekan.fi to docs, to be able publish with GitHub Pages.
Thanks to xet7 !
2026-04-16 14:36:10 +03:00
Lauri Ojansivu 8a7949a8ab Updated ChangeLog. 2026-04-16 14:30:01 +03:00
Lauri Ojansivu 3c36db33e9 Moved website from repo wekan/wekan.fi to wekan/wekan/docs/wekan.fi .
Thanks to xet7 !
2026-04-16 14:28:15 +03:00
Lauri Ojansivu 59d0cfc457 Updated ChangeLog. 2026-04-16 14:06:21 +03:00
Lauri Ojansivu 72f6d96dbc Release scripts: Detect newest MongoDB 7.x stable version and update to use it.
Thanks to xet7 !
2026-04-16 14:03:51 +03:00
Lauri Ojansivu 49c81f5426 Updated ChangeLog. 2026-04-16 13:44:42 +03:00
Lauri Ojansivu 08ed1705b1 Release scripts: Update versions at website with release-website.sh script.
Thanks to xet7 !
2026-04-16 13:44:42 +03:00
Lauri Ojansivu 47088c30c0 Release scripts: Detect newest Node.js 24.x version.
Thanks to xet7 !
2026-04-16 13:44:42 +03:00
github-actions[bot] 539dbdc034 Helm chart 8.97.0 2026-04-16 10:43:18 +00:00
1090 changed files with 2050942 additions and 2194 deletions

No files matched your search

+99 -116
View File
@@ -32,79 +32,9 @@ permissions:
id-token: write
jobs:
# ─── 0. Version bump, docs rebuild, and tag creation ────────────────────────
# Runs update-node-version.sh, rebuild-docs.sh, and sed-release-versions.sh,
# then commits, pushes, and creates the version tag.
# Skipped on re-run if the tag already exists.
version-bump:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Check if tag already exists
id: check
run: |
if git ls-remote --tags origin | grep -q "refs/tags/v${{ inputs.new_version }}$"; then
echo "existed=true" >> $GITHUB_OUTPUT
echo "Tag v${{ inputs.new_version }} already exists. Skipping version bump."
else
echo "existed=false" >> $GITHUB_OUTPUT
fi
- uses: actions/setup-node@v6
if: steps.check.outputs.existed == 'false'
with:
node-version: '24.14.1'
- name: Install Python dependencies for API doc generation
if: steps.check.outputs.existed == 'false'
run: python3 -m pip install --break-system-packages esprima
- name: Delete GitHub Actions caches
if: steps.check.outputs.existed == 'false'
env:
GH_TOKEN: ${{ github.token }}
run: gh cache delete --all || true
- name: Update Node.js to latest 24.x
if: steps.check.outputs.existed == 'false'
run: ./releases/update-node-version.sh
- name: Rebuild API docs
if: steps.check.outputs.existed == 'false'
run: ./releases/rebuild-docs.sh "${{ inputs.new_version }}"
- name: Update version numbers in release files
if: steps.check.outputs.existed == 'false'
run: ./releases/sed-release-versions.sh "${{ inputs.old_version }}" "${{ inputs.new_version }}"
- name: Commit and push version bump
if: steps.check.outputs.existed == 'false'
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add --all
# GITHUB_TOKEN cannot push workflow file changes; exclude them
git reset HEAD -- .github/workflows/ || true
git checkout -- .github/workflows/ || true
if git diff --cached --quiet; then
echo "No changes to commit."
else
git commit -m "v${{ inputs.new_version }}"
fi
git push
- name: Create and push tag
if: steps.check.outputs.existed == 'false'
run: |
git tag -a "v${{ inputs.new_version }}" -m "v${{ inputs.new_version }}"
git push origin "v${{ inputs.new_version }}"
# ─── 1. Extract version and release notes ───────────────────────────────────
prepare:
needs: version-bump
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
@@ -112,12 +42,12 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: refs/tags/v${{ inputs.new_version }}
ref: refs/tags/v${{ needs.prepare.outputs.version }}
- name: Set version from input
id: version
run: |
VERSION="${{ inputs.new_version }}"
VERSION="${{ needs.prepare.outputs.version }}"
VERSION="${VERSION#v}"
echo "version=$VERSION" >> $GITHUB_OUTPUT
@@ -154,13 +84,14 @@ jobs:
# Therefore the full Meteor build always runs here on x86_64.
# All other Linux architectures then rebuild only the native npm modules
# from this bundle (much faster than a full Meteor build).
# Node.js version must match what Meteor 3.5-beta.7 bundles: 24.14.1 (ABI 143).
# Node.js version must match what Meteor 3.5-beta.7 bundles (detected automatically).
build-amd64:
needs: prepare
runs-on: ubuntu-24.04
timeout-minutes: 180
env:
VERSION: ${{ needs.prepare.outputs.version }}
NODE_VERSION: ${{ needs.prepare.outputs.version }}
steps:
- uses: actions/checkout@v6
with:
@@ -184,11 +115,11 @@ jobs:
sudo apt-get update
sudo apt-get install -y build-essential g++ make python3 curl wget zip unzip
# Pin to Node 24.14.1 — the exact version bundled by Meteor 3.5-beta.7.
# Pin to detected latest Node.js 24.x — must match Meteor's bundled version.
# Using the same version for build and npm rebuild ensures consistent native module ABI.
- uses: actions/setup-node@v6
with:
node-version: '24.14.1'
node-version: '${{ needs.prepare.outputs.version }}'
- name: Install Meteor
run: |
@@ -225,22 +156,26 @@ jobs:
timeout-minutes: 60
env:
VERSION: ${{ needs.prepare.outputs.version }}
NODE_VERSION: ${{ needs.prepare.outputs.version }}
NODE_VERSION_ARM64: ''
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential g++ make python3 curl unzip zip
- uses: actions/setup-node@v6
with:
node-version: '24.14.1'
- name: Set Node.js version for arm64
id: node_arm64
run: |
echo "NODE_VERSION_ARM64=24" >> $GITHUB_ENV
- name: Download amd64 bundle
uses: actions/download-artifact@v8
with:
name: bundle-amd64
- name: Rebuild native modules for arm64
- name: Rebuild native modules for arm64 in container
run: |
unzip wekan-${VERSION}-amd64.zip
# Fix: bcrypt 5.0.1 (Meteor accounts-password) ships node-addon-api@3
@@ -257,10 +192,12 @@ jobs:
popd > /dev/null
rm -rf "$TMP"
fi
cd bundle/programs/server
rm -rf node_modules
npm install
cd ../..
# Use the latest available Node.js 24.x slim image for arm64
docker run --rm --platform linux/arm64 \
-v "$(pwd)/bundle:/bundle" \
-w /bundle/programs/server \
node:24-slim \
sh -c "apt-get update -qq && apt-get install -y -q build-essential python3 && npm install"
- name: Clean up and create arm64 zip
run: |
@@ -275,14 +212,15 @@ jobs:
# ─── 4. Build s390x bundle (rebuild native modules via QEMU container) ───────
# Meteor 3.5-beta.7 does NOT support s390x (installer exits with error on that arch).
# GitHub Actions has no native s390x runners.
# Solution: QEMU emulation + node:24.14.1-slim (s390x variant) for npm rebuild.
# node:24.14.1-slim is pinned to match Meteor 3.5-beta.7's bundled Node.js version exactly.
# Solution: QEMU emulation + node:<version>-slim (s390x variant) for npm rebuild.
build-s390x:
needs: [prepare, build-amd64]
runs-on: ubuntu-latest
timeout-minutes: 90
env:
VERSION: ${{ needs.prepare.outputs.version }}
NODE_VERSION: ${{ needs.prepare.outputs.version }}
NODE_VERSION_S390X: ''
steps:
- name: Set up QEMU for s390x
uses: docker/setup-qemu-action@v4
@@ -297,6 +235,11 @@ jobs:
with:
name: bundle-amd64
- name: Set Node.js version for s390x
id: node_s390x
run: |
echo "NODE_VERSION_S390X=24" >> $GITHUB_ENV
- name: Rebuild native modules for s390x in container
run: |
unzip wekan-${VERSION}-amd64.zip
@@ -315,11 +258,11 @@ jobs:
popd > /dev/null
rm -rf "$TMP"
fi
# node:24.14.1-slim s390x — same Node.js version as Meteor 3.5-beta.7 bundled
# Use the latest available Node.js 24.x slim image for s390x
docker run --rm --platform linux/s390x \
-v "$(pwd)/bundle:/bundle" \
-w /bundle/programs/server \
node:24.14.1-slim \
node:24-slim \
sh -c "apt-get update -qq && apt-get install -y -q build-essential python3 && npm install"
- name: Clean up and create s390x zip
@@ -335,13 +278,15 @@ jobs:
# ─── 4b. Build ppc64le bundle (rebuild native modules via QEMU container) ────
# Meteor 3.5-beta.7 does NOT support ppc64le (installer exits with error on that arch).
# GitHub Actions has no native ppc64le runners.
# Solution: QEMU emulation + node:24.14.1-slim (ppc64le variant) for npm rebuild.
# Solution: QEMU emulation + node:<version>-slim (ppc64le variant) for npm rebuild.
build-ppc64le:
needs: [prepare, build-amd64]
runs-on: ubuntu-latest
timeout-minutes: 90
env:
VERSION: ${{ needs.prepare.outputs.version }}
NODE_VERSION: ${{ needs.prepare.outputs.version }}
NODE_VERSION_PPC64LE: ''
steps:
- name: Set up QEMU for ppc64le
uses: docker/setup-qemu-action@v4
@@ -356,6 +301,11 @@ jobs:
with:
name: bundle-amd64
- name: Set Node.js version for ppc64le
id: node_ppc64le
run: |
echo "NODE_VERSION_PPC64LE=24" >> $GITHUB_ENV
- name: Rebuild native modules for ppc64le in container
run: |
unzip wekan-${VERSION}-amd64.zip
@@ -374,11 +324,11 @@ jobs:
popd > /dev/null
rm -rf "$TMP"
fi
# node:24.14.1-slim ppc64le — same Node.js version as Meteor 3.5-beta.7 bundled
# Use the latest available Node.js 24.x slim image for ppc64le
docker run --rm --platform linux/ppc64le \
-v "$(pwd)/bundle:/bundle" \
-w /bundle/programs/server \
node:24.14.1-slim \
node:24-slim \
sh -c "apt-get update -qq && apt-get install -y -q build-essential python3 && npm install"
- name: Clean up and create ppc64le zip
@@ -431,11 +381,11 @@ jobs:
# popd > /dev/null
# rm -rf "$TMP"
# fi
# # node:24.14.1-slim arm/v7 — same Node.js version as Meteor 3.5-beta.7 bundled
# # node:<version>-slim arm/v7 — same Node.js version as Meteor bundled
# docker run --rm --platform linux/arm/v7 \
# -v "$(pwd)/bundle:/bundle" \
# -w /bundle/programs/server \
# node:24.14.1-slim \
# node:${NODE_VERSION}-slim \
# sh -c "apt-get update -qq && apt-get install -y -q build-essential python3 && npm install"
#
# - name: Clean up and create armhf zip
@@ -458,7 +408,7 @@ jobs:
steps:
- uses: actions/setup-node@v6
with:
node-version: '24.14.1'
node-version: '${{ needs.prepare.outputs.version }}'
## With Node 24 these are already preinstalled at GitHub Windows runners
#- name: Install node-gyp and build tools
@@ -551,7 +501,7 @@ jobs:
uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
- name: Create Docker config with registry credentials
run: |
@@ -632,8 +582,8 @@ jobs:
files: "*.snap"
# ─── 9. Update Helm charts and deploy to GitHub Pages ─────────────────────────
# Chart source is in helm/wekan/, published packages + index.yaml in helm/charts/.
# GitHub Pages deploys helm/charts/ via Actions, serving at https://wekan.github.io/wekan/
# Chart source is in helm/wekan/, published packages + index.yaml in docs/wekan/.
# GitHub Pages deploys docs/wekan/ via Actions, serving at https://wekan.fi/wekan/
helm:
needs: [prepare, docker]
runs-on: ubuntu-latest
@@ -650,42 +600,75 @@ jobs:
- name: Update Chart.yaml and values.yaml with new version
run: |
cd helm/wekan
# Chart.yaml: update appVersion and version
sed -i "s/^appVersion: .*/appVersion: \"${VERSION}\"/" Chart.yaml
sed -i "s/^version: .*/version: ${VERSION}.0/" Chart.yaml
# values.yaml: update image tag
sed -i "s/^ tag: v.*/ tag: v${VERSION}/" values.yaml
CHART_PATH=docs/wekan
CHART_FILE=$CHART_PATH/Chart.yaml
VALUES_FILE=$CHART_PATH/values.yaml
CHARTS_DIR=docs/charts
INDEX_FILE=$CHARTS_DIR/index.yaml
VERSION=${VERSION}
# Update Chart.yaml (appVersion and version)
sed -i "s/^appVersion: .*/appVersion: \"$VERSION\"/" "$CHART_FILE"
sed -i "s/^version: .*/version: $VERSION.0/" "$CHART_FILE"
# Update values.yaml (image.tag)
sed -i "s/^ tag: v.*/ tag: v$VERSION/" "$VALUES_FILE"
- name: Build Helm dependencies
run: |
cd helm/wekan
helm repo add mongo https://groundhog2k.github.io/helm-charts/
cd docs/wekan
helm repo add mongo https://groundhog2k.github.io/helm-charts/ || true
helm dependency update
helm dependency build
- name: Package chart and update index
- name: Package chart to docs/charts and update index.yaml
run: |
helm package helm/wekan -d helm/charts/
helm repo index helm/charts/ --url https://wekan.github.io/wekan/
CHART_PATH=docs/wekan
CHARTS_DIR=docs/charts
INDEX_FILE=$CHARTS_DIR/index.yaml
VERSION=${VERSION}
cd $CHARTS_DIR
helm package ../wekan -d .
ARCHIVE=wekan-$VERSION.0.tgz
SHA256=$(sha256sum "$ARCHIVE" | awk '{print $1}')
CREATED=$(TZ='Europe/Helsinki' date '+%Y-%m-%dT%H:%M:%S.000000000%:z')
if [ -f "$INDEX_FILE" ]; then
awk '/^- apiVersion: v2/{flag=1;print;next}/^- apiVersion: v2/{flag=0}flag' "$INDEX_FILE" | head -n 30 > /tmp/topentry.yaml
sed -i "s/appVersion: .*/appVersion: \"$VERSION\"/" /tmp/topentry.yaml
sed -i "s/created: .*/created: \"$CREATED\"/" /tmp/topentry.yaml
sed -i "s/digest: .*/digest: $SHA256/" /tmp/topentry.yaml
sed -i "s|urls:.*|urls:\n - https://wekan.github.io/wekan/wekan-$VERSION.0.tgz|" /tmp/topentry.yaml
sed -i "s/version: .*/version: $VERSION.0/" /tmp/topentry.yaml
awk 'NR==1{print;system("cat /tmp/topentry.yaml");next} /^ - apiVersion: v2/ && !p{p=1;next} 1' "$INDEX_FILE" > /tmp/index.yaml
mv /tmp/index.yaml "$INDEX_FILE"
rm /tmp/topentry.yaml
else
echo "index.yaml not found, skipping index update."
fi
- name: Update created time to Finland time
- name: Commit updated chart and index
run: |
FINLAND_TIME=$(TZ='Europe/Helsinki' date '+%Y-%m-%dT%H:%M:%S.000000000%:z')
sed -i "0,/^ created: .*/s/^ created: .*/ created: \"${FINLAND_TIME}\"/" helm/charts/index.yaml
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add docs/wekan/ docs/charts/
git commit -m "${VERSION}.0"
git push origin HEAD:refs/heads/main
- name: Upload docs/charts/ as Pages artifact
uses: actions/upload-pages-artifact@v5
with:
path: docs/charts/
- name: Commit updated chart
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add helm/
git commit -m "Helm chart ${VERSION}.0"
git add docs/wekan/
git commit -m "${VERSION}.0"
git push origin HEAD:refs/heads/main
- name: Upload helm/charts/ as Pages artifact
uses: actions/upload-pages-artifact@v4
- name: Upload docs/wekan/ as Pages artifact
uses: actions/upload-pages-artifact@v5
with:
path: helm/charts/
path: docs/wekan/
# ─── 10. Deploy Helm chart to GitHub Pages ───────────────────────────────────
deploy-pages:
@@ -700,4 +683,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v5
+1 -1
View File
@@ -127,7 +127,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24.14.1'
node-version: '24.15.0'
- name: Setup meteor
uses: meteorengineer/setup-meteor@v3
+3
View File
@@ -59,3 +59,6 @@ ejson@1.2.0-beta350.7
logging@1.3.6
wekan-fullcalendar
wekan-fontawesome
jam:offline
jam:method
jam:pub-sub
+4 -1
View File
@@ -45,6 +45,9 @@ htmljs@2.0.1
http@1.4.4
id-map@1.2.0
inter-process-messaging@0.1.2
jam:method@1.9.1
jam:offline@0.4.1
jam:pub-sub@0.5.1
jquery@3.0.2
lai:collection-extensions@1.0.0
localstorage@1.2.1
@@ -73,7 +76,7 @@ ordered-dict@1.2.0
ostrio:cookies@2.9.1
ostrio:cstorage@4.0.1
ostrio:files@3.0.1
ostrio:flow-router-extra@3.12.1
ostrio:flow-router-extra@3.13.0
ostrio:i18n@3.2.1
promise@1.0.0
quave:synced-cron@2.4.0
+100 -4
View File
@@ -4,9 +4,9 @@ Newest WeKan at these platforms:
- [Upgrade WeKan](https://wekan.fi/upgrade/)
- [bundle zip at releases](https://github.com/wekan/wekan/releases), docs at
- [Linux amd64, arm64, s390x](https://github.com/wekan/wekan/blob/main/docs/Platforms/FOSS/RaspberryPi/Raspberry-Pi.md)
- [Windows amd64, works also at Windows arm64](https://github.com/wekan/wekan/blob/main/docs/Platforms/Propietary/Windows/Offline.md)
- [Mac amd64, works also with Rosetta2 at Apple Silicon](https://github.com/wekan/wekan/blob/main/docs/Platforms/Propietary/Mac.md)
- [Linux amd64, arm64, s390x](https://github.com/wekan/wekan/blob/main/docs2/Platforms/FOSS/RaspberryPi/Raspberry-Pi.md)
- [Windows amd64, works also at Windows arm64](https://github.com/wekan/wekan/blob/main/docs2/Platforms/Propietary/Windows/Offline.md)
- [Mac amd64, works also with Rosetta2 at Apple Silicon](https://github.com/wekan/wekan/blob/main/docs2/Platforms/Propietary/Mac.md)
- https://wekan.fi/install/
- Snap Candidate amd64
- Docker amd64/arm64/s390x
@@ -17,7 +17,7 @@ Newest WeKan at these platforms:
Versions:
- WeKan 8.75 and newer uses Meteor 3.5-beta.7, [Node.js 24.x](https://nodejs.org/dist/latest-v24.x/),
MongoDB 7.x (or 6.x), or [FerretDB2/PostgreSQL](https://github.com/wekan/wekan/blob/main/docs/Databases/FerretDB2-PostgreSQL.md)
MongoDB 7.x (or 6.x), or [FerretDB2/PostgreSQL](https://github.com/wekan/wekan/blob/main/docs2/Databases/FerretDB2-PostgreSQL.md)
- WeKan 8.43 upgraded to Meteor 3.x, huge thanks to harryadel:
- https://harryadel.com/dev-diary-24/
- https://harryadel.com/dev-diary-25/
@@ -26,6 +26,102 @@ Versions:
- WeKan 8.00-8.06 had wrong raw database directory setting /var/snap/wekan/common/wekan and some cards were not visible,
it was fixed at WeKan 8.07 where database directory is back to /var/snap/wekan/common and all cards are visible.
# v9.00 2026-04-27 WeKan ® release
This release adds the following updates:
- [Bump actions/upload-pages-artifact from 4 to 5](https://github.com/wekan/wekan/pull/6304).
Thanks to dependabot.
- [Bump docker/setup-buildx-action from 3 to 4](https://github.com/wekan/wekan/pull/6305).
Thanks to dependabot.
- [Bump actions/deploy-pages from 4 to 5](https://github.com/wekan/wekan/pull/6306).
Thanks to dependabot.
- [Update release scripts](https://github.com/wekan/wekan/commit/db2701f1d731898c80b44606a985d5d132f7f6ed).
Thanks to xet7.
- [Added back jam packages. Updated dependencies](https://github.com/wekan/wekan/commit/bf5ca3d3ebef7f00778eb1a518fcfaf5b5fc5d5c).
Thanks to xet7.
- [Updated dependencies](https://github.com/wekan/wekan/commit/16832124ce169c823ab1f95a43a85bec22d5556f).
Thanks to xet7.
- [Update security.md etc](https://github.com/wekan/wekan/commit/7700efde1fba8483a78c67d03e3a0d214cedb67b).
Thanks to xet7.
- [Updated HoF](https://github.com/wekan/wekan/commit/675c6611146a4a47eee1e513b83152007e3b9aee).
Thanks to xet7.
- [Update releases scripts](https://github.com/wekan/wekan/commit/64f58455ff471b5a5567d7230850124cf0afacb0).
Thanks to xet7.
- [Update release and version scripts](https://github.com/wekan/wekan/commit/699b9a9c712f01068324c051be4fb149dfc6f100).
Thanks to xet7.
- Updated dependencies.
[Part 1](https://github.com/wekan/wekan/commit/b459151798d9808b4243d230ff6759a58d4016f5),
[Part 2](https://github.com/wekan/wekan/commit/74965f5f95ba4e4dfd7381becd55184731a60fca).
Thanks to developers of dependencies.
- [Updated website](https://github.com/wekan/wekan/commit/ef4161889af58827f105749362196fd471e3e38c).
Thanks to xet7.
and fixes the following bugs:
- [Update cards.js](https://github.com/wekan/wekan/pull/6299).
Thanks to snowsky.
- [Fix MongoDB replicaset setup at docker-compose.yml](https://github.com/wekan/wekan/commit/c4e084ffbbc5870a13e79f80a2982d2eb7f2f04e).
Thanks to C0rn3j.
- [Add permission checks to list width method](https://github.com/wekan/wekan/pull/6303).
Thanks to Raawen-dev.
- [Fix UI hangs and data loss by disabling changeStreams, until there is new Meteor release that included bugfix to changeStreams](https://github.com/wekan/wekan/commit/c47eb013b4d8d0f2dea7b801adc60151f6e3aee1).
Thanks to bcook-konza and italojs.
- [Fix list actions popup overflow](https://github.com/wekan/wekan/pull/6310).
Thanks to Raawen-dev.
- [Fix mycards subscription](https://github.com/wekan/wekan/pull/6314).
Thanks to aminsaidane.
Thanks to above GitHub users for their contributions and translators for their translations.
# v8.99 2026-04-16 WeKan ® release
This release adds the following updates:
- [Release scripts: Update versions](https://github.com/wekan/wekan/commit/32e1ec9d2251840dc2d57ffa7976f2c60546ca9d).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v8.98 2026-04-16 WeKan ® release
This release adds the following updates:
- [Release scripts: Detect newest Node.js 24.x version](https://github.com/wekan/wekan/commit/fde59148dc8bd712e30cbf969d4007b2a7f01e6f).
Thanks to xet7.
- [Release scripts: Update versions at website with release-website.sh script](https://github.com/wekan/wekan/commit/9174001862f1545626730b9a51754ab77b645338).
Thanks to xet7.
- [Release scripts: Detect newest MongoDB 7.x stable version and update to use it](https://github.com/wekan/wekan/commit/72f6d96dbc3becc2767eb6f88b0f218679d1ac78).
Thanks to xet7.
- [Moved website from repo wekan/wekan.fi to wekan/wekan/docs](https://github.com/wekan/wekan/commit/3c36db33e91e504722edc60faec5d6b4aa301850).
Thanks to xet7.
- [Moved docs to docs2, and wekan.fi to docs, to be able publish with GitHub Pages](https://github.com/wekan/wekan/commit/1c0d8e9964af40be91eda9668dfeebd01b3a5720).
Thanks to xet7.
- [Update markdown docs links from docs to docs2](https://github.com/wekan/wekan/commit/c1639ea58973efcae0758385cc5d8d7ffbf1e8d9).
Thanks to xet7.
- [Commented out requirement to update website manually](https://github.com/wekan/wekan/commit/64d351d835628dad80062e3c362701b35ae5bb33).
Thanks to xet7.
- [Moved Helm Charts from helm directory to docs/wekan and docs/charts to be at wekan.fi/wekan and wekan.fi/charts](https://github.com/wekan/wekan/commit/38e488ee4a63d61159d8efcddb6e454347bce91a).
Thanks to xet7.
- [Release scripts: Fix indentation at release-all.yml](https://github.com/wekan/wekan/commit/10f009f5b15fd077577a71504b0e0c89c4e6fd95).
Thanks to xet7.
- [Release scripts: Use latest available Node.js slim docker images when building](https://github.com/wekan/wekan/commit/d998e8cb4a5280c93448d144ab01335ce29b43dc).
Thanks to xet7.
- [Release scripts: Fix updating version numbers](https://github.com/wekan/wekan/commit/7b0e2213cfbf0e2a17a143aa7ad9f979fb0fbf07).
Thanks to xet7.
- [Release scripts: Require only newest version number when releasing](https://github.com/wekan/wekan/commit/052d8c15844dfc709dc3ac281795629c175869e0).
Thanks to xet7.
- [Release scripts: Use 24-slim fallback](https://github.com/wekan/wekan/commit/a0c190137dfe9fd8da71380f6c67344812561f9f).
Thanks to xet7.
- [Release scripts: use node:24-slim directly](https://github.com/wekan/wekan/commit/51ad6ed99df7ecdc925d314a6c5fab345f75d549).
Thanks to xet7.
- [Fix Helm Chart parts to docs/wekan and docs/charts](https://github.com/wekan/wekan/commit/1820804b9f46e510c4bf05324755a5eeec5a3b13).
Thanks to xet7.
- [Release scripts: Updated creating Helm Charts to docs/wekan and docs/charts](https://github.com/wekan/wekan/commit/f6198dee30ed6514974d2e821997d340e67fc954).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v8.97 2026-04-16 WeKan ® release
This release adds the following updates:
+2 -2
View File
@@ -34,7 +34,7 @@ and click send PR.
## Contributing code
[Building WeKan and sending PR](https://github.com/wekan/wekan/blob/main/docs/DeveloperDocs/Build-and-Create-Pull-Request.md).
[Building WeKan and sending PR](https://github.com/wekan/wekan/blob/main/docs2/DeveloperDocs/Build-and-Create-Pull-Request.md).
WeKan code contributors Hall of Fame is at ChangeLog, where
GitHub usernames are mentioned with changes added:
@@ -47,7 +47,7 @@ Closed issues are already fixed or implemented.
Also see other docs:
https://github.com/wekan/wekan/tree/main/docs/DeveloperDocs
https://github.com/wekan/wekan/tree/main/docs2/DeveloperDocs
Do not use code formatting or linting like eslist or prettier.
+8 -8
View File
@@ -37,7 +37,7 @@ It's better than at chat where details get lost when chat scrolls up.
## Discussions
[IRC](https://github.com/wekan/wekan/blob/main/docs/FAQ/IRC-FAQ.md)
[IRC](https://github.com/wekan/wekan/blob/main/docs2/FAQ/IRC-FAQ.md)
## Docker: Latest tag has newest release
@@ -48,8 +48,8 @@ See bottom of https://github.com/wekan/wekan/issues/3874
**NOTE**:
- Please read the [FAQ](https://github.com/wekan/wekan/blob/main/docs/FAQ/FAQ.md) first
- Please don't feed the [trolls](https://github.com/wekan/wekan/blob/main/docs/FAQ/FAQ.md#why-am-i-called-a-troll) and [spammers](https://github.com/wekan/wekan/blob/main/docs/FAQ/FAQ.md#why-am-i-called-a-spammer) that are mentioned in the FAQ :)
- Please read the [FAQ](https://github.com/wekan/wekan/blob/main/docs2/FAQ/FAQ.md) first
- Please don't feed the [trolls](https://github.com/wekan/wekan/blob/main/docs2/FAQ/FAQ.md#why-am-i-called-a-troll) and [spammers](https://github.com/wekan/wekan/blob/main/docs2/FAQ/FAQ.md#why-am-i-called-a-spammer) that are mentioned in the FAQ :)
## About WeKan ®
@@ -83,7 +83,7 @@ that by providing one-click installation on various platforms.
WeKan ® on Sandstorm is not usually affected by any Standalone WeKan ® (Snap/Docker/Source) security issues.
- [Reporting all new bugs immediately](https://github.com/wekan/wekan/issues).
New features and fixes are added to WeKan ® [many times a day](https://github.com/wekan/wekan/blob/main/CHANGELOG.md).
- [Backups](https://github.com/wekan/wekan/blob/main/docs/Backup/Backup.md) of WeKan ® database once a day minimum.
- [Backups](https://github.com/wekan/wekan/blob/main/docs2/Backup/Backup.md) of WeKan ® database once a day minimum.
Bugs, updates, users deleting list or card, harddrive full, harddrive crash etc can eat your data. There is no undo yet.
Some bugs can cause WeKan ® board to not load at all, requiring manual fixing of database content.
@@ -106,9 +106,9 @@ By working directly with WeKan ® you get the benefit of active maintenance and
The default branch uses Meteor 3.5-beta.7 with Node.js 24.x.
See [CHANGELOG.md](https://github.com/wekan/wekan/blob/main/CHANGELOG.md) for the latest runtime updates.
To contribute, [create a fork](https://github.com/wekan/wekan/blob/main/docs/DeveloperDocs/Build-and-Create-Pull-Request.md#2-create-fork-of-httpsgithubcomwekanwekan-at-github-web-page) and run `./rebuild-wekan.sh` (or `./rebuild-wekan.bat` on Windows) as detailed [here](https://github.com/wekan/wekan/blob/main/docs/DeveloperDocs/Build-and-Create-Pull-Request.md#3-select-option-1-to-install-dependencies-and-then-enter). Once you're ready, please test your code and [submit a pull request (PR)](https://github.com/wekan/wekan/blob/main/docs/DeveloperDocs/Build-and-Create-Pull-Request.md#7-test).
To contribute, [create a fork](https://github.com/wekan/wekan/blob/main/docs2/DeveloperDocs/Build-and-Create-Pull-Request.md#2-create-fork-of-httpsgithubcomwekanwekan-at-github-web-page) and run `./rebuild-wekan.sh` (or `./rebuild-wekan.bat` on Windows) as detailed [here](https://github.com/wekan/wekan/blob/main/docs2/DeveloperDocs/Build-and-Create-Pull-Request.md#3-select-option-1-to-install-dependencies-and-then-enter). Once you're ready, please test your code and [submit a pull request (PR)](https://github.com/wekan/wekan/blob/main/docs2/DeveloperDocs/Build-and-Create-Pull-Request.md#7-test).
Please refer to the [developer documentation](https://github.com/wekan/wekan/blob/main/docs/DeveloperDocs/Developer-Documentation.md) for more information.
Please refer to the [developer documentation](https://github.com/wekan/wekan/blob/main/docs2/DeveloperDocs/Developer-Documentation.md) for more information.
## First-Time Setup for Development
@@ -174,7 +174,7 @@ The development server will start at http://localhost:4000. Any changes you make
## Screenshot
[More screenshots at Features page](https://github.com/wekan/wekan/tree/main/docs/Features)
[More screenshots at Features page](https://github.com/wekan/wekan/tree/main/docs2/Features)
[![Screenshot of WeKan ®][screenshot_wekan]][roadmap_wekan]
@@ -183,7 +183,7 @@ The development server will start at http://localhost:4000. Any changes you make
WeKan ® is released under the very permissive [MIT license](LICENSE), and made
with [Meteor](https://www.meteor.com).
[dev_docs]: https://github.com/wekan/wekan/blob/main/docs/DeveloperDocs/Developer-Documentation.md
[dev_docs]: https://github.com/wekan/wekan/blob/main/docs2/DeveloperDocs/Developer-Documentation.md
[screenshot_wekan]: https://wekan.fi/wekan-dark-mode.png
[features]: https://github.com/wekan/wekan/wiki/Features
[roadmap_wekan]: https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license
+27 -43
View File
@@ -1,36 +1,19 @@
## About Money
## About Money: No bounty
See [CONTRIBUTING](CONTRIBUTING.md)
There is no bounty, like described at [CONTRIBUTING.md](CONTRIBUTING.md),
because WeKan is NOT Big Tech. WeKan is FLOSS.
## Responsible Security Disclosure
1. To send email, if possible, use PGP key [security-at-wekan.fi.asc](security-at-wekan.fi.asc)
2. Send info about security issue ONLY to security@wekan.fi . NOT TO ANYWHERE ELSE. NO CC, NO BCC.
3. Wait for new WeKan release that fixes security issue to appear to top of
1. Please email info about security issue to security@wekan.fi .
If possible, include code for fixing security issue.
Optional PGP key is at [security-at-wekan.fi.asc](security-at-wekan.fi.asc)
2. Wait for new WeKan release that fixes security issue to appear to top of
https://github.com/wekan/wekan/blob/main/CHANGELOG.md
4. We will thank you by adding you to Hall the of Fame: https://wekan.fi/hall-of-fame/
5. All vulnerability details will be private to security@wekan.fi ,
unless you help all WeKan platforms to have a way to upgrade, like sending
database migrations code to security@wekan.fi or PRs to https://github.com/wekan/wekan/pulls .
There is no benefit to the Wordwide Security Community to have more details about vulnerabilities,
if Worldwide Security Community does not help to make upgrades possible.
6. If some day a way becomes available to upgrade all WeKan platforms,
this page will be updated to add permission for security researchers
to request new GHSA or CVE ID and publish your vulnerability details at your blog, talks, etc,
and send that info also to security@wekan.fi to be added to
Hall of Fame: https://wekan.fi/hall-of-fame/ to get Upgrade Bonus Point Stars.
In that case, it will become possible for security@wekan.fi to publish all
remaining private security details, and publicly thank Worldwide Security Community.
## Bonus Points
- If you include code for fixing security issue
## Losing Points
- If you ask about [bounty](CONTRIBUTING.md). There is no bounty. WeKan is NOT Big Tech. WeKan is FLOSS.
- If you forget to include vulnerability details.
- If you send info about security issue to somewhere else than security@wekan.fi
3. We will thank you by adding you to
Hall the of Fame: https://wekan.fi/hall-of-fame/
4. If you get CVE number assigned, please send it to security@wekan.fi, it will be added to
Hall the of Fame: https://wekan.fi/hall-of-fame/
## How Should Reports Be Formatted?
@@ -60,12 +43,12 @@ and we don't have any permissions to do security scans on those donated servers.
Please don't perform research that could impact other users. Second, please keep
the reports short and succinct. If we fail to understand the logic of your bug, we will tell you.
You can [Install Wekan](https://github.com/wekan/wekan/releases) on your own computer
You can [Install Wekan](https://wekan.fi/install/) on your own computer
and scan it's vulnerabilities there.
## About Wekan Versions
There are only 2 versions of Wekan: Standalone Wekan, and Sandstorm Wekan.
There are 2 versions of Wekan: Standalone Wekan, and Sandstorm Wekan.
### Standalone Wekan Security
@@ -78,7 +61,8 @@ WeKan is used in most countries of the world https://snapcraft.io/wekan
and by companies that have 30k users.
- Wekan private board attachments are not accessible without logging in.
- There is feature to set board public, so that board is visible without logging in in readonly mode, with realtime updates.
- There is feature to set board public, so that board is visible without logging
in readonly mode, with realtime updates.
- Admin Panel has feature to disable all public boards, so all boards are private.
## SSL/TLS
@@ -107,7 +91,8 @@ and by companies that have 30k users.
Q:
Hello,
I have just seen the Meteor DevTools Evolved extension and was wondering if anyone had asked themselves the question of security.
I have just seen the Meteor DevTools Evolved extension and was wondering if anyone
had asked themselves the question of security.
Insofar as all data is shown in the minimongo tab in plain text.
How can data be hidden from this extension?
@@ -115,11 +100,14 @@ A:
## PubSub
- It is not a security issue to show text or images that the user has permission to see. It is a security issue, if browserside is some text or image that user should not see.
- It is not a security issue to show text or images that the user has permission to see.
It is a security issue, if browserside is some text or image that user should not see.
- Meteor has browserside minimongo database, made with JavaScript, updated with Publish/Subscribe, PubSub.
- Publish/Subscribe means, that realtime web framework reads database changes stream, and then immediately updates webpage,
like like dashboards, chat, kanban. That is the point of any realtime web framework in any programming language.
- Yes, you should check with Meteor DevTools Evolved Chromium/Firefox extension that at minimongo is only text that user has permission to see.
- Publish/Subscribe means, that realtime web framework reads database changes stream,
and then immediately updates webpage, like dashboards, chat, kanban.
That is the point of any realtime web framework in any programming language.
- Yes, you should check with Meteor DevTools Evolved Chromium/Firefox extension that
at minimongo is only text that user has permission to see.
- Check as a logged-in user and as a logged-out user.
- Check permissions and sanitize before allowing some change, because someone could modify content of input field,
PubSub/websocket data (for example with Burp Suite Community Edition), etc.
@@ -129,7 +117,8 @@ A:
- PubSub uses WebSockets, so you need those to be enabled on the webserver like Caddy/Nginx/Apache etc, examples of settings
at right menu of https://github.com/wekan/wekan/wiki
- Clientside https://github.com/wekan/wekan/tree/main/client/components subscribes to
PubSub https://github.com/wekan/wekan/tree/main/server/publications or calls meteor methods at https://github.com/wekan/wekan/tree/main/models
PubSub https://github.com/wekan/wekan/tree/main/server/publications or calls meteor methods
at https://github.com/wekan/wekan/tree/main/models
- For Admin:
- You can have input field for password https://github.com/wekan/wekan/blob/main/client/components/cards/attachments.js#L303-L312
- You can save password to database https://github.com/wekan/wekan/blob/main/client/components/cards/attachments.js#L303-L312
@@ -276,14 +265,9 @@ a security issue, we'd like to know about it, and also how to fix it:
Typical already-known or 'no impact' bugs such as:
- [Wekan API old tokens not replaced correctly](https://github.com/wekan/wekan/issues/1437)
- Missing Cookie flags on non-session cookies or 3rd party cookies
- Logout CSRF
- Social engineering
- Denial of service
- SSL BEAST/CRIME/etc. WeKan does not have SSL built-in; it uses Caddy/Nginx/Apache, etc., on the front end.
Integrated Caddy support is updated often.
- Email spoofing, SPF, DMARC & DKIM. Wekan does not include email server.
- SSL BEAST/CRIME/etc. WeKan does not have SSL built-in; it uses Caddy/Nginx/Apache on the front end.
Wekan is Open Source with MIT license, and free to use also for commercial use.
We welcome all fixes to improve security by email to security@wekan.fi
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v8.94.0"
appVersion: "v9.00.0"
files:
userUploads:
- README.md
+121
View File
@@ -767,3 +767,124 @@ body.mobile-mode .pop-over .content-wrapper {
overflow-y: auto !important;
overflow-x: hidden !important;
}
/* ============================================
FIX: List actions popup overflow (Issue #6221)
Prevents menu from overflowing outside viewport
============================================ */
/* General fix for all popups with many items */
.pop-over .pop-over-list {
max-height: 60vh;
overflow-y: auto;
overflow-x: hidden;
}
/* Specific fix for list actions menu */
.pop-over[data-popup="listActionsPopup"] {
max-height: 85vh !important;
overflow-y: auto !important;
}
.pop-over[data-popup="listActionsPopup"] .content-wrapper {
max-height: calc(85vh - 50px) !important;
overflow-y: auto !important;
}
/* Prevent any popup from overflowing viewport */
.pop-over {
max-height: 90vh !important;
display: flex !important;
flex-direction: column !important;
}
.pop-over .content-wrapper {
flex: 1 1 auto !important;
overflow-y: auto !important;
min-height: 0 !important;
}
.pop-over .content-container {
flex: 1 1 auto !important;
display: flex !important;
flex-direction: column !important;
min-height: 0 !important;
}
.pop-over .content {
flex: 1 1 auto !important;
overflow-y: auto !important;
min-height: 0 !important;
}
/* Keep header fixed while content scrolls */
.pop-over .header {
flex-shrink: 0 !important;
}
/* Mobile-specific adjustments */
@media screen and (max-width: 800px) {
.pop-over[data-popup="listActionsPopup"] {
max-height: 100vh !important;
}
.pop-over[data-popup="listActionsPopup"] .content-wrapper {
max-height: calc(100vh - 48px) !important;
}
}
/* STRONGER FIX - Override inline styles */
.pop-over[style*="height"],
.pop-over[style*="max-height"] {
max-height: 80vh !important;
height: auto !important;
overflow-y: auto !important;
}
.pop-over[style*="height"] .content-wrapper,
.pop-over[style*="max-height"] .content-wrapper {
max-height: calc(80vh - 60px) !important;
height: auto !important;
overflow-y: auto !important;
}
/* Force list popups to have a max height and scroll */
.pop-over .pop-over-list {
max-height: 300px !important;
overflow-y: auto !important;
}
/* Make sure the popup doesn't grow too tall */
.pop-over:has(.pop-over-list) {
max-height: 400px !important;
height: auto !important;
}
/* For the list actions menu specifically */
[data-popup="listActionsPopup"] .pop-over-list,
.js-open-list-menu + .pop-over .pop-over-list {
max-height: 350px !important;
overflow-y: auto !important;
}
/* ============================================
FIX: List actions popup overflow (Issue #6221)
============================================ */
/* Force list popups to have a max height and scroll */
.pop-over .pop-over-list {
max-height: 300px !important;
overflow-y: auto !important;
}
/* Make sure the popup doesn't grow too tall */
.pop-over:has(.pop-over-list) {
max-height: 400px !important;
height: auto !important;
}
/* For the list actions menu specifically */
[data-popup="listActionsPopup"] .pop-over-list,
.js-open-list-menu + .pop-over .pop-over-list {
max-height: 350px !important;
overflow-y: auto !important;
}
+44 -22
View File
@@ -1,14 +1,14 @@
# Note: Do not add single quotes '' to variables. Having spaces still works without quotes where required.
#---------------------------------------------------------------------------------------------------------
# ==== CREATING USERS AND LOGGING IN TO WEKAN ====
# https://github.com/wekan/wekan/blob/main/docs/Login/Adding-users.md
# https://github.com/wekan/wekan/blob/main/docs2/Login/Adding-users.md
#---------------------------------------------------------------------------------------------------------
# ==== FORGOT PASSWORD ====
# https://github.com/wekan/wekan/blob/main/docs/Login/Forgot-Password.md
# https://github.com/wekan/wekan/blob/main/docs2/Login/Forgot-Password.md
#---------------------------------------------------------------------------------------------------------
# ==== Upgrading Wekan to new version =====
# NOTE: MongoDB has changed from 3.x to 4.x, in that case you need backup/restore with --noIndexRestore
# see https://github.com/wekan/wekan/tree/main/docs/Backup
# see https://github.com/wekan/wekan/tree/main/docs2/Backup
# 1) Stop Wekan:
# docker compose stop
# 2) Remove old Wekan app (wekan-app only, not that wekan-db container that has all your data)
@@ -46,7 +46,7 @@
# docker compose stop
# ----------------------------------------------------------------------------------
# ===== INSIDE DOCKER CONTAINERS, AND BACKUP/RESTORE ====
# https://github.com/wekan/wekan/tree/main/docs/Backup
# https://github.com/wekan/wekan/tree/main/docs2/Backup
# If really necessary, repair MongoDB: https://github.com/wekan/wekan-mongodb/issues/6#issuecomment-424004116
# 1) Going inside containers:
# a) Wekan app, does not contain data
@@ -171,7 +171,7 @@ services:
# Leave it unset or empty to skip migration.
#-------------------------------------------------------------------------------------
#wekan-migrate:
# image: node:24.14.1-slim
# image: node:24.15.0-slim
# container_name: wekan-migrate
# restart: "no"
# networks:
@@ -229,12 +229,31 @@ services:
#command: mongod --logpath /dev/null --oplogSize 128 --replSet rs0 --quiet
#command: mongod --oplogSize 128 --replSet rs0 --quiet
command: >
sh -c "
mongod --oplogSize 128 --replSet rs0 --quiet --bind_ip_all &
until mongosh --eval 'rs.initiate()' > /dev/null 2>&1; do
sh -c '
mongod --oplogSize 128 --replSet rs0 --bind_ip_all --quiet &
until mongosh --host 127.0.0.1 --quiet --eval "
try {
const status = rs.status();
quit(status.ok === 1 ? 0 : 1);
} catch (e) {
if (
e.codeName === \"NotYetInitialized\" ||
e.message.includes(\"no replset config has been received\") ||
e.message.includes(\"not yet initialized\")
) {
rs.initiate({
_id: \"rs0\",
members: [{ _id: 0, host: \"wekandb:27017\" }]
});
quit(1);
}
quit(1);
}
" >/dev/null 2>&1; do
sleep 2
done;
wait"
done
wait
'
networks:
- wekan-tier
expose:
@@ -294,7 +313,10 @@ services:
#- METEOR_REACTIVITY_ORDER=polling
# https://forums.meteor.com/t/meteor-3-5-beta-change-streams-performance-improvements/64461#change-streams-setup-3
# https://github.com/meteor/meteor/blob/release-3.5/v3-docs/docs/performance/change-streams-observer-driver.md#choosing-the-reactivity-driver-order
- METEOR_REACTIVITY_ORDER=changeStreams,oplog,polling
# Use oplog,polling to fix performance until changeStreams is fixed at next release of Meteor 3.5 Beta:
# https://github.com/wekan/wekan/issues/6307#issuecomment-4299349231
# Later change to: METEOR_REACTIVITY_ORDER=changeStreams,oplog,polling
- METEOR_REACTIVITY_ORDER=oplog,polling
#-----------------------------------------------------------------
# ==== WRITEABLE PATH FOR FILE UPLOADS ====
- WRITABLE_PATH=/data
@@ -329,7 +351,7 @@ services:
# ==== EMAIL SETTINGS ====
# Email settings are only at MAIL_URL and MAIL_FROM.
# Admin Panel has test button, but it's not used for settings.
# see https://github.com/wekan/wekan/blob/main/docs/Email/Troubleshooting-Mail.md
# see https://github.com/wekan/wekan/blob/main/docs2/Email/Troubleshooting-Mail.md
# For SSL in email, change smtp:// to smtps://
# NOTE: Special characters need to be url-encoded in MAIL_URL.
# You can encode those characters for example at: https://www.urlencoder.org
@@ -372,7 +394,7 @@ services:
#- APM_APP_SECRET=
#---------------------------------------------------------------
# ==== OPTIONAL: LOGS AND STATS ====
# https://github.com/wekan/wekan/blob/main/docs/Features/Logs.md
# https://github.com/wekan/wekan/blob/main/docs2/Features/Logs.md
#
# Daily export of Wekan changes as JSON to Logstash and ElasticSearch / Kibana (ELK)
# https://github.com/wekan/wekan-logstash
@@ -396,7 +418,7 @@ services:
#---------------------------------------------------------------
# ==== WEKAN API AND EXPORT BOARD ====
# Wekan Export Board works when WITH_API=true.
# https://github.com/wekan/wekan/blob/main/docs/API/REST-API.md
# https://github.com/wekan/wekan/blob/main/docs2/API/REST-API.md
# https://github.com/wekan/wekan-gogs
# If you disable Wekan API with false, Export Board does not work.
- WITH_API=true
@@ -505,7 +527,7 @@ services:
#- TRUSTED_URL=https://intra.example.com
#-----------------------------------------------------------------
# ==== METRICS ALLOWED IP ADDRESSES ====
# https://github.com/wekan/wekan/blob/main/docs/Features/Metrics.md
# https://github.com/wekan/wekan/blob/main/docs2/Features/Metrics.md
#- METRICS_ALLOWED_IP_ADDRESSES=192.168.0.100,192.168.0.200
#-----------------------------------------------------------------
# ==== OUTGOING WEBHOOKS ====
@@ -516,14 +538,14 @@ services:
#- DEBUG=true
#---------------------------------------------
# ==== AUTOLOGIN WITH OIDC/OAUTH2 ====
# https://github.com/wekan/wekan/blob/main/docs/Login/autologin.md
# https://github.com/wekan/wekan/blob/main/docs2/Login/autologin.md
#- OIDC_REDIRECTION_ENABLED=true
#-----------------------------------------------------------------
# ==== OAUTH2 ORACLE on premise identity manager OIM ====
#- ORACLE_OIM_ENABLED=true
#-----------------------------------------------------------------
# ==== OAUTH2 AZURE ====
# https://github.com/wekan/wekan/blob/main/docs/Login/Azure/Azure.md
# https://github.com/wekan/wekan/blob/main/docs2/Login/Azure/Azure.md
# 1) Register the application with Azure. Make sure you capture
# the application ID as well as generate a secret key.
# 2) Configure the environment variables. This differs slightly
@@ -583,7 +605,7 @@ services:
#- OAUTH2_EMAIL_MAP=email
#-----------------------------------------------------------------
# ==== OAUTH2 KEYCLOAK ====
# https://github.com/wekan/wekan/blob/main/docs/Login/Keycloak/Keycloak.md <== MAPPING INFO, REQUIRED
# https://github.com/wekan/wekan/blob/main/docs2/Login/Keycloak/Keycloak.md <== MAPPING INFO, REQUIRED
#- OAUTH2_ENABLED=true
# OAuth2 login style: popup or redirect.
#- OAUTH2_LOGIN_STYLE=redirect
@@ -601,10 +623,10 @@ services:
#-----------------------------------------------------------------
# ==== OAUTH2 DOORKEEPER ====
# https://github.com/wekan/wekan/issues/1874
# https://github.com/wekan/wekan/blob/main/docs/Login/OAuth2.md2
# https://github.com/wekan/wekan/blob/main/docs2/Login/OAuth2.md2
# Enable the OAuth2 connection
#- OAUTH2_ENABLED=true
# OAuth2 docs: https://github.com/wekan/wekan/blob/main/docs/Login/OAuth2.md
# OAuth2 docs: https://github.com/wekan/wekan/blob/main/docs2/Login/OAuth2.md
# OAuth2 login style: popup or redirect.
#- OAUTH2_LOGIN_STYLE=redirect
# OAuth2 Client ID.
@@ -634,8 +656,8 @@ services:
#- OAUTH2_EMAIL_MAP=
#-----------------------------------------------------------------
# ==== LDAP: UNCOMMENT ALL TO ENABLE LDAP ====
# https://github.com/wekan/wekan/blob/main/docs/Login/LDAP.md
# For Snap settings see https://github.com/wekan/wekan/blob/main/docs/Platforms/FOSS/Snap/Supported-settings-keys.md
# https://github.com/wekan/wekan/blob/main/docs2/Login/LDAP.md
# For Snap settings see https://github.com/wekan/wekan/blob/main/docs2/Platforms/FOSS/Snap/Supported-settings-keys.md
# Most settings work both on Snap and Docker below.
# Note: Do not add single quotes '' to variables. Having spaces still works without quotes where required.
#
+1
View File
@@ -0,0 +1 @@
wekan.fi
+21
View File
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Lauri Ojansivu
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+2 -276
View File
@@ -1,277 +1,3 @@
<img src="https://wekan.fi/wekan-logo.svg" width="60%" alt="Wekan logo" />
## wekan.fi website
Wekan is an open-source [kanban board][] which allows a card-based task and to-do management.
Wekan allows to create **Boards**, on which **Cards** can be moved around between a number of **Columns**. Boards can have many members, allowing for easy collaboration, just add everyone that should be able to work with you on the board to it, and you are good to go! You can assign colored **Labels** to cards to facilitate grouping and filtering, additionally you can add members to a card, for example to assign a task to someone.
## What is special about Wekan?
Wekan is distributed under the [MIT License], allowing anyone to easily work with it and modify it. It is perfect for anyone that needs a slick kanban board but doesn't want to use third party services, which are out of user control. Wekan can be hosted on your own server with very little effort, guaranteeing that you have all the time full control over your data and can make sure no one else has access to it and that it won't just vanish from one day to another, that is, if you do backups.
<a name="Wekan"></a>Wekan
# Install
* https://wekan.fi/install/
# SaaS
* https://wekan.fi/saas/
# Support
* Free Public Open Source Support, bugs and feature requests: https://github.com/wekan/wekan/issues
* [Debugging](DeveloperDocs/Debugging.md)
* Paid Private Commercial Support, paid features/fixes/support/hosting: https://wekan.fi/commercial-support/
# <a name="General"></a>General
* Current Meteor 2 WeKan Features: [Deep Dive Into WeKan](DeveloperDocs/Deep-Dive-Into-WeKan.md)
* [WeKan Roadmap kanban board](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license) - board at Wekan demo
* Future WeKan prototypes: [Multiverse WeKan Roadmap](FAQ/WeKan-Multiverse-Roadmap.md)
* [Change Language](Translations/Change-Language.md)
* [Forgot Password](Login/Forgot-Password.md)
* [WeKan Design Principles](Design/Design-Principles.md)
* [FAQ](FAQ/FAQ.md)
* [IRC FAQ](FAQ/IRC-FAQ.md) - answers to questions asked at IRC
* [Team](FAQ/Team.md)
* [Press](FAQ/Press.md)
* [Blog](https://wekan.fi/blog)
* [Wekan vs Trello vs Restyaboard](ImportExport/trello/Wekan-vs-Trello-vs-Restyaboard.md)
* [Results of Survey 2020-01](https://wekan.fi/blog/2020/06/results-of-wekan-survey-2020-01/)
# <a name="NotWeKan"></a>Fake: Not WeKan kanban
* [Hall of Shame: Fake companies that are NOT WeKan kanban](FAQ/Hall-of-Shame.md)
* [Others NOT related to WeKan kanban](FAQ/NOT-related-to-Wekan.md)
# <a name="Security"></a>Security
* [Allow private boards only: Disable Public Boards](Features/Allow-private-boards-only.md)
* [Security Disclosure and details of Security in Wekan](../SECURITY.md)
* [Password Hashing](Login/Password-Hashing.md)
# <a name="Scaling"></a>Scaling
* [Cron: Hourly restart WeKan, because of memory leaks](Webserver/Cron.md)
* [Maybe: Add more RAM to Node.js to prevent crash](https://github.com/wekan/wekan/issues/3585)
* [Clustering AWS etc](Platforms/Propietary/Cloud/AWS.md)
* [Scaling](Webserver/Scaling.md)
* Kubernetes
* Helm Chart https://artifacthub.io/packages/helm/wekan/wekan
* Issues https://github.com/wekan/charts/issues
* Pull Requests https://github.com/wekan/charts/pulls
* [Redis Oplog](https://github.com/cult-of-coders/redis-oplog)
* [Scaling at Meteor forums](https://forums.meteor.com/t/meteor-scaling-performance-best-practices/52886/16)
# <a name="Migrating"></a>Migrating
* [From Previous Export, paste big WeKan JSON](ImportExport/From-Previous-Export.md)
* [Progress: Import/Export/Sync](ImportExport/Sync.md)
* [From CSV/TSV](ImportExport/CSV/CSV.md)
* [From Trello](ImportExport/trello/Migrating-from-Trello.md)
* [From Jira](ImportExport/Jira.md)
* [From Asana](ImportExport/asana/Asana.md)
* [From Zenkit](ImportExport/ZenKit.md)
* [From old Wekan manually](ImportExport/Migrating-from-old-Wekan-manually.md)
# Backup
* [Backup and Restore](Backup/Backup.md)
* [Rclone: Store attachments to cloud storage like S3, MinIO, etc](Backup/Rclone.md)
# <a name="Repair"></a>Repair
* [Repair MongoDB](Backup/Repair-MongoDB.md)
* [Using Meteor MongoDB to repair files](Platforms/FOSS/Sandstorm/Export-from-Wekan-Sandstorm-grain-.zip-file.md)
* [If board does not open and keeps loading](Features/If-board-does-not-open-and-keeps-loading.md)
* [Repair Docker](Platforms/FOSS/Docker/Repair-Docker.md)
# <a name="Themes"></a> Themes
* [Themes](Theme/Custom-CSS-themes.md)
* [Dark Mode](Theme/Dark-Mode.md)
* [Converting Meteor Stylus to CSS](Theme/Converting-Meteor-Stylus-to-CSS.md)
# <a name="MarkdownSyntax"></a>Markdown Syntax
* [Wekan Markdown](Features/Wekan-Markdown.md)
* [Emoji](Features/Emoji.md)
* [Mermaid Diagram](Features/Mermaid-Diagram.md) DOES NOT WORK ANYMORE
* [Numbered text](Features/Numbered-text.md)
# <a name="LoginAuth"></a>Login Auth
* [Automatic login](Login/autologin.md)
* [Disable Password Login](Login/Disable-Password-Login.md)
* [Forgot Password](Login/Forgot-Password.md)
* [Admin: Impersonate user](Login/Impersonate-user.md)
* [Adding Users](Login/Adding-users.md)
* [Active users Presence](https://github.com/wekan/wekan/issues/3734)
* [Accounts Lockout: Brute force login protection](Login/Accounts-Lockout.md)
* [LDAP](Login/LDAP.md)
* [LDAP AD Simple Auth](Login/LDAP-AD-Simple-Auth.md)
* [Keycloak](Login/Keycloak/Keycloak.md)
* [Google login](Login/Google-login.md)
* [Azure](Login/Azure/Azure.md)
* [OAuth2](Login/OAuth2.md), Auth0, GitLab, RocketChat
* [Oracle OIM on premise using OAuth2](Login/Oracle-OIM.md)
* [ADFS 4.0 using OAuth2 and OpenID](Login/ADFS.md)
* [Azure AD B2C using OAuth2](Login/B2C.md)
* [Nextcloud](Login/Nextcloud.md)
* [CAS](Login/CAS.md) Please test
* [SAML](Login/SAML.md) Please test
* [Zitadel](Login/Zitadel.md)
# <a name="Logs"></a>Metrics, Logs, Stats
* [Metrics](Features/Metrics)
* [Logs](Features/Logs.md)
* [Stats](Features/Features.md#stats)
# <a name="Integrations"></a>Integrations
* [IFTTT](ImportExport/IFTTT.md)
* [n8n Wekan docs](https://docs.n8n.io/nodes/n8n-nodes-base.wekan/#example-usage) - [n8n GitHub](https://github.com/n8n-io/n8n)
* [Integrations](ImportExport/Integrations.md)
* [Gogs](https://github.com/wekan/wekan-gogs)
# <a name="Time"></a>Time
* [Time Tracking](Date/Time-Tracking.md)
* [Gantt Chart](Features/Gantt.md)
* [Due Date](Date/Due-Date.md)
* [Day of week start](Date/Day-of-week-start.md)
* [Calendar](Calendar.md)
# <a name="Features"></a>Features
* [Multiline](Features/Multiline.md)
* [Linked Cards](Features/Linked-Cards.md)
* [Drag Drop](Features/DragDrop/Drag-Drop.md) on Mobile and Desktop
* [Python based features](Features/Python.md)
* [Burndown and Velocity Chart](Features/Burndown-and-Velocity-Chart.md)
* [Wait Spinners](Features/Wait-Spinners.md)
* [Translations](Translations/Translations.md)
* [Customize Translations](Customize-Translations.md)
* [Default Language for All Users](https://github.com/wekan/wekan/issues/3927)
* [Features](Features/Features.md)
* [Planning Poker](Features/Planning-Poker.md)
* [Scaling](Webserver/Scaling.md)
* [Custom Logo](Features/Custom-Logo.md)
* [Subtasks](Features/Subtasks.md)
* [Templates](Features/Templates.md)
* [Card Cover Image](Features/Cover.md)
* [Archive and Delete](Features/Archive-and-Delete.md)
* [Custom Fields](Features/Custom-Fields.md)
* [Fix Export board menu not visible on some boards](https://github.com/wekan/wekan/issues/1060)
* [RAM usage](https://github.com/wekan/wekan/issues/1088#issuecomment-311843230)
* [Swimlanes](Features/Swimlanes.md)
# <a name="Email"></a>Email
* [Email](Email/Troubleshooting-Mail.md)
# <a name="Settings"></a>Required Settings
* [Requirements](FAQ/Requirements.md)
* [Ports, hostsfile, how Internet works](https://gitub.com/wekan/wekan/issues/2896)
* [ROOT_URL Settings](Webserver/Settings.md)
# <a name="Webservers"></a>Webservers
* [Caddy](Webserver/Caddy.md)
* [Nginx](Webserver/Nginx.md)
* [Apache](Webserver/Apache.md)
* [OpenLiteSpeed](https://github.com/wekan/wekan/issues/3334#issuecomment-723651328)
* [Local self signed TLS](Webserver/Local-self-signed-TLS.md)
* [Let's Encrypt and Google Auth](Webserver/Lets-Encrypt-and-Google-Auth.md)
* [TLS with Node.js](https://github.com/wekan/wekan/issues/916)
* [Traefik and self-signed SSL certs](Webserver/Traefik-and-self-signed-SSL-certs.md)
# <a name="API"></a>REST API Docs
* API docs https://wekan.fi/docs/
* PHP Webhook receiver to WeKan API Python https://github.com/wekan/webhook/blob/main/public/index.php#L46
* API clients
* Python
* https://github.com/wekan/wekan/blob/main/api.py
* https://github.com/wekan/wekan-python-api-client
* https://github.com/wekan/python-wekan
* Other Python features https://github.com/wekan/wekan/blob/main/docs/Features/Python.md
* Go https://github.com/wekan/wego
* Other API
* [REST API Code](API/Code.md)
* [Login](API/REST-API.md)
* [User](API/User.md)
* [Role](API/Role.md)
* [Boards](API/Boards.md)
* [Lists](API/Lists.md)
* [Cards](API/Cards.md)
* [Checklists](API/Checklists.md)
* [Swimlanes](API/Swimlanes.md)
* [Custom Fields](API/Custom-Fields.md)
* [Integrations](API/Integrations.md)
# <a name="api-issue"></a>REST API issue
* [REST API Issue](https://github.com/wekan/wekan/issues/1037)
# <a name="api-client-code"></a>REST API client code
* [Example: New card with Python3 and REST API](API/New-card-with-Python3-and-REST-API.md)
* [Python client to REST API](https://github.com/wekan/wekan-python-api-client)
* [Go client to REST API](https://github.com/wekan/wego)
* [Wekan Sandstorm cards to CSV using Python](Platforms/FOSS/Sandstorm/Wekan-Sandstorm-cards-to-CSV-using-Python.md)
* [Excel and VBA](ImportExport/Excel-and-VBA.md)
# <a name="Webhooks"></a>Webhooks
* Per-board events sending at board right sidebar / Board Settings / Webhooks
* Check that webhook immediately responds with HTTP 200 OK, otherwise WeKan slows down
* [Global Webhook](https://github.com/wekan/wekan/pull/2665)
* PHP Webhook receiver to WeKan API Python https://github.com/wekan/webhook/blob/main/public/index.php#L46
* [Limiting Webhook data](https://github.com/wekan/wekan/issues/2830)
* [Receiving Webhooks](Webhooks/Receiving-Webhooks)
* [Java Webhooks](Webhooks/Java.md)
* [Outgoing Webhook to Discord/Slack/RocketChat/Riot](Webhooks/Outgoing-Webhook-to-Discord.md)
* [Outgoing Webhook to NodeRed](https://github.com/wekan/wekan/issues/2017)
* [Outgoing Webhook to PowerShell](https://github.com/wekan/wekan/issues/2518)
* [Outgoing Webhooks, CA and Let's Encrypt](Webhooks/WebHook-And-CA.md)
* [Outgoing Webhooks Data](Webhooks/Webhook-data.md)
* Outgoing Webhooks [Original Pull Request](https://github.com/wekan/wekan/pull/1119), [multiple Webhooks](https://github.com/wekan/wekan/pull/1199), [more parameters and response order](https://github.com/wekan/wekan/pull/1263)
# <a name="Development"></a>Development
* [Kadira integration](https://github.com/wekan/wekan/issues/2152)
* [Debugging](DeveloperDocs/Debugging.md)
* [Developer Docs for Standalone Wekan](DeveloperDocs/Developer-Documentation.md)
* [Developer Docs for Sandstorm Wekan](https://github.com/wekan/wekan/tree/main/docs/Platforms/FOSS/Sandstorm)
* [Adding new Snap setting to code](DeveloperDocs/Adding-new-Snap-settings-to-code.md)
* [Directory Structure](DeveloperDocs/Directory-Structure.md)
* [Beginner](https://github.com/wekan/wekan/labels/Beginner)
* [Maintainer FAQ](https://github.com/wekan/wekan-maintainer/wiki/FAQ)
# <a name="Issues"></a>Issues
* [Bugs](https://github.com/wekan/wekan/issues?q=is%3Aissue+is%3Aopen+label%3ABug)
* [Feature requests](https://github.com/wekan/wekan/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20feature)
* [Import / Export](https://github.com/wekan/wekan/issues?q=is%3Aissue+is%3Aopen+label%3AFeature%3AImport-export)
* [Drag and Drop](https://github.com/wekan/wekan/labels/Feature%3ADrag-and-drop)
* [Accessibility](https://github.com/wekan/wekan/labels/Accessibility)
* [Navigation:Keyboard](https://github.com/wekan/wekan/labels/Navigation%3AKeyboard)
* [Targets:Mobile-web](https://github.com/wekan/wekan/labels/Targets%3AMobile-web)
* [REST API](https://github.com/wekan/wekan/labels/API%3AREST)
* [Admin Panel](https://github.com/wekan/wekan/issues?q=is%3Aissue+is%3Aopen+label%3AFeature%3AAdmin-Panel)
* [Encryption](https://github.com/wekan/wekan/issues?q=is%3Aissue+is%3Aopen+label%3AFeature%3AEncryption)
* [Permissions](https://github.com/wekan/wekan/issues?q=is%3Aissue+is%3Aopen+label%3AFeature%3AUser-accounts%3APermissions)
* [Logs](https://github.com/wekan/wekan/issues?q=is%3Aissue+is%3Aopen+label%3AFeature%3ALogs)
* [Notifications](https://github.com/wekan/wekan/issues?q=is%3Aissue+is%3Aopen+label%3AFeature%3ANotifications)
* [Filters](https://github.com/wekan/wekan/issues?q=is%3Aissue+is%3Aopen+label%3AFeature%3AFilters)
* [Checklists](https://github.com/wekan/wekan/issues?q=is%3Aissue+is%3Aopen+label%3AFeature%3ACards%3AChecklists)
* [Swimlanes](https://github.com/wekan/wekan/issues?q=is%3Aissue+is%3Aopen+label%3AFeature%3ACards%3ASwimlanes)
* [LibreJS](https://github.com/wekan/wekan/issues/1040)
* [Markdown](https://github.com/wekan/wekan/issues?q=is%3Aissue+is%3Aopen+label%3AFeature%3AMarkdown)
[kanban board]: https://en.wikipedia.org/wiki/Kanban_board
[mit license]: https://github.com/wekan/wekan/blob/main/LICENSE
[sandstorm app demo]: https://demo.sandstorm.io/appdemo/m86q05rdvj14yvn78ghaxynqz7u2svw6rnttptxx49g1785cdv1h#
At https://wekan.fi
+17
View File
@@ -0,0 +1,17 @@
<html>
<head>
<meta charset="UTF-8">
<title>API: Wekan — Open-Source kanban</title>
<link rel="icon" href="../wekan-favicon.png">
<link rel="stylesheet" type="text/css" href="main.css">
<link href='https://fonts.googleapis.com/css?family=Droid+Sans' rel='stylesheet' type='text/css'>
</head>
<body>
<h1>Wekan API</h1>
<br />
<h2><a href="v7.93/">v7.93</a></h2>
</body>
</html>
Binary file not shown.
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
Loaded 100 of 1090 files, more files were not shown because too many files have changed in this diff. Show more