mirror of
https://github.com/wekan/wekan.git
synced 2025-04-23 13:37:09 -04:00
Merge branch 'kubiko-devel' into devel
This commit is contained in:
commit
7498dba32c
16 changed files with 134 additions and 82 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -14,3 +14,4 @@ package-lock.json
|
|||
**/stage
|
||||
**/prime
|
||||
**/*.snap
|
||||
snap/.snapcraft/
|
||||
|
|
15
CHANGELOG.md
15
CHANGELOG.md
|
@ -1,3 +1,18 @@
|
|||
# Upcoming Wekan release
|
||||
|
||||
[Snap updates](https://github.com/wekan/wekan/pull/1495):
|
||||
|
||||
- cleanup of snap helper scripts
|
||||
- cleanup and snapctl settings handling
|
||||
- fix for snap store auto review refusal
|
||||
- adding support for automatic restart of services when setting(s) are changed.
|
||||
No need to call systemctl restart anymore.....
|
||||
- fixing snap set functionality
|
||||
- adding optional caddy service support ( by default caddy service is disabled),
|
||||
it can be enabled by calling: snap set wekan caddy-enabled=true
|
||||
|
||||
Thanks to GitHub user kubiko for contributions.
|
||||
|
||||
# v0.76 2018-02-21 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
|
5
snap-src/Caddyfile
Normal file
5
snap-src/Caddyfile
Normal file
|
@ -0,0 +1,5 @@
|
|||
http://:8080
|
||||
proxy / localhost:3001 {
|
||||
websocket
|
||||
transparent
|
||||
}
|
12
snap-src/bin/caddy-control
Executable file
12
snap-src/bin/caddy-control
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
# get wekan/mongo settings
|
||||
source $SNAP/bin/wekan-read-settings
|
||||
|
||||
if [ "$CADDY_ENABLED" = "true" ]; then
|
||||
env LC_ALL=C caddy -conf=$SNAP_COMMON/Caddyfile -host=localhost:${CADDY_PORT}
|
||||
else
|
||||
snapctl stop caddy-service 2>&1 || true
|
||||
# sleep here, in case snapctl fails to stop service so we do not restart too often
|
||||
sleep 60
|
||||
fi
|
|
@ -1,12 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
# store here all configuration options for wekan snap
|
||||
# read configured settings first
|
||||
SETTINGS_FILE="$SNAP_COMMON/wekan_settings.sh"
|
||||
[ -f $SETTINGS_FILE ] && . $SETTINGS_FILE
|
||||
# All supported keys are defined here together with descriptions and default values
|
||||
|
||||
# list of supported keys
|
||||
keys="MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB"
|
||||
keys="MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT"
|
||||
|
||||
# default values
|
||||
DESCRIPTION_MONGODB_BIND_UNIX_SOCKET="mongodb binding unix socket:\n"\
|
||||
|
@ -42,3 +39,11 @@ KEY_PORT="port"
|
|||
DESCRIPTION_DISABLE_MONGODB="Disable mongodb service: use only if binding to database outside of the snap. Valid values: [true,false]"
|
||||
DEFAULT_DISABLE_MONGODB="false"
|
||||
KEY_DISABLE_MONGODB="disable-mongodb"
|
||||
|
||||
DESCRIPTION_CADDY_ENABLED="Enable caddy service (caddy - Every Site on HTTPS). Set to 'true' to enable caddy\n\t\tcaddy settings are handled through $SNAP_COMMON/Caddyfile"
|
||||
DEFAULT_CADDY_ENABLED="false"
|
||||
KEY_CADDY_ENABLED="caddy-enabled"
|
||||
|
||||
DESCRIPTION_CADDY_BIND_PORT="Port on which caddy will expect proxy, value set here will be set in $SNAP_COMMON/Caddyfile"
|
||||
DEFAULT_CADDY_BIND_PORT="3001"
|
||||
KEY_CADDY_BIND_PORT="caddy-bind-port"
|
|
@ -1,8 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
SYSTEMD_WEKAN_SERVICE="snap.${SNAP_NAME}.wekan"
|
||||
SYSTEMD_MONGODB_SERVICE="snap.${SNAP_NAME}.mongodb"
|
||||
|
||||
# get wekan/mongo settings
|
||||
source $SNAP/bin/wekan-read-settings
|
||||
|
|
@ -1,15 +1,22 @@
|
|||
#!/bin/bash
|
||||
|
||||
source $SNAP/bin/config &>/dev/null
|
||||
# first read settings
|
||||
source $SNAP/bin/wekan-read-settings &>/dev/null
|
||||
if [ "$CADDY_ENABLED" = "true" ]; then
|
||||
# tweak port nunmber as it has been remapped
|
||||
export PORT=${CADDY_PORT} &>/dev/null
|
||||
fi
|
||||
|
||||
echo -e "Wekan: The open-source Trello-like kanban.\n"
|
||||
echo -e "Make sure you have connected all interfaces, check more by calling $ snap interfaces"
|
||||
echo -e "\n"
|
||||
echo -e "${SNAP_NAME} has two services, to check status/restart/stop use systemd commands"
|
||||
echo -e "${SNAP_NAME} has multiple services, to check status/restart/stop use systemctl"
|
||||
echo -e "mongodb service:"
|
||||
echo -e "\t$ sudo systemctl status/start/stop/restart snap.$SNAP_NAME.mongodb"
|
||||
echo -e "wekan service"
|
||||
echo -e "\t$ sudo systemctl status/start/stop/restart snap.$SNAP_NAME.wekan"
|
||||
echo -e "Optional caddy service"
|
||||
echo -e "\t$ sudo systemctl status/start/stop/restart snap.$SNAP_NAME.caddy"
|
||||
echo -e "\n"
|
||||
echo -e "To make backup of wekan's database use: $ ${SNAP_NAME}.database-backup [backup file]"
|
||||
echo -e "\t backup file is optional parameter, if not passed backup is created in directory:"
|
||||
|
@ -42,7 +49,5 @@ do
|
|||
echo -e "\t\tCurrent value set to: '${!key}', (default value: '${!default_value}')"
|
||||
fi
|
||||
done
|
||||
echo -e "\nFor changes to take effect restart wekan service,"
|
||||
echo -e "if mongodb key was change also restart mongodb service, before restarting wekan"
|
||||
echo -e "to restart mongodb: $ sudo systemctl restart snap.$SNAP_NAME.mongodb"
|
||||
echo -e "to restart wekan: $ sudo systemctl restart snap.$SNAP_NAME.wekan"
|
||||
|
||||
echo -e "\n!!!! Some changes result in restart of some or all services, use with caution !!!!!"
|
29
snap-src/bin/wekan-read-settings
Executable file
29
snap-src/bin/wekan-read-settings
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/bin/sh
|
||||
|
||||
# read wekan config
|
||||
source $SNAP/bin/config
|
||||
|
||||
|
||||
for key in ${keys[@]}
|
||||
do
|
||||
default_value="DEFAULT_$key"
|
||||
description="DESCRIPTION_$key"
|
||||
snappy_key="KEY_$key"
|
||||
value=$(snapctl get ${!snappy_key})
|
||||
if [ "x$value" == "x" ]; then
|
||||
echo -e "$key=${!default_value} (default value)"
|
||||
export $key=${!default_value}
|
||||
else
|
||||
echo -e "$key=$value"
|
||||
export $key=$value
|
||||
fi
|
||||
done
|
||||
|
||||
# if caddy is enabled, do update port settings based on caddy file
|
||||
if [ "$CADDY_ENABLED" = "true" ]; then
|
||||
echo "caddy is enabled, adjusting ports"
|
||||
export CADDY_PORT=${PORT}
|
||||
echo -e "CADDY_PORT=$CADDY_PORT"
|
||||
export PORT=${CADDY_BIND_PORT}
|
||||
echo -e "PORT=$PORT"
|
||||
fi
|
|
@ -1,36 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# read wekan config
|
||||
source $SNAP/bin/config
|
||||
|
||||
# TODO: uncomment following, once snapctl can be called from outside the hooks
|
||||
# for key in ${keys[@]}
|
||||
# do
|
||||
# # snappy is picky about key syntax, using mapping
|
||||
# MAP_KEY="KEY_$key"
|
||||
# SNAPPY_KEY=
|
||||
# if value=$(snapctl get ${!MAP_KEY}); then
|
||||
# echo "$key='$value'"
|
||||
# export $key=$value
|
||||
# else
|
||||
# # use default value
|
||||
# default_value="DEFAULT_$key"
|
||||
# echo "using default value: $key='${!default_value}'"
|
||||
# export $key=${!default_value}
|
||||
# fi
|
||||
# done
|
||||
|
||||
# TODO: get rid of this workaround once above can be used
|
||||
# loop through all values, and if not defined, use default value
|
||||
for key in ${keys[@]}
|
||||
do
|
||||
if [ "x" == "x${!key}" ]; then
|
||||
# use default value
|
||||
default_value="DEFAULT_$key"
|
||||
echo "using default value: $key='${!default_value}'"
|
||||
export $key=${!default_value}
|
||||
# echo "export $key='${!def_value}'" >> $SETTINGS_FILE
|
||||
else
|
||||
echo "$key='${!key}'"
|
||||
fi
|
||||
done
|
44
snap/hooks/configure
vendored
44
snap/hooks/configure
vendored
|
@ -1,32 +1,26 @@
|
|||
#!/bin/bash
|
||||
|
||||
exec >> $SNAP_COMMON/hook.log 2>&1
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') $0: Entering hook"
|
||||
|
||||
set -x
|
||||
|
||||
# read wekan config
|
||||
. $SNAP/bin/config
|
||||
|
||||
# create run dir, we're going to use it for unix socket
|
||||
mkdir -p $SNAP_DATA/share
|
||||
mkdir -p $SNAP_DATA/shared
|
||||
|
||||
# settings were altered by user, safest way to get them applied is to restart service
|
||||
# first check if caddy service is enabled
|
||||
value=$(snapctl get caddy-enabled)
|
||||
if [ "$value" = "true" ]; then
|
||||
# update caddy file
|
||||
bind_port=$(snapctl get caddy-bind-port)
|
||||
port=$(snapctl get port)
|
||||
[ "x" != "x${bind_port}" ] && sed -i 's|proxy / localhost:.* {|proxy / localhost:'"${bind_port}"' {|g' $SNAP_COMMON/Caddyfile
|
||||
[ "x" != "x$port" ] && sed -i 's|http://:.*|http://:'"${port}"'|g' $SNAP_COMMON/Caddyfile
|
||||
snapctl start --enable ${SNAP_NAME}.caddy 2>&1 || true
|
||||
else
|
||||
snapctl stop --disable ${SNAP_NAME}.caddy 2>&1 || true
|
||||
fi
|
||||
|
||||
# TODO: remove this workaround once it's not needed
|
||||
# for the moment we can't read settings outside of the hook,
|
||||
# so store all settings in helpper script which is then picked by main wrapper
|
||||
echo -e "#!/bin/sh\n" > $SETTINGS_FILE
|
||||
for key in ${keys[@]}
|
||||
do
|
||||
# snappy is picky about key syntax, using mapping
|
||||
MAP_KEY="KEY_$key"
|
||||
if value=$(snapctl get ${!MAP_KEY}); then
|
||||
echo "export $key='$value'" >> $SETTINGS_FILE
|
||||
elif [ -d "${!key}" ]; then
|
||||
# store back value from SETTINGS_FILE
|
||||
echo "export $key='${!key}'" >> $SETTINGS_FILE
|
||||
fi
|
||||
done
|
||||
|
||||
# set file executable
|
||||
chmod 755 $SETTINGS_FILE
|
||||
# we can't use snapctl to restart service, may be one day ....
|
||||
|
||||
echo "Setting has been updated, restart service."
|
||||
# restart all services
|
||||
snapctl restart ${SNAP_NAME} 2>&1 || true
|
||||
|
|
12
snap/hooks/install
Executable file
12
snap/hooks/install
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
exec >> $SNAP_COMMON/hook.log 2>&1
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') $0: Entering hook"
|
||||
|
||||
# coppy caddy file in place
|
||||
[ ! -e $SNAP_COMMON/Caddyfile ] && cp $SNAP/Caddyfile $SNAP_COMMON/Caddyfile
|
||||
|
||||
# create run dir, we're going to use it for unix socket
|
||||
mkdir -p $SNAP_DATA/share
|
||||
mkdir -p $SNAP_DATA/shared
|
||||
|
1
snap/hooks/post-refresh
Symbolic link
1
snap/hooks/post-refresh
Symbolic link
|
@ -0,0 +1 @@
|
|||
install
|
|
@ -38,6 +38,11 @@ apps:
|
|||
daemon: simple
|
||||
plugs: [network, network-bind]
|
||||
|
||||
caddy:
|
||||
command: caddy-control
|
||||
daemon: simple
|
||||
plugs: [network, network-bind]
|
||||
|
||||
help:
|
||||
command: wekan-help
|
||||
|
||||
|
@ -85,6 +90,7 @@ parts:
|
|||
- npm
|
||||
- curl
|
||||
- paxctl
|
||||
- execstack
|
||||
prepare: |
|
||||
echo "Cleaning environment first"
|
||||
rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules
|
||||
|
@ -118,17 +124,23 @@ parts:
|
|||
cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/
|
||||
cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/
|
||||
rm $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
|
||||
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
|
||||
organize:
|
||||
README: README.wekan
|
||||
|
||||
helpers:
|
||||
source: snap-src
|
||||
plugin: dump
|
||||
|
||||
caddy:
|
||||
plugin: dump
|
||||
source: https://caddyserver.com/download/linux/amd64?plugins=
|
||||
source-type: tar
|
||||
organize:
|
||||
wekan-control: bin/wekan-control
|
||||
mongodb-control: bin/mongodb-control
|
||||
wekan-read-settings: bin/wekan-read-settings
|
||||
wekan-help: bin/wekan-help
|
||||
mongodb-backup: bin/mongodb-backup
|
||||
mongodb-restore: bin/mongodb-restore
|
||||
config: bin/config
|
||||
caddy: bin/caddy
|
||||
CHANGES.txt: CADDY_CHANGES.txt
|
||||
EULA.txt: CADDY_EULA.txt
|
||||
LICENSES.txt: CADDY_LICENSES.txt
|
||||
README.txt: CADDY_README.txt
|
||||
stage:
|
||||
- -init
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue