104 lines
2.7 KiB
Markdown
104 lines
2.7 KiB
Markdown
# 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`
|