GithubHelp home page GithubHelp logo

babyfnord / update_wekan Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 0.0 102 KB

Update existing Wekan installations on Uberspace 7 hosted domains.

License: GNU General Public License v3.0

Shell 100.00%
wekan uberspace7 uberspace

update_wekan's Introduction

update_wekan

WeKan is an open-source kanban board. This script automates updating a bundle-based WeKan instance hosted on Uberspace 7. To install WeKan in the first place, see this guide.

NOTA BENE This script is work in progress as WeKan is frequently being updated. Some changes introduced to WeKan became problematic for bundle-installs on U7, this script provides some workarounds for that. Some extra features of the script currently are broken, I'll fix them when I have the time and knowledge to do so.

It might happen that WeKan introduces new features or dependencies and a new version won't run at first, needs some fixes to the startup-script or whatever 🤷🏻‍♂️. To prevent a failover, this script puts each installed version into its own subfolder ($HOME/wekan/wekan-{release version}/)and creates a symlink called current to be referenced elsewhere (ie. for Document Root). If needed, stop Wekan by typing tmux attach and when tmux shows the running script, press CTRL+bthen d. A next step could be to revert the symlink to your preferred previous version, and run the startup-script again.

Getting started

Requirements

A working WeKan instance to be found at ~/wekan/ and working Node.js 14.21.4. The latter is an unofficial Node.js version, which you need to install (see below for instructions), furthermore, Node.js 14.21.3 and .4 are unsupported (as in EOL) on Uberspace 7. Hence, you need to manually install that: The workaround is to put Node.js 14.21.4 at ~/opt/node14.21.4 and instead of building fibers (which will fail at startup time), and to copy the required Node fibers from a previous version v6.86 into the downloaded WeKan folder. The fibers version will be provided at a later stage …

Install Node.js v14.21.4

Copy and paste this line-by-line into your shell:

VERSION="14.21.4"
SOURCE="https://github.com/wekan/node-v14-esm/releases/download/v14.21.4/node-v14.21.4-linux-x64.tar.gz"
DEST="${HOME}/opt/node${VERSION}"
mkdir --parents "${DEST}"
wget "${SOURCE}"
tar zxvf "node-v${VERSION}-linux-x64.tar.gz"
mv "node-v${VERSION}-linux-x64/"* "${DEST}/"
rm -rf "node-v${VERSION}-linux-x64" "node-v${VERSION}-linux-x64.tar.gz"

Now you should have a working copy of Node.js v14.21.4 ready to be used with WeKan >= v7.02.

Install update_wekan

  • Download the current version update_wekan, or clone this git and enter the directory:

    git clone https://github.com/BabyFnord/update_wekan.git && cd $(basename $_ .git)
  • Copy the script and make it executable:

    cp update_wekan ~/bin && chmod +x ~/bin/update_wekan

Usage

SSH into your Uberspace shell. Type update_wekan, the script will ask for your permission to stop a running WeKan instance initiated by tmux (any prior WeKan instance would have to be initiated using 'tmux new -s wekan ~/wekan/start-wekan.sh'). After this step, update_wekan does the fiddly update process automagically. Finally, the script asks whether it should start your new WeKan version in a new tmux session. To leave that session gracefully, type CTRL-b then d to return to the shell—WeKan is up and running the most recent version.

More information available by asking the script for help, but please remember for the time being, unfortunately any extra feature outside of a standard update process is non-functional:

update_wekan --help

Contribute

In its current state, the script does not provide its prior extra features beyond its main job—which is automating the update procedure. Inactive code exists for those extra features, waiting to be fixed one of these days. Post your issues when you have any, pull requests are welcome.

Related

Related Projects

Credits

Initially kindly coded by Kim Diallo, though abandoned long ago. Translation and ongoing development by BabyFnord

Achievements

Tested working since v5.8x.

update_wekan's People

Contributors

babyfnord avatar kimdiallo avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

update_wekan's Issues

Updating v5.28 → v5.30 fails: errno -13/Error: EACCES to wekan-5.30/bundle/programs/server/package.json

When trying to update wekan v5.28 → v5.30 and after inflating wekan's main.js, wekan-5.30/bundle/programs/server/package.json can't be accessed:

inflating: /home/USER/wekan/wekan-5.30/bundle/main.js
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: request has been deprecated, see request/request#3142
npm WARN deprecated [email protected]: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future
npm ERR! code EACCES
npm ERR! syscall open
npm ERR! path /home/USER/wekan/wekan-5.30/bundle/programs/server/package.json
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, open '/home/USER/wekan/wekan-5.30/bundle/programs/server/package.json'
npm ERR! [Error: EACCES: permission denied, open '/home/USER/wekan/wekan-5.30/bundle/programs/server/package.json'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'open',
npm ERR! path: '/home/USER/wekan/wekan-5.30/bundle/programs/server/package.json'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR! /home/USER/.npm/_logs/2021-06-08T19_07_29_216Z-debug.log

Formerly with the same result, npm suggested to upgrade from 7.12.1 → 7.16.0 by running npm install -g [email protected], alas, that didn't change the issue with wekan-5.30/bundle/programs/server/package.json. There are suggestions to chown some dir's in order to fix EACCES, yet they remain questionable, as there is no obvious reason for that new requirement.

Some initial bug hunting …

As of now, line 9 returns …
pipeerror: Ungültiger Optionsname.
… seems pipeerror option does not exist according to The Set builtin. Once I remove pipeerror, line 98 returns …
Zeile 98: 1 ist nicht gesetzt.

Kim, could you please chime in? :)

Feature request: Update npm, when it is recommended (and safe for wekan)

Updating wekan from v5.27 to v5.28 brought up an alert to run npm audit fix and subsequently npm install -g npm, as a new major version of npm became available (6.14.8 → 7.11.2). It seems like a good idea to implement updating npm along the way (or à priori, that is).
According to @xet7 (Wekan main dev):

Wekan uses newest npm available. And Node 12.x and MongoDB 3.2-4.x (or Percona MongoDB)

… so that should be considered.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.