Coevolving Innovations

… in Business Organizations and Information Technologies

A federated wiki site on cPanel

Since my cPanel shared hosting provider supports node.js hosting, installing a federated wiki site beside the usual Softaculous packages is an option. The app requires node.js, and there is a variety of ways to deploy that.

In 2014, I had installed a federated wiki site on Openshift, but then didn’t maintain it as other priorities surfaced.  The site is now available at http://wiki.coevolving.com, and the prior content has been restored.

The installation isn’t a one-button procedure.  However, an administator comfortable with opening an SSH terminal onto your shared hosting account should be able to follow the steps below.  (If you have problems, the federated wiki community hangs out in a room on matrix.org).

A. Creating a Subdomain

(1) Through your browser, from cPanel … Domains … , create a Subdomain.

  • As an example, I can create a Subdomain wiki in the Domain coevolving.com, that will actually be stored in my Home (Document Root) as a wiki.coevolving.com directory.

Subdomain_CreateASubdomain

B. Installing Federated Wiki

(2) From cPanel … Software … Setup Node.js App.

  • In the Web Applications list, Create Application.  As an example, set:
      • Node.js version: 10.11.0
      • Application mode: Production
      • Application root: wiki.coevolving.com
      • Application URL: wiki.coevolving.com
      • Application startup: app.js
  • (If you leave the Application startup field blank, app.js automatically fills in as the default)

NodeJs_CreateApplication

  • At this point, the node.js environment is not yet activated, as the package.json has not yet been downloaded, and the Run NPM Install button is greyed out.

WebApplications_EnterToTheVirtualEnvironment
(3) Open a terminal to your account.  Through a browser you could navigate to cPanel … Advanced … Terminal ; the more technically proficient will already know how to log in via SSH.

cPanel_Advanced_Terminal

(4) Download the current version of the federated wiki code, unzip it, and place it into a directory so that it can be installed with npm.

  • Change into the directory.  Transfer the current version of the fedwiki repository from the Github site to your host (curl option-L will redo the request if the location has changed; -o specifies the output file name).
cd wiki.coevolving.com 
curl -L https://github.com/fedwiki/wiki/archive/master.zip -o wiki-master.zip
  • List the file to ensure it’s downloaded (ls -lh gives a long, human-readable list).  Unzip it into a directory (unzip options -uo extracts newer versions of files already in the current directory and creates any files not already there; -d . specifies the target directory as the current directory) .
ls -lh wiki-master.zip 
unzip -uo wiki-master.zip -d .
  • List the directory to ensure that the wiki-master directory was created properly (and the package.json is in place).  Move the contents from that now-unpacked directory up one level into the current direction (mv -v gives verbose information).
ls
mv -v wiki-master/* .

(5) If you had previously backed up a federated wiki, the content could now be restored.  Upload the file, and unpack the archive.

tar -xvpf archive_wiki.tar.gz
  • … with  tar options -x (extract); -v (verbose); -p, (preserve-permissions) ; -f  (file-archive).

(6) Personalizing the federated wiki requires (i) specifying where the data will be stored; (ii) setting up security; and (iii) setting up the site owner name.  For a single (or small number) of users, the friends plugin can invoked with the editing of config.json.

  • If a directory where the content will be stored hasn’t already been defined, create one, e.g. wiki.
mkdir wiki
  • Configure to use friends security, by editing a sample config.json …
cp config.json config-old.json
nano config.json
  • … with an initial config.json template that looks like …
{
"data": "....",
"security_type": "friends",
"cookieSecret": "some long random string (not this!!!!)",
"session_duration": "14"
}
  • … and can be modified to become …
{
"data": "/home/coXXXXXX/wiki.coevolving.com/wiki",
"security_type": "friends",
"cookieSecret": "my_cookieSecret_of_choice",
"session_duration": "14"
}
  • As a precaution, make a backup the new config.json:
cp config.json "$(date '+%Y-%m-%d')_config.json"
  • Configure the site with your own user name, by editing a sample owner.json
cp wiki/status/owner.json /wiki/status/owner-old.json
nano wiki/status/owner.json
  • … with an initial owner.json template that looks like …
{
"name": "Koheni",
"friend": {
"secret": "some long string that you use to reclaim write access"
}
}

… and can be modified to become …

{
"name": "daviding",
"friend": {
"secret": "my_write_access_secret"
}
}
  • As another precaution, backup the new owner.json
cp wiki/status/owner.json "$(date '+%Y-%m-%d')_owner.json"

(7) For the cPanel Web Application, the Application startup file is presumed to be app.js.  The downloaded package from Github assumed index.js, so let’s give the environment the filename it expects.

ls *.js
mv app.js app_old.js
cp index.js app.js

(8) With the federated wiki files now in the right position, the cPanel instruction to “Enter into the virtual environment” can be carried out.

source /home/coXXXXXX/nodevenv/wiki.coevolving.com/10/bin/activate
  • The source command is added to the command specified on the cPanel page, otherwise you’ll get the message “‘activate’ script should be sourced, not run directly”.

(9) Returning to cPanel in the browser, reloading the page should now detected the package.json configuration file, and Run NPM Install button should be available.

Run NPM Install button is available

  • Select the Run NPM Install button.  (Running npm install from the terminal doesn’t seem to give the same results, as loading the Welcome Visitors page in a browser will not be properly formatted).

C. Claiming the Wiki Site

(10) In your browser, navigate to your wiki page (e.g. wiki.coevolving.com).  At the bottom of the page, if you hover over the padlock, you should see a popup to “Reclaim this Wiki”

Reclaim this Wiki

  • Selecting the padlock should surface a panel, saying:

Welcome back <<yourname>>. Please enter your reclaim code to reconnect with your wiki.

  • With the “secret” you had entered in owner.json, the padlock icon should show as open.

(11) Your federated wiki should now be available for collecting pages across the federation, and co-editing.

D. Maintaining the Wiki Site

(12) Periodically, it might be prudent to prepare an offline archive of your federated wiki site.  On a terminal, pack a directory into a single file (tar with options -c (create); -v (verbose); -p (preserve-permissions); -z (compress to gzip); -f (filename)).

ls wiki
tar -cvpzf "$(date '+%Y-%m-%d'_wiki).tar.gz" wiki
  • Download a copy of that tar.gz file to your computer for safekeeping.  That backed up wiki directory will include the owner.json.
  • Download a copy of config.json.

My federated wiki site is at http://wiki.coevolving.com.

1 Comment

  • Interesting! Coincidentally, I’m currently setting up a personal wiki on my server that also is taking quite a bit of configuration to setup. Obviously the intent is very different since it’s completely private, but I’ll probably write a post about that soon.


Leave a Reply

Your email address will not be published. Required fields are marked *

  • Recent Posts

  • Archives

  • RSS qoto.org/@daviding (Mastodon)

    • New status by daviding April 1, 2019
      Afternoon break in 200-year-old mid-lake pavilion included zhong, quail eggs, kumquats, sesame peanut blocks, preserved plums. Following afternoon visiting two art museums, the snack re-energized us into discussing philosophy, following the tradition of those frequenting Chinese teahouses. (Yuyuan Tea House, Yu Garden, Shanghai, PR China) 20190331 @marcocataffo
    • New status by daviding April 1, 2019
      Here in Shanghai, @marcocataffo has a Thinkpad T430 , which I&apos;ve now brought up to date with Manjaro Linux (and Kubuntu LTS as a backup) alongside Windows 7. He&apos;s now 2 days jet lagged from Italy. Eventually, maybe @antlerboy will meet somewhere.
    • daviding shared a status by antlerboy@mastodon.social February 9, 2019
      @daviding Wittgenstein:"6.54 My propositions are elucidatory in this way: he who understands me finally recognizes them as senseless, when he has climbed out through them, on them, over them. (He must so to speak throw away the ladder, after he has climbed up on it.)"
    • New status by daviding February 9, 2019
      Dinner with @rms @fsf inviting the activists #CivicTechTO to gain some insight into discussions on privacy concerns #QuaysideToronto. We outlined but didn&apos;t delved into the complexity of three levels of government involved in #WaterfrontTO. (Royal Myanmar, Homer Avenue, Etobicoke, Ontario) 20190208
    • New status by daviding January 24, 2019
      Each of us can find different meaning from the same words. > The poetic prose of ancient Chinese philosopher Zhuangzi, for example, is a stunning piece of compressed thought and meaning with a deft touch of humour: ”The fish trap exists because of the fish; once you’ve gotten the fish, you can forget the trap. […]
  • RSS on IngBrief

    • Contextual dyadic thinking (Lee, 2017)
      Contextual dyadic thinking is proposed by Keekok Lee in her 2017 The Philosophical Foundations of Classical Chinese Medicine. This is as a way of appreciating Chinese implicit logic, as an alternative to dualistic thinking that has developed over centuries in Western philosophy.
    • Dao, de, wei, wuwei (Lai 2003)
      Appreciating wei and wuwei has led to the context of dao and de, in the writings of Karyn L. Lai. The scholarly review acknowledges prior interpretations of de and dao.
    • Engineering Resilience vs. Ecological Resilience (Holling, 1996)
      For @theNASciences in 1996, #CSHolling clarified definitions of resilience, with engineering seeking one equilibrium state, while ecology recognizes many. Those who emphasize the near-equilibrium definition of engineering resilience, for example, draw predominantly from traditions of deductive mathematical theory (Pimm,. 1984) where simplified, untouched ecological systems are imagined, or from traditions of engineering, where the motive […]
    • Service coproductions as reciprocal activities
      In addition to extrinsic economic exchange, #JohnMCarroll #JiaweiChen #ChienWenTinaYuan #BenjaminHanrahan @ISTatPENNSTATE say service coproductions relying on all participants to collaborate in both economic exchange and social exchange. Service coproduction is a special case of service provision in which the roles of service provider and service recipient both require active participation. Examples include healthcare, education, and […]
    • Science and Society in East and West | Joseph Needham | 2004
      In researching #SystemsChange, fundamental differences in science and philosophy in the west and the Chinese were surfaced by #JosephNeedham. A useful translation of wéi and wú wéi (i.e. 為 and 無為 , or 为 and 无为) is the ways of "human will" and "nature" as juxtaposed.
    • Wiki as computational platform
      Thinking forward on #federatedwiki, rather than backwards by @wardcunningham. > [Federated wiki] is a computational platform for the collaborative construction of things that work and will continue to work as platform technology evolves underneath it. > Too much thinking about wiki as a note-taking system will just hold it back.
  • RSS on Media Queue

  • RSS on daviding.com

    • 2019/03 Moments March 2019
      Month of intensive lectures and research meetings, in Toronto and then in Shanghai, with social breaks on local excursions to clear minds.
    • 2019/02 Moments February 2019
      Reduced exercise outside with a cold and snowy February, with excursions out of the house to warm places with family, friends and colleagues.
    • 2019/01 Moments January 2019
      January in Toronto has lots of intellectual offerings and artistic exhibitions to attract the curious out of warm homes, through cold and snow.
    • 2018/12 Moments December 2018
      Tried to have a normal month, with a busy social calendar of birthdays, a funeral plus Christmas season, while daily temperatures hovered just above freezing.
    • 2018/11 Moments November 2011
      Mentally busy month with a conference coming to town, and maintaining the regular pattern of local meetings, travel around town only by bicycle.
    • 2018/10 Moments October 2018
      October had more bicycling cross-town as fall temperatures declined, plus a 6-day trip to Portland Oregon for pattern language conferences.
  • Meta

  • Creative Commons License
    This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License
    Theme modified from DevDmBootstrap4 by Danny Machal