# Develop For now Docker is a primary way of working on the repo. However dependencies are still needed to installed locally for the IDE setup. ## Requirements: Python: 3.12+ NodeJS: 22.14+ PostgreSQL: 16+ Redis: 6+ ## Installation 1. Check if node 22.14 or 22.13 is installed in the system: ``` node --version ``` If fails, follow [installation instructions](./FAQ.md#how-do-i-install-nodejs-2214-using-nvm) 2. Check if python 3.12 is installed in the system: ```sh which python 3.12 ``` If no path returned, follow [installation instructions](./FAQ.md#how-do-i-install-python-312-on-ubuntu-22) 3. Install `virtualenv` package if it's not installed. ```sh pip install --user virtualenv ``` 4. Create a virtual environment: ```sh virtualenv python=3.12 venv ``` 5. Activate the virtual environment. ```sh # Windows ➞ venv\Scripts\activate source venv/bin/activate ``` 6. Install python packages. ```sh pip install --requirement requirements.txt ``` 7. Install `pre-commit` hooks. ```sh pre-commit install --install-hooks ``` ## Database Setup 1. Install PostgreSQL if not already installed. 2. Create a database and user for the application. 3. Write in the config.json the credentials ## Redis Setup 1. Install Redis if not already installed. 2. Verify Redis is running. 3. Write in the config.json the credentials ## File Paths Configuration The application requires several directories for storing and serving files: 1. Make sure you have the directories with files, /data, /thumbnails, /icons: 2. Serve them with nginx or what is of your choice: 3. Configure the base url to serve from that file server by setting the following env variables: ```env ICONS_PREPEND BANNERS_PREPEND THUMBNAILS_PREPEND ``` ## RUN 1. Run the API dev server: ```sh python -m src web ``` 2. Run frontend dev server: ```sh python -m src webpack ``` ## Git Configure `git` to store credentials: ```sh git config credential.helper store ``` After the next time creds are accepted, they will be saved on hard drive as per rules listed in `man git-credential-store`and won't be asked again. Alternatively they can be stored temporarily in memory: ```sh git config credential.helper cache ``` The creds are stored as per rules in `man git-credential-cache`. ## IDE _IDE specific instructions._ ### VSCode 1. Copy `.code-workspace` file. ```sh cp \ configs/workspace.code-workspace.example \ kemono-2.code-workspace ``` 2. Install the recommended extensions. [`http://localhost:5000/development`]: http://localhost:5000/development [`http://localhost:5000/`]: http://localhost:5000/ [`http://localhost:8000/`]: http://localhost:8000/