From 3414cfbd905fb866598ea31c1ffb9be8027bae70 Mon Sep 17 00:00:00 2001 From: Rin Date: Mon, 21 Nov 2022 17:43:06 +1100 Subject: [PATCH] Add SETUP instructions --- SETUP.md | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 SETUP.md diff --git a/SETUP.md b/SETUP.md new file mode 100644 index 00000000000..a18cf5ca856 --- /dev/null +++ b/SETUP.md @@ -0,0 +1,78 @@ +# Setting up a dev environment + +## Assumptions + +You have a package manager, and your system is systemd-based. + +## Prerequisites + +## Nodejs + +Install nodejs via your package manager. We used v19.1.0 for this setup. + +## Ruby + +Install ruby via your package manager of choice. + +## Ruby Extras + +Your distro may package `bundle` and `irb` in separate packages (Arch does). If they are, install them too. +On Arch these are `ruby-bundler` and `ruby-irb`. + +## PostGreSQL + +Install postgres via your package manager. + +Enable and start the default `postgresql.service` + +## Redis + +Install redis via your package manager. + +Enable and start the default `redis.service` + +## Pre-Work + +In the following instructions, replace USER with your *nix user name. + +1. Give the postgres user rwx on your home folder. We used `sudo setfacl -m u:postgres:rwx /home/USER`. +2. Set up your user for postgres db creation with `sudo -u postgres createuser USER --createdb`. +3. Navigate to the root of this repo +4. Run `bundle config set --local path 'vendor/bundle'. This will store the all the ruby gems locally so that we can +avoid interfering with system config. +5. Run `bundle install`. +6. Run `yarn install`. +7. Run `bundle exec rake db:setup`. If this fails, you can use `bundle exec rake db:reset` to forcibly regenerate it. + +## Getting it running + +To make our lives easier, we'll use `foreman` to run the site, so use `gem install foreman` to get that going. + +Then: +1. Run `export RAILS\_ENV=development` and `export NODE\_ENV=development`. + a. Put these in your shell's .rc, or a script you can source if you want to skip this step in the future. +2. Run `bundle exec rake assets:precompile`. + a. If this explodes, complaining about `Hash`, you'll need to `export NODE\_OPTIONS=--openssl-legacy-provider`. Same + deal as the above. + b. After doing this, you will need to `bundle exec rake assets:clobber` and then re-run + `bundle exec rake assets:precompile`. +3. Run `foreman start` + + +# Updates/Troubleshooting + +## RubyVM/DebugInspector Issues + +Still unable to fix. Circumvent by removing `better\_errors` and `binding\_of\_caller` from Gemfile. +Happy to troubleshoot with someone better with Ruby than us >_<'/. + +## Webpack Issues +If Webpack compalins about being unable to find some assets or locales: + +1. yarn add webpack +2. git restore package.json yarn.lock +3. yarn install + +Then re-run `foreman`. No. We have no idea why this worked. + +If the above instructions don't work, please contact @Rin here, or @tammy@social.treehouse.systems.