We’ve officially kicked off the Rails Girls Summer of Code 2017 with our group, berlin diamonds.
They’re going to be working on adding extra backup providers to Discourse. This topic can be used by the teams involved for questions and answers, as well to track progress.
Discourse has always provided administrators the ability to back up their community data. It is important to us as an open source project that regardless of where you run your forum, that you be able to take your data with you.
Currently, we support downloading data dumps to your local computer as well as uploading data to Amazon S3. There is also a plugin for uploading to Dropbox available that could be used as an example.
The team has decided to focus on a backup provider for Google Drive. Here’s how I’d suggest tackling this problem, although the team is free to approach this on their own schedule and pace:
Become very familiar with the dropbox plugin for backups. Try installing it locally and using it to connect to Dropbox. @Falco is also around to answer questions you might have about how it works and how it is designed.
Review how Google Drive’s API works. What is required to upload a file there? Are there any rubygems you can use to contact the API easily?
Create a new repository for the Google Drive backup provider, and try to build it up from the simplest possible thing that could work. Use Site Settings for any API keys and variables. When it doubt, base it on the Dropbox plugin.
Discourse will provide code reviews and offer assistance along the way.
The plugin is working!
Once we’re done the above we can figure out following steps for more providers, and perhaps DRYing up the plugins to avoid repeated code.