mirror of
https://github.com/wekan/wekan.git
synced 2025-09-21 17:40:48 +02:00
262 lines
9.7 KiB
YAML
262 lines
9.7 KiB
YAML
name: wekan
|
|
version: '7.95'
|
|
base: core24
|
|
summary: Open Source kanban
|
|
description: |
|
|
WeKan ® is an Open Source and collaborative kanban board application.
|
|
|
|
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.
|
|
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
|
|
|
|
# Use platforms instead of architectures for core24 base
|
|
platforms:
|
|
amd64:
|
|
build-on: amd64
|
|
build-for: amd64
|
|
|
|
plugs:
|
|
mongodb-plug:
|
|
interface: content
|
|
target: $SNAP_DATA/shared
|
|
|
|
hooks:
|
|
configure:
|
|
plugs:
|
|
- network
|
|
- network-bind
|
|
|
|
slots:
|
|
mongodb-slot:
|
|
interface: content
|
|
write:
|
|
- $SNAP_DATA/share
|
|
|
|
apps:
|
|
wekan:
|
|
command: ./bin/wekan-control
|
|
daemon: simple
|
|
plugs: [network, network-bind]
|
|
|
|
mongodb:
|
|
command: ./bin/mongodb-control
|
|
daemon: simple
|
|
plugs: [network, network-bind]
|
|
|
|
caddy:
|
|
command: ./bin/caddy-control
|
|
daemon: simple
|
|
plugs: [network, network-bind]
|
|
|
|
help:
|
|
command: ./bin/wekan-help
|
|
|
|
database-backup:
|
|
command: ./bin/mongodb-backup
|
|
plugs: [network, network-bind]
|
|
|
|
database-list-backups:
|
|
command: ./bin/database-list-backups
|
|
|
|
database-restore:
|
|
command: ./bin/mongodb-restore
|
|
plugs: [network, network-bind]
|
|
|
|
parts:
|
|
mongodb:
|
|
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2204-7.0.24.tgz
|
|
plugin: dump
|
|
stage-packages:
|
|
- libssl3
|
|
- libcurl4
|
|
- libstemmer0d
|
|
- zlib1g
|
|
- libsnappy1v5
|
|
- libyaml-cpp0.8
|
|
- libpcre3
|
|
- libpcrecpp0v5
|
|
- libboost-system1.74.0
|
|
- libboost-iostreams1.74.0
|
|
- libboost-filesystem1.74.0
|
|
- libboost-program-options1.74.0
|
|
- libgoogle-perftools4
|
|
stage:
|
|
- bin
|
|
- usr
|
|
prime:
|
|
- bin
|
|
- usr
|
|
|
|
mongosh:
|
|
source: https://downloads.mongodb.com/compass/mongosh-2.5.3-linux-x64.tgz
|
|
plugin: dump
|
|
|
|
mongotools:
|
|
source: https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2404-x86_64-100.12.2.tgz
|
|
plugin: dump
|
|
|
|
wekan:
|
|
source: .
|
|
plugin: npm
|
|
npm-node-version: 14.21.3
|
|
npm-include-node: true
|
|
build-packages:
|
|
- build-essential
|
|
- ca-certificates
|
|
- apt-utils
|
|
- python3
|
|
- g++
|
|
- capnproto
|
|
- curl
|
|
- wget
|
|
- unzip
|
|
- execstack
|
|
- nodejs
|
|
- npm
|
|
- git # Add git for cloning migratemongo
|
|
stage-packages:
|
|
- libfontconfig1
|
|
override-build: |
|
|
echo "Cleaning environment first"
|
|
#rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules
|
|
rm -rf .build
|
|
#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"
|
|
#npm -g install n --unsafe-perm
|
|
#n 14.21.4
|
|
#npm -g install node-gyp --unsafe-perm
|
|
#npm -g install node-pre-gyp --unsafe-perm
|
|
#npm -g install fibers --unsafe-perm
|
|
##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
|
|
#npm -g install meteor --unsafe-perm --allow-superuser
|
|
#rm -rf .build
|
|
##chmod u+w *.json
|
|
#npm install --unsafe-perm
|
|
##npm install
|
|
##meteor build .build --directory --allow-superuser
|
|
# Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc.
|
|
##rm -rf .build/bundle/programs/web.browser.legacy
|
|
# Change to directory .build/bundle/programs/server
|
|
##cd .build/bundle/programs/server
|
|
##chmod u+w *.json
|
|
#npm install --unsafe-perm
|
|
##npm install
|
|
##cd node_modules/fibers
|
|
##node build.js
|
|
##cd ../../../../../..
|
|
# Cleanup
|
|
mkdir .build
|
|
cd .build
|
|
wget https://github.com/wekan/wekan/releases/download/v7.95/wekan-7.95-amd64.zip
|
|
unzip wekan-7.95-amd64.zip
|
|
rm wekan-7.95-amd64.zip
|
|
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 ../..
|
|
# Add fibers multi arch
|
|
#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 ../../../../../../..
|
|
# Copy to Snap
|
|
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
|
|
mkdir $SNAPCRAFT_PART_INSTALL/bin
|
|
cp -p node-v14.21.4-linux-x64/bin/node $SNAPCRAFT_PART_INSTALL/bin/
|
|
rm -rf node-v14.21.4-linux-x64
|
|
cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/
|
|
cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/
|
|
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
|
|
|
|
# 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..."
|
|
cp -pR migratemongo $SNAPCRAFT_PART_INSTALL/
|
|
rm -rf migratemongo
|
|
|
|
# Delete phantomjs that is in accounts-lockout
|
|
#rm -rf $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/lucasantoniassi_accounts-lockout/node_modules/phantomjs-prebuilt
|
|
# Delete temporary files
|
|
#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
|
|
# Meteor 1.8.x additional .swp remove
|
|
#rm -f $SNAPCRAFT_PART_INSTALL/programs/server/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
|
|
# Delete fibers for other archs
|
|
#rm -rf $SNAPCRAFT_PART_INSTALL/programs/server/node_modules/fibers/bin/linux-ia32*
|
|
# ostrio tmp remove
|
|
#rm -rf $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/ostrio_files/node_modules/request-libcurl/.node_modules-garbage*
|
|
|
|
organize:
|
|
README: README.wekan
|
|
prime:
|
|
- -lib/node_modules/node-pre-gyp/node_modules/tar/lib/.unpack.js.swp
|
|
- -lib/node_modules/weka*
|
|
|
|
helpers:
|
|
source: snap-src
|
|
plugin: dump
|
|
|
|
caddy:
|
|
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
|
|
stage:
|
|
- bin/caddy
|
|
- license/CADDY_LICENSE
|
|
- etc/Caddyfile
|