Loading...
 

Tiki Manager within Tiki

Development has started and this will be part of Tiki25. Initial code: https://gitlab.com/tikiwiki/tiki/-/merge_requests/1374

Next up: Wiki Plugin (done) and Tracker field type (done)

Documentation: Tiki Manager Package



In the mean time, you can use Tiki Manager (CLI or web interface) or https://gitlab.com/wikisuite/virtualmin-tikimanager

Executive summary: Tiki Manager is very helpful but there are two families of limitations:
  1. It is designed for a single admin (all or nothing) and thus can't be used for self-serve requests for demo instances.
  2. It automates operations for Tiki management, but not server management (create web space, set domain name, configure SSL, etc)


With enhancements to Tiki Manager and Tiki, when used in conjunction with Virtualmin, this will permit in one Tiki instance to easily manage hundreds or thousands of other Tiki instances.

Why

To address these use cases (in order of priority)

  1. Easy for Tiki consultants to set up a Tiki for a demo to a lead or a client
  2. Provide end users an easy way to request a demo for a few weeks and won't get messed up by other users or reset daily, like http://demo.tiki.org/
    • Provide way more demos that are tailored for specific use cases (Easy demos of profiles, a clone of a nice template site, etc.)
  3. Documentation: Easy access to Tiki instances of recent versions (including trunk) so as to write documentation, and collect nice screenshots and screencasts
  4. The next generation of the show servers
  5. In a dev/staging/prod context
  6. For Tiki hosting services, who can leverage Payment
  7. A way to demo Tiki Manager (But first we need to add a way for Tiki Manager to install Tiki Manager recursively)
  8. Continue on https://wikisuite.org/Orchestrator

How

Similar to what PluginCypht does for webmail, embed Tiki Manager's web interface in a wiki page with

  • WYSIWYCA of instance list
  • actions / fields hidden or shown via plugin parameters (to permit very simple interfaces)


So a GUI to configure a GUI with configuration saved in a wiki page :-)

Benefits

  • Depending on the use case, we can create different wiki pages with different
  • PluginAlias can be used to make it easier to create many variants
  • Converge energy/focus on Tiki Manager's web interface (which needs some TLC). Using the plugin without any filters will essentially show the full feature set like it does now to the admins.
  • Can connect to n Tiki Managers
    • So you can make a unified dashboard of all your Tiki instances even if they are managed by different Tiki Managers.
  • Users register to a Tiki and then can manage their Tiki instances
    • Can reset their password, etc.
  • Low barrier to entry (Activate, fill in tiki-manager.php and use plugin) while offering lots of flexibility (undeeded features are hidden, support many Tiki Manager instances, additional field via trackers, etc.)
  • Can be combined with Tiki Firewall or Two-factor authentication for higher security

Parameters

We are brainstorming options

Option 1

Copy to clipboard
{tikimanager(connections=abc, showactions="create|backup", hideactions="clone" hidden="tmp|path")}

Option 2

Copy to clipboard
{tikimanager(connections=abc, create=y,clone=n,backup=n, hidden="tmp|path")}

Option 3

How to segment sub-actions? Ex.: delete backups with backup section

Copy to clipboard
{tikimanager(connections=abc, create=y,clone=n,backup=n, hidden="tmp|path")}


Connections

  • Pick from list of available connections to actual Tiki Manager instances
    • Could be managed in tiki-manager.php (more ideas below)
    • Tiki will one day install Tiki Manager via Packages, (PHAR) or similar

Actions available

Pick from any action available (create, clone, backup, etc.)

Instance fields

Each field (connection, name, URL, tmp, etc.) can be either normal or set to:

  • Read-only: The user can see but not modify
  • Hidden: Data needed to function but hidden to the end user to keep UI simple.

Default value overrides

The idea is to permit overrides from data from tiki-manager.php (see more info below)

Not sure yet about this one. Maybe it's better to just create an extra connection, like Tracker Tabular can have various import/export to a same tracker.

tiki-admin.php?page=tiki-manager

Activate the feature and related preferences

tiki-manager.php

Since we don't want some data stored in a wiki page, we can configure n connections

Tiki Manager data and tracker data interop

Tiki Manager tracker field type

Let's add something like https://doc.tiki.org/Show.t.o-Tracker-Field with generic options to launch actions on various Tiki instances. We could reuse some of the parameters from the plugin. Ex. to restrict to only backups and updates.

dev/staging/prod context

The workflow is context to the organization and project. Some users may be allowed to push from dev to staging, but not staging to production. More thought will be need on this aspect, which we can focus on once higher priority use cases are handled.

Things to add

There are many things to add to address appropriately all the main use cases.

  • Create or clone instance using
    • tag/branch
    • merge request
    • cherry-pick
    • profile
    • etc.
  • Site should not start with admin/admin
  • KPIs (already available via Tiki Manager) should be made available for reports and automation.
  • Login as admin via Tiki Manager. Similar to Remote Auto-login but perhaps done with Oauth?
  • A way to set more aspects of a site
    • How long site will be open. Ex.: for demos, 90 days
    • Backups handling. Ex.: no backups, via Syncthing, etc.
    • Monitoring. Ex.: no monitoring, Virtualmin, etc.
    • Many more will be added over time...

Questions

  • How does instance list WYSIWYCA work?
    • A new field for the owner of the instance? (Should be a multiselect username to be future-proof)
    • If someone tries to create or manage a Tiki instance owned by someone else: it should fail.
  • Do we (and if so how) limit the number of created sites?
  • How would we do forms like this? https://tikitrackers.org/Demo
    • We split in two:
      • To have your own demo instance for 90 days, you register an account and click to add.
      • To use common demos (which can be busted): it stays like now (but we add a daily reset)
  • How can we do mass actions?
    • From list of all Tiki instances, which connect via various instances of Tiki Manager
    • Apply a profile, apply a merge request, make a backup, etc.
    • Could we extend PluginListExecute?
      • So we could configure to make a clone of template.casemanagement.demo.evoludata.com to casemanagement.demo.evoludata.com after no one has used for 1 hour (which we'll know from the KPIs)

Example flow for a Tiki demo creation setup

Tiki Manager -> DNS has been set for *.lab1.wikisuite.org and lab1.wikisuite.org

Add a new Tiki instance

Connection Type (Tiki Manager has previously been connected to some Virtualmin instances, and thus, offers us options)

  • local
  • SSH
  • FTP
  • Virtualmin dev1.wikisuite.org
  • Virtualmin lab1 <- We choose this one
    • manager.abc.lab1.wikisuite.org
    • manager.def.lab1.wikisuite.org
    • manager.xyz.lab1.wikisuite.org <- We choose this one
  • Virtualmin dogfood1


System requests:

  • Email
  • Password (if left blank, it will be sent by email)
  • Instance/domain name
    • Default pattern is alpha.xyz.lab1.wikisuite.org
  • Version + profile


Result:

  • System creates a sub-server (later, we can add more options, like use Sub-Server, or create/use Top-level server)
  • System creates Tiki instance
  • Send email to confirm Tiki is ready, with URL and username (If no password was set, use random password and send in email)



Alias names for this page:
TikiManager in Tiki | Tiki Manager in Tiki | TikiManager within Tiki

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
Diagram
Directory (of hyperlinks)
Documentation link from Tiki to doc.tiki.org (Help System)
Docs
DogFood
Draw -superseded by Diagram
Dynamic Content
Preferences
Dynamic Variable
External Authentication
FAQ
Featured links
Feeds (RSS)
File Gallery
Forum
Friendship Network (Community)
Gantt
Group
Groupmail
Help
History
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
jQuery
Kaltura video management
Kanban
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
Terms and Conditions
Theme
TikiTests
Federated Timesheets
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