snapcraft.yaml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. name: wekan
  2. version: 0
  3. version-script: git describe --tags | cut -c 2-
  4. summary: The open-source kanban
  5. description: |
  6. Wekan is an open-source and collaborative kanban board application.
  7. 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.
  8. Depending on target environment, some configuration settings might need to be adjusted.
  9. For full list of configuration options call:
  10. $ wekan.help
  11. confinement: strict
  12. grade: stable
  13. architectures:
  14. - amd64
  15. plugs:
  16. mongodb-plug:
  17. interface: content
  18. target: $SNAP_DATA/shared
  19. hooks:
  20. configure:
  21. plugs:
  22. - network
  23. - network-bind
  24. slots:
  25. mongodb-slot:
  26. interface: content
  27. write:
  28. - $SNAP_DATA/share
  29. apps:
  30. wekan:
  31. command: wekan-control
  32. daemon: simple
  33. plugs: [network, network-bind]
  34. mongodb:
  35. command: mongodb-control
  36. daemon: simple
  37. plugs: [network, network-bind]
  38. caddy:
  39. command: caddy-control
  40. daemon: simple
  41. plugs: [network, network-bind]
  42. help:
  43. command: wekan-help
  44. database-backup:
  45. command: mongodb-backup
  46. plugs: [network, network-bind]
  47. database-list-backups:
  48. command: ls -al $SNAP_COMMON/db-backups/
  49. database-restore:
  50. command: mongodb-restore
  51. plugs: [network, network-bind]
  52. parts:
  53. mongodb:
  54. source: https://repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/4.2/multiverse/binary-amd64/mongodb-org-server_4.2.2_amd64.deb
  55. #https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.14.tgz
  56. #https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.22.tgz
  57. plugin: dump
  58. stage-packages:
  59. - libssl1.0.0
  60. - libcurl3
  61. filesets:
  62. mongo:
  63. - usr
  64. - bin
  65. - lib
  66. stage:
  67. - $mongo
  68. prime:
  69. - $mongo
  70. wekan:
  71. source: .
  72. plugin: nodejs
  73. node-engine: 12.14.1
  74. node-packages:
  75. - node-gyp
  76. - node-pre-gyp
  77. - fibers
  78. build-packages:
  79. - ca-certificates
  80. - apt-utils
  81. - build-essential
  82. # - python
  83. - python3
  84. - g++
  85. - capnproto
  86. - curl
  87. - libcurl3
  88. - execstack
  89. - nodejs
  90. - npm
  91. stage-packages:
  92. - libfontconfig1
  93. - libssl1.0.0
  94. - libcurl3
  95. override-build: |
  96. echo "Cleaning environment first"
  97. rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules
  98. # Create the OpenAPI specification
  99. rm -rf .build
  100. #mkdir -p .build/python
  101. #cd .build/python
  102. #git clone --depth 1 -b master https://github.com/Kronuz/esprima-python
  103. #cd esprima-python
  104. #python3 setup.py install
  105. #cd ../../..
  106. #mkdir -p ./public/api
  107. #python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml
  108. # we temporary need api2html and mkdirp
  109. #npm install -g api2html@0.3.0
  110. #npm install -g mkdirp
  111. #api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml
  112. #npm uninstall -g mkdirp
  113. #npm uninstall -g api2html
  114. # Node Fibers 100% CPU usage issue:
  115. # https://github.com/wekan/wekan-mongodb/issues/2#issuecomment-381453161
  116. # https://github.com/meteor/meteor/issues/9796#issuecomment-381676326
  117. # https://github.com/sandstorm-io/sandstorm/blob/0f1fec013fe7208ed0fd97eb88b31b77e3c61f42/shell/server/00-startup.js#L99-L129
  118. # Also see beginning of wekan/server/authentication.js
  119. # import Fiber from "fibers";
  120. # Fiber.poolSize = 1e9;
  121. # OLD: Download node version 8.12.0 prerelease build => Official node 8.12.0 has been released
  122. # Description at https://releases.wekan.team/node.txt
  123. ##echo "375bd8db50b9c692c0bbba6e96d4114cd29bee3770f901c1ff2249d1038f1348 node" >> node-SHASUMS256.txt.asc
  124. ##curl https://releases.wekan.team/node -o node
  125. # Verify Fibers patched node authenticity
  126. ##echo "Fibers 100% CPU issue patched node authenticity:"
  127. ##grep node node-SHASUMS256.txt.asc | shasum -a 256 -c -
  128. ##rm -f node-SHASUMS256.txt.asc
  129. ##chmod +x node
  130. ##mv node `which node`
  131. # DOES NOT WORK: paxctl fix.
  132. # Removed from build-packages: - paxctl
  133. #echo "Applying paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303"
  134. #paxctl -mC `which node`
  135. #echo "Installing npm"
  136. #curl -L https://www.npmjs.com/install.sh | sh
  137. echo "Installing meteor"
  138. curl https://install.meteor.com/ -o install_meteor.sh
  139. #sed -i "s|RELEASE=.*|RELEASE=\"1.8.1-beta.0\"|g" install_meteor.sh
  140. chmod +x install_meteor.sh
  141. sh install_meteor.sh
  142. rm install_meteor.sh
  143. # REPOS BELOW ARE INCLUDED TO WEKAN REPO
  144. #if [ ! -d "packages" ]; then
  145. # mkdir packages
  146. #fi
  147. #if [ ! -d "packages/kadira-flow-router" ]; then
  148. # cd packages
  149. # git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
  150. # cd ..
  151. #fi
  152. #if [ ! -d "packages/meteor-useraccounts-core" ]; then
  153. # cd packages
  154. # git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
  155. # sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' meteor-useraccounts-core/package.js
  156. # cd ..
  157. #fi
  158. #if [ ! -d "packages/meteor-accounts-cas" ]; then
  159. # cd packages
  160. # git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git meteor-accounts-cas
  161. # cd ..
  162. #fi
  163. #if [ ! -d "packages/wekan-ldap" ]; then
  164. # cd packages
  165. # git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
  166. # cd ..
  167. #fi
  168. #if [ ! -d "packages/wekan-scrollbar" ]; then
  169. # cd packages
  170. # git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git
  171. # cd ..
  172. #fi
  173. #if [ ! -d "packages/wekan_accounts-oidc" ]; then
  174. # cd packages
  175. # git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-oidc.git
  176. # mv meteor-accounts-oidc/packages/switch_accounts-oidc wekan-accounts-oidc
  177. # mv meteor-accounts-oidc/packages/switch_oidc wekan-oidc
  178. # rm -rf meteor-accounts-oidc
  179. # cd ..
  180. #fi
  181. #if [ ! -d "packages/markdown" ]; then
  182. # cd packages
  183. # git clone --depth 1 -b master --recurse-submodules https://github.com/wekan/markdown.git
  184. # cd ..
  185. #fi
  186. rm -rf .build
  187. meteor add standard-minifier-js --allow-superuser
  188. meteor npm install --allow-superuser
  189. meteor npm install --allow-superuser --save babel-runtime
  190. meteor build .build --directory --allow-superuser
  191. cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
  192. #Removed binary version of bcrypt because of security vulnerability that is not fixed yet.
  193. #https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac
  194. #https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c
  195. #cd .build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt
  196. #rm -rf node_modules/bcrypt
  197. #meteor npm install --save bcrypt
  198. # Change from npm-bcrypt directory back to .build/bundle/programs/server directory.
  199. #cd ../../../../
  200. # Change to directory .build/bundle/programs/server
  201. cd .build/bundle/programs/server
  202. npm install
  203. npm install --allow-superuser --save babel-runtime
  204. #meteor npm install --save bcrypt
  205. # Change back to Wekan source directory
  206. cd ../../../..
  207. cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/
  208. cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/
  209. rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
  210. 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
  211. rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/tar/lib/.mkdir.js.swp
  212. rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
  213. rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-gyp/node_modules/tar/lib/.mkdir.js.swp
  214. # Meteor 1.8.x additional .swp remove
  215. rm -f $SNAPCRAFT_PART_INSTALL/programs/server/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp
  216. organize:
  217. README: README.wekan
  218. prime:
  219. - -lib/node_modules/node-pre-gyp/node_modules/tar/lib/.unpack.js.swp
  220. helpers:
  221. source: snap-src
  222. plugin: dump
  223. caddy:
  224. plugin: dump
  225. source: https://caddyserver.com/download/linux/amd64?license=personal&telemetry=off
  226. source-type: tar
  227. organize:
  228. caddy: bin/caddy
  229. CHANGES.txt: CADDY_CHANGES.txt
  230. EULA.txt: CADDY_EULA.txt
  231. LICENSES.txt: CADDY_LICENSES.txt
  232. README.txt: CADDY_README.txt
  233. stage:
  234. - -init