- Install RVM, with the ruby version specified in the .ruby-version file. For more details about the process, please read the official RVM documentation
2.Install docker and docker-compose. Your system may provide a pre-packaged version of docker in its repositories, but this version may be outdated. Please refer to the official docker documentation to set up a recent version of docker.
Add your current user to the docker group, to allow using docker without
sudo.# add the docker group if it doesn't already exist sudo groupadd docker # add the current user to the docker group sudo usermod -aG docker $(whoami)# restart to validate changes sudo reboot
Retrieve the project from Git
git clone https://github.com/sleede/openlab-projects.git
Move into the project directory and install the docker-based dependencies.
⚠ If you are using Mac OS X, you must first edit the docker-compose.yml to use port binding instead of ip-based binding. This can be achieved by uncommenting the "port" directives and commenting the "networks" directives in the docker-compose.yml file. The hosts file must be modified too, accordingly.
⚠
ERROR: Pool overlaps with other one on this address spaceIn this case, you must modify the /etc/hosts and docker-compose.yml files to change the network from 172.19.y.z to 172.x.y.z, where x is a new unused network.cd openlab-projects cd .docker cat hosts | sudo tee -a /etc/hosts docker-compose up -d cd -
Init the RVM instance and check it's correctly configured
rvm current | grep -q `cat .ruby-version`@openlab &&echo"ok"# Must print ok, otherwise try "rvm use"
Install bundler in the current RVM gemset
gem install bundler
Install the required ruby gems
bundle install
Create the default configuration file
cp config/database.yml.default config/database.yml
Build the databases.
🛈 Please note: Your password length must be between 8 and 72 characters, otherwise db:setup will be rejected. This is configured in config/initializers/devise.rb
ADMIN_EMAIL='youradminemail' ADMIN_PASSWORD='youradminpassword' rails db:setup- Create the pids folder used by Sidekiq. If you want to use a different location, you can configure it in config/sidekiq.yml
mkdir -p tmp/pids- Start the development web server
foreman sYou should now be able to access your local development Fab-manager instance by accessing
http://localhost:3300in your web browser.You can log in as the default administrator using the credentials defined previously.
Access http://localhost:3300/letter_opener to see the emails received.
This interface is available only in development.
We use docker-compose to run the app in production. See docker/README.md for more details.
mkdir -p /apps/openlab-projects/config/nginx/ssl
cd /apps/openlab-projects
curl -sSL https://raw.githubusercontent.com/sleede/openlab-projects/dev/docker/docker-compose.yml > docker-compose.yml
curl -sSL https://raw.githubusercontent.com/sleede/openlab-projects/dev/docker/env.example > config/env
curl -sSL https://raw.githubusercontent.com/sleede/openlab-projects/dev/docker/nginx.conf > config/nginx/nginx.conf
docker-compose pull- Build the certificate with let's encrypt or copy an existing one on the server folder.
- Change the docker-compose.yml file accordingly to bind the certificate directory to the nginx service.
- Change the nginx configuration to use the certificate.
curl -sSL https://raw.githubusercontent.com/sleede/openlab-projects/dev/docker/nginx.ssl.conf > config/nginx/nginx.conf- Restart nginx
If any asset has changed, recompile them
rm -rf public/assets/
docker-compose run --rm openlab-projects bundle exec rake assets:precompileIf the database has changed (migration) or any other change occurred, run the specific commands like the "asset precompile" one (eg. bundle exec rake db:migrate).
Finally, restart the container
docker-compose down
docker-compose up -dto run the test suite:
bundle exec rails test- go on old server with old app code (with elastic)
- open rails c
- run
File.write("#{Rails.root}/_____CHEMIN____/projects.yml",YAML.dump(Project.find_each.map(&:attributes)))- save the file in some place
- upgrades openlab app
- enter in the container
- create folder data
- move the projects.yml into /app/data
- run rails openlab:projects:import_from_yml_dump task
- open rails console and check that everything is OK
- remove file