snapcraft.yaml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. name: wekan
  2. version: 0
  3. version-script: git describe --dirty --tags | cut -c 2-
  4. summary: The open-source Trello-like 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 -ald $SNAP_COMMON/db-backups/*
  49. database-restore:
  50. command: mongodb-restore
  51. plugs: [network, network-bind]
  52. parts:
  53. mongodb:
  54. source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.18.tgz
  55. plugin: dump
  56. stage-packages: [libssl1.0.0]
  57. filesets:
  58. mongo:
  59. - usr
  60. - bin
  61. - lib
  62. stage:
  63. - $mongo
  64. prime:
  65. - $mongo
  66. wekan:
  67. source: .
  68. plugin: nodejs
  69. node-engine: 8.9.3
  70. node-packages:
  71. - npm@5.5.1
  72. - node-gyp
  73. - node-pre-gyp
  74. - fibers@2.0.0
  75. build-packages:
  76. - ca-certificates
  77. - apt-utils
  78. - python
  79. - g++
  80. - capnproto
  81. - npm
  82. - curl
  83. - paxctl
  84. - execstack
  85. prepare: |
  86. echo "Cleaning environment first"
  87. rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules
  88. echo "Applying paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303"
  89. paxctl -mC `which node`
  90. echo "Installing meteor"
  91. curl https://install.meteor.com/ -o install_meteor.sh
  92. sed -i "s|RELEASE=.*|RELEASE=\"1.6.0.1\"|g" install_meteor.sh
  93. chmod +x install_meteor.sh
  94. sh install_meteor.sh
  95. rm install_meteor.sh
  96. mkdir packages
  97. cd packages
  98. git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
  99. git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
  100. sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' meteor-useraccounts-core/package.js
  101. cd ..
  102. build: |
  103. rm -rf package-lock.json .build
  104. meteor add standard-minifier-js --allow-superuser
  105. meteor npm install --allow-superuser
  106. meteor build .build --directory --allow-superuser
  107. cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
  108. cd .build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt
  109. rm -rf node_modules/bcrypt
  110. meteor npm install --save bcrypt
  111. cd ../../../../
  112. npm install
  113. meteor npm install --save bcrypt
  114. install: |
  115. cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/
  116. cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/
  117. rm $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
  118. execstack --clear-execstack $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
  119. organize:
  120. README: README.wekan
  121. helpers:
  122. source: snap-src
  123. plugin: dump
  124. caddy:
  125. plugin: dump
  126. source: https://caddyserver.com/download/linux/amd64?plugins=
  127. source-type: tar
  128. organize:
  129. caddy: bin/caddy
  130. CHANGES.txt: CADDY_CHANGES.txt
  131. EULA.txt: CADDY_EULA.txt
  132. LICENSES.txt: CADDY_LICENSES.txt
  133. README.txt: CADDY_README.txt
  134. stage:
  135. - -init