Matchu
3dd5d26332
Yay it's working! We set up the box, install Ruby, upload a placeholder app, set it up as a service, and get it hooked up to nginx! Next, we'll add the script to upload the latest version of the site. We just need to slot it into `/srv/impress/current`, run `bundle install`, and that should basically be that! (Oh, and we need to compile production assets—I wonder if it's useful to do that on the dev machine instead of on the target? That might save us from needing to install Node. Or maybe we'll have to anyway!)
22 lines
1.1 KiB
Text
22 lines
1.1 KiB
Text
Dress to Impress is deployed to a VPS server. We use this Ansible Playbook to
|
|
automate the environment setup!
|
|
|
|
We expect to be deploying to Ubuntu 20.04 LTS, initially with nothing
|
|
installed. The user you deploy with should have sudoers access. That should be
|
|
all it takes!
|
|
|
|
First, run `yarn deploy:setup` in the app root, to run the `setup.yml`
|
|
playbook. This will prompt you for your root password, to set up system
|
|
dependencies. It should be safe to re-run this, including if you add a new
|
|
dependency to the playbook, because the steps are non-destructive and Ansible
|
|
will skip steps that are already satisfied.
|
|
|
|
Then, to deploy a new version of the app, run `yarn deploy`. This will build
|
|
the app from the code on your machine, then send the source and build output
|
|
to the remote machine, and switch it to be the new production version. Nice!
|
|
|
|
Note that the setup script references a file named `production.env`, which is
|
|
gitignored because it contains sensitive information, like database passwords.
|
|
You should create a `production.env` file in the local `deploy/files`
|
|
directory, to be copied to the remote server and used as its environment
|
|
variables.
|