Cool but simple web-app mobile-compatible to gamify your life and self-improvement https://lifepex.sceptique.eu/
Go to file
Arthur Poulet 46d14c2917
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is failing
Update dependencies (security)
2022-07-28 00:14:35 +02:00
config Improve registering new users with default value and redirection to today 2021-06-01 20:08:04 +02:00
documentation doc: add a french user guide 2021-06-12 13:14:51 +02:00
init env: fix scripts env loading 2021-08-17 13:10:53 +02:00
public layout: add the full date (today/yesterday) 2022-02-28 22:52:57 +01:00
scripts other: minor script & ci update 2021-06-24 22:24:01 +02:00
src Merge remote-tracking branch 'origin/master' 2022-04-23 11:28:44 +02:00
test recap: add input to control how much data to fetch 2021-08-11 09:13:53 +02:00
.drone.yml drone: update ruby image 2022-03-27 17:27:39 +02:00
.env.sample userpex: improve error and fix test databases 2021-06-24 22:10:58 +02:00
.gitignore boot: add dotenv to load env variables 2021-06-23 19:30:23 +02:00
config.ru user_pex: add user pex json api with tests 2021-06-22 23:51:38 +02:00
Gemfile deps: comment pg because sqlite is default 2021-08-17 13:16:32 +02:00
Gemfile.lock Update dependencies (security) 2022-07-28 00:14:35 +02:00
Rakefile script: improve db migration 2021-08-17 12:52:09 +02:00
README.md prefs: add offset as a user pref 2022-02-26 16:26:46 +01:00

LifePex

Build Status

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 today image

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