2017-06-26 17:04:27 +00:00
name : wekan
2025-08-18 18:54:35 +03:00
version : '7.94'
2025-06-26 05:39:37 +03:00
base : core24
2021-10-09 14:22:26 +03:00
summary : Open Source kanban
2017-06-26 17:04:27 +00:00
description : |
2021-10-09 14:22:26 +03:00
WeKan ® is an Open Source and collaborative kanban board application.
2017-06-26 17:04:27 +00:00
2025-06-26 05:39:37 +03:00
Whether you're maintaining a personal todo list, planning your holidays with some friends, or working in a team on your next revolutionary idea, Kanban boards are an unbeatable tool to keep your things organized. They give you a visual overview of the current state of your project, and make you productive by allowing you to focus on the few items that matter the most.
2017-06-26 17:04:27 +00:00
Depending on target environment, some configuration settings might need to be adjusted.
For full list of configuration options call :
$ wekan.help
confinement : strict
grade : stable
2025-07-05 16:59:33 +03:00
# Use platforms instead of architectures for core24 base
2025-06-26 05:39:37 +03:00
platforms :
amd64 :
2025-07-05 20:11:13 +03:00
build-on : amd64
2025-06-26 05:39:37 +03:00
build-for : amd64
2017-06-26 17:04:27 +00:00
plugs :
mongodb-plug :
interface : content
target : $SNAP_DATA/shared
2018-03-01 11:53:21 +00:00
hooks :
configure :
plugs :
- network
- network-bind
2017-06-26 17:04:27 +00:00
slots :
mongodb-slot :
interface : content
write :
- $SNAP_DATA/share
apps :
wekan :
2022-06-16 00:56:54 +03:00
command : ./bin/wekan-control
2017-06-26 17:04:27 +00:00
daemon : simple
plugs : [ network, network-bind]
mongodb :
2022-06-16 00:56:54 +03:00
command : ./bin/mongodb-control
2017-06-26 17:04:27 +00:00
daemon : simple
plugs : [ network, network-bind]
2017-11-06 10:47:50 +00:00
caddy :
2022-06-16 00:56:54 +03:00
command : ./bin/caddy-control
2017-11-04 19:23:28 +00:00
daemon : simple
plugs : [ network, network-bind]
2017-06-26 17:04:27 +00:00
help :
2022-06-16 00:56:54 +03:00
command : ./bin/wekan-help
2017-06-26 17:04:27 +00:00
database-backup :
2022-06-16 00:56:54 +03:00
command : ./bin/mongodb-backup
2017-06-26 17:04:27 +00:00
plugs : [ network, network-bind]
database-list-backups :
2022-06-16 00:56:54 +03:00
command : ./bin/database-list-backups
2017-06-26 17:04:27 +00:00
database-restore :
2022-06-16 00:56:54 +03:00
command : ./bin/mongodb-restore
2017-06-26 17:04:27 +00:00
plugs : [ network, network-bind]
parts :
mongodb :
2025-08-18 18:30:21 +03:00
source : https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2204-7.0.23.tgz
2017-06-26 17:04:27 +00:00
plugin : dump
2022-05-23 22:32:45 +03:00
stage-packages :
2025-06-26 05:39:37 +03:00
- libssl3
2022-06-16 00:56:54 +03:00
- libcurl4
- libstemmer0d
- zlib1g
- libsnappy1v5
2025-06-26 05:39:37 +03:00
- libyaml-cpp0.8
2022-06-16 00:56:54 +03:00
- libpcre3
- libpcrecpp0v5
2025-06-26 05:39:37 +03:00
- libboost-system1.74.0
- libboost-iostreams1.74.0
- libboost-filesystem1.74.0
- libboost-program-options1.74.0
2022-06-16 00:56:54 +03:00
- libgoogle-perftools4
2019-08-06 20:31:12 +03:00
stage :
2025-06-26 05:39:37 +03:00
- bin
- usr
2019-08-06 20:31:12 +03:00
prime :
2025-06-26 05:39:37 +03:00
- bin
- usr
2019-08-06 20:31:12 +03:00
2024-01-28 14:11:38 +02:00
mongosh :
2025-06-26 05:39:37 +03:00
source : https://downloads.mongodb.com/compass/mongosh-2.5.3-linux-x64.tgz
2024-01-28 14:11:38 +02:00
plugin : dump
2023-02-02 14:48:04 +02:00
2024-01-28 14:11:38 +02:00
mongotools :
2025-06-26 05:39:37 +03:00
source : https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2404-x86_64-100.12.2.tgz
2024-01-28 14:11:38 +02:00
plugin : dump
2023-02-02 14:48:04 +02:00
2017-06-26 17:04:27 +00:00
wekan :
source : .
2022-05-23 22:32:45 +03:00
plugin : npm
2023-02-18 01:21:28 +02:00
npm-node-version : 14.21 .3
2025-06-26 05:39:37 +03:00
npm-include-node : true
2019-07-18 16:10:15 -05:00
build-packages :
2022-02-06 11:03:04 +02:00
- build-essential
2019-07-18 16:10:15 -05:00
- ca-certificates
- apt-utils
2022-05-23 23:44:16 +03:00
- python3
2019-08-05 13:55:04 +03:00
- g++
2019-08-06 20:31:12 +03:00
- capnproto
2019-07-18 16:10:15 -05:00
- curl
2022-06-16 01:04:17 +03:00
- wget
2022-06-16 01:57:51 +03:00
- unzip
2019-08-06 20:31:12 +03:00
- execstack
2020-01-11 20:19:23 +02:00
- nodejs
2019-08-06 20:31:12 +03:00
- npm
2025-06-26 05:39:37 +03:00
- git # Add git for cloning migratemongo
2019-08-05 13:55:04 +03:00
stage-packages :
- libfontconfig1
2018-04-20 18:30:48 +03:00
override-build : |
2017-06-26 17:04:27 +00:00
echo "Cleaning environment first"
2022-06-16 00:56:54 +03:00
#rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules
2019-01-18 11:44:53 +01:00
rm -rf .build
2022-05-24 00:01:13 +03:00
#echo "Using http npm packages so speedup install process https://stackoverflow.com/questions/39760113/callback-called-more-than-once-while-running-npm-install"
#echo "registry=http://registry.npmjs.org/" > ~/.npmrc
#echo "Installing npm, node-gyp, node-pre-gyp, fibers"
2022-05-24 00:14:12 +03:00
#npm -g install n --unsafe-perm
2023-08-02 06:01:00 +03:00
#n 14.21.4
2022-05-24 00:14:12 +03:00
#npm -g install node-gyp --unsafe-perm
#npm -g install node-pre-gyp --unsafe-perm
#npm -g install fibers --unsafe-perm
2022-06-16 00:56:54 +03:00
##echo "Installing meteor"
##curl https://install.meteor.com/ -o install_meteor.sh
##chmod +x install_meteor.sh
##sh install_meteor.sh
##rm install_meteor.sh
2022-05-24 00:46:41 +03:00
#npm -g install meteor --unsafe-perm --allow-superuser
2022-06-16 00:56:54 +03:00
#rm -rf .build
##chmod u+w *.json
#npm install --unsafe-perm
##npm install
##meteor build .build --directory --allow-superuser
2020-04-25 03:47:44 +03:00
# Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc.
2022-06-16 00:56:54 +03:00
##rm -rf .build/bundle/programs/web.browser.legacy
2020-01-16 06:07:22 +02:00
# Change to directory .build/bundle/programs/server
2022-06-16 00:56:54 +03:00
##cd .build/bundle/programs/server
##chmod u+w *.json
#npm install --unsafe-perm
##npm install
##cd node_modules/fibers
##node build.js
##cd ../../../../../..
2021-02-06 10:26:34 +02:00
# Cleanup
2022-06-16 00:56:54 +03:00
mkdir .build
cd .build
2025-08-18 18:54:35 +03:00
wget https://github.com/wekan/wekan/releases/download/v7.94/wekan-7.94-amd64.zip
unzip wekan-7.94-amd64.zip
rm wekan-7.94-amd64.zip
2022-06-16 00:56:54 +03:00
cd ..
##cd .build/bundle
##find . -type d -name '*-garbage*' | xargs rm -rf
##find . -name '*phantom*' | xargs rm -rf
##find . -name '.*.swp' | xargs rm -f
##find . -name '*.swp' | xargs rm -f
##cd ../..
2021-02-06 10:26:34 +02:00
# Add fibers multi arch
2021-03-03 18:16:29 +02:00
#cd .build/bundle/programs/server/node_modules/fibers/bin
#curl https://releases.wekan.team/fibers-multi.7z -o fibers-multi.7z
#7z x fibers-multi.7z
#rm fibers-multi.7z
#cd ../../../../../../..
2021-02-06 10:26:34 +02:00
# Copy to Snap
2023-08-02 06:01:00 +03:00
wget https://github.com/wekan/node-v14-esm/releases/download/v14.21.4/node-v14.21.4-linux-x64.tar.xz
tar -xf node-v14.21.4-linux-x64.tar.xz node-v14.21.4-linux-x64/bin/node
rm node-v14.21.4-linux-x64.tar.xz
2022-06-16 00:56:54 +03:00
mkdir $SNAPCRAFT_PART_INSTALL/bin
2023-08-02 06:01:00 +03:00
cp -p node-v14.21.4-linux-x64/bin/node $SNAPCRAFT_PART_INSTALL/bin/
rm -rf node-v14.21.4-linux-x64
2017-06-26 17:04:27 +00:00
cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/
cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/
2019-09-05 23:05:50 +03:00
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
2025-06-26 05:39:37 +03:00
# Migrate MongoDB 3 to 6 - clone directly from git instead of downloading zip
echo "Cloning migratemongo repository..."
git clone https://github.com/wekan/migratemongo.git
echo "Copy migratemongo files to install directory..."
2023-12-19 01:07:30 +02:00
cp -pR migratemongo $SNAPCRAFT_PART_INSTALL/
rm -rf migratemongo
2025-06-26 05:39:37 +03:00
2020-09-13 11:51:56 +03:00
# Delete phantomjs that is in accounts-lockout
2021-02-06 10:26:34 +02:00
#rm -rf $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/lucasantoniassi_accounts-lockout/node_modules/phantomjs-prebuilt
2020-09-13 11:51:56 +03:00
# Delete temporary files
2021-02-06 10:26:34 +02:00
#rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/tar/lib/.mkdir.js.swp
#rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
#rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-gyp/node_modules/tar/lib/.mkdir.js.swp
2020-01-16 06:07:22 +02:00
# Meteor 1.8.x additional .swp remove
2021-02-06 10:26:34 +02:00
#rm -f $SNAPCRAFT_PART_INSTALL/programs/server/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
2020-09-13 11:51:56 +03:00
# Delete fibers for other archs
2021-02-06 10:26:34 +02:00
#rm -rf $SNAPCRAFT_PART_INSTALL/programs/server/node_modules/fibers/bin/linux-ia32*
2020-05-24 05:43:50 +03:00
# ostrio tmp remove
2021-02-06 10:26:34 +02:00
#rm -rf $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/ostrio_files/node_modules/request-libcurl/.node_modules-garbage*
2019-09-05 23:05:50 +03:00
2017-06-26 17:04:27 +00:00
organize :
README : README.wekan
2018-05-25 13:49:24 +00:00
prime :
- -lib/node_modules/node-pre-gyp/node_modules/tar/lib/.unpack.js.swp
2021-04-22 16:52:51 +03:00
- -lib/node_modules/weka*
2017-06-26 17:04:27 +00:00
helpers :
source : snap-src
plugin : dump
2017-11-04 19:23:28 +00:00
caddy :
2025-06-26 05:39:37 +03:00
plugin : nil
build-packages :
- debian-keyring
- debian-archive-keyring
- apt-transport-https
- gnupg
- curl
override-build : |
# Add Caddy repository
echo "Installing Caddy 2 from the official repository..."
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /tmp/caddy-stable-archive-keyring.gpg
mkdir -p /etc/apt/keyrings
cp /tmp/caddy-stable-archive-keyring.gpg /etc/apt/keyrings/
echo "deb [signed-by=/etc/apt/keyrings/caddy-stable-archive-keyring.gpg] https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main" > /etc/apt/sources.list.d/caddy-stable.list
apt update
apt -y install caddy
# Display installed Caddy version for confirmation
echo "Installed Caddy version:"
/usr/bin/caddy version
# Create directory structure in the snap
mkdir -p $SNAPCRAFT_PART_INSTALL/bin
# Copy Caddy binary
cp /usr/bin/caddy $SNAPCRAFT_PART_INSTALL/bin/
chmod +x $SNAPCRAFT_PART_INSTALL/bin/caddy
# Create license files manually since they don't exist in the package
mkdir -p $SNAPCRAFT_PART_INSTALL/license
echo "Caddy is licensed under the Apache License 2.0. See https://github.com/caddyserver/caddy/blob/master/LICENSE" > $SNAPCRAFT_PART_INSTALL/license/CADDY_LICENSE
# Create a basic default Caddyfile for the snap
mkdir -p $SNAPCRAFT_PART_INSTALL/etc
cat > $SNAPCRAFT_PART_INSTALL/etc/Caddyfile << 'EOF'
# Default Caddyfile for Wekan
# This is loaded by caddy-control script if no other config is provided
: 8080 {
reverse_proxy localhost:3000
}
EOF
2018-02-09 02:04:17 +00:00
stage :
2025-06-26 05:39:37 +03:00
- bin/caddy
- license/CADDY_LICENSE
- etc/Caddyfile