About Wekan
Wekan is Trello-like Kanban board with Open Source MIT license. Wekan is made with Meteor Javascript Framework, using Node.js and MongoDB. Wekan has Boards, Lists, Cards, Attachments, Checklists, WIP Limits, Swimlanes, Import from Trello, Copy Checklist Template to Multiple Cards, Copy/Move card to same or another board, Custom Fields, etc. You can install Wekan server to your x64 laptop or server, and use Wekan with your webbrowser. Wekan is available for x64 platforms like source install, Snap, Docker, VirtualBox Appliance, Sandstorm, and others. Screenshots of current and upcoming Wekan platforms. Wekan v1.00 was released 2018-05-22. More info and download at Wekan website. There is talk by Wekan author Maxime Quandalle at YouTube. Current maintainer of Wekan is xet7.
About CNCF Community Infrastructure Lab
The Cloud Native Computing Foundation is a non-profit organization that hosts Kubernetes, Prometheus, CoreDNS, and other projects. The Foundation helps open-source projects to thrive, and their Community Infrastructure Lab (CIL) provides free access to state-of-the-art computing resources (like bare metal x64 and arm64 servers) for open source developers working to advance cloud native computing. CNCF members from many big companies makes providing bare metal servers possible. CNCF is one of the Linux Foundation’s largest sub-foundations. More info at CNCF FAQ and interview at FLOSS Weekly 452.
Done: Wekan dependency version upgrades
- Meteor from 1.4 to 1.6.0.1 – latest
- Node from 4.6.7 to 8.11.1
- NPM from 4.6.1 to 6.0.1
- fibers from 1.0.15 to 2.0.0
- etc
x64 platforms status 2018-01
- Source install: Works with rebuild-meteor-1.6.sh script, if you add there new version numbers from above.
- Standalone Docker: Works. Upgraded from Debian 8 to Debian 10, can be tested with Docker Hub tag latestdevel at https://hub.docker.com/r/wekanteam/wekan/ and otherwise same docker-compose.yml file at https://github.com/wekan/wekan-mongodb .
- Ubuntu Snap: Some build problem “Store upload failed: package contains external symlinks: lib/node_modules/wekan “. This is now 2018-05 solved.
- Sandstorm: Some build problem. This is now 2018-05 solved.
ARM platforms status 2018-01
- I did get ARM etc bare metal access from CNCF.
- Server ARM 64bit, more specifically arm64 / aarch64 with about 125 GB RAM and 300GB harddisk.
- Server has Debian 9.
- Currently I’m stuck at building fibers.
- ARM platforms are different. Most Raspberry Pi OS’s are 32bit distros like Raspbian are 32bit, so it would still need cross-compiling for armhf from x86, or compiling in emulator like qemu. There are 64bit arm64 distros for Raspberry Pi 3: Hypriot based on Debian 9, FreeBSD , LinuxKit. Also Wekan usually needs some hardware with at least 1 GB RAM.
- Docker is available for RasPi: blog post1 and blog post 2.
Getting locale working:
locale-gen en_US.utf8
Having fast global search for filenames working:
apt install mlocate
updatedb
locate somefilename-here | xargs grep 'some text to search'
Another slower way to search recursively in current directory is, for example searching for some text in wekan code directory:
cd wekan
find . | xargs grep 'some text here to search' -sl | less
That shows only filenames where it is. If you want to also see file content, leave out -sl . If you don’t want pagination with less command, leave out | less .
I added new user so I can compile as normal user, and also installed sudo, git, etc.
useradd wekan
passwd wekan
apt install sudo
export EDITOR=nano
visudo
and there added access to all for wekan user:
wekan ALL=(ALL:ALL) ALL
Using normal user account (non-root) is better, because without it you would need all kinds of workaround with npm packages and meteor like this:
npm -g install --unsafe-perm fibers
Node versions with NVM:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
nvm install 8.9.3
NPM:
git clone https://github.com/npm/npm.git
cd npm
make
make install
MongoDB 3.2.x:
sudo apt install mongodb mongodb-server mongodb-clients
sudo systemctl start mongodb
sudo systemctl enable mongodb
Building Meteor 1.4 ARM version, I did not find newer version yet:
git clone https://github.com/4commerce-technologies-AG/meteor.git
git checkout release-1.4-universal-beta
sudo apt-get install build-essential debian-keyring autoconf automake libtool flex bison scons git mongodb gcc python
cd meteor
./scripts/generate-dev-bundle.sh
Wekan related:
sudo apt install build-essential capnproto git curl
Fibers, currently stuck building it:
git clone git://github.com/laverdet/node-fibers.git
cd node-fibers
node ./build.js
It complains about ld-linux.so.2 that’s for x64 when correct one would be ld-linux-aarch64.so.1.
There could be fibers patch here but I did not get it working yet, maybe with some of these:
git clone https://github.com/4commerce-technologies-AG/node-fibers.git#v1.0.13-patch-arm64
sudo npm -g install fibers@https://github.com/4commerce-technologies-AG/node-fibers.git#v1.0.13-patch-arm64
Performance improvements included in Wekan 2018-05-22
- Wekan v0.84 2018-04-16 Change from Node 8.9.3 to custom compiled Node v8.11.1 from Sandstorm that has Node source code here, from Sandstorm fork of Node includes temporary fix. There is in progress research about root cause, and fixes will be included both to Meteor and Node. Custom Node and Wekan releases are hosted at https://releases.wekan.team . Also, increase fiber poolsize, increase ulimit to 100 000 in systemd config mentioned in Install from source section – not included to all platforms yet. It’s also possible to change to use Redis Oplog to increase Meteor performance.
- Wekan v0.61 2017-12-12 Added mixmax:smart-disconnect to disconnect backend when browser tab is not selected
- Wekan v0.60 2017-11-29 Fix frequent Subscriptions problem that make Excessive CPU usage
- Wekan v0.19 2017-05-06 Use Node version to 4.8.1 to solve 100% CPU issue in 6.x. Some still use Wekan with Node 4.x for lower resource usage.
- Wekan v0.11.1-rc2 2017-03-05 Improve Wekan performance by adding indexes to MongoDB.
Plans for performance improvements in future
- Reduce polling intervals between Meteor updates
- Increase ulimit in Wekan Snap, if possible
- Increase ulimit in Wekan Docker, if possible
- Do more Wekan Debugging, look at Dtrace talks, and running Wekan on SmartOS, Triton and other goals mentioned at Wekan CNCF GitHub issue.
- Look at other ways to increase performance
What CNCF servers have enabled to do
Status 2018-05
- Release new version of Wekan 3 times a day, on those days when there is a lot of progress. I (xet7) connect x64 server using x2go Open Source Remote desktop software (uses ssh transport), so I see desktop running at server. There I have installed VirtualBox, and inside VirtualBox I build Meteor bundle versions and VirtualBox versions of Wekan. It works very fast, because bare metal server has 32 GB RAM and SSD harddisk. Without those, I would be building those in my Core 2 Duo laptop (that was donated to me from relative), that I’m using currently, because I destroyd my faster laptop by spilling some water to it (ThinkPad had Intel i3 processor, it was donated to me by my previous employer). Basically, most of Wekan runs on donated hardware, time, and Open Source software, by worldwide Wekan community.
- Build Wekan, Sandstorm, Friend, etc Open Source projects on that hardware, and enabling the current fast progress of Wekan.
- x64 server has Wekan Snap installed, that incudes Caddy and Wekan. So https://releases.wekan.team release download server is served by Wekan snap on CNCF server.
- On x64 server Wekan snap, Wekan versions like Docker/Snap/VirtualBox etc are tested, and running Wekan boards used to plan future Wekan features with Wekan contributors
- On arm64 server, I have getting Wekan running on arm64 in progress:
- I have some problems with building fibers package currently.
- In official Meteor.js Javascript code there is listed supported platforms, so to add for example arm64, text arm64 (or similar) needs to be added as allowed to 3 textfiles. It would be good that limitations from official Meteor frameworks code would be removed, because it’s just C, Javascript etc code, it usually builds just fine on all processors that have Linux and enough RAM, CPU etc capacity.
Planned
- Add triggers, so then new release tag is added to GitHub, then CNCF servers will build Wekan VirtualBox etc other versions automatically.
- Add tests, so that if something gets broken, tests could notify about that.
- Add builds for more platforms, and other processor architectures.
- Add performance tests.
- Fix Wekan Gogs integration, that is currently broken, because modifications about Wekan’s new feature Swimlanes is missing from that intregration.
- Add IFTTT to Wekan, making tests on CNCF servers to verify that all the integrations work.
Future
xet7
On behalf of Wekan Team