db:setup is used in all guides except Docker Guide, which uses db:migrate
to create the database. db:setup is actually superior over db:migrate for
the purpose in terms of performance and compatibility.
db:setup is performant because it does not perform redundant migrations.
db:migrate, on the other hand, executes migration code which will be
dismissed by later migrations. db:migrate also waits for seconds to allow
to interrupt migrations if it is not favorable to run them on a running
server, but db:setup is obviously executed on a instance which is not
running yet, and the wait is unnecessary.
db:migrate has a compatibility issue. It requires a compatibility layer
to keep it working, and such one may be broken, or not provided by
dependencies such as Paperclip.
This commit replaces db:migrate with db:setup in the building guide. The
procedure cannot be applied to migration from an older release, where
the old procedure could, but it is not problematic because it has
dedicated Updating section.
* Clarify Docker instructions for prebuilt images
Made clear there are two options for getting the Docker image: pulling the prebuilt image, or building your own. Using a prebuilt image is easier for anyone who hasn't made code changes on their instance.
* Fix errors in Docker prebuilt image instructions
* OpenBSD-specific development guide
The GNU/Linux setup works well but there are some OpenBSD-specific
considerations around default compilers, discovering third-party
libraries, and linker warnings.
* Fix typos
- Be a little clearer about what's going on at each step.
- Give more detailed update instructions (and be smarter about selecting the "latest" tag).
- Mention the `VAPID_*_KEY` variables.
This gives some advice on getting started with an email service guide, including specifics on the process and caveats of the various free services people recommend, as well as a short command in the Rails console that helps a user test this out.
* add note for commands.
The all listed commands is seemingly bash commands, but the 2nd and latter is command for rails command prompt.
* fix from null to nil
* add ExecReload to reload puma.
This enables puma to reload changes without restarting process.
* fix path for command `kill`
* fix to bash.
* change to /bin/kill
* change from hot restart to phased restart.
``git tag -l | sort -V | head -1`` will consider release candidates as the latest version, even if there's a stable release, due to how `sort -V` orders strings. Adding ``grep -v 'rc[0-9]*$'`` to filter out the release candidate tags fixes this.
* "gcc-6" should just be "gcc"
gcc-6 isn't a valid package name
* It was `adduser mastodon` for a reason
making it with `--system and --disabled-password` breaks the rest of the guide where `su - mastodon` is used.
I use this method as it makes maintaining the Mastodon instance easier.
* eval "$(rbenv init -)" should be in ~/.bashrc as well
otherwise the correct ruby version isn't used
* Use sudo su - instead
- Nginx duplication in packages installation
- Specify the user type for `mastodon` (--system and --disabled-password)
- Simplify services start-up
- Clearly write how to check services are running (or not) with `systemctl status`
* Complete re-write of Mastodon Production Guide
I re-wrote the Mastodon Production Guide so that it has a better structure.
Work on this re-write was done on my own repo:
https://github.com/staticsafe/mastodon-documentation
* Fix typo in a heading
* Change node.js Repository section to use curl|bash method.
For simplicity's sake
* Add an explanation of the dependencies
Added in the "Various Other Dependencies" section.
* Fix links to the Ruby project, was using the link to Rails previously.
* Add Let's Encrypt section with a short guide to certificate tool installation, certificate generation and automated renewal.
* Use systemctl instead of service in LE section
This is for consistency reasons.
This change will help users avoid unnecessary procedure to
complete `bundle install` outside the container.
The explanation
> To generate the PAPERCLIP_SECRET, SECRET_KEY_BASE, and
> OTP_SECRET, you may use:
>
> ```
> rake secret
> ```
gives users a false impression that secrets have to be filled in
before the image can be built. Here, with introduction of CLD3,
completion of `bundle install` became more involved procedure to
prepare tools and libraries as well as higher version of Ruby.
When a provider other than virtualbox is registered in Vagrant, `vagrant up` can not start Mastodon.
For example, it corresponds to the environment where Parallels Desktop is installed.