mirror of
https://github.com/wekan/wekan.git
synced 2026-11-08 19:35:19 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d09a649ac | ||
|
|
040ed6e605 | ||
|
|
d7e36f5157 | ||
|
|
1a08003834 | ||
|
|
64bc6ea71c | ||
|
|
ef4161889a | ||
|
|
dd9d6083c0 | ||
|
|
027b6a45a1 | ||
|
|
b717e5d7ad | ||
|
|
74965f5f95 | ||
|
|
fa812faf6d | ||
|
|
b459151798 | ||
|
|
73679919fb | ||
|
|
58b0ae29e1 | ||
|
|
773931a538 | ||
|
|
1ef814fe6b | ||
|
|
b010c687f3 | ||
|
|
05950fb287 | ||
|
|
56a685983b | ||
|
|
339c0a2bb7 | ||
|
|
a790453c9a | ||
|
|
04eb8a8fbb | ||
|
|
4ab1bc9638 | ||
|
|
699b9a9c71 | ||
|
|
3a203d274d | ||
|
|
887511fdda | ||
|
|
64f58455ff | ||
|
|
5163ec0da2 | ||
|
|
c47eb013b4 | ||
|
|
d4cbe12316 | ||
|
|
794222c85e | ||
|
|
675c661114 | ||
|
|
7700efde1f | ||
|
|
16832124ce | ||
|
|
bf5ca3d3eb | ||
|
|
189b6cae84 | ||
|
|
9bf0114148 | ||
|
|
9f3bbb5ed2 | ||
|
|
85b981e1c7 | ||
|
|
eb5ac8b7dd | ||
|
|
5ef32af248 | ||
|
|
9cb5837e3e | ||
|
|
5ae9c2b7ac | ||
|
|
7d16fed34e | ||
|
|
db2701f1d7 | ||
|
|
76818e2c98 | ||
|
|
c4e084ffbb | ||
|
|
a10b28bf6a | ||
|
|
90c0110615 | ||
|
|
73c594bb36 | ||
|
|
903544c680 | ||
|
|
32e1ec9d22 | ||
|
|
3516a21329 | ||
|
|
f6198dee30 | ||
|
|
13f14df880 | ||
|
|
f3ae64cf21 | ||
|
|
1820804b9f | ||
|
|
d3d76b12f7 | ||
|
|
51ad6ed99d | ||
|
|
1c8cea9ada | ||
|
|
a0c190137d | ||
|
|
83e1845290 | ||
|
|
052d8c1584 | ||
|
|
7b0e2213cf | ||
|
|
05e6d15478 | ||
|
|
be0283381b | ||
|
|
379a92846e | ||
|
|
bb6163a70f | ||
|
|
10f009f5b1 | ||
|
|
19c882ed2f | ||
|
|
e7cb6ac6f0 | ||
|
|
38e488ee4a | ||
|
|
589fa30fd1 | ||
|
|
64d351d835 | ||
|
|
4151ecb7e7 | ||
|
|
f4b5e5f07d | ||
|
|
c1639ea589 | ||
|
|
21b0ab064c | ||
|
|
1c0d8e9964 | ||
|
|
8a7949a8ab | ||
|
|
3c36db33e9 | ||
|
|
59d0cfc457 | ||
|
|
72f6d96dbc | ||
|
|
49c81f5426 | ||
|
|
08ed1705b1 | ||
|
|
47088c30c0 | ||
|
|
539dbdc034 |
No files matched your search
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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.
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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.
|
||||
#
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
wekan.fi
|
||||
@@ -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
@@ -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
|
||||
@@ -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
Reference in new issue
Block a user