mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
147 lines
4.5 KiB
Markdown
147 lines
4.5 KiB
Markdown
# Build Login-Server yourself
|
|
## Linux (Ubuntu) Packets
|
|
install build essentials
|
|
|
|
```bash
|
|
sudo apt install -y gcovr build-essential gettext libcurl4-openssl-dev libssl-dev libsodium-dev libboost-dev
|
|
```
|
|
|
|
## CMake
|
|
CMake is used for build file generation and the Login-Server needs at least version v3.18.2
|
|
You can build and install it from source.
|
|
The Version in apt is sadly to old.
|
|
|
|
```bash
|
|
git clone https://github.com/Kitware/CMake.git --branch v3.18.2
|
|
cd CMake
|
|
./bootstrap --parallel=$(nproc) && make -j$(nproc) && sudo make install
|
|
```
|
|
|
|
## dependencies
|
|
load git submodules if you haven't done it yet
|
|
|
|
```bash
|
|
git submodule update --init --recursive
|
|
```
|
|
|
|
## build tools
|
|
build protoc and page compiler needed for generating some additional code
|
|
|
|
```bash
|
|
cd scripts
|
|
./prepare_build.sh
|
|
```
|
|
|
|
## build
|
|
build login-server in debug mode
|
|
|
|
```bash
|
|
cd scripts
|
|
./build_debug.sh
|
|
```
|
|
|
|
## multilanguage text
|
|
Login-Server uses gettext translations found after build in src/LOCALE
|
|
On Linux Login-Server expect the *.po files in folder /etc/grd_login/LOCALE
|
|
on windows next to Binary in Folder LOCALE.
|
|
So please copy them over by yourself on first run or after change.
|
|
|
|
If you like to update some translations your find a messages.pot in src/LOCALE.
|
|
Use it together with poedit and don't forget to copy over *.po files after change to /etc/grd_login/LOCALE
|
|
To update messages.pot run
|
|
|
|
```bash
|
|
./scripts/compile_pot.sh
|
|
```
|
|
This will be also called by ./scripts/build_debug.sh
|
|
|
|
## database
|
|
Login-Server needs a db to run, it is tested with mariadb.
|
|
Currently at least one group must be present in table groups.
|
|
For example:
|
|
```sql
|
|
INSERT INTO `groups` (`id`, `alias`, `name`, `url`, `host`, `home`, `description`) VALUES
|
|
(1, 'docker', 'docker gradido group', 'localhost', 'localhost', '/', 'gradido test group for docker with blockchain db');
|
|
```
|
|
|
|
## configuration
|
|
Login-Server needs a configuration file to able to run.
|
|
On Linux it expect it to find the file /etc/grd_login/grd_login.properties
|
|
and /etc/grd_login/grd_login_test.properties for unittest
|
|
|
|
Example configuration (ini-format)
|
|
```ini
|
|
# Port for Web-Interface
|
|
HTTPServer.port = 1200
|
|
# Port for json-Interface (used by new backend)
|
|
JSONServer.port = 1201
|
|
# default group id for new users, if no group was choosen
|
|
Gradido.group_id = 1
|
|
|
|
# currently not used
|
|
crypto.server_admin_public = f909a866baec97c5460b8d7a93b72d3d4d20cc45d9f15d78bd83944eb9286b7f
|
|
# Server admin Passphrase
|
|
# nerve execute merit pool talk hockey basic win cargo spin disagree ethics swear price purchase say clutch decrease slow half forest reform cheese able
|
|
#
|
|
|
|
# TODO: auto-generate in docker build step
|
|
# expect valid hex 32 character long (16 Byte)
|
|
# salt for hashing user password, should be moved into db generated and saved per user, used for hardening against hash-tables
|
|
crypto.server_key = a51ef8ac7ef1abf162fb7a65261acd7a
|
|
|
|
# TODO: auto-generate in docker build step
|
|
# salt for hashing user encryption key, expect valid hex, as long as you like, used in sha512
|
|
crypto.app_secret = 21ffbbc616fe
|
|
|
|
# for url forwarding to old frontend, path of community server
|
|
phpServer.url = http://localhost/
|
|
# host for community server api calls
|
|
phpServer.host = localhost
|
|
# port for community server api calls
|
|
phpServer.port = 80
|
|
|
|
# Path for Login-Server Web-Interface used for link-generation
|
|
loginServer.path = http://localhost/account
|
|
# default language for new users and if no one is logged in
|
|
loginServer.default_locale = de
|
|
|
|
# db setup tested with mariadb, should also work with mysql
|
|
loginServer.db.host = localhost
|
|
loginServer.db.name = gradido_login
|
|
loginServer.db.user = root
|
|
loginServer.db.password =
|
|
loginServer.db.port = 3306
|
|
|
|
# check email path for new frontend for link generation in emails
|
|
frontend.checkEmailPath = http://localhost/reset
|
|
|
|
# disable email all together
|
|
email.disable = true
|
|
|
|
# setup email smtp server for sending emails
|
|
#email.username =
|
|
#email.sender =
|
|
#email.admin_receiver =
|
|
#email.password =
|
|
#email.smtp.url =
|
|
#email.smtp.port =
|
|
|
|
# server setup types: test, staging or production
|
|
# used mainly to decide if using http or https for links
|
|
# test use http and staging and production uses https
|
|
ServerSetupType=test
|
|
dev.default_group = docker
|
|
|
|
# Session timeout in minutes
|
|
session.timeout = 15
|
|
|
|
# Disabling security features for faster develop and testing
|
|
unsecure.allow_passwort_via_json_request = 1
|
|
unsecure.allow_auto_sign_transactions = 1
|
|
unsecure.allow_cors_all = 1
|
|
|
|
# default disable, passwords must contain a number, a lower character, a high character, special character, and be at least 8 characters long
|
|
unsecure.allow_all_passwords = 1
|
|
|
|
```
|