# LifePex [![Build Status](https://drone.sceptique.eu/api/badges/Sceptique/LifePex/status.svg)](https://drone.sceptique.eu/Sceptique/LifePex) ## Install the software on a server ### Install the dependencies You should have the following systems installed: `git` `ruby 3 AND gems` `sqlite OR postgresql` Git is required to clone the project and fetch the tags in order to expose them in the webapp. Then make sure you have installed bundler `gem install bundler` if not already done. Then install the ruby dependencies. ``` bundle install ``` ### Configuration setup A sample file contains all the variables you will need in order to start the server. This is the `.env.sample` file. You should copy it under the name `.env.local`. * LIFEPEX_DB: is an url to your database. It may include a user/password * LIFEPEX_BIND: what your socket will listen to (should probably be 127.0.0.1 or 0.0.0.0) * LIFEPEX_BASE_URL: base url for the whole app (for local usage you can leave if empty) * LIFEPEX_SECRET: you must put randomness in this variable to secure tokens and cookies * LIFEPEX_ENV: may be empty, test, or production to avoid showing the stacktrace when there is a bug ### Database setup The recommanded way is simply to init the database you configured with ``` ./init/database.rb ``` If you have postgresql, you may want to create a specific user/password for this. Since I suck with SGDB administration, this is a sample of what you may do. **TODO: show how to create a simple attribute with full permission on this database** ``` psql -U postgres postgres -c "CREATE USER root WITH PASSWORD 'toor' SUPERUSER;" psql -U postgres postgres -c "CREATE DATABASE life_pex" echo LIFEPEX_DB=postgres://root:toor@localhost/life_pex >> .env.local rake db:migrate ``` ### Start * configuration: check * setup dependencies: check * setup database: check You can simply start the application. ``` ./src/app.rb ``` ### Service, update, etc. You may want to take a look at the `scripts/` directory which contains tons of config helper, for nginx, systemd, etc. --- ![recap image](https://git.sceptique.eu/attachments/ce7c2fab-bd1b-43fc-b10a-21b2c953e2c2) ![today image](https://git.sceptique.eu/attachments/ecd7a36d-eac7-40aa-b973-c6ddbac87f51) ## Developers ### Generate documentation ``` ./init/doc.rb xdg-open ./public/doc/index.html ``` ### Testing Generate first a specific configuration file ``` cp .env.local .env.test.local editor .env.test.local # don't forget to set a new database !!! ``` Then init the database ``` LIFEPEX_ENV=test rake db:migrate ``` Then if you want to run the test, simply type `rake test` (you will need the startup env variable to be set first). ### Debug Some debug options can be enabled with the env variable `LIFEPEX_ENV=debug`