name: wekan version: '8.24' 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 # Metadata fields title: Wekan contact: https://github.com/wekan/wekan/issues license: MIT donation: https://wekan.fi/commercial-support/ issues: https://github.com/wekan/wekan/issues source-code: https://github.com/wekan/wekan website: https://wekan.fi # Expanded platforms for multi-arch support platforms: amd64: build-on: [amd64] build-for: amd64 arm64: build-on: [arm64] build-for: arm64 s390x: build-on: [s390x] build-for: s390x 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: - on amd64: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2204-7.0.28.tgz - on arm64: https://fastdl.mongodb.org/linux/mongodb-linux-aarch64-ubuntu2204-7.0.28.tgz - on s390x: https://fastdl.mongodb.org/linux/mongodb-linux-s390x-ubuntu2204-7.0.28.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: - on amd64: https://downloads.mongodb.com/compass/mongosh-2.5.3-linux-x64.tgz - on arm64: https://downloads.mongodb.com/compass/mongosh-2.5.3-linux-arm64.tgz - on s390x: https://downloads.mongodb.com/compass/mongosh-2.5.3-linux-s390x.tgz plugin: dump mongotools: source: - on amd64: https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2404-x86_64-100.12.2.tgz - on arm64: https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2404-arm64-100.12.2.tgz - on s390x: https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2404-s390x-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 stage-packages: - libfontconfig1 override-build: | # Detect target architecture case "$SNAPCRAFT_TARGET_ARCH" in amd64) NODE_ARCH="x64"; WEKAN_ARCH="amd64" ;; arm64) NODE_ARCH="arm64"; WEKAN_ARCH="arm64" ;; s390x) NODE_ARCH="s390x"; WEKAN_ARCH="s390x" ;; *) echo "Unsupported architecture"; exit 1 ;; esac echo "Building Wekan for $WEKAN_ARCH" # Clean and prepare build directory rm -rf .build mkdir .build cd .build # Download specific Wekan architecture bundle wget https://github.com/wekan/wekan/releases/download/v8.24/wekan-8.24-${WEKAN_ARCH}.zip unzip wekan-8.24-${WEKAN_ARCH}.zip rm wekan-8.24-${WEKAN_ARCH}.zip cd .. # Download specific Node.js architecture binary wget https://github.com/wekan/node-v14-esm/releases/download/v14.21.4/node-v14.21.4-linux-${NODE_ARCH}.tar.xz tar -xf node-v14.21.4-linux-${NODE_ARCH}.tar.xz # Install Node binary and bundle to snap directory mkdir -p $SNAPCRAFT_PART_INSTALL/bin cp -p node-v14.21.4-linux-${NODE_ARCH}/bin/node $SNAPCRAFT_PART_INSTALL/bin/ cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/ cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/ rm -rf node-v14.21.4-linux-${NODE_ARCH} .build organize: README: README.wekan prime: - -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: | # 1. Setup Caddy stable repository curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list # 2. Install latest Caddy apt update apt install -y caddy # 3. Setup snap structure mkdir -p $SNAPCRAFT_PART_INSTALL/bin mkdir -p $SNAPCRAFT_PART_INSTALL/etc mkdir -p $SNAPCRAFT_PART_INSTALL/license cp /usr/bin/caddy $SNAPCRAFT_PART_INSTALL/bin/ chmod +x $SNAPCRAFT_PART_INSTALL/bin/caddy echo "Caddy Apache 2.0: https://github.com/caddyserver/caddy/blob/master/LICENSE" > $SNAPCRAFT_PART_INSTALL/license/CADDY_LICENSE cat > $SNAPCRAFT_PART_INSTALL/etc/Caddyfile << 'EOF' :8080 { reverse_proxy localhost:3000 } EOF stage: - bin/caddy - etc/Caddyfile - license/CADDY_LICENSE