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