Install HH Server
If you get eror database query eror “clause is not in GROUP BY clause ….” run this code on your SQL console:
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Setting up Environment and App Config
Add JWT on /config
you can find the example of JWT key on config/jwt_private.test.key and config/jwt_public.test.key
create ~/.credentials/google_credentials.json
create .env to populate ENV
you can copy the existing .env.test to create new .env example :
APP_TROTTHLE_REQUEST=false
APP_USE_CLEVERTAP_SIMILAR_RESTAURANTS=false
SIDEKIQ_ASK_GOOGLE_TO_SCRAPE_RESTAURANT_PAGE=false
SIDEKIQ_CREATE_GOOGLE_CALENDAR_EVENT=false
WEB_V2_HOST_URL=https://web-staging.hungryhub.com
MYSQL_SERVER_HOST=db
MYSQL_PORT=3306
MYSQL_DATABASE=hungryhub_dev
MYSQL_USER=root
MYSQL_PASSWORD=root
MEMCACHED_HOST=localhost
MEMCACHED_URL=http://localhost:11211
REDIS_LRU_URL=redis://localhost:6379/2
REDIS_LRU_RO_URL=redis://localhost:6379/2
PERSISTENT_REDIS_PRIMARY=localhost:6379
PERSISTENT_REDIS_READER=localhost:6379
INV_REDIS_PRIMARY=localhost:6379
INV_REDIS_READER=localhost:6379
IS_LOCAL=true
HH_HOST_URL=http://localhost:3000
DYNAMIC_HOST_URL=//localhost
ROLLBAR_TOKEN=826f10c64a68466abaeb0a02c82f5e7b
ENABLE_ROLLBAR=false
MANDRILL_KEY=EfLfrh4-5LroJIY26Y00SQ
RECAPTCHA_SITE_KEY=6Le3KSgTAAAAAKUV0uR20yK4cHyWXB7Mv5K0YnY7
RECAPTCHA_SECRET_KEY=6Le3KSgTAAAAAJUhXH9FV-utIkdjkn-KErFSjb_o
USE_THAILAND_TIME=true
ENABLE_SSL=false
RACK_TIMEOUT_SERVICE_TIMEOUT=40
SIDEKIQ_HOSTNAME=localhost
SIDEKIQ_PORT=6379
SIDEKIQ_NAMESPACE=9
CLEVERTAP_ACCOUNT_ID=TEST-844-867-765Z
CLEVERTAP_PASS_TOKEN=SAA-KIX-IEKL
GOOGLE_MAP_API_KEY=AIzaSyA3WZ0bV6UlI_6P29L3oy2a5RN3nVXEy9E
GOOGLE_MAP_API_KEY_WEB=AIzaSyDC3MLZzvottC2IzXiZ69RUqcOWyOfIslw
GOOGLE_APPLICATION_CREDENTIALS=secrets/google_credentials.json
EDITOR=vim
LOGSTASHER_SOURCE=localhost
FARADAY_DEPRECATE=warn
ACTIVE_SUPPORT_DEPRECATION=log
APP_FIREBASE_MODE=development
FIREBASE_API_KEY=AIzaSyA4v4bdhjqwpTswYUXfMkmLno97XZXYaBA
FIREBASE_AUTH_DOMAIN=hungry-hub-dev.firebaseapp.com
FIREBASE_DATABASE_URL=https://hungry-hub-dev.firebaseio.com/
FIREBASE_STORAGE_BUCKET=hungry-hub-dev.appspot.com
FIREBASE_SERVER_KEY="AAAAOXBgQBk:-LIRHC2lHcuIB5uP"
FIREBASE_STAFF_SERVER_KEY="AAAA0Crx0QM:c5bS56IcNof0yF6StQV2OZxIgdmBWW7"
IS_PRECOMPILE=0
FACEBOOK_GRAPH_VERSION=3.3
ENABLE_WEB_NEW_UI=false
CDN_URL=http://localhost:3000
ENABLE_CDN=false
IOS_APP_ID=8Z9PJ6LL32.dev.com.HungryHubiOSApp
ROLLBAR_TOKEN_CLIENT=f011f58fbab244838b9f3ba67a9c709d
FIREBASE_WEB_API_KEY=AIzaSyDnt9gpQqOeD4xLbcmdVFJ4rp9vQ5twlmc
FIREBASE_DYNAMIC_LINK_DOMAIN=https://k4mu4.app.goo.gl
HH_SHORT_URL=hhub.ly
FACEBOOK_APP_ID=449643878804004
FACEBOOK_APP_SECRET=51830e80176d0688b53398d24684c8cb
FACEBOOK_EVENT_ACCESS_TOKEN=randomstring
OLD_WP_SITE_URL=https://www.hungryhub.com
ENABLE_GOOGLE_SIGN_IN=false
G_ADMIN_AUTH_CLIENT_ID=37828374863-he3717ktq5o3c7d07i1d1fkfnpthdtu1.apps.googleusercontent.com
G_ADMIN_AUTH_SECRET_KEY=I48b8E5ZmPQsh4N33Is3VtdX
EARLY_BIRD_MAX_REVIEWS=5
EARLY_BIRD_ACTIVATE=true
EARLY_BIRD_REWARDS_AMOUNT=150
AWS_ACCESS_KEY_ID=123
AWS_SECRET_KEY=dW1RKwUoTi5MnV+zEh7bAeJsDzArgTn+cz8RZlL0
AWS_REGION=ap-southeast-1
AWS_BUCKET=hh-img-backup
AWS_DOCS_BUCKET=hh-docs-prod
ENABLE_GOOGLE_SHORTENER=false
ENABLE_GOOGLE_ANALYTICS=false
ENABLE_SMS_NOTIFICATION=false
SECRET_KEY_BASE=48fe2cf7976eaccc113c5ff343fe272e96f438afc13e0cc638dfa52a6c84e0edd8682f3ed5db034ae4f627441c2410b2dda2dbdc8c52b42761a9a16f8157c5aaL
LALAMOVE_SECRET_KEY=MCwCAQACBQDXViVdAgMBAAECBAyd5AECAwD6BwIDANx7AgIYfwICQOUCAwDm
LALAMOVE_API_KEY=fdcb60fbf98340b5a4f2234bbbfe9cda
LALAMOVE_HOSTNAME=https://sandbox-rest.lalamove.com
PUSHER_APP_ID=1002895
PUSHER_KEY=3d669c6a8cfc80cdc37e
PUSHER_SECRET=9dc71d74bc7d410d77da
PUSHER_CLUSTER=ap1
GB_PRIMEPAY_TOKEN=VlL8SzIIx4Y4CNNFylVpCA3dHkxtr5tww/a5X4cCi8FRcWwuq64xm13VBv10bpUIjx9R5o/qXNqas9mGgdBN/7x63q0CpFXaPrHSKQs/Hi/vaKoboqBnmskSSUi5J6+r4stPJ7GvYz82sGmM9Xht0u+dFV3OOZNUWoaBPlWrW2bEfTQK
GB_PRIMEPAY_WEBHOOK_URL=http://localhost:3000/api/webhook/gb_primepay
MAILER_PROVIDER=ses
GB_PRIMEPAY_SECRET_KEY=E1umcfzVu1ehD8wx40AmnIEgCTTihTF5
GB_PRIMEPAY_PUBLIC_KEY=TwzTlFYYT8rdPttm7CCjkJyKM8XGOtCQ
APP_GB_PRIMEPAY_MODE=development
IMGPROXY_ENDPOINT=imgproxy-staging.hungryhub.com
IMGPROXY_KEY=68756e6772796875626b6579
IMGPROXY_SALT=68756e67727968756273616c74
SHOPEEPAY_CLIENT_ID=17081945
SHOPEEPAY_CLIENT_SECRET=super-secret-client-secret
SHOPEEPAY_MERCHANT_ID=hungryhub_merchant
SHOPEEPAY_STORE_ID=hungryhub_store
NOCODB_API_TOKEN=HbZkpAg7eLj89p3DPzGGO9CHu23aslHW123
MONGO_DB_URL
MONGO_DB_DATA_SOURCE
MONGO_DB_DATABASE_NAME
MONGO_DB_USER_NAME
MONGO_DB_PASSWORD
PORTAL_FE_URL=https://partners.hungryhub.com
OPENRICE_WEBHOOK_CLIENT_TOKEN=access-token
TAGTHAI_API_URL='https://backend-api-dev.tagthai.com/api'
TAGTHAI_SSO_USER_URL='https://backend-api-dev.tagthai.com/api/service-public/auth-sso-service/user-info'
TAGTHAI_API_KEY='$2a$10$xdHq25exEevdBCW1EQQvx.r/Ms03./HzcQW40H1XnqJluVZoDGWWi'
TAGTHAI_WEBHOOK_URL='https://backend-api-dev.tagthai.com/api/backend/ota-service/hungryhub/booking/callback'
HOMESECTION_WEBHOOK_URL='https://api.netlify.com/build_hooks/659531ca89d89983812180e0'
TABLECHECK_AUTH_ID=auth-id
SEVEN_ROOMS_CLIENT_ID=client-id
SEVEN_ROOMS_CLIENT_SECRET=client-secret
AWS_TRANSLATE_REGION=us-east-1
AWS_TRANSLATE_ACCESS_KEY_ID=AKIARFIAEKSM7CBCPC7I
AWS_TRANSLATE_SECRET_KEY=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
ALIBABA_ACCESS_KEY_ID=access-key-id
ALIBABA_ACCESS_KEY_SECRET=access-key-secret
SILVERSTREET_USERNAME=username
SILVERSTREET_PASSWORD=password
KALEYRA_IO_SID_KEY=kaleyra-io-sid-key
KALEYRA_IO_API_KEY=kaleyra-io-api-key
URL_RWG=sftp://partnerupload.google.com
PORT_RWG=19321
MERCHANTS_FEED_USER_RWG=feeds-xxxx
SERVICES_FEED_USER_RWG=feeds-xxxx
AVAILABILITY_FEED_USER_RWG=feeds-xxxx
RWG_E2E_BOOKING_SERVER_USERNAME=xxxx
RWG_E2E_BOOKING_SERVER_PASSWORD=xxxx
RWG_E2E_RTU_SERVICE_CREDENTIAL=secrets/rwg_e2e_rtu_service_credential.json
RWG_E2E_RTU_SERVICE_PARTNER_ID=20001920
RWG_RTU_WEBHOOK_URL='https://partnerdev-mapsbooking.googleapis.com/v1alpha/notification/partners/'
ROLLBAR_SYN_TOKEN=random
FIREBASE_PROJECT_ID_USER=hungry-hub-dev
FIREBASE_PROJECT_ID_PARTNER=hh-partner-dev
KARAFKA_BOOTSTRAP_SERVERS='127.0.0.1:9092'
NETCORE_API_KEY=random-api-key
ENABLE_ELASTIC_APM=false
GENERATED_SEO_DATA_URL='https://1i3odgcpz2.execute-api.ap-southeast-1.amazonaws.com/test/get-seo-data'
PARTNER_URL='https://partners.hungryhub.com'
OMISE_SKEY_TH=skey_xxx
OMISE_VAULT_KEY_TH=pkey_xxx
OMISE_SKEY_SG=skey_xxx
OMISE_VAULT_KEY_SG=pkey_xxx
DAYS_IN_ADVANCE_FOR_SEARCH_PDT=30
WEELOY_AUTH_ID=auth-id
YOUTUBE_API_KEY=xxx
- ENV mongodb for local
MONGO_DB_URL='<https://data.mongodb-api.com/app/data-ppgjh/endpoint/data/v1>'
MONGO_DB_API_KEY='bAD0v7FbgEB914OPTtJgRqRdhfNMdJfI8uStOVVgJ5f9c40VnEdSgvohyQSdmblO'
MONGO_DB_DATA_SOURCE='HungryHub'
MONGO_DB_DATABASE_NAME='huy-test'
MONGO_DB_USER_NAME='huy_phan_madison_hungryhub'
MONGO_DB_PASSWORD='l6ECKaPU1iRvRnG9'
setting database.yml
default: &default
adapter: mysql2
encoding: utf8mb4
charset: utf8mb4
collation: utf8mb4_bin
database:
pool: <%= ENV.fetch('DB_POOL') { raise('undefined pool value') } %>
username: <%= ENV.fetch('DB_USERNAME') { raise('undefined db username') } %>
password: <%= ENV.fetch('DB_PASSWORD') { raise('undefined db password') } %>
socket: <%= ENV.fetch('DB_SOCKET') { raise('undefined db socket') } %>
connect_timeout: 1
read_timeout: 1
write_timeout: 1
checkout_timeout: 1
development:
<<: *default
database: booking_development
test:
<<: *default
database: booking_test
production:
adapter: <%= ENV.fetch('DB_ADAPTER') { 'mysql2' } %>
encoding: utf8mb4
charset: utf8mb4
collation: utf8mb4_unicode_ci
username: <%= ENV['MYSQL_USER'] || raise('undefined db username') %>
password: <%= ENV['MYSQL_PASSWORD'] || raise('undefined db password') %>
database: booking_production
host: <%= ENV['MYSQL_SERVER_HOST'] %>
port: <%= ENV['MYSQL_PORT'] %>
pool: 25
sslca: /data/hh-server/config/rds.pem
makara:
id: mysql
blacklist_duration: 5
primary_ttl: 5
primary_strategy: round_robin
sticky: true
connections:
- role: master
host: xxxx
url: 'mysql2://xxx:xxx@xxxxx:3306/xxxx'
- role: slave
host: xxxx
url: 'mysql2://xxx:xxx@xxxxx:3306/xxxx'
- role: slave
host: xxxx
url: 'mysql2://xxx:xxx@xxxxx:3306/xxxx'