Page MenuHomePhabricator

Command-line interface (CLI) for Canasta
Closed, ResolvedPublic

Description

Summary

Canasta (https://github.com/WikiWorks/Canasta) is a Docker image for MediaWiki that contains, in addition to core MediaWiki, a variety of skins and extensions that are geared for enterprise users. One thing currently lacking is a set of commands to make administration easier. Useful commands would include:

  • Installing a container
  • Updating a container (by deleting and reinstalling it)
  • Moving (cd) into the main directory of a Canasta installation
  • Backing up an installation's database and uploaded files
  • Restoring a wiki from a backup

If there is additional time, it would be great to also include:

  • Improved support for an installation within Kubernetes, instead of the default Docker Compose
  • Support for AWS and Microsoft Azure

It may be possible to make use of an existing CLI library for this task (like https://www.mediawiki.org/wiki/Cli), but most likely this would be better done as a new library, which could thus be created in any language. The current plan is to use Python for this set of scripts, although we are open to other options.

Skills needed

No skills are required, though knowledge of Docker, Kubernetes and Python would all be helpful.

Mentors

@JeffreyWang, @Yaron_Koren

Microtasks

T303209, T303214, T303216

Event Timeline

srishakatux added a subscriber: srishakatux.

@Yaron_Koren Thanks for adding this! Would it be possible for you to add the details of the project also here https://www.mediawiki.org/wiki/Google_Summer_of_Code/2022#Ideas_for_projects? Thanks!

Hi all! Our mentoring org application is under review. We are being asked by Google to provide additional information on projects - expected size of the project: 175 or 350 hours and difficulty rating: easy, medium, or hard. Based on my analysis, I have added two data points to each project on the GSoC 2022 page on MediaWiki.org. If you disagree with it, feel free to make additional changes.

350 hours and "medium" seems right for this project, yes.

Hi
This project really interests me as it completely aligns with my tech stacks. I am a DevOps and Multi-cloud intern. I am highly interested to work on this idea.
I used Canasta container and used it in my local. I need to know a bit about the project. Do we have to write automation scripts that will help in one-click deployment, updating the docker containers and managing backups ?
If that so, we can do it using GitHub Actions, we can built the images and update them, and also by using cloud cli (aws s3, azure storage, and gcp) we can automate the task of managing backups as well.
And, if automation is achieved, I am curious to know the usage of CLI for Canasta!
This is the reason, I am highly interested to work on this project!
Thanks & Regards
Abhinav

Hi Abhinav,

These all sound like great ideas and contributions that Canasta is particularly looking forward to receiving.

Canasta's CLI usage would really be to make managing Canasta easy. While it is currently possible to use the Docker and Docker Compose CLI and to deploy Canasta, and while this is already quite easy compared to setting up everything manually, we would still like to use this CLI to really bridge the gaps. We want to make the experience as controlled for as possible, so all the user will need to do, if they wish, is to use the Canasta CLI. (If they don't, they can still do things manually.) Things such as integration with the big 3 cloud providers for backups and deployments would be great. The specific details would be subject to discussion with the Canasta devs, including me. Hope that makes sense!

Please note: thank you everyone else for your interest in this project. We have received many qualified applicants at this point and would like to begin selecting among our current applicants, so applications are now closed. We hope you will find a GSoC project for this summer and thank you for your time.

Hi JeffreyWang
I am totally agreed with the power and lot of ease of CLI. I myself prefer the CLI rather than setting up everything manual. I am thrilled by the project idea and would love to discuss what I carry as a possible solution with Canasta devs. I just wanted to know where could I discuss the proposal, as a thread in this particular manifest or the Zulip, because I am unable to locate you on Zulip!

To mentors monitoring this task - could you ensure all relevant project updates get added to https://www.mediawiki.org/wiki/Google_Summer_of_Code/Past_projects? If there isn't anything remaining to be resolved, please close this Phabricator task and move any pending items to a separate task. TY!