Scalingo-guide.md 2.3 KB

Scalingo guide

Initial deployment

Deploy on Scalingo

  1. Click the above button.
  2. Fill in the options requested.
    • You can use a .scalingo.io domain, which will be simple to set up, or you can use a custom domain.
    • You will want Amazon S3 for file storage. The only exception is for development purposes, where you may not care if files are not saved. Follow a guide online for creating a free Amazon S3 bucket and Access Key, then enter the details.
    • If you want your Mastodon to be able to send emails, configure SMTP settings here (or later). Consider using Mailgun or similar, who offer free plans that should suit your interests.
  3. Deploy! The app should be set up, with a working web interface and database. You can change settings and manage versions from the Scalingo dashboard.
  4. Register for an account on your instance, then use the scalingo CLI to make yourself admin: scalingo -a yourapp run -e USERNAME=yourusername rails mastodon:make_admin.
  5. Configure site-specific settings as appropriate in Settings > Administration.
  6. Everything is done.

Using a custom domain

Note: an SSL/TLS certificate will automatically be provisioned by Scalingo using Lets Encrypt.

  1. Set a CNAME to the scalingo.io subdomain you created for your app.
  2. Use the scalingo CLI to set up the virtual host: scalingo -a yourapp domains-add example.com

Upgrading to newer versions of Mastodon

  1. Install an SSH key in your Scalingo account: scalingo -a yourapp keys-add keynamehere /path/to/key
  2. Check out the git repository Scalingo made for you. For some reason, this will be empty by default.
  3. Create a vendor branch in your git repository: git checkout -b vendor
  4. Import the Mastodon sources of your choice, for example 1.3-stable: git pull http://github.com/tootsuite/mastodon 1.3-stable
  5. Merge the vendor branch to master: git checkout master && git merge vendor
  6. Push to Scalingo: git push. > Note: Once the new application is deployed, it will be in an inconsistent state.
  7. Run rails database migrations: scalingo -a yourapp run -e RAILS_ENV=production rails db:migrate
  8. Restart all containers: scalingo -a yourapp restart
  9. Everything is done.