I’m trying to figure out a good workflow for managing a live Discourse site and have a few more questions:
1. Development Environment
I have Discourse running on my laptop (Ubuntu 16.04), but the cloned Github repo is missing files like
app.yml. Some of the tutorials here in the forum mention that I should edit the
app.yml file, but it doesn’t exist in my development versions. How do people manage that difference on production sites? Are the local development versions always different codebases than the live site? Is there a recommended way to have a staging environment for the live codebase too?
2. Backups and Server Migration
I put an experimental Discourse forum online to test workflows before migrating my main site. When I backup the site through the UI, I get the database and uploaded files. How do people generally backup the rest of the site? What else needs to be backed up if I want to rebuild the site on a new server in the event of a disaster (like getting hacked) on the original server? Do I need to backup
app.yml or any other files to rebuild it?
How do I upgrade a live site? If I click the upgrade button, the live site upgrades, but my local development version doesn’t update. Should I update the sites locally with Git and then push the changes to the live server by creating another
remote setting in a fork of the main Discourse repo and working in a custom branch? Or do people generally have a development version that is a completely different installation of Discourse?
Is it correct that I should write my plugins in separate repos, clone them to the live server, and then symlink them in the
plugins directory? Or should I use
app.yml to install them? Different posts in the forum here seem to suggest different things.