Loading...
 
(Cached)

show.tiki.org

See show.tiki.org Overview first. Here is a great intro: https://tiki.org/Presentation-Fosdem-2014-show.tiki.org (see PDF)

Questions

  • Do we need to run different versions of Tiki with different versions of PHP? trunk now needs 5.5, how do older Tikis work with that?

Architecture

  • Own set of scripts
    • We have a very defined set of things to do. Adding something like puppet as a layer over calling these very defined scripts doesn't add anything else than overhead.
  • All on one server
    • If in future we need to have multiple servers we can simply have multiple machines behind proxy (we will only need this if we are too successful)
  • Create apache virtual hosts for john1.show.tiki.org etc...
  • A global htpasswd protection
  • Have local mirrors of various Tiki SVN tag versions (part of release procedure, or potentially when we are tired of adding them write a cron job to check for new tags - pretty trivial)
  • On show.tiki.org, there is ssh access via key which can be accessed from dev.tiki.org.
  • Connection to show.tiki.org can be through http://www.php.net/manual/en/function.ssh2-exec.php.
    • If we end you using another tool, e.g. Puppet/Chef, there might be PHP libs provided that can do the connection as well
    • executable on show.tiki.org provides response with info e.g. the domain back to server
    • In the case of failure on scripts on show.tiki.org, best effort to put up a warning HTML on the domain as much as possible, and also send out email to admin and (different email) user about error.
  • Would need a secure execution environment on show.tw.org that has no access to system shell, but only to allowed script services.
  • Need some security precautions to avoid server compromise from instance.

Scripts needed

Whether or not we use a tool like Puppet/Chef, there will need to be scripts - whether it is a shell script, or puppet script, etc...

Instance creation

  1. Virtual host creation
  2. Instance creation from tag
    1. clone tag instance to target directory (use subdirectory if provided by user)
    2. svn switch(checkout?) to specific revision if specified by user.
    3. Import tiki.sql
    4. Modify tiki.sql
      1. Create random password and let the user know?
      2. Turn on action log and turn on everything
      3. Admin email set to user's email
      4. Name of site dynamically set based on username with an algorithm which guarantees that we can trace all sites of a given user, and still have nice legible names for the simplest cases (not a high priority).
        • If the username has anything other than letters and numbers without spaces, dev.tw.o just use "user<tikiuserId>" to be safe. Name of site is e.g. john-1-v10-1.show.tiki.org or john-1-r38987.show.tiki.org
    5. Run setup.sh
    6. Run htaccess.sh (this is an option on setup and can be triggered afterwards), set RewriteBase if in subdirectory (and message that we did it)
  3. Send email after instance creation (from show)

Snapshot creation

  1. On demand from dev.tw.o, show.tiki.org will create a snapshot, store it on a folder john-1.show.tiki.org/snapshots/......tgz? A snapshot is a tarball for source and a tarball for database.
  2. The snapshots on show.tiki.org are matched to corresponding items in a snapshots tracker on dev.tiki.org (visible through items list field on the bug tracker).
  3. On deletion of the snapshot item on the snapshots tracker, a request for deleting of the snapshot is done on show.tiki.org. Probably only admins will delete snapshots (no harm in keeping more).
  4. Once the bug tracker item is closed, the links to the snapshots will no longer be visible in case they have been deleted.

Instance upgrading

  1. Make exact clone from existing (code + db);
  2. svn -rxxxx or switch
  3. doctools/sqlupgrade.sh
  4. run setup.sh for composer.
  5. Need to be able to detect error, same handling as for new instance, email admin and user.
  6. Perhaps the script can be tried twice before considered fail.
  7. We could also write in the email "please try again later tomorrow" or something like that

Instance destruction

  1. 30 days after tracker item is closed on dev, the instance is removed, triggered from dev.
  2. Delayed destruction of snapshots.
  3. Provide a way for admin of dev to trigger an immediate destruction and clearing of this.
  4. When users are deleted from tiki.org, the instance needs to be destroyed as well, this should happen through lib/setup/events.php.
  5. When tracker item is deleted, it should also remove the show instance similarly.
  6. Add a popup warning for an admin deleting a tracker item that a show instance will be deleted.
  7. 48h before destruction, there is an email sent with instructions to postpone destruction, if necessary.

Implementation

There is ssh://ctrl@show.tiki.org which has tim-ssh as its login shell and can create, destroy and snapshot instances. You can call it like

TIM examples
# ssh ctrl@show.tiki.org create -t <SVN-Tag> -u <user> -i <Instabce-ID>
# ssh ctrl@show.tiki.org destroy -t <SVN-Tag> -u <user> -i <Instance-ID>
# ssh ctrl@show.tiki.org snapshot -t <SVN-Tag> -u <user> -i <Instance-ID>


The main script is /usr/local/sbin/tim and /usr/local/sbin/tim-ssh is a wrapper around it that is being used as the login shell.

The created sites can only be accessed via their show.tikiwiki.org subdomain. So http://amette-42-10-0.show.tikiwiki.org works, but http://amette-42-10-0.show.tiki.org doesn't. This is due to the registrar that we have tiki.org registered with, doesn't allow for wildcard domains.

To get access to this demo please contact mailto:jyhem@tiki.org.

Wishes

  1. Broken feedback for "SVN update" button

 RatingSubjectSubmitted byImportanceEasy to solve?PriorityCategoryVolunteered to solveLastModifComments
(0) show server doesn't have latest stable versions (ex.: 11.1)Marc Laporte810 easy80
  • Community projects
Nelson Ko2013-11-122
marclaporte-03 Apr 14
(0) show.tiki.org "Change password enforced" should not happen when I click "Reset password to 12345"Marc Laporte710 easy70
  • Feature request
amette2013-11-131
Jyhem-05 Feb 14
(1) Show.t.o requires php 7.1+ (was: Tracker Field Location no longer fetching coordinates from tracker field address)Xavier de Pedro8864
  • Error
  • Community projects
  • Dogfood on a *.tiki.org site
  • Regression
2018-11-223
xavi-12 Nov 18
(0) Bug Tracker / Wishlist broken - no Category saving and show instances fail on installingTorsten Fabricius10 high550
  • Regression
2013-11-041
koth-31 Oct 13
(0) show.tiki.org upgrade any trunk checkout to latest HEADPascal St-Jean8540
  • Feature request
2013-10-281
marclaporte-17 Aug 13
(0) show.tiki.org: clone and upgradeMarc Laporte8540
  • Feature request
Nelson Ko2013-10-280
(0) http://dev.tiki.org/tiki-tracker_rss.php?trackerId=5 has show related contentMarc Laporte1 low44
  • Usability
  • Dogfood on a *.tiki.org site
2014-07-080
(0) Show.tiki.org: spinner doesn't last long enoughMarc Laporte7535
  • Usability
amette2013-11-161
koth-14 Nov 13
(0) Add show.tiki.org as a mirror domain to show.tikiwiki.orgMarc Laporte3824
  • Dogfood on a *.tiki.org site
Nelson Ko2013-09-210
(0) show.tiki.org : should be a way to use activate .htaccessMarc Laporte3824
  • Feature request
amette2013-11-130
(0) show.tiki.org : SVN update should also do a db update and run ComposerMarc Laporte2918
  • Error
amette2014-02-130
(0) Make ShowTikiOrg field work with show2.tikiwiki.orgJonny Bradley1 low1 difficult1
  • Feature request
2019-01-230
(0) Enable .htaccess or its nginx equivalent on show instances for SEFURLs demonstrationsluciash d' being 🧙‍♂️0
  • Feature request
2016-10-060
(0) "SVN update" button doesn't work anymore on existing show instancesluciash d' being 🧙‍♂️10 high0
  • Usability
  • Regression
  • Bug
2018-09-230


Created by Nelson Ko. Last Modification: Wednesday 01 May, 2019 11:46:44 GMT-0000 by Gary Cunningham-Lee.

Keywords

The following is a list of keywords that should serve as hubs for navigation within the Tiki development and should correspond to documentation keywords.

Each feature in Tiki has a wiki page which regroups all the bugs, requests for enhancements, etc. It is somewhat a form of wiki-based project management. You can also express your interest in a feature by adding it to your profile. You can also try out the Dynamic filter.

Accessibility (WAI & 508)
Accounting
Administration
Ajax
Articles & Submissions
Backlinks
Banner
Batch
BigBlueButton audio/video/chat/screensharing
Blog
Bookmark
Browser Compatibility
Calendar
Category
Chat
Comment
Communication Center
Consistency
Contacts Address book
Contact us
Content template
Contribution
Cookie
Copyright
Credits
Custom Home (and Group Home Page)
Database MySQL - MyISAM
Database MySQL - InnoDB
Date and Time
Debugger Console
Directory (of hyperlinks)
Documentation link from Tiki to doc.tiki.org (Help System)
Docs
DogFood
Draw
Dynamic Content
Preferences
Dynamic Variable
External Authentication
FAQ
Featured links
Feeds (RSS)
File Gallery
Forum
Friendship Network (Community)
Group
Help
History
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
jQuery
Kaltura video management
Karma
Live Support
Logs (system & action)
Lost edit protection
Mail-in
Map
Menu
Meta Tag
Missing features
Visual Mapping
Mobile
Mods
Modules
MultiTiki
MyTiki
Newsletter
Notepad
OS independence (Non-Linux, Windows/IIS, Mac, BSD)
Organic Groups (Self-managed Teams)
Packages
Payment
PDF
Performance Speed / Load / Compression / Cache
Permission
Poll
Profiles
Quiz
Rating
Realname
Report
Revision Approval
Scheduler
Score
Search engine optimization (SEO)
Search
Security
Semantic links
Share
Shopping Cart
Shoutbox
Site Identity
Slideshow
Smarty Template
Social Networking
Spam protection (Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Staging and Approval
Stats
Survey
Syntax Highlighter (Codemirror)
Tablesorter
Tags
Task
Tell a Friend, alert + Social Bookmarking
Terms and Conditions
Theme
TikiTests
Timesheet
Token Access
Toolbar (Quicktags)
Tours
Trackers
TRIM
User Administration
User Files
User Menu
Watch
Webmail and Groupmail
WebServices
Wiki History, page rename, etc
Wiki plugins extends basic syntax
Wiki syntax text area, parser, etc
Wiki structure (book and table of content)
Workspace and perspectives
WYSIWTSN
WYSIWYCA
WYSIWYG
XMLRPC
XMPP




Useful Tools