wekan/snapcraft.yaml

216 lines
6.9 KiB
YAML
Raw Normal View History

name: wekan
2026-01-24 03:11:14 +02:00
version: '8.24'
base: core24
2021-10-09 14:22:26 +03:00
summary: Open Source kanban
description: |
2021-10-09 14:22:26 +03:00
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:
2022-06-16 00:56:54 +03:00
command: ./bin/wekan-control
daemon: simple
plugs: [network, network-bind]
mongodb:
2022-06-16 00:56:54 +03:00
command: ./bin/mongodb-control
daemon: simple
plugs: [network, network-bind]
caddy:
2022-06-16 00:56:54 +03:00
command: ./bin/caddy-control
daemon: simple
plugs: [network, network-bind]
help:
2022-06-16 00:56:54 +03:00
command: ./bin/wekan-help
database-backup:
2022-06-16 00:56:54 +03:00
command: ./bin/mongodb-backup
plugs: [network, network-bind]
database-list-backups:
2022-06-16 00:56:54 +03:00
command: ./bin/database-list-backups
database-restore:
2022-06-16 00:56:54 +03:00
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
2022-06-16 00:56:54 +03:00
- libcurl4
- libstemmer0d
- zlib1g
- libsnappy1v5
- libyaml-cpp0.8
2022-06-16 00:56:54 +03:00
- libpcre3
- libpcrecpp0v5
- libboost-system1.74.0
- libboost-iostreams1.74.0
- libboost-filesystem1.74.0
- libboost-program-options1.74.0
2022-06-16 00:56:54 +03:00
- libgoogle-perftools4
stage: [bin, usr]
prime: [bin, usr]
2024-01-28 14:11:38 +02:00
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
2024-01-28 14:11:38 +02:00
plugin: dump
2024-01-28 14:11:38 +02:00
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
2024-01-28 14:11:38 +02:00
plugin: dump
wekan:
source: .
plugin: npm
npm-node-version: 14.21.3
npm-include-node: true
2019-07-18 16:10:15 -05:00
build-packages:
- build-essential
2019-07-18 16:10:15 -05:00
- ca-certificates
- apt-utils
- python3
2019-08-05 13:55:04 +03:00
- g++
- capnproto
2019-07-18 16:10:15 -05:00
- curl
2022-06-16 01:04:17 +03:00
- wget
2022-06-16 01:57:51 +03:00
- unzip
- execstack
2019-08-05 13:55:04 +03:00
stage-packages:
- libfontconfig1
2025-11-02 21:33:06 +02:00
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
2025-11-02 21:33:06 +02:00
rm -rf .build
2022-06-16 00:56:54 +03:00
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
2022-06-16 00:56:54 +03:00
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
2019-09-05 23:05:50 +03:00
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
2025-11-02 21:33:06 +02:00
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
2025-11-02 21:33:06 +02:00
apt update
apt install -y caddy
# 3. Setup snap structure
2025-11-02 21:33:06 +02:00
mkdir -p $SNAPCRAFT_PART_INSTALL/bin
mkdir -p $SNAPCRAFT_PART_INSTALL/etc
mkdir -p $SNAPCRAFT_PART_INSTALL/license
2025-11-02 21:33:06 +02:00
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
2025-11-02 21:33:06 +02:00
cat > $SNAPCRAFT_PART_INSTALL/etc/Caddyfile << 'EOF'
:8080 {
reverse_proxy localhost:3000
}
EOF
stage:
- bin/caddy
- etc/Caddyfile
- license/CADDY_LICENSE