README
This application is being created to run a wrestling tournament.
Current master status
Current development status
Info
License: MIT License
Public Production Url: https://wrestlingdev.com
App Info
- Ruby 3.0.0
- Rails 6.1.2
- DB mysql or mariadb
- Memcached
- Delayed Jobs
Development
All dependencies are wrapped in docker. Tests can be run with bash bin/run-tests-with-docker.sh. That is the same command used in CI.
If you want to run a full rails environment shell in docker run: bash bin/rails-dev-run.sh wrestlingapp-dev
From here, you can run the normal rails commands.
rake db:seedDevelopment login email from seed data:test@test.compassword:passwordrake testrails generate blah blah blahrails s -b 0.0.0.0port 3000 is exposed. You can open http://localhost:3000 after running that command- etc.
rake finish_seed_tournamentwill complete all matches from the seed data. This command takes about 5 minutes to execute
To deploy a a full local version of the app bash deploy/deploy-test.sh (this requires docker-compose to be installed). This deploys a full version of the app. App, delayed job, memcached, and mariadb. Now, you can open http://localhost. Delayed jobs are turned off in dev and everything that is a delayed job in prod just runs in browser.
Deployment
The production version of this is currently deployed in Kubernetes. See Deploying with Kubernetes
Required environment variables for deployment
WRESTLINGDEV_DB_NAME=databasenameWRESTLINGDEV_DB_USER=databaseusernameWRESTLINGDEV_DB_PWD=databasepasswordWRESTLINGDEV_DB_HOST=database.homenameWRESTLINGDEV_DB_PORT=databaseportWRESTLINGDEV_DEVISE_SECRET_KEY=devise_keycan be generated withrake secretWRESTLINGDEV_SECRET_KEY_BASE=secret_keycan be generated withrake secretWRESTLINGDEV_EMAIL_PWD=emailpwdEmail has to be a gmail account for now.WRESTLINGDEV_EMAIL=email address
Optional environment variables
MEMCACHIER_PASSWORD=memcachier_passwordneeded for caching passwordMEMCACHIER_SERVERS=memcachier_hostname:memcachier_portneeded for cachingMEMCACHIER_USERNAME=memcachier_usernameneeded for cachingWRESTLINGDEV_NEW_RELIC_LICENSE_KEY=new_relic_license_keythis is only needed to use new relicWRESTLINGDEV_INFLUXDB_DATABASE=influx_db_nameto send metrics to influxdb this is requiredWRESTLINGDEV_INFLUXDB_HOST=influx_db_ip_or_hostnameto send metrics to influxdb this is requiredWRESTLINGDEV_INFLUXDB_PORT=influx_db_portto send metrics to influxdb this is requiredWRESTLINGDEV_INFLUXDB_USERNAME=influx_db_usernameto send metrics to influxdb this is optionalWRESTLINGDEV_INFLUXDB_PASSWORD=influx_db_passwordto send metrics to influxdb this is optional