# EZGG LAN Manager ## Overview This repository contains the code for the EZGG LAN Manager. ## Development Setup ### Prerequisites - Working Installation of MySQL 5 or latest MariaDB Server (`mariadb-server` for Debian-based Linux, `XAMPP` for Windows) - Python 3.9 or higher - PyCharm or similar IDE (optional) ### Step 1: Preparing Database To prepare the database, apply the SQL file located in `sql/create_database.sql` to your database server. This is easily accomplished with the MYSQL Workbench, but it can be also done by pipeing the file into the mariadb-server executable. Optionally, you can now execute the script `create_demo_database_content.py`, found in `src/ezgg_lan_manager/helpers`. Be aware that it can be buggy sometimes, especially if you overwrite existing data. ### Step 2: Preparing configuration Use the example configuration at `config/config.example.toml` to create a `config.toml` at the base of the repository. Most of the parameters do not matter to get the development setup done, but the database credentials need to be correct. ### Step 3: Install dependecies Use `pip install -r requirements.txt` to install the requirements. The usage of a venv is recommended. ### Step 4: Running the application Run the application by executing the file `EzggLanManager.py` found at `src/ezgg_lan_manager`. Check the STDOUT for information regarding the port on which the application is now served. ## Docker Deployment To get the docker compose setup running, you need to manually complete the following steps: 1. Create a valid `config.toml` in the project root, so it gets copied over into the container. 2. Create the database user: ```sql CREATE USER 'ezgg_lan_manager'@'%' IDENTIFIED BY 'PASSWORD'; GRANT ALL PRIVILEGES ON ezgg_lan_manager.* TO 'ezgg_lan_manager'@'%'; FLUSH PRIVILEGES; ``` 3. Make sure to **NOT** use the default passwords! 4. Apply the `create_database.sql` when starting the MariaDB container for the first time.