mirror of
https://github.com/wekan/wekan.git
synced 2026-01-24 18:26:10 +01:00
215 lines
6.9 KiB
YAML
215 lines
6.9 KiB
YAML
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
|