This repo is using Spree 4.2.4
This should only have to be done once, or whenever the Gemfile is updated.
First try this:
./docker-build.shThe manual way:
docker-compose builddocker-compose upDNA Admin should now be available at localhost:8080, but it probably needs to be set up first.
In a new terminal run:
docker-compose exec web rails db:create db:schema:load db:migrate &&
docker-compose exec -e ADMIN_EMAIL=spree@example.com -e ADMIN_PASSWORD=spree123 web rails db:seed &&
docker-compose exec web rails spree_sample:load &&
docker-compose restartOPTIONAL: Create a new admin user. This can be used to reset the admin user also:
docker-compose exec web rails spree_auth:admin:createdefault is:
email: spree@example.com
password: spree123
This will reset the existing database back to blank.
docker-compose exec web rails db:reset railties:install:migrations db:migrate spree_sample:load db:seedYou could also blow away all the DB files. WARNING! You'll have to start the install over again if you do this.
sudo rm -rf tmp/dbdocker exec -it dna-admin_web_1 bin/rails console
The system uses 3 spree extensions
spree_reffiliate(Thanks @Gaurav2728) githubspree_loyalty_points(Thanks @Gaurav2728) githubspree_static_contentgithubspree_digitalgithubspree_promo_users_codesgithub
Each one is installed after spree, with it's own migrations generated using a
specific bundle exec rails g command, which can be found on the README of the github
page for each project. This only needs to be done once after spree is installed or upgraded.
./tools/docker-scripts.sh reload_db
- Generate Affiliate Codes for Existing Users:
bundle exec rake reffiliate:generate - Create or reset a New Admin User:
docker-compose exec web rails spree_auth:admin:create - Load Spree sample data & seed data:
rake db:seed && rails spree_sample:load
This uses heroku ruby buildpack on the heroku-20 stack. The master branch
on github is hooked in to the deployment.
- Create a new pipeline & app
- Add Postgres:
heroku addons:create heroku-postgresql:hobby-dev - Grab ENV vars from another app:
heroku config -s -a dna-admin-staging > config.txt - Grab the DB creds from <heroku.com>, add them to
config.txt - Edit other vars locally
- Upload vars to app:
cat config.txt | tr '\n' ' ' | xargs heroku config:set -a dna-admin-staging - Set stack:
heroku stack:set heroku-18 -a dna-admin-staging - Set buildpack:
heroku buildpacks:add heroku/ruby - Setup DB:
heroku run rake db:schema:load db:migrate -a dna-admin-staging - Seed DB:
heroku run -a dna-admin-staging rake db:seed - Load Sample Data:
heroku run -a dna-admin-staging rake spree_sample:load - Asset Precompile:
heroku run -a dna-admin-staging rake assets:precompile
Alternate (container) deploy:
./docker-build.shheroku stack:set container -a dna-admin-prodheroku container:push dna-admin-web-1 -a dna-admin-prodheroku container:release web -a dna-admin-prodheroku config:set SECRET_KEY_BASE=$(docker-compose exec dna-admin-web-1 rails secret) -a kry-admin-prod
Git: https://github.com/POL-Clothing/pol-admin
To test the production settings locally (used to test things like the S3 buckets
for active storage), you need to set environment variables directly in
the docker-compose.yml file. The production environment is configured
to NOT use .env files.
To do this, apply the following patch to docker-compose.yml (after filling
in real values for the keys and bucket name):
+++ docker-compose.yml 2021-06-02 10:51:03.267414021 -0400
@@ -16,4 +16,10 @@
depends_on:
- db
environment:
- DATABASE_URL: postgres://postgres:password@db:5432/dna_admin_development
+ DATABASE_URL: postgres://postgres:password@db:5432/dna_admin_production
+ RAILS_ENV: production
+ AWS_REGION_NAME: us-west-1
+ AWS_BUCKET_NAME:
+ AWS_ACCESS_KEY_ID:
+ AWS_SECRET_ACCESS_KEY:
+ RAILS_SERVE_STATIC_FILES: 1
When there are lots of active changes occuring on this repo, make sure to regularly:
- Commit (or stash) your local changes on your branch
git fetch origingit checkout maingit pull origin maingit checkout <your_branch>git merge main- Fix merge conflicts (if any)
git add .git commit -m 'merge in latest main'
Done! …now you will be up-to-date with latest code. Do this before you submit your PR, and you can be sure it will be a clean merge.
http://localhost:8080/apidocs/swagger_ui Make sure to change the port that the UI is expecting in the search bar
Other things we may need to cover:
-
Ruby version
-
System dependencies
-
Configuration
-
Database creation
-
Database initialization
-
How to run the test suite
-
Services (job queues, cache servers, search engines, etc.)
-
Deployment instructions