diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index b6cbf4271..aec9d7e55 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -55,7 +55,7 @@ jobs: # Build and push Docker image with Buildx (don't push on PR) # https://github.com/docker/build-push-action - name: Build and push Docker image - uses: docker/build-push-action@5176d81f87c23d6fc96624dfdbcd9f3830bbe445 + uses: docker/build-push-action@5cd11c3a4ced054e52742c5fd54dca954e0edd85 with: context: . push: ${{ github.event_name != 'pull_request' }} diff --git a/CHANGELOG.md b/CHANGELOG.md index e014856cb..a66c279ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,31 @@ Fixing other platforms In Progress. [How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585) +# Upcoming WeKan ® release + +This release adds the following updates: + +- Updated Browser compatibility matrix. + [Part 1](https://github.com/wekan/wekan/commit/cab285c34d1f159120ccd48b17a897e95bd48471), + [Part 2](https://github.com/wekan/wekan/commit/ec534c8cca3f0256091c2d870c128d26033d40ad). +- [Updated code of conduct](https://github.com/wekan/wekan/commit/cae6f38b8070cfcc2f2529027f7e66b965a19f05). + Thanks to xet7. +- [Updated Docker build actions](https://github.com/wekan/wekan/pull/5505). + Thanks to dependabot. +- Updated docs for building custom Docker image. + [Part 1](https://github.com/wekan/wekan/issues/5509), + [Part 2](https://github.com/wekan/wekan/commit/6d6d51310e4168cd0fc75f550d3af35df9ccef9f), + [Part 3](https://github.com/wekan/wekan/commit/a94cfd5b91d29f81e51e67ed03ba84f820d4892a). + +and fixes the following bugs: + +- [Fix ModernDark Mobile View List Titles](https://github.com/wekan/wekan/pull/5503). + Thanks to walster001. +- [Fix apparmor denied in syslog at Snap Candidate](https://github.com/wekan/wekan/commit/c3909edc5ee7a82b694b19ca7e022cbdfd12affd). + Thanks to webenefits and xet7. + +Thanks to above GitHub users for their contributions and translators for their translations. + # v7.55 2024-08-08 WeKan ® release This release fixes the following bugs: diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index f639fe496..ab3b34b15 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -11,7 +11,7 @@ For all code at WeKan GitHub Organization https://github.com/wekan ## Private reports -- Email support (at) wekan.team using [this PGP public key](support-at-wekan.team_pgp-publickey.asc) if possible +- Email support@wekan.team - Security issues: [SECURITY.md](SECURITY.md) - License violations - Anything private, sensitive or negative diff --git a/docker-compose.yml b/docker-compose.yml index 6b130b53f..bfc1bce6a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,13 +10,13 @@ # 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/wiki/Backup # 1) Stop Wekan: -# docker-compose stop +# docker compose stop # 2) Remove old Wekan app (wekan-app only, not that wekan-db container that has all your data) # docker rm wekan-app # 3) Get newest docker-compose.yml from https://github.com/wekan/wekan to have correct image, # for example: "image: quay.io/wekan/wekan" or version tag "image: quay.io/wekan/wekan:v4.52" # 4) Start Wekan: -# docker-compose up -d +# docker compose up -d #---------------------------------------------------------------------------------- # ==== OPTIONAL: DEDICATED DOCKER USER ==== # 1) Optionally create a dedicated user for Wekan, for example: @@ -36,14 +36,14 @@ # ---------------------------------------------------------------------------------- # ==== USAGE OF THIS docker-compose.yml ==== # 1) For seeing does Wekan work, try this and check with your web browser: -# docker-compose up +# docker compose up # 2) Stop Wekan and start Wekan in background: -# docker-compose stop -# docker-compose up -d +# docker compose stop +# docker compose up -d # 3) See running Docker containers: # docker ps # 4) Stop Docker containers: -# docker-compose stop +# docker compose stop # ---------------------------------------------------------------------------------- # ===== INSIDE DOCKER CONTAINERS, AND BACKUP/RESTORE ==== # https://github.com/wekan/wekan/wiki/Backup @@ -140,7 +140,7 @@ services: - wekan-tier #------------------------------------------------------------------------------------- # ==== BUILD wekan-app DOCKER CONTAINER FROM SOURCE, if you uncomment these ==== - # ==== and use commands: docker-compose up -d --build + # ==== and use commands: docker compose up -d --build #build: # context: . # dockerfile: Dockerfile @@ -585,7 +585,7 @@ services: # If using LDAPS: LDAP_ENCRYPTION=ssl #- LDAP_ENCRYPTION=false # - # The certification for the LDAPS server. Certificate needs to be included in this docker-compose.yml file. + # The certification for the LDAPS server. Certificate needs to be included in this docker compose.yml file. #- LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+G2FIdAgIC...-----END CERTIFICATE----- # # Reject Unauthorized Certificate diff --git a/docs/Platforms/FOSS/Docker/Docker.md b/docs/Platforms/FOSS/Docker/Docker.md index f66873817..5ca41dcb9 100644 --- a/docs/Platforms/FOSS/Docker/Docker.md +++ b/docs/Platforms/FOSS/Docker/Docker.md @@ -1,3 +1,47 @@ +## Building custom Docker image + +This is only for developers. For normal users, do not add these options, just start with `docker compose up -d` + +This only builds `wekan-app` Docker image, where is Node.js 14.x and all Javascript code. This does not build `wekan-db` MongoDB image, that usually does not require modifications. + +Alpine Linux does not work properly with current Meteor 2 based WeKan. Ubuntu works, and has newest security fixes. + +Only amd64 currently works. Currently used Node.js 14.x segfaults at arm64 and s390x. Only Node.js 14.x is compatible with current version of Meteor 2 based WeKan. Trying to upgrade is in progress https://github.com/wekan/wekan/issues/5475 + +Dockerfile is at https://raw.githubusercontent.com/wekan/wekan/main/Dockerfile + +For building custom image, and then running it, uncomment these lines, +that are currently here, but line numbers could change, if that docker-compose.yml +is later modified: + +https://github.com/wekan/wekan/blob/main/docker-compose.yml#L144-L146 + +After your above modifications, text should look like this: + +``` + #------------------------------------------------------------------------------------- + # ==== BUILD wekan-app DOCKER CONTAINER FROM SOURCE, if you uncomment these ==== + # ==== and use commands: docker compose up -d --build + build: + context: . + dockerfile: Dockerfile + #------------------------------------------------------------------------------------- +``` + +Then modify ROOT_URL, etc settings as needed, see https://github.com/wekan/wekan/wiki/Settings + +Start WeKan with custom built Dockerfile with this command: +``` +docker compose up -d --build +``` +If you like to only build Dockerfile: +``` +docker build . +``` +You can also push your image to some Docker registry, like here it's done for WeKan: + +https://github.com/wekan/wekan/blob/main/releases/docker-push-wekan.sh + ## Docker Containers - [GitHub](https://github.com/wekan/wekan/pkgs/container/wekan) @@ -12,7 +56,7 @@ export ROOT_URL=http://SERVER-IP-ADDRESS-HERE ``` Then start WeKan with: ``` -docker-compose up -d +docker compose up -d ``` SSL/TLS info at https://github.com/wekan/wekan/wiki/Settings @@ -35,7 +79,7 @@ There is much more settings at well-documented [docker-compose.yml](https://raw. If you don't need to build Wekan, use prebuilt container with docker-compose.yml from https://github.com/wekan/wekan like this: ``` -docker-compose up -d +docker compose up -d ``` If you like to build from source, clone Wekan repo: @@ -46,7 +90,7 @@ Then edit docker-compose.yml with [these lines uncommented](https://github.com/w ``` #------------------------------------------------------------------------------------- # ==== BUILD wekan-app DOCKER CONTAINER FROM SOURCE, if you uncomment these ==== - # ==== and use commands: docker-compose up -d --build + # ==== and use commands: docker compose up -d --build build: context: . dockerfile: Dockerfile @@ -62,7 +106,7 @@ Then edit docker-compose.yml with [these lines uncommented](https://github.com/w ``` Then you can build Wekan with ``` -docker-compose up -d --build +docker compose up -d --build ``` ## Example for latest Wekan, port 2000 to Docker Wekan internal port 8080 @@ -112,7 +156,7 @@ docker rm wekan-app ``` Then edit docker-compose.yml to have higher wekan-app image version tag, like `image: wekanteam/wekan:v4.12`. Then: ``` -docker-compose up -d +docker compose up -d ``` ### Images Quay: `image: quay.io/wekan/wekan:v4.07` @@ -206,25 +250,25 @@ docker run -d --restart=always --name wekan --link "wekan-db:db" -e "MONGO_URL=m - No build step and pull from [quay](https://quay.io/repository/wekan/wekan?tab=tags) ``` -sudo docker-compose up -d --nobuild +sudo docker compose up -d --nobuild ``` - Build default ``` -sudo docker-compose up -d --build +sudo docker compose up -d --build ``` - Build with newer Node version: ``` echo 'NODE_VERSION=v8.11.1' >> .env && \ -sudo docker-compose up -d --build +sudo docker compose up -d --build ``` - Build custom image off a release candidate or beta for meteor ``` echo 'METEOR_EDGE=1.5-beta.17' >> .env && \ echo 'USE_EDGE=true' >> .env && \ -sudo docker-compose up -d --build +sudo docker compose up -d --build ``` ## Docker env for Wekan dev @@ -239,4 +283,4 @@ sudo docker-compose up -d --build * [Caddy Webserver Config](Caddy-Webserver-Config) * [Nginx Webserver Config](Nginx-Webserver-Config) -* [Apache Webserver Config](Apache) \ No newline at end of file +* [Apache Webserver Config](Apache) diff --git a/snap-src/bin/mongodb-control b/snap-src/bin/mongodb-control index a218c2af1..0954c94c0 100755 --- a/snap-src/bin/mongodb-control +++ b/snap-src/bin/mongodb-control @@ -80,17 +80,14 @@ if [ -z "$MONGO_URL" ]; then # start mongo deamon BIND_OPTIONS="" - SH_BIND_OPTIONS="" if [ "nill" != "$MONGODB_BIND_UNIX_SOCKET" ] && [ "x" != "x${MONGODB_BIND_UNIX_SOCKET}" ]; then BIND_OPTIONS+=" --unixSocketPrefix $MONGODB_BIND_UNIX_SOCKET" fi if [ "x" != "x${MONGODB_BIND_IP}" ]; then BIND_OPTIONS+=" --bind_ip $MONGODB_BIND_IP" - SH_BIND_OPTIONS+=" --host $MONGODB_BIND_IP" fi if [ "x" != "x${MONGODB_PORT}" ]; then BIND_OPTIONS+=" --port $MONGODB_PORT" - SH_BIND_OPTIONS+=" --port $MONGODB_PORT" fi echo "mongodb bind options: $BIND_OPTIONS" @@ -112,16 +109,16 @@ if [ -z "$MONGO_URL" ]; then # Disable MongoDB telemetry and free monitoring - mongosh wekan --eval 'disableTelemetry();' $SH_BIND_OPTIONS - mongosh wekan --eval 'db.disableFreeMonitoring();' $SH_BIND_OPTIONS + mongosh wekan --eval 'disableTelemetry();' $BIND_OPTIONS + mongosh wekan --eval 'db.disableFreeMonitoring();' $BIND_OPTIONS # Snap: Disable apparmor="DENIED" at syslog # https://github.com/wekan/wekan/issues/4855 - mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $SH_BIND_OPTIONS + mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $BIND_OPTIONS # Drop indexes on database upgrade, when starting MongoDB - #mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $SH_BIND_OPTIONS - mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' $SH_BIND_OPTIONS + #mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $BIND_OPTIONS + mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' $BIND_OPTIONS # Delete incomplete uploads so that they would not prevent starting WeKan - mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $SH_BIND_OPTIONS + mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $BIND_OPTIONS else @@ -141,15 +138,15 @@ else fi # Disable MongoDB telemetry and free monitoring - mongosh wekan --eval 'disableTelemetry();' $SH_BIND_OPTIONS - mongosh wekan --eval 'db.disableFreeMonitoring();' $SH_BIND_OPTIONS + mongosh wekan --eval 'disableTelemetry();' $BIND_OPTIONS + mongosh wekan --eval 'db.disableFreeMonitoring();' $BIND_OPTIONS # Snap: Disable apparmor="DENIED" at syslog # https://github.com/wekan/wekan/issues/4855 - mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $SH_BIND_OPTIONS + mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $BIND_OPTIONS # Drop indexes on database upgrade, when starting MongoDB - #mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $SH_BIND_OPTIONS - mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.2" });' $SH_BIND_OPTIONS + #mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $BIND_OPTIONS + mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.2" });' $BIND_OPTIONS # Delete incomplete uploads so that they would not prevent starting WeKan - mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $SH_BIND_OPTIONS + mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $BIND_OPTIONS fi