mirror of
https://github.com/wekan/wekan.git
synced 2025-12-16 07:20:12 +01:00
Add build scripts.
This commit is contained in:
parent
6f2275e8cb
commit
4c2857b6e8
34 changed files with 1013 additions and 0 deletions
244
docker-compose-postgresql.yml
Normal file
244
docker-compose-postgresql.yml
Normal file
|
|
@ -0,0 +1,244 @@
|
||||||
|
version: '2'
|
||||||
|
|
||||||
|
# Docker: Wekan <=> MongoDB <=> ToroDB => PostgreSQL read-only mirroring
|
||||||
|
# for reporting with SQL, and accessing with any programming language,
|
||||||
|
# reporting package and Office suite that can connect to PostgreSQL.
|
||||||
|
# https://github.com/wekan/wekan-postgresql
|
||||||
|
|
||||||
|
services:
|
||||||
|
torodb-stampede:
|
||||||
|
image: torodb/stampede:1.0.0-SNAPSHOT
|
||||||
|
networks:
|
||||||
|
- wekan-tier
|
||||||
|
links:
|
||||||
|
- postgres
|
||||||
|
- mongodb
|
||||||
|
environment:
|
||||||
|
- POSTGRES_PASSWORD
|
||||||
|
- TORODB_SETUP=true
|
||||||
|
- TORODB_SYNC_SOURCE=mongodb:27017
|
||||||
|
- TORODB_BACKEND_HOST=postgres
|
||||||
|
- TORODB_BACKEND_PORT=5432
|
||||||
|
- TORODB_BACKEND_DATABASE=wekan
|
||||||
|
- TORODB_BACKEND_USER=wekan
|
||||||
|
- TORODB_BACKEND_PASSWORD=wekan
|
||||||
|
- DEBUG
|
||||||
|
postgres:
|
||||||
|
image: postgres:9.6
|
||||||
|
networks:
|
||||||
|
- wekan-tier
|
||||||
|
environment:
|
||||||
|
- POSTGRES_PASSWORD
|
||||||
|
ports:
|
||||||
|
- "15432:5432"
|
||||||
|
mongodb:
|
||||||
|
image: mongo:3.2
|
||||||
|
networks:
|
||||||
|
- wekan-tier
|
||||||
|
ports:
|
||||||
|
- "28017:27017"
|
||||||
|
entrypoint:
|
||||||
|
- /bin/bash
|
||||||
|
- "-c"
|
||||||
|
- mongo --nodb --eval '
|
||||||
|
var db;
|
||||||
|
while (!db) {
|
||||||
|
try {
|
||||||
|
db = new Mongo("mongodb:27017").getDB("local");
|
||||||
|
} catch(ex) {}
|
||||||
|
sleep(3000);
|
||||||
|
};
|
||||||
|
rs.initiate({_id:"rs1",members:[{_id:0,host:"mongodb:27017"}]});
|
||||||
|
' 1>/dev/null 2>&1 &
|
||||||
|
mongod --replSet rs1
|
||||||
|
wekan:
|
||||||
|
image: quay.io/wekan/wekan
|
||||||
|
container_name: wekan-app
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- wekan-tier
|
||||||
|
ports:
|
||||||
|
- 80:8080
|
||||||
|
environment:
|
||||||
|
- MONGO_URL=mongodb://mongodb:27017/wekan
|
||||||
|
- ROOT_URL=http://localhost
|
||||||
|
#---------------------------------------------------------------
|
||||||
|
# == WEKAN API ==
|
||||||
|
# Wekan Export Board works when WITH_API='true'.
|
||||||
|
# If you disable Wekan API, Export Board does not work.
|
||||||
|
- WITH_API=true
|
||||||
|
# Optional: Integration with Matomo https://matomo.org that is installed to your server
|
||||||
|
# The address of the server where Matomo is hosted.
|
||||||
|
# example: - MATOMO_ADDRESS=https://example.com/matomo
|
||||||
|
#- MATOMO_ADDRESS=
|
||||||
|
# The value of the site ID given in Matomo server for Wekan
|
||||||
|
# example: - MATOMO_SITE_ID=12345
|
||||||
|
#- MATOMO_SITE_ID=
|
||||||
|
# The option do not track which enables users to not be tracked by matomo
|
||||||
|
# example: - MATOMO_DO_NOT_TRACK=false
|
||||||
|
#- MATOMO_DO_NOT_TRACK=
|
||||||
|
# The option that allows matomo to retrieve the username:
|
||||||
|
# example: MATOMO_WITH_USERNAME=true
|
||||||
|
#- MATOMO_WITH_USERNAME=false
|
||||||
|
# Enable browser policy and allow one trusted URL that can have iframe that has Wekan embedded inside.
|
||||||
|
# Setting this to false is not recommended, it also disables all other browser policy protections
|
||||||
|
# and allows all iframing etc. See wekan/server/policy.js
|
||||||
|
- BROWSER_POLICY_ENABLED=true
|
||||||
|
# When browser policy is enabled, HTML code at this Trusted URL can have iframe that embeds Wekan inside.
|
||||||
|
#- TRUSTED_URL=
|
||||||
|
# What to send to Outgoing Webhook, or leave out. Example, that includes all that are default: cardId,listId,oldListId,boardId,comment,user,card,commentId .
|
||||||
|
# example: WEBHOOKS_ATTRIBUTES=cardId,listId,oldListId,boardId,comment,user,card,commentId
|
||||||
|
#- WEBHOOKS_ATTRIBUTES=
|
||||||
|
# Enable the OAuth2 connection
|
||||||
|
# example: OAUTH2_ENABLED=true
|
||||||
|
#- OAUTH2_ENABLED=false
|
||||||
|
# OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
|
||||||
|
# OAuth2 Client ID, for example from Rocket.Chat. Example: abcde12345
|
||||||
|
# example: OAUTH2_CLIENT_ID=abcde12345
|
||||||
|
#- OAUTH2_CLIENT_ID=
|
||||||
|
# OAuth2 Secret, for example from Rocket.Chat: Example: 54321abcde
|
||||||
|
# example: OAUTH2_SECRET=54321abcde
|
||||||
|
#- OAUTH2_SECRET=
|
||||||
|
# OAuth2 Server URL, for example Rocket.Chat. Example: https://chat.example.com
|
||||||
|
# example: OAUTH2_SERVER_URL=https://chat.example.com
|
||||||
|
#- OAUTH2_SERVER_URL=
|
||||||
|
# OAuth2 Authorization Endpoint. Example: /oauth/authorize
|
||||||
|
# example: OAUTH2_AUTH_ENDPOINT=/oauth/authorize
|
||||||
|
#- OAUTH2_AUTH_ENDPOINT=
|
||||||
|
# OAuth2 Userinfo Endpoint. Example: /oauth/userinfo
|
||||||
|
# example: OAUTH2_USERINFO_ENDPOINT=/oauth/userinfo
|
||||||
|
#- OAUTH2_USERINFO_ENDPOINT=
|
||||||
|
# OAuth2 Token Endpoint. Example: /oauth/token
|
||||||
|
# example: OAUTH2_TOKEN_ENDPOINT=/oauth/token
|
||||||
|
#- OAUTH2_TOKEN_ENDPOINT=
|
||||||
|
# LDAP_ENABLE : Enable or not the connection by the LDAP
|
||||||
|
# example : LDAP_ENABLE=true
|
||||||
|
#- LDAP_ENABLE=false
|
||||||
|
# LDAP_PORT : The port of the LDAP server
|
||||||
|
# example : LDAP_PORT=389
|
||||||
|
#- LDAP_PORT=389
|
||||||
|
# LDAP_HOST : The host server for the LDAP server
|
||||||
|
# example : LDAP_HOST=localhost
|
||||||
|
#- LDAP_HOST=
|
||||||
|
# LDAP_BASEDN : The base DN for the LDAP Tree
|
||||||
|
# example : LDAP_BASEDN=ou=user,dc=example,dc=org
|
||||||
|
#- LDAP_BASEDN=
|
||||||
|
# LDAP_LOGIN_FALLBACK : Fallback on the default authentication method
|
||||||
|
# example : LDAP_LOGIN_FALLBACK=true
|
||||||
|
#- LDAP_LOGIN_FALLBACK=false
|
||||||
|
# LDAP_RECONNECT : Reconnect to the server if the connection is lost
|
||||||
|
# example : LDAP_RECONNECT=false
|
||||||
|
#- LDAP_RECONNECT=true
|
||||||
|
# LDAP_TIMEOUT : Overall timeout, in milliseconds
|
||||||
|
# example : LDAP_TIMEOUT=12345
|
||||||
|
#- LDAP_TIMEOUT=10000
|
||||||
|
# LDAP_IDLE_TIMEOUT : Specifies the timeout for idle LDAP connections in milliseconds
|
||||||
|
# example : LDAP_IDLE_TIMEOUT=12345
|
||||||
|
#- LDAP_IDLE_TIMEOUT=10000
|
||||||
|
# LDAP_CONNECT_TIMEOUT : Connection timeout, in milliseconds
|
||||||
|
# example : LDAP_CONNECT_TIMEOUT=12345
|
||||||
|
#- LDAP_CONNECT_TIMEOUT=10000
|
||||||
|
# LDAP_AUTHENTIFICATION : If the LDAP needs a user account to search
|
||||||
|
# example : LDAP_AUTHENTIFICATION=true
|
||||||
|
#- LDAP_AUTHENTIFICATION=false
|
||||||
|
# LDAP_AUTHENTIFICATION_USERDN : The search user DN
|
||||||
|
# example : LDAP_AUTHENTIFICATION_USERDN=cn=admin,dc=example,dc=org
|
||||||
|
#- LDAP_AUTHENTIFICATION_USERDN=
|
||||||
|
# LDAP_AUTHENTIFICATION_PASSWORD : The password for the search user
|
||||||
|
# example : AUTHENTIFICATION_PASSWORD=admin
|
||||||
|
#- LDAP_AUTHENTIFICATION_PASSWORD=
|
||||||
|
# LDAP_LOG_ENABLED : Enable logs for the module
|
||||||
|
# example : LDAP_LOG_ENABLED=true
|
||||||
|
#- LDAP_LOG_ENABLED=false
|
||||||
|
# LDAP_BACKGROUND_SYNC : If the sync of the users should be done in the background
|
||||||
|
# example : LDAP_BACKGROUND_SYNC=true
|
||||||
|
#- LDAP_BACKGROUND_SYNC=false
|
||||||
|
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||||
|
# example : LDAP_BACKGROUND_SYNC_INTERVAL=12345
|
||||||
|
#- LDAP_BACKGROUND_SYNC_INTERVAL=100
|
||||||
|
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
|
||||||
|
# example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
|
||||||
|
#- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
|
||||||
|
# LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS :
|
||||||
|
# example : LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=true
|
||||||
|
#- LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false
|
||||||
|
# LDAP_ENCRYPTION : If using LDAPS
|
||||||
|
# example : LDAP_ENCRYPTION=ssl
|
||||||
|
#- LDAP_ENCRYPTION=false
|
||||||
|
# LDAP_CA_CERT : The certification for the LDAPS server. Certificate needs to be included in this docker-compose.yml file.
|
||||||
|
# example : LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+zCCA+OgAwIBAgIkAhwR/6TVLmdRY6hHxvUFWc0+Enmu/Hu6cj+G2FIdAgIC...-----END CERTIFICATE-----
|
||||||
|
#- LDAP_CA_CERT=
|
||||||
|
# LDAP_REJECT_UNAUTHORIZED : Reject Unauthorized Certificate
|
||||||
|
# example : LDAP_REJECT_UNAUTHORIZED=true
|
||||||
|
#- LDAP_REJECT_UNAUTHORIZED=false
|
||||||
|
# LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
|
||||||
|
# example : LDAP_USER_SEARCH_FILTER=
|
||||||
|
#- LDAP_USER_SEARCH_FILTER=
|
||||||
|
# LDAP_USER_SEARCH_SCOPE : base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree)
|
||||||
|
# example : LDAP_USER_SEARCH_SCOPE=one
|
||||||
|
#- LDAP_USER_SEARCH_SCOPE=
|
||||||
|
# LDAP_USER_SEARCH_FIELD : Which field is used to find the user
|
||||||
|
# example : LDAP_USER_SEARCH_FIELD=uid
|
||||||
|
#- LDAP_USER_SEARCH_FIELD=
|
||||||
|
# LDAP_SEARCH_PAGE_SIZE : Used for pagination (0=unlimited)
|
||||||
|
# example : LDAP_SEARCH_PAGE_SIZE=12345
|
||||||
|
#- LDAP_SEARCH_PAGE_SIZE=0
|
||||||
|
# LDAP_SEARCH_SIZE_LIMIT : The limit number of entries (0=unlimited)
|
||||||
|
# example : LDAP_SEARCH_SIZE_LIMIT=12345
|
||||||
|
#- LDAP_SEARCH_SIZE_LIMIT=0
|
||||||
|
# LDAP_GROUP_FILTER_ENABLE : Enable group filtering
|
||||||
|
# example : LDAP_GROUP_FILTER_ENABLE=true
|
||||||
|
#- LDAP_GROUP_FILTER_ENABLE=false
|
||||||
|
# LDAP_GROUP_FILTER_OBJECTCLASS : The object class for filtering
|
||||||
|
# example : LDAP_GROUP_FILTER_OBJECTCLASS=group
|
||||||
|
#- LDAP_GROUP_FILTER_OBJECTCLASS=
|
||||||
|
# LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE :
|
||||||
|
# example :
|
||||||
|
#- LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE=
|
||||||
|
# LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE :
|
||||||
|
# example :
|
||||||
|
#- LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE=
|
||||||
|
# LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT :
|
||||||
|
# example :
|
||||||
|
#- LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT=
|
||||||
|
# LDAP_GROUP_FILTER_GROUP_NAME :
|
||||||
|
# example :
|
||||||
|
#- LDAP_GROUP_FILTER_GROUP_NAME=
|
||||||
|
# LDAP_UNIQUE_IDENTIFIER_FIELD : This field is sometimes class GUID (Globally Unique Identifier)
|
||||||
|
# example : LDAP_UNIQUE_IDENTIFIER_FIELD=guid
|
||||||
|
#- LDAP_UNIQUE_IDENTIFIER_FIELD=
|
||||||
|
# LDAP_UTF8_NAMES_SLUGIFY : Convert the username to utf8
|
||||||
|
# example : LDAP_UTF8_NAMES_SLUGIFY=false
|
||||||
|
#- LDAP_UTF8_NAMES_SLUGIFY=true
|
||||||
|
# LDAP_USERNAME_FIELD : Which field contains the ldap username
|
||||||
|
# example : LDAP_USERNAME_FIELD=username
|
||||||
|
#- LDAP_USERNAME_FIELD=
|
||||||
|
# LDAP_MERGE_EXISTING_USERS :
|
||||||
|
# example : LDAP_MERGE_EXISTING_USERS=true
|
||||||
|
#- LDAP_MERGE_EXISTING_USERS=false
|
||||||
|
# LDAP_SYNC_USER_DATA :
|
||||||
|
# example : LDAP_SYNC_USER_DATA=true
|
||||||
|
#- LDAP_SYNC_USER_DATA=false
|
||||||
|
# LDAP_SYNC_USER_DATA_FIELDMAP :
|
||||||
|
# example : LDAP_SYNC_USER_DATA_FIELDMAP={"cn":"name", "mail":"email"}
|
||||||
|
#- LDAP_SYNC_USER_DATA_FIELDMAP=
|
||||||
|
# LDAP_SYNC_GROUP_ROLES :
|
||||||
|
# example :
|
||||||
|
#- LDAP_SYNC_GROUP_ROLES=
|
||||||
|
# LDAP_DEFAULT_DOMAIN : The default domain of the ldap it is used to create email if the field is not map correctly with the LDAP_SYNC_USER_DATA_FIELDMAP
|
||||||
|
# example :
|
||||||
|
#- LDAP_DEFAULT_DOMAIN=
|
||||||
|
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- mongodb
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
mongodb:
|
||||||
|
driver: local
|
||||||
|
mongodb-dump:
|
||||||
|
driver: local
|
||||||
|
|
||||||
|
networks:
|
||||||
|
wekan-tier:
|
||||||
|
driver: bridge
|
||||||
48
rebuild-wekan.bat
Normal file
48
rebuild-wekan.bat
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
@ECHO OFF
|
||||||
|
|
||||||
|
REM IN PROGRESS: Build on Windows.
|
||||||
|
REM https://github.com/wekan/wekan/wiki/Install-Wekan-from-source-on-Windows
|
||||||
|
REM Please add fix PRs, like config of MongoDB etc.
|
||||||
|
|
||||||
|
md C:\repos
|
||||||
|
cd C:\repos
|
||||||
|
|
||||||
|
REM Install chocolatey
|
||||||
|
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
|
||||||
|
|
||||||
|
choco install -y git curl python2 dotnet4.5.2 nano mongodb-3 mongoclient meteor
|
||||||
|
|
||||||
|
curl -O https://nodejs.org/dist/v8.12.0/node-v8.12.0-x64.msi
|
||||||
|
call node-v8.12.0-x64.msi
|
||||||
|
|
||||||
|
call npm config -g set msvs_version 2015
|
||||||
|
call meteor npm config -g set msvs_version 2015
|
||||||
|
|
||||||
|
call npm -g install npm
|
||||||
|
call npm -g install node-gyp
|
||||||
|
call npm -g install fibers@2.0.0
|
||||||
|
cd C:\repos
|
||||||
|
git clone https://github.com/wekan/wekan.git
|
||||||
|
cd wekan
|
||||||
|
git checkout edge
|
||||||
|
echo "Building Wekan."
|
||||||
|
REM del /S /F /Q packages
|
||||||
|
md packages
|
||||||
|
cd packages
|
||||||
|
git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
|
||||||
|
git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
|
||||||
|
git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git
|
||||||
|
git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
|
||||||
|
REM sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
|
||||||
|
cd ..
|
||||||
|
REM del /S /F /Q node_modules
|
||||||
|
call meteor npm install
|
||||||
|
REM del /S /F /Q .build
|
||||||
|
call meteor build .build --directory
|
||||||
|
copy fix-download-unicode\cfs_access-point.txt .build\bundle\programs\server\packages\cfs_access-point.js
|
||||||
|
cd .build\bundle\programs\server
|
||||||
|
call meteor npm install
|
||||||
|
REM cd C:\repos\wekan\.meteor\local\build\programs\server
|
||||||
|
REM del node_modules
|
||||||
|
cd C:\repos\wekan
|
||||||
|
call start-wekan.bat
|
||||||
129
rebuild-wekan.sh
Executable file
129
rebuild-wekan.sh
Executable file
|
|
@ -0,0 +1,129 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Note: If you use other locale than en_US.UTF-8 , you need to additionally install en_US.UTF-8"
|
||||||
|
echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correctly."
|
||||||
|
echo " You can still use any other locale as your main locale."
|
||||||
|
|
||||||
|
X64NODE="https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.gz"
|
||||||
|
|
||||||
|
function pause(){
|
||||||
|
read -p "$*"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo
|
||||||
|
PS3='Please enter your choice: '
|
||||||
|
options=("Install Wekan dependencies" "Build Wekan" "Quit")
|
||||||
|
select opt in "${options[@]}"
|
||||||
|
do
|
||||||
|
case $opt in
|
||||||
|
"Install Wekan dependencies")
|
||||||
|
|
||||||
|
if [[ "$OSTYPE" == "linux-gnu" ]]; then
|
||||||
|
echo "Linux";
|
||||||
|
|
||||||
|
if [ "$(grep -Ei 'buntu|mint' /etc/*release)" ]; then
|
||||||
|
sudo apt install -y build-essential git curl wget
|
||||||
|
# sudo apt -y install nodejs npm
|
||||||
|
# sudo npm -g install n
|
||||||
|
# sudo n 8.12.0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# if [ "$(grep -Ei 'debian' /etc/*release)" ]; then
|
||||||
|
# sudo apt install -y build-essential git curl wget
|
||||||
|
# echo "Debian, or Debian on Windows Subsystem for Linux"
|
||||||
|
# curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
|
||||||
|
# sudo apt install -y nodejs
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# TODO: Add Sandstorm for version of Node.js install
|
||||||
|
#MACHINE_TYPE=`uname -m`
|
||||||
|
#if [ ${MACHINE_TYPE} == 'x86_64' ]; then
|
||||||
|
# # 64-bit stuff here
|
||||||
|
# wget ${X64NODE}
|
||||||
|
# sudo tar -C /usr/local --strip-components 1 -xzf ${X64NODE}
|
||||||
|
#elif [ ${MACHINE_TYPE} == '32bit' ]; then
|
||||||
|
# echo "TODO: 32-bit Linux install here"
|
||||||
|
# exit
|
||||||
|
#fi
|
||||||
|
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
echo "macOS";
|
||||||
|
pause '1) Install XCode 2) Install Node 8.x from https://nodejs.org/en/ 3) Press [Enter] key to continue.'
|
||||||
|
elif [[ "$OSTYPE" == "cygwin" ]]; then
|
||||||
|
# POSIX compatibility layer and Linux environment emulation for Windows
|
||||||
|
echo "TODO: Add Cygwin";
|
||||||
|
exit;
|
||||||
|
elif [[ "$OSTYPE" == "msys" ]]; then
|
||||||
|
# Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
|
||||||
|
echo "TODO: Add msys on Windows";
|
||||||
|
exit;
|
||||||
|
elif [[ "$OSTYPE" == "win32" ]]; then
|
||||||
|
# I'm not sure this can happen.
|
||||||
|
echo "TODO: Add Windows";
|
||||||
|
exit;
|
||||||
|
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
||||||
|
echo "TODO: Add FreeBSD";
|
||||||
|
exit;
|
||||||
|
else
|
||||||
|
echo "Unknown"
|
||||||
|
echo ${OSTYPE}
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Latest npm with Meteor 1.6
|
||||||
|
sudo npm -g install npm
|
||||||
|
sudo npm -g install node-gyp
|
||||||
|
# Latest fibers for Meteor 1.6
|
||||||
|
sudo npm -g install fibers@2.0.0
|
||||||
|
# Install Meteor, if it's not yet installed
|
||||||
|
curl https://install.meteor.com | bash
|
||||||
|
# mkdir ~/repos
|
||||||
|
# cd ~/repos
|
||||||
|
# git clone https://github.com/wekan/wekan.git
|
||||||
|
# cd wekan
|
||||||
|
# git checkout devel
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
"Build Wekan")
|
||||||
|
echo "Building Wekan."
|
||||||
|
cd ~/repos/wekan
|
||||||
|
rm -rf packages
|
||||||
|
mkdir -p ~/repos/wekan/packages
|
||||||
|
cd ~/repos/wekan/packages
|
||||||
|
git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
|
||||||
|
git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
|
||||||
|
git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git
|
||||||
|
git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
|
||||||
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
echo "sed at macOS";
|
||||||
|
sed -i '' 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
|
||||||
|
else
|
||||||
|
echo "sed at ${OSTYPE}"
|
||||||
|
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd ~/repos/wekan
|
||||||
|
rm -rf node_modules
|
||||||
|
meteor npm install
|
||||||
|
rm -rf .build
|
||||||
|
meteor build .build --directory
|
||||||
|
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
|
||||||
|
#Removed binary version of bcrypt because of security vulnerability that is not fixed yet.
|
||||||
|
#https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac
|
||||||
|
#https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c
|
||||||
|
#cd ~/repos/wekan/.build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt
|
||||||
|
#rm -rf node_modules/bcrypt
|
||||||
|
#meteor npm install bcrypt
|
||||||
|
cd ~/repos/wekan/.build/bundle/programs/server
|
||||||
|
rm -rf node_modules
|
||||||
|
meteor npm install
|
||||||
|
#meteor npm install bcrypt
|
||||||
|
cd ~/repos
|
||||||
|
echo Done.
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
"Quit")
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
*) echo invalid option;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
12
releases/README.md
Normal file
12
releases/README.md
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
## Wekan release scripts
|
||||||
|
|
||||||
|
Sorry about the mess. I try to cleanup it sometime.
|
||||||
|
|
||||||
|
I usually use these:
|
||||||
|
- release.sh
|
||||||
|
- release-sandstorm.sh
|
||||||
|
- release-snap.sh
|
||||||
|
|
||||||
|
https://github.com/wekan/wekan-snap/wiki/Making-releases-from-source
|
||||||
|
|
||||||
|
https://github.com/wekan/wekan-maintainer/wiki/Building-Wekan-for-Sandstorm
|
||||||
5
releases/add-tag.sh
Executable file
5
releases/add-tag.sh
Executable file
|
|
@ -0,0 +1,5 @@
|
||||||
|
# Add tag to repo of new release
|
||||||
|
# Example: add-tag.sh v1.62
|
||||||
|
|
||||||
|
git tag -a $1 -m "$1"
|
||||||
|
git push origin $1
|
||||||
4
releases/commit.sh
Executable file
4
releases/commit.sh
Executable file
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
# --- Add commit with showing editor where it's easy to add multiline commit
|
||||||
|
git commit
|
||||||
|
# ----
|
||||||
3
releases/delete-branch-local-and-remote.sh
Executable file
3
releases/delete-branch-local-and-remote.sh
Executable file
|
|
@ -0,0 +1,3 @@
|
||||||
|
# https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote
|
||||||
|
#git push origin --delete feature-oauth
|
||||||
|
git push origin --delete $1
|
||||||
38
releases/rebuild-release.sh
Executable file
38
releases/rebuild-release.sh
Executable file
|
|
@ -0,0 +1,38 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Building Wekan."
|
||||||
|
cd ~/repos/wekan
|
||||||
|
rm -rf packages
|
||||||
|
mkdir -p ~/repos/wekan/packages
|
||||||
|
cd ~/repos/wekan/packages
|
||||||
|
git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
|
||||||
|
git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
|
||||||
|
git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git
|
||||||
|
git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
|
||||||
|
|
||||||
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
echo "sed at macOS";
|
||||||
|
sed -i '' 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
|
||||||
|
else
|
||||||
|
echo "sed at ${OSTYPE}"
|
||||||
|
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd ~/repos/wekan
|
||||||
|
rm -rf node_modules
|
||||||
|
meteor npm install
|
||||||
|
rm -rf .build
|
||||||
|
meteor build .build --directory
|
||||||
|
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
|
||||||
|
#Removed binary version of bcrypt because of security vulnerability that is not fixed yet.
|
||||||
|
#https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac
|
||||||
|
#https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c
|
||||||
|
#cd ~/repos/wekan/.build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt
|
||||||
|
#rm -rf node_modules/bcrypt
|
||||||
|
#meteor npm install bcrypt
|
||||||
|
cd ~/repos/wekan/.build/bundle/programs/server
|
||||||
|
rm -rf node_modules
|
||||||
|
meteor npm install
|
||||||
|
#meteor npm install bcrypt
|
||||||
|
cd ~/repos
|
||||||
|
echo Building Wekan Done.
|
||||||
19
releases/release-cleanup.sh
Executable file
19
releases/release-cleanup.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Usage: ./release.sh 1.36
|
||||||
|
|
||||||
|
# Delete old stuff
|
||||||
|
cd ~/
|
||||||
|
sudo rm -rf .npm
|
||||||
|
cd ~/repos/wekan
|
||||||
|
sudo rm -rf parts prime stage .meteor-spk
|
||||||
|
|
||||||
|
# Set permissions
|
||||||
|
cd ~/repos
|
||||||
|
sudo chown user:user wekan -R
|
||||||
|
cd ~/
|
||||||
|
sudo chown user:user .meteor -R
|
||||||
|
#sudo chown user:user .cache/snapcraft -R
|
||||||
|
sudo rm -rf .cache/snapcraft
|
||||||
|
sudo chown user:user .config -R
|
||||||
|
|
||||||
|
# Back
|
||||||
|
cd ~/repos
|
||||||
20
releases/release-sandstorm.sh
Executable file
20
releases/release-sandstorm.sh
Executable file
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Usage: ./release.sh 1.36
|
||||||
|
|
||||||
|
# Delete old stuff
|
||||||
|
cd ~/repos
|
||||||
|
./release-cleanup.sh
|
||||||
|
|
||||||
|
# Build Source
|
||||||
|
cd ~/repos
|
||||||
|
./rebuild-release.sh
|
||||||
|
|
||||||
|
# Build Sandstorm
|
||||||
|
cd ~/repos/wekan
|
||||||
|
meteor-spk pack wekan-$1.spk
|
||||||
|
spk publish wekan-$1.spk
|
||||||
|
scp wekan-$1.spk x2:/var/snap/wekan/common/releases.wekan.team/
|
||||||
|
mv wekan-$1.spk ..
|
||||||
|
|
||||||
|
# Delete old stuff
|
||||||
|
cd ~/repos
|
||||||
|
./release-cleanup.sh
|
||||||
26
releases/release-snap.sh
Executable file
26
releases/release-snap.sh
Executable file
|
|
@ -0,0 +1,26 @@
|
||||||
|
# Usage: ./release.sh 1.36
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
cd ~/repos
|
||||||
|
./release-cleanup.sh
|
||||||
|
|
||||||
|
# Build Source
|
||||||
|
cd ~/repos
|
||||||
|
./rebuild-release.sh
|
||||||
|
|
||||||
|
# Build Snap
|
||||||
|
cd ~/repos/wekan
|
||||||
|
rm -rf packages
|
||||||
|
sudo snapcraft
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
cd ~/repos
|
||||||
|
./release-cleanup.sh
|
||||||
|
|
||||||
|
# Push snap
|
||||||
|
cd ~/repos/wekan
|
||||||
|
sudo snap install --dangerous wekan_$1_amd64.snap
|
||||||
|
echo "Now you can test local installed snap."
|
||||||
|
snapcraft push wekan_$1_amd64.snap
|
||||||
|
scp wekan_$1_amd64.snap x2:/var/snap/wekan/common/releases.wekan.team/
|
||||||
|
mv wekan_$1_amd64.snap ..
|
||||||
9
releases/release.sh
Executable file
9
releases/release.sh
Executable file
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Usage: ./release.sh 1.36
|
||||||
|
|
||||||
|
# Build Sandstorm
|
||||||
|
cd ~/repos/wekan
|
||||||
|
./releases/release-sandstorm.sh $1
|
||||||
|
|
||||||
|
# Build Snap
|
||||||
|
cd ~/repos/wekan
|
||||||
|
./releases/release-snap.sh $1
|
||||||
1
releases/sandstorm-make-spk.sh
Executable file
1
releases/sandstorm-make-spk.sh
Executable file
|
|
@ -0,0 +1 @@
|
||||||
|
meteor-spk pack wekan-1.11.spk
|
||||||
1
releases/sandstorm-test-dev.sh
Executable file
1
releases/sandstorm-test-dev.sh
Executable file
|
|
@ -0,0 +1 @@
|
||||||
|
meteor-spk dev
|
||||||
2
releases/snap-edge.sh
Executable file
2
releases/snap-edge.sh
Executable file
|
|
@ -0,0 +1,2 @@
|
||||||
|
# Change to snap edge
|
||||||
|
sudo snap refresh wekan --edge --amend
|
||||||
1
releases/snap-install.sh
Executable file
1
releases/snap-install.sh
Executable file
|
|
@ -0,0 +1 @@
|
||||||
|
sudo snap install --dangerous wekan_1.23-17-g9c94ea5_amd64.snap
|
||||||
1
releases/snap-push-to-store.sh
Executable file
1
releases/snap-push-to-store.sh
Executable file
|
|
@ -0,0 +1 @@
|
||||||
|
snapcraft push $1
|
||||||
2
releases/snap-stable.sh
Executable file
2
releases/snap-stable.sh
Executable file
|
|
@ -0,0 +1,2 @@
|
||||||
|
# Change to snap stable
|
||||||
|
sudo snap refresh wekan --stable --amend
|
||||||
1
releases/snapcraft-help.sh
Executable file
1
releases/snapcraft-help.sh
Executable file
|
|
@ -0,0 +1 @@
|
||||||
|
snapcraft help topics
|
||||||
136
releases/translations/pull-translations.sh
Executable file
136
releases/translations/pull-translations.sh
Executable file
|
|
@ -0,0 +1,136 @@
|
||||||
|
cd ~/repos/wekan
|
||||||
|
|
||||||
|
echo "Arabic:"
|
||||||
|
tx pull -f -l ar
|
||||||
|
|
||||||
|
echo "Bulgarian:"
|
||||||
|
tx pull -f -l bg_BG
|
||||||
|
|
||||||
|
echo "Breton:"
|
||||||
|
tx pull -f -l br
|
||||||
|
|
||||||
|
echo "Catalan:"
|
||||||
|
tx pull -f -l ca
|
||||||
|
|
||||||
|
echo "Czech:"
|
||||||
|
tx pull -f -l cs
|
||||||
|
|
||||||
|
echo "Georgian:"
|
||||||
|
tx pull -f -l ka
|
||||||
|
|
||||||
|
echo "German:"
|
||||||
|
tx pull -f -l de
|
||||||
|
|
||||||
|
echo "Hindi:"
|
||||||
|
tx pull -f -l hi
|
||||||
|
|
||||||
|
echo "Esperanto:"
|
||||||
|
tx pull -f -l eo
|
||||||
|
|
||||||
|
echo "English (United Kingdom):"
|
||||||
|
tx pull -f -l en_GB
|
||||||
|
|
||||||
|
echo "Greek:"
|
||||||
|
tx pull -f -l el
|
||||||
|
|
||||||
|
echo "Spanish:"
|
||||||
|
tx pull -f -l es
|
||||||
|
|
||||||
|
echo "Spanish (Argentina):"
|
||||||
|
tx pull -f -l es_AR
|
||||||
|
|
||||||
|
echo "Basque:"
|
||||||
|
tx pull -f -l eu
|
||||||
|
|
||||||
|
echo "Persian:"
|
||||||
|
tx pull -f -l fa
|
||||||
|
|
||||||
|
echo "Finnish:"
|
||||||
|
tx pull -f -l fi
|
||||||
|
|
||||||
|
echo "French:"
|
||||||
|
tx pull -f -l fr
|
||||||
|
|
||||||
|
echo "Galician:"
|
||||||
|
tx pull -f -l gl
|
||||||
|
|
||||||
|
echo "Hebrew:"
|
||||||
|
tx pull -f -l he
|
||||||
|
|
||||||
|
echo "Hungarian:"
|
||||||
|
tx pull -f -l hu_HU
|
||||||
|
|
||||||
|
echo "Armenian:"
|
||||||
|
tx pull -f -l hy
|
||||||
|
|
||||||
|
echo "Indonesian (Indonesia):"
|
||||||
|
tx pull -f -l id_ID
|
||||||
|
|
||||||
|
echo "Igbo:"
|
||||||
|
tx pull -f -l ig
|
||||||
|
|
||||||
|
echo "Italian:"
|
||||||
|
tx pull -f -l it
|
||||||
|
|
||||||
|
echo "Japanese:"
|
||||||
|
tx pull -f -l ja
|
||||||
|
|
||||||
|
echo "Khmer:"
|
||||||
|
tx pull -f -l km
|
||||||
|
|
||||||
|
echo "Korean:"
|
||||||
|
tx pull -f -l ko
|
||||||
|
|
||||||
|
echo "Latvian (Latvia):"
|
||||||
|
tx pull -f -l lv_LV
|
||||||
|
|
||||||
|
echo "Mongolian (Mongolia):"
|
||||||
|
tx pull -f -l mn_MN
|
||||||
|
|
||||||
|
echo "Dutch:"
|
||||||
|
tx pull -f -l nl
|
||||||
|
|
||||||
|
echo "Norwegian:"
|
||||||
|
tx pull -f -l no
|
||||||
|
|
||||||
|
echo "Polish:"
|
||||||
|
tx pull -f -l pl
|
||||||
|
|
||||||
|
echo "Portuguese:"
|
||||||
|
tx pull -f -l pt
|
||||||
|
|
||||||
|
echo "Portuguese (Brazil):"
|
||||||
|
tx pull -f -l pt_BR
|
||||||
|
|
||||||
|
echo "Romanian (Romania):"
|
||||||
|
tx pull -f -l ro
|
||||||
|
|
||||||
|
echo "Russian:"
|
||||||
|
tx pull -f -l ru
|
||||||
|
|
||||||
|
echo "Serbian:"
|
||||||
|
tx pull -f -l sr
|
||||||
|
|
||||||
|
echo "Swedish:"
|
||||||
|
tx pull -f -l sv
|
||||||
|
|
||||||
|
echo "Tamil:"
|
||||||
|
tx pull -f -l ta
|
||||||
|
|
||||||
|
echo "Thai:"
|
||||||
|
tx pull -f -l th
|
||||||
|
|
||||||
|
echo "Turkish:"
|
||||||
|
tx pull -f -l tr
|
||||||
|
|
||||||
|
echo "Ukrainian:"
|
||||||
|
tx pull -f -l uk
|
||||||
|
|
||||||
|
echo "Vietnamese:"
|
||||||
|
tx pull -f -l vi
|
||||||
|
|
||||||
|
echo "Chinese (China):"
|
||||||
|
tx pull -f -l zh_CN
|
||||||
|
|
||||||
|
echo "Chinese (Taiwan)"
|
||||||
|
tx pull -f -l zh_TW
|
||||||
2
releases/translations/push-english-base-translation.sh
Executable file
2
releases/translations/push-english-base-translation.sh
Executable file
|
|
@ -0,0 +1,2 @@
|
||||||
|
cd ~/repos/wekan
|
||||||
|
tx push -s
|
||||||
6
releases/virtualbox/README.txt
Normal file
6
releases/virtualbox/README.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
Wekan
|
||||||
|
-----
|
||||||
|
- NOTE: VirtualBox script use Wekan stable (master+devel branch). Edge scripts are at wekan-maintainer/releases/ directory.
|
||||||
|
- Wekan is started at boot at /etc/rc.local
|
||||||
|
- scripts are at ~/repos
|
||||||
|
- this README.txt is at VirtualBox Ubuntu desktop
|
||||||
20
releases/virtualbox/etc-rc.local.txt
Normal file
20
releases/virtualbox/etc-rc.local.txt
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
#
|
||||||
|
# rc.local
|
||||||
|
#
|
||||||
|
# This script is executed at the end of each multiuser runlevel.
|
||||||
|
# Make sure that the script will "exit 0" on success or any other
|
||||||
|
# value on error.
|
||||||
|
#
|
||||||
|
# In order to enable or disable this script just change the execution
|
||||||
|
# bits.
|
||||||
|
#
|
||||||
|
# By default this script does nothing.
|
||||||
|
|
||||||
|
# node-allow-port-80.sh
|
||||||
|
sudo setcap cap_net_bind_service=+ep /usr/local/bin/node
|
||||||
|
|
||||||
|
# Start Wekan at boot at Ubuntu 14.04
|
||||||
|
sudo -H -u wekan bash -c '/home/wekan/repos/wekan/releases/virtualbox/start-wekan.sh'
|
||||||
|
|
||||||
|
exit 0
|
||||||
2
releases/virtualbox/ipaddress.sh
Executable file
2
releases/virtualbox/ipaddress.sh
Executable file
|
|
@ -0,0 +1,2 @@
|
||||||
|
# ifdata -pa eth0
|
||||||
|
ip address
|
||||||
1
releases/virtualbox/node-allow-port-80.sh
Executable file
1
releases/virtualbox/node-allow-port-80.sh
Executable file
|
|
@ -0,0 +1 @@
|
||||||
|
sudo setcap cap_net_bind_service=+ep /usr/local/bin/node
|
||||||
42
releases/virtualbox/old-rebuild-wekan.sh
Executable file
42
releases/virtualbox/old-rebuild-wekan.sh
Executable file
|
|
@ -0,0 +1,42 @@
|
||||||
|
## Most of these are uncommented, because they are already installed.
|
||||||
|
#sudo rm -rf /usr/local/lib/node_modules
|
||||||
|
#sudo rm -rf ~/.npm
|
||||||
|
#sudo apt install build-essential c++ capnproto npm git curl
|
||||||
|
#sudo npm -g install n
|
||||||
|
#sudo n 4.8.6
|
||||||
|
#sudo npm -g install npm@4.6.1
|
||||||
|
#sudo npm -g install node-gyp
|
||||||
|
#sudo npm -g install node-pre-gyp
|
||||||
|
#sudo npm -g install fibers@1.0.15
|
||||||
|
sudo rm -rf wekan
|
||||||
|
git clone https://github.com/wekan/wekan
|
||||||
|
cd ~/repos
|
||||||
|
#curl https://install.meteor.com -o ./install_meteor.sh
|
||||||
|
#sed -i "s|RELEASE=.*|RELEASE=${METEOR_RELEASE}\"\"|g" ./install_meteor.sh
|
||||||
|
#echo "Starting meteor ${METEOR_RELEASE} installation... \n"
|
||||||
|
#chown wekan:wekan ./install_meteor.sh
|
||||||
|
#sh ./install_meteor.sh
|
||||||
|
mkdir -p ~/repos/wekan/packages
|
||||||
|
cd ~/repos/wekan/packages
|
||||||
|
rm -rf kadira-flow-router
|
||||||
|
rm -rf meteor-useraccounts-core
|
||||||
|
git clone https://github.com/wekan/flow-router.git kadira-flow-router
|
||||||
|
git clone https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
|
||||||
|
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
|
||||||
|
cd ~/repos/wekan
|
||||||
|
|
||||||
|
rm -rf node_modules
|
||||||
|
npm install
|
||||||
|
rm -rf .build
|
||||||
|
meteor build .build --directory
|
||||||
|
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
|
||||||
|
sed -i "s|build\/Release\/bson|browser_build\/bson|g" ~/repos/wekan/.build/bundle/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/node_modules/bson/ext/index.js
|
||||||
|
cd ~/repos/wekan/.build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt
|
||||||
|
rm -rf node_modules/bcrypt
|
||||||
|
meteor npm install --save bcrypt
|
||||||
|
cd ~/repos/wekan/.build/bundle/programs/server
|
||||||
|
rm -rf node_modules
|
||||||
|
npm install
|
||||||
|
meteor npm install --save bcrypt
|
||||||
|
cd ~/repos
|
||||||
|
echo Done.
|
||||||
127
releases/virtualbox/rebuild-wekan.sh
Executable file
127
releases/virtualbox/rebuild-wekan.sh
Executable file
|
|
@ -0,0 +1,127 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Note: If you use other locale than en_US.UTF-8 , you need to additionally install en_US.UTF-8"
|
||||||
|
echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correctly."
|
||||||
|
echo " You can still use any other locale as your main locale."
|
||||||
|
|
||||||
|
X64NODE="https://releases.wekan.team/node-v8.11.3-linux-x64.tar.gz"
|
||||||
|
|
||||||
|
function pause(){
|
||||||
|
read -p "$*"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo
|
||||||
|
PS3='Please enter your choice: '
|
||||||
|
options=("Install Wekan dependencies" "Build Wekan" "Quit")
|
||||||
|
select opt in "${options[@]}"
|
||||||
|
do
|
||||||
|
case $opt in
|
||||||
|
"Install Wekan dependencies")
|
||||||
|
|
||||||
|
if [[ "$OSTYPE" == "linux-gnu" ]]; then
|
||||||
|
echo "Linux";
|
||||||
|
|
||||||
|
if [ "$(grep -Ei 'buntu|mint' /etc/*release)" ]; then
|
||||||
|
sudo apt install -y build-essential git curl wget
|
||||||
|
sudo apt -y install nodejs npm
|
||||||
|
sudo npm -g install n
|
||||||
|
sudo n 8.11.3
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$(grep -Ei 'debian' /etc/*release)" ]; then
|
||||||
|
sudo apt install -y build-essential git curl wget
|
||||||
|
echo "Debian, or Debian on Windows Subsystem for Linux"
|
||||||
|
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
|
||||||
|
sudo apt install -y nodejs
|
||||||
|
fi
|
||||||
|
|
||||||
|
# TODO: Add Sandstorm for version of Node.js install
|
||||||
|
#MACHINE_TYPE=`uname -m`
|
||||||
|
#if [ ${MACHINE_TYPE} == 'x86_64' ]; then
|
||||||
|
# # 64-bit stuff here
|
||||||
|
# wget ${X64NODE}
|
||||||
|
# sudo tar -C /usr/local --strip-components 1 -xzf ${X64NODE}
|
||||||
|
#elif [ ${MACHINE_TYPE} == '32bit' ]; then
|
||||||
|
# echo "TODO: 32-bit Linux install here"
|
||||||
|
# exit
|
||||||
|
#fi
|
||||||
|
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
echo "macOS";
|
||||||
|
pause '1) Install XCode 2) Install Node 8.x from https://nodejs.org/en/ 3) Press [Enter] key to continue.'
|
||||||
|
elif [[ "$OSTYPE" == "cygwin" ]]; then
|
||||||
|
# POSIX compatibility layer and Linux environment emulation for Windows
|
||||||
|
echo "TODO: Add Cygwin";
|
||||||
|
exit;
|
||||||
|
elif [[ "$OSTYPE" == "msys" ]]; then
|
||||||
|
# Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
|
||||||
|
echo "TODO: Add msys on Windows";
|
||||||
|
exit;
|
||||||
|
elif [[ "$OSTYPE" == "win32" ]]; then
|
||||||
|
# I'm not sure this can happen.
|
||||||
|
echo "TODO: Add Windows";
|
||||||
|
exit;
|
||||||
|
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
||||||
|
echo "TODO: Add FreeBSD";
|
||||||
|
exit;
|
||||||
|
else
|
||||||
|
echo "Unknown"
|
||||||
|
echo ${OSTYPE}
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Latest npm with Meteor 1.6
|
||||||
|
sudo npm -g install npm
|
||||||
|
sudo npm -g install node-gyp
|
||||||
|
# Latest fibers for Meteor 1.6
|
||||||
|
sudo npm -g install fibers@2.0.0
|
||||||
|
# Install Meteor, if it's not yet installed
|
||||||
|
curl https://install.meteor.com | bash
|
||||||
|
mkdir ~/repos
|
||||||
|
cd ~/repos
|
||||||
|
git clone https://github.com/wekan/wekan.git
|
||||||
|
cd wekan
|
||||||
|
git checkout devel
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
"Build Wekan")
|
||||||
|
echo "Building Wekan."
|
||||||
|
cd ~/repos/wekan
|
||||||
|
mkdir -p ~/repos/wekan/packages
|
||||||
|
cd ~/repos/wekan/packages
|
||||||
|
git clone https://github.com/wekan/flow-router.git kadira-flow-router
|
||||||
|
git clone https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
|
||||||
|
|
||||||
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
echo "sed at macOS";
|
||||||
|
sed -i '' 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
|
||||||
|
else
|
||||||
|
echo "sed at ${OSTYPE}"
|
||||||
|
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd ~/repos/wekan
|
||||||
|
rm -rf node_modules
|
||||||
|
meteor npm install
|
||||||
|
rm -rf .build
|
||||||
|
meteor build .build --directory
|
||||||
|
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
|
||||||
|
#Removed binary version of bcrypt because of security vulnerability that is not fixed yet.
|
||||||
|
#https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac
|
||||||
|
#https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c
|
||||||
|
#cd ~/repos/wekan/.build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt
|
||||||
|
#rm -rf node_modules/bcrypt
|
||||||
|
#meteor npm install bcrypt
|
||||||
|
cd ~/repos/wekan/.build/bundle/programs/server
|
||||||
|
rm -rf node_modules
|
||||||
|
meteor npm install
|
||||||
|
#meteor npm install bcrypt
|
||||||
|
cd ~/repos
|
||||||
|
echo Done.
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
"Quit")
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
*) echo invalid option;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
72
releases/virtualbox/start-wekan.sh
Executable file
72
releases/virtualbox/start-wekan.sh
Executable file
|
|
@ -0,0 +1,72 @@
|
||||||
|
# If you want to restart even on crash, uncomment while and done lines.
|
||||||
|
|
||||||
|
#while true; do
|
||||||
|
cd ~/repos/wekan/.build/bundle
|
||||||
|
export MONGO_URL='mongodb://127.0.0.1:27017/admin'
|
||||||
|
# ROOT_URL EXAMPLES FOR WEBSERVERS: https://github.com/wekan/wekan/wiki/Settings
|
||||||
|
# Production: https://example.com/wekan
|
||||||
|
# Local: http://localhost:3000
|
||||||
|
#export ipaddress=$(ifdata -pa eth0)
|
||||||
|
export ROOT_URL='http://localhost'
|
||||||
|
#---------------------------------------------
|
||||||
|
# Working email IS NOT REQUIRED to use Wekan.
|
||||||
|
# https://github.com/wekan/wekan/wiki/Adding-users
|
||||||
|
# https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
|
||||||
|
# https://github.com/wekan/wekan-mongodb/blob/master/docker-compose.yml
|
||||||
|
export MAIL_URL='smtp://user:pass@mailserver.example.com:25/'
|
||||||
|
export MAIL_FROM='Wekan Support <support@example.com>'
|
||||||
|
# This is local port where Wekan Node.js runs, same as below on Caddyfile settings.
|
||||||
|
export PORT=80
|
||||||
|
#---------------------------------------------
|
||||||
|
# Wekan Export Board works when WITH_API='true'.
|
||||||
|
# If you disable Wekan API, Export Board does not work.
|
||||||
|
export WITH_API='true'
|
||||||
|
#---------------------------------------------
|
||||||
|
## Optional: Integration with Matomo https://matomo.org that is installed to your server
|
||||||
|
## The address of the server where Matomo is hosted:
|
||||||
|
# export MATOMO_ADDRESS='https://example.com/matomo'
|
||||||
|
export MATOMO_ADDRESS=''
|
||||||
|
## The value of the site ID given in Matomo server for Wekan
|
||||||
|
# export MATOMO_SITE_ID='123456789'
|
||||||
|
export MATOMO_SITE_ID=''
|
||||||
|
## The option do not track which enables users to not be tracked by matomo"
|
||||||
|
# export MATOMO_DO_NOT_TRACK='false'
|
||||||
|
export MATOMO_DO_NOT_TRACK='true'
|
||||||
|
## The option that allows matomo to retrieve the username:
|
||||||
|
# export MATOMO_WITH_USERNAME='true'
|
||||||
|
export MATOMO_WITH_USERNAME='false'
|
||||||
|
# Enable browser policy and allow one trusted URL that can have iframe that has Wekan embedded inside.
|
||||||
|
# Setting this to false is not recommended, it also disables all other browser policy protections
|
||||||
|
# and allows all iframing etc. See wekan/server/policy.js
|
||||||
|
# Default value: true
|
||||||
|
export BROWSER_POLICY_ENABLED=true
|
||||||
|
# When browser policy is enabled, HTML code at this Trusted URL can have iframe that embeds Wekan inside.
|
||||||
|
# Example: export TRUSTED_URL=http://example.com
|
||||||
|
export TRUSTED_URL=''
|
||||||
|
# What to send to Outgoing Webhook, or leave out. Example, that includes all that are default: cardId,listId,oldListId,boardId,comment,user,card,commentId .
|
||||||
|
# Example: export WEBHOOKS_ATTRIBUTES=cardId,listId,oldListId,boardId,comment,user,card,commentId
|
||||||
|
export WEBHOOKS_ATTRIBUTES=''
|
||||||
|
#---------------------------------------------
|
||||||
|
# OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
|
||||||
|
# OAuth2 Client ID, for example from Rocket.Chat. Example: abcde12345
|
||||||
|
# example: export OAUTH2_CLIENT_ID=abcde12345
|
||||||
|
export OAUTH2_CLIENT_ID=''
|
||||||
|
# OAuth2 Secret, for example from Rocket.Chat: Example: 54321abcde
|
||||||
|
# example: export OAUTH2_SECRET=54321abcde
|
||||||
|
export OAUTH2_SECRET=''
|
||||||
|
# OAuth2 Server URL, for example Rocket.Chat. Example: https://chat.example.com
|
||||||
|
# example: export OAUTH2_SERVER_URL=https://chat.example.com
|
||||||
|
export OAUTH2_SERVER_URL=''
|
||||||
|
# OAuth2 Authorization Endpoint. Example: /oauth/authorize
|
||||||
|
# example: export OAUTH2_AUTH_ENDPOINT=/oauth/authorize
|
||||||
|
export OAUTH2_AUTH_ENDPOINT=''
|
||||||
|
# OAuth2 Userinfo Endpoint. Example: /oauth/userinfo
|
||||||
|
# example: export OAUTH2_USERINFO_ENDPOINT=/oauth/userinfo
|
||||||
|
export OAUTH2_USERINFO_ENDPOINT=''
|
||||||
|
# OAuth2 Token Endpoint. Example: /oauth/token
|
||||||
|
# example: export OAUTH2_TOKEN_ENDPOINT=/oauth/token
|
||||||
|
export OAUTH2_TOKEN_ENDPOINT=''
|
||||||
|
#---------------------------------------------
|
||||||
|
node main.js & >> ~/repos/wekan.log
|
||||||
|
cd ~/repos
|
||||||
|
#done
|
||||||
1
releases/virtualbox/stop-wekan.sh
Executable file
1
releases/virtualbox/stop-wekan.sh
Executable file
|
|
@ -0,0 +1 @@
|
||||||
|
pkill -f "node main.js"
|
||||||
1
releases/wekan-snap-help.sh
Executable file
1
releases/wekan-snap-help.sh
Executable file
|
|
@ -0,0 +1 @@
|
||||||
|
wekan.help | less
|
||||||
8
start-wekan.bat
Normal file
8
start-wekan.bat
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
SET MONGO_URL=mongodb://127.0.0.1:27017/wekan
|
||||||
|
SET ROOT_URL=http://127.0.0.1:2000/
|
||||||
|
SET MAIL_URL=smtp://user:pass@mailserver.example.com:25/
|
||||||
|
SET MAIL_FROM=admin@example.com
|
||||||
|
SET PORT=2000
|
||||||
|
SET WITH_API=true
|
||||||
|
cd .build\bundle
|
||||||
|
node main.js
|
||||||
23
start-wekan.sh
Executable file
23
start-wekan.sh
Executable file
|
|
@ -0,0 +1,23 @@
|
||||||
|
# If you want to restart even on crash, uncomment while and done lines.
|
||||||
|
|
||||||
|
#while true; do
|
||||||
|
cd ~/repos/wekan/.build/bundle
|
||||||
|
#export MONGO_URL='mongodb://127.0.0.1:27019/wekantest'
|
||||||
|
#export MONGO_URL='mongodb://127.0.0.1:27019/wekan'
|
||||||
|
export MONGO_URL='mongodb://127.0.0.1:27019/wekantest'
|
||||||
|
# Production: https://example.com/wekan
|
||||||
|
# Local: http://localhost:2000
|
||||||
|
#export ipaddress=$(ifdata -pa eth0)
|
||||||
|
export ROOT_URL='http://localhost:2000'
|
||||||
|
# https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
|
||||||
|
# https://github.com/wekan/wekan-mongodb/blob/master/docker-compose.yml
|
||||||
|
export MAIL_URL='smtp://user:pass@mailserver.example.com:25/'
|
||||||
|
# This is local port where Wekan Node.js runs, same as below on Caddyfile settings.
|
||||||
|
export WITH_API=true
|
||||||
|
export KADIRA_OPTIONS_ENDPOINT=http://127.0.0.1:11011
|
||||||
|
export PORT=2000
|
||||||
|
#export LDAP_ENABLE=true
|
||||||
|
node main.js
|
||||||
|
# & >> ~/repos/wekan.log
|
||||||
|
cd ~/repos
|
||||||
|
#done
|
||||||
5
status-wekan.sh
Executable file
5
status-wekan.sh
Executable file
|
|
@ -0,0 +1,5 @@
|
||||||
|
echo -e "\nWekan node.js:"
|
||||||
|
ps aux | grep "node main.js" | grep -v grep
|
||||||
|
echo -e "\nWekan mongodb:"
|
||||||
|
ps aux | grep mongo | grep -v grep
|
||||||
|
echo -e "\nWekan logs are at /home/wekan/repos/wekan.log\n"
|
||||||
1
stop-wekan.sh
Executable file
1
stop-wekan.sh
Executable file
|
|
@ -0,0 +1 @@
|
||||||
|
pkill -f "node main.js"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue