π First off, thanks for taking the time and your effort to make Ferdi better! π
- Contributing to ferdi-server
This project and everyone participating in it is governed by the Ferdi Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to stefan@adlk.io.
For the moment, Ferdi's development is a bit slow but all contributions are highly appreciated. Check this issue for discussion.
As a basic rule, before filing issues, feature requests or anything else. Take a look at the issues and check if this has not already been reported by another user. If so, engage in the already existing discussion.
Please make sure you are running the exact node version used by the developers/contributors as specified in the nvmrc file.
Currently, these are the combinations of system dependencies that work on an intel-based machines for MacOS/Linux/Windows (building on an ARM-based machine is still a work-in-progress due to node-sass native dependencies)
node -v
v14.17.3
npm -v
6.14.12
node-gyp -v
v8.0.0
The version 2.23.0 for Git is working fine for development. You can then use the console from Git to do the development procedure.
git clone https://github.com/getferdi/server.git
cd server
git submodule update --init --recursive
It is important you execute the last command to get the required submodules (recipes).
- Run the following command to install all dependencies, and link sibling modules with ferdi-server.
npm i
- Copy the
.env.example
file into.env
and change the values to match your system.
cp .env.example .env
Note:
- Have env DB_SSL=true only if your database is postgres and it is hosted online on platforms like GCP, AWS, etc
- You will have to provide a value for
API_KEY
that is at least 16 characters long.
- If using sqlite for local development, create the database directory (whatever is set to
DATA
in.env
)
mkdir -p data
- Run the database migrations with
node ace migration:refresh
- To get the full functionality, you will need to have an SMTP server running for local development.
npm start --dev
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
- When only changing documentation, include
[ci skip]
in the commit description
- Please use
es-lint
and the defined rules to maintain a consistent style