Update README.md for Rails v6
This commit is contained in:
parent
3429598874
commit
4a240c1d51
2 changed files with 87 additions and 71 deletions
|
@ -24,7 +24,7 @@ export MAILCHIMP_REDIRECT_URL='REPLACE'
|
||||||
export FACEBOOK_APP_ID="REPLACE"
|
export FACEBOOK_APP_ID="REPLACE"
|
||||||
|
|
||||||
|
|
||||||
export CYPHER_KEY="REPLACE" # used for mailchimp integration
|
export CYPHER_KEY="-- secret string --" # used for mailchimp integration
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
156
README.md
156
README.md
|
@ -20,6 +20,14 @@ comfort and speed.
|
||||||
|
|
||||||
All backend code and React components should be TDD.
|
All backend code and React components should be TDD.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
Houdini is designed and tested to run with the following:
|
||||||
|
* Ruby 2.6
|
||||||
|
* Node 12
|
||||||
|
* Yarn
|
||||||
|
* PostgreSQL 11
|
||||||
|
* Ubuntu 20.04 or equivalent
|
||||||
|
|
||||||
## Get involved
|
## Get involved
|
||||||
Houdini's success depends on you!
|
Houdini's success depends on you!
|
||||||
|
|
||||||
|
@ -28,90 +36,98 @@ https://houdini.zulipchat.com
|
||||||
|
|
||||||
### Help with translations
|
### Help with translations
|
||||||
Visit the Internationalization channel on Houdini Zulip and discuss
|
Visit the Internationalization channel on Houdini Zulip and discuss
|
||||||
|
|
||||||
## Dev Setup
|
## Dev Setup
|
||||||
|
#### Tips for specific circumstances
|
||||||
|
* Docker: Docker was previously used for development of Houdini.
|
||||||
|
See [docker.md](docs/docker.md) for more info.
|
||||||
|
* Mac: Mac dev setup may require some unique configuration.
|
||||||
|
See [mac_getting_started.md](docs/mac_getting_started.md) for more info.
|
||||||
|
|
||||||
### Create new postgres user
|
### Installation prep
|
||||||
Run `sudo -u postgres createuser houdini_user -s -P` and then enter a password for the role
|
Houdini requires a few pieces of software be installed, as well as some optional pieces
|
||||||
|
which make development much easier.
|
||||||
|
|
||||||
## Docker setup
|
These include:
|
||||||
|
|
||||||
|
* PostgreSQL 12
|
||||||
|
* NodeJS 12 LTS
|
||||||
|
* Ruby 2.6.2 (NOTE: the default of Ruby 2.7.1 in Debian will likely function but you will receive a ton of deprecation warnings from Ruby)
|
||||||
|
* RVM (optional, simplifies managing multiple ruby versions)
|
||||||
|
|
||||||
|
#### One-time setup
|
||||||
|
|
||||||
|
You'll want to run the next commands as root or via sudo. You could do this by typing `sudo /bin/sh` running the commands from there.
|
||||||
|
|
||||||
|
TIP: this is the root shell. There's no restrictions on what you do here so be careful!
|
||||||
|
```bash
|
||||||
|
apt update
|
||||||
|
apt install curl -yy
|
||||||
|
curl -sL https://deb.nodesource.com/setup_12.x | bash -
|
||||||
|
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
|
||||||
|
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
|
||||||
|
apt update
|
||||||
|
apt install git postgresql-12 libpq-dev libjemalloc-dev libvips42 yarn -yy
|
||||||
|
```
|
||||||
|
|
||||||
|
You'll run the next commands as your normal user.
|
||||||
|
|
||||||
|
NOTE: in the case of a production instance, this might be
|
||||||
|
your web server's user.
|
||||||
|
|
||||||
|
NOTE 2: We use [RVM](https://rvm.io) to have more control over the exact version of Ruby. For development, it's also way easier because you can
|
||||||
|
use a consistent version of Ruby (and different sets of installed gems) for different projects. You could also use rbenv
|
||||||
|
or simply build ruby from source.
|
||||||
|
|
||||||
|
NOTE 3: We don't recommend using Ruby 2.7, the current Ubuntu default at this time. Ruby 2.7 will function but spits out tons
|
||||||
|
of deprecation warnings when using Rails applications.
|
||||||
|
|
||||||
|
TIP: To get out of the root shell, run `exit`
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# add rvm keys
|
||||||
|
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
|
||||||
|
curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -
|
||||||
|
curl -sSL https://get.rvm.io | bash -s stable
|
||||||
|
source $HOME/.rvm/scripts/rvm
|
||||||
|
echo 'source "$HOME/.rvm/scripts/rvm"' >> ~/.bashrc
|
||||||
|
rvm install 2.6.6 --disable-binary --with-jemalloc
|
||||||
|
```
|
||||||
|
|
||||||
|
Run the following command as the `postgres` user and then enter your houdini_user
|
||||||
|
password at the prompt.
|
||||||
|
|
||||||
|
NOTE: For development, Houdini expects the password to be 'password'. This would be terrible
|
||||||
|
for production but for development, it's likely not a huge issue.
|
||||||
|
|
||||||
|
TIP: To run this, add `sudo -u postgres ` to the beginning of the following command.
|
||||||
|
|
||||||
|
`createuser houdini_user -s -d -P`
|
||||||
|
|
||||||
|
Now that we have all of our prerequisites prepared, we need to get the Houdini code.
|
||||||
|
|
||||||
#### Get the code
|
|
||||||
`git clone https://github.com/HoudiniProject/houdini`
|
`git clone https://github.com/HoudiniProject/houdini`
|
||||||
|
|
||||||
#### Mac Setup
|
This will download the latest Houdini code. Change to the
|
||||||
If you have a Mac and don't want to run the `docker` configuration, see [how to get started](docs/GETTING_STARTED.MD) with the project.
|
`houdini` directory and we can set the rest of Houdini up.
|
||||||
|
|
||||||
#### Docker install (if you don't have docker and docker-compose installed)
|
Let's run the Houdini project setup and we'll be ready to go!
|
||||||
##### install Docker and Docker compose
|
|
||||||
You need to install Docker and Docker Compose.
|
|
||||||
* *Note:* Docker and Docker Compose binaries from Docker itself are proprietary software based entirely upon
|
|
||||||
free software. If you feel more comfortable, you may build them from source.
|
|
||||||
|
|
||||||
* *Note 2:* For Debian, the Docker package is simply too out of date to be usable.
|
```bash
|
||||||
Even the version for latest Ubuntu LTS is too old. For reliability, we strongly
|
bin/setup
|
||||||
recommend using the Docker debian feed from docker itself OR making sure you keep your
|
|
||||||
own build up to date.
|
|
||||||
|
|
||||||
##### Add yourself to the docker group
|
|
||||||
Adding yourself as a Docker group user as follows:
|
|
||||||
|
|
||||||
`sudo usermod -aG docker $USER`
|
|
||||||
|
|
||||||
You will likely need to logout and log back in again.
|
|
||||||
|
|
||||||
#### Build your docker-container and start it up for initial set up.
|
|
||||||
We'll keep this running in the console we'll call **console 1**
|
|
||||||
```
|
|
||||||
./dc build
|
|
||||||
./dc up
|
|
||||||
```
|
|
||||||
#### System configuration
|
|
||||||
There are a number of steps for configuring your Houdini instance for startup
|
|
||||||
##### Start a new console we'll call **console 2**.
|
|
||||||
|
|
||||||
##### In console 2, copy the env template to your .env file
|
|
||||||
```
|
|
||||||
cp .env.template .env
|
|
||||||
```
|
|
||||||
##### In console 2, run the following and copy the output to you .env file to set you `DEVISE_SECRET_KEY` environment variable.
|
|
||||||
`./run rake secret # copy this result into your DEVISE_SECRET_KEY`
|
|
||||||
|
|
||||||
##### In console 2, , run the following and copy the output to you .env file to set you `SECRET_TOKEN` environment variable.
|
|
||||||
```
|
|
||||||
./run rake secret # copy this result into your SECRET_TOKEN
|
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Set the following secrets in your .env file with your Stripe account information
|
NOTE: The .env file holds your environment variables for development; on production you might
|
||||||
- `STRIPE_API_KEY` with your Stripe PRIVATE key
|
have these set somewhere else other than this file.
|
||||||
- `STRIPE_API_PUBLIC` with your Stripe PUBLIC key
|
|
||||||
|
|
||||||
##### You SHOULD set your AMAZON s3 information (optional but STRONGLY recommended)
|
TIP: On Heroku, the environment variables are set in your Dashboard.
|
||||||
If you don't, file uploads WILL NOT WORK but it's not required.
|
|
||||||
|
|
||||||
##### In console 2, install yarn
|
Also, you should set the STRIPE_API_KEY and STRIPE_API_PUBLIC environment variables which you'd get from the Stripe dashboard. On your development environment, make sure to use test keys. If you don't, you're
|
||||||
`./run yarn`
|
going to be charged real money!
|
||||||
|
|
||||||
##### In console 2, fill the db
|
|
||||||
`./run rake db:create db:structure:load db:seed test:prepare`
|
|
||||||
|
|
||||||
##### Set up mailer info
|
|
||||||
You can set this in `config/default_organization.yml` or better yet, make a copy with your own org name and add that to your .env file as `ORG_NAME`
|
|
||||||
If you need help setting up your mailer, visit `config/environment.rb` where the settings schema is verified and documented.
|
|
||||||
|
|
||||||
#### Startup
|
#### Startup
|
||||||
##### Switch back to console 1 and run `Ctrl-c` to end the session.
|
`bin/rails server`
|
||||||
|
You can connect to your server at http://localhost:5000
|
||||||
##### In console 1, restart the containers
|
|
||||||
`./dc up`
|
|
||||||
|
|
||||||
##### In console 2, run:
|
|
||||||
`./run yarn watch`
|
|
||||||
|
|
||||||
##### You can go to http://localhost:5000
|
|
||||||
|
|
||||||
To get started, register your nonprofit using the "Get Started" link.
|
|
||||||
|
|
||||||
## Additional info
|
|
||||||
|
|
||||||
##### Super admin
|
##### Super admin
|
||||||
There is a way to set your user as a super_admin. This role lets you access any of the nonprofits
|
There is a way to set your user as a super_admin. This role lets you access any of the nonprofits
|
||||||
|
|
Loading…
Reference in a new issue