77 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
# Flaschengeist
 | 
						|
This is the backend of the Flaschengeist.
 | 
						|
 | 
						|
## Installation
 | 
						|
### Requirements
 | 
						|
- `mysql` or `mariadb`
 | 
						|
    - maybe `libmariadb` development files[1]
 | 
						|
- python 3.7+
 | 
						|
 | 
						|
[1] By default Flaschengeist uses mysql as database backend, if you are on Windows Flaschengeist uses `PyMySQL`, but on
 | 
						|
Linux / Mac the faster `mysqlclient` is used, if it is not already installed installing from pypi requires the
 | 
						|
development files for `libmariadb` to be present on your system.
 | 
						|
 | 
						|
### Install python files
 | 
						|
    pip3 install --user .
 | 
						|
or with ldap support
 | 
						|
 | 
						|
    pip3 install --user ".[ldap]"
 | 
						|
or if you want to also run the tests:
 | 
						|
 | 
						|
    pip3 install --user ".[ldap,test]"
 | 
						|
 | 
						|
You will also need a MySQL driver, recommended drivers are
 | 
						|
- `mysqlclient`
 | 
						|
- `PyMySQL`
 | 
						|
 | 
						|
`setup.py` will try to install a matching driver.
 | 
						|
 | 
						|
#### Windows
 | 
						|
Same as above, but if you want to use `mysqlclient` instead of `PyMySQL` (performance?) you have to follow this guide:
 | 
						|
 | 
						|
https://www.radishlogic.com/coding/python-3/installing-mysqldb-for-python-3-in-windows/
 | 
						|
 | 
						|
### Configuration
 | 
						|
Configuration is done within the a `flaschengeist.toml`file, you can copy the one located inside the module path
 | 
						|
(where flaschegeist is installed) or create an empty one and place it inside either:
 | 
						|
1. `~/.config/`
 | 
						|
2. A custom path and set environment variable `FLASCHENGEIST_CONF`
 | 
						|
 | 
						|
Uncomment and change at least all the database parameters!
 | 
						|
 | 
						|
### Database installation
 | 
						|
The user needs to have full permissions to the database.
 | 
						|
If not you need to create user and database manually do (or similar on Windows):
 | 
						|
 | 
						|
    (
 | 
						|
        echo "CREATE DATABASE flaschengeist;"
 | 
						|
        echo "CREATE USER 'flaschengeist'@'localhost' IDENTIFIED BY 'flaschengeist';"
 | 
						|
        echo "GRANT ALL PRIVILEGES ON flaschengeist.* TO 'flaschengeist'@'localhost';"
 | 
						|
        echo "FLUSH PRIVILEGES;"
 | 
						|
    ) | sudo mysql
 | 
						|
 | 
						|
Then you can install the database tables and initial entries:
 | 
						|
 | 
						|
    run_flaschengeist install
 | 
						|
 | 
						|
### Run
 | 
						|
    run_flaschengeist run
 | 
						|
or with debug messages:
 | 
						|
 | 
						|
    run_flaschengeist run --debug
 | 
						|
 | 
						|
This will run the backend on http://localhost:5000
 | 
						|
 | 
						|
## Tests
 | 
						|
    $ pip install '.[test]'
 | 
						|
    $ pytest
 | 
						|
Run with coverage report:
 | 
						|
 | 
						|
    $ coverage run -m pytest
 | 
						|
    $ coverage report
 | 
						|
Or with html output (open `htmlcov/index.html` in a browser):
 | 
						|
 | 
						|
    $ coverage html
 | 
						|
 | 
						|
## Development
 | 
						|
Please refer to our [development wiki](https://flaschengeist.dev/Flaschengeist/flaschengeist/wiki/Development). |