mirror of
https://github.com/wekan/wekan.git
synced 2025-04-23 13:37:09 -04:00
257 lines
10 KiB
YAML
257 lines
10 KiB
YAML
name: wekan
|
||
version: 0
|
||
version-script: git describe --tags | cut -c 2-
|
||
summary: The 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
|
||
|
||
architectures:
|
||
- 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: wekan-control
|
||
daemon: simple
|
||
plugs: [network, network-bind]
|
||
|
||
mongodb:
|
||
command: mongodb-control
|
||
daemon: simple
|
||
plugs: [network, network-bind]
|
||
|
||
caddy:
|
||
command: caddy-control
|
||
daemon: simple
|
||
plugs: [network, network-bind]
|
||
|
||
help:
|
||
command: wekan-help
|
||
|
||
database-backup:
|
||
command: mongodb-backup
|
||
plugs: [network, network-bind]
|
||
|
||
database-list-backups:
|
||
command: ls -al $SNAP_COMMON/db-backups/
|
||
|
||
database-restore:
|
||
command: mongodb-restore
|
||
plugs: [network, network-bind]
|
||
|
||
parts:
|
||
mongodb:
|
||
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.2.6.tgz
|
||
plugin: dump
|
||
stage-packages: [libssl1.0.0, libcurl3]
|
||
filesets:
|
||
mongo:
|
||
- usr
|
||
- bin
|
||
- lib
|
||
stage:
|
||
- $mongo
|
||
prime:
|
||
- $mongo
|
||
|
||
wekan:
|
||
source: .
|
||
plugin: nodejs
|
||
node-engine: 14.21.3
|
||
node-packages:
|
||
- node-gyp
|
||
- node-pre-gyp
|
||
- fibers
|
||
build-packages:
|
||
- ca-certificates
|
||
- apt-utils
|
||
- python
|
||
- python3
|
||
- g++
|
||
- capnproto
|
||
- curl
|
||
- libcurl3
|
||
- execstack
|
||
- nodejs
|
||
- npm
|
||
stage-packages:
|
||
- libfontconfig1
|
||
override-build: |
|
||
echo "Cleaning environment first"
|
||
rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules
|
||
# Create the OpenAPI specification
|
||
rm -rf .build
|
||
## Use Meteor 1.8.x on Snap
|
||
#rm -rf .meteor
|
||
#mv .snap-meteor-1.8/.meteor .
|
||
#mv .snap-meteor-1.8/package.json .
|
||
#mv .snap-meteor-1.8/package-lock.json .
|
||
## Meteor 1.9.x has changes to Buffer() => Buffer.alloc(), so reverting those
|
||
#mv .snap-meteor-1.8/cfs_access-point.txt fix-download-unicode/
|
||
#mv .snap-meteor-1.8/export.js models/
|
||
#mv .snap-meteor-1.8/wekanCreator.js models/
|
||
#mv .snap-meteor-1.8/ldap.js packages/wekan-ldap/server/ldap.js
|
||
#mv .snap-meteor-1.8/oidc_server.js packages/wekan-oidc/oidc_server.js
|
||
rm -rf .snap-meteor-1.8
|
||
#mkdir -p .build/python
|
||
#cd .build/python
|
||
#git clone --depth 1 -b master https://github.com/Kronuz/esprima-python
|
||
#cd esprima-python
|
||
#python3 setup.py install
|
||
#cd ../../..
|
||
#mkdir -p ./public/api
|
||
#python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml
|
||
# we temporary need api2html and mkdirp
|
||
#npm install -g api2html@0.3.0
|
||
#npm install -g mkdirp
|
||
#api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml
|
||
#npm uninstall -g mkdirp
|
||
#npm uninstall -g api2html
|
||
# Node Fibers 100% CPU usage issue:
|
||
# https://github.com/wekan/wekan-mongodb/issues/2#issuecomment-381453161
|
||
# https://github.com/meteor/meteor/issues/9796#issuecomment-381676326
|
||
# https://github.com/sandstorm-io/sandstorm/blob/0f1fec013fe7208ed0fd97eb88b31b77e3c61f42/shell/server/00-startup.js#L99-L129
|
||
# Also see beginning of wekan/server/authentication.js
|
||
# import Fiber from "fibers";
|
||
# Fiber.poolSize = 1e9;
|
||
# OLD: Download node version 8.12.0 prerelease build => Official node 8.12.0 has been released
|
||
# Description at https://releases.wekan.team/node.txt
|
||
##echo "375bd8db50b9c692c0bbba6e96d4114cd29bee3770f901c1ff2249d1038f1348 node" >> node-SHASUMS256.txt.asc
|
||
##curl https://releases.wekan.team/node -o node
|
||
# Verify Fibers patched node authenticity
|
||
##echo "Fibers 100% CPU issue patched node authenticity:"
|
||
##grep node node-SHASUMS256.txt.asc | shasum -a 256 -c -
|
||
##rm -f node-SHASUMS256.txt.asc
|
||
##chmod +x node
|
||
##mv node `which node`
|
||
# DOES NOT WORK: paxctl fix.
|
||
# Removed from build-packages: - paxctl
|
||
#echo "Applying paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303"
|
||
#paxctl -mC `which node`
|
||
#echo "Installing npm"
|
||
#curl -L https://www.npmjs.com/install.sh | sh
|
||
echo "Installing meteor"
|
||
curl https://install.meteor.com/ -o install_meteor.sh
|
||
#sed -i "s|RELEASE=.*|RELEASE=\"1.8.1-beta.0\"|g" install_meteor.sh
|
||
chmod +x install_meteor.sh
|
||
sh install_meteor.sh
|
||
rm install_meteor.sh
|
||
# REPOS BELOW ARE INCLUDED TO WEKAN REPO
|
||
#if [ ! -d "packages" ]; then
|
||
# mkdir packages
|
||
#fi
|
||
#if [ ! -d "packages/kadira-flow-router" ]; then
|
||
# cd packages
|
||
# git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
|
||
# cd ..
|
||
#fi
|
||
#if [ ! -d "packages/meteor-useraccounts-core" ]; then
|
||
# cd packages
|
||
# git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
|
||
# sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' meteor-useraccounts-core/package.js
|
||
# cd ..
|
||
#fi
|
||
#if [ ! -d "packages/meteor-accounts-cas" ]; then
|
||
# cd packages
|
||
# git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git meteor-accounts-cas
|
||
# cd ..
|
||
#fi
|
||
#if [ ! -d "packages/wekan-ldap" ]; then
|
||
# cd packages
|
||
# git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
|
||
# cd ..
|
||
#fi
|
||
#if [ ! -d "packages/wekan-scrollbar" ]; then
|
||
# cd packages
|
||
# git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git
|
||
# cd ..
|
||
#fi
|
||
#if [ ! -d "packages/wekan_accounts-oidc" ]; then
|
||
# cd packages
|
||
# git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-oidc.git
|
||
# mv meteor-accounts-oidc/packages/switch_accounts-oidc wekan-accounts-oidc
|
||
# mv meteor-accounts-oidc/packages/switch_oidc wekan-oidc
|
||
# rm -rf meteor-accounts-oidc
|
||
# cd ..
|
||
#fi
|
||
#if [ ! -d "packages/markdown" ]; then
|
||
# cd packages
|
||
# git clone --depth 1 -b master --recurse-submodules https://github.com/wekan/markdown.git
|
||
# cd ..
|
||
#fi
|
||
rm -rf .build
|
||
meteor add standard-minifier-js --allow-superuser
|
||
meteor npm install --allow-superuser
|
||
meteor npm install --allow-superuser --save babel-runtime
|
||
meteor build .build --directory --allow-superuser
|
||
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
|
||
#Removed binary version of bcrypt because of security vulnerability that is not fixed yet.
|
||
#https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac
|
||
#https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c
|
||
#cd .build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt
|
||
#rm -rf node_modules/bcrypt
|
||
#meteor npm install --save bcrypt
|
||
# Change from npm-bcrypt directory back to .build/bundle/programs/server directory.
|
||
#cd ../../../../
|
||
# Change to directory .build/bundle/programs/server
|
||
cd .build/bundle/programs/server
|
||
npm install
|
||
npm install --allow-superuser --save babel-runtime
|
||
#meteor npm install --save bcrypt
|
||
# Change back to Wekan source directory
|
||
cd ../../../..
|
||
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
|
||
rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
|
||
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
|
||
|
||
organize:
|
||
README: README.wekan
|
||
prime:
|
||
- -lib/node_modules/node-pre-gyp/node_modules/tar/lib/.unpack.js.swp
|
||
|
||
helpers:
|
||
source: snap-src
|
||
plugin: dump
|
||
|
||
caddy:
|
||
plugin: dump
|
||
source: https://caddyserver.com/download/linux/amd64?license=personal&telemetry=off
|
||
source-type: tar
|
||
organize:
|
||
caddy: bin/caddy
|
||
CHANGES.txt: CADDY_CHANGES.txt
|
||
EULA.txt: CADDY_EULA.txt
|
||
LICENSES.txt: CADDY_LICENSES.txt
|
||
README.txt: CADDY_README.txt
|
||
stage:
|
||
- -init
|