Wekan progress on x64 and ARM

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 platformsWekan 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

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

Plans for performance improvements in future

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