# BepInbuilds Builds distribution website for BepInEx and other distributions ## How to run 1. Rename `ftp.env.template` to `ftp.env` and specify the FTP credentials you want to use * Note: Also specify `PUBLICHOST` which is the public IP address (or host address) that is used to connect to the FTP server. This is needed for passive mode to work. * **Optional:** Edit `docker-compose.yml` to set ports to the webapp and FTP servers 2. Run `docker-compose build` to build the images 3. Run `docker-compose up` to start This will create volume `bepisbuilds_builds-volume` (assuming the working dir of this project is `bepisbuilds`) which is used to store build artifacts. *Note:* Passive connection mode of FTP might not work. In addition, you might want to remap the ports in compose yml. ## Builds folder layout BepisBuilds detects and displays projects based on the folder layout of the the builds folder. In case of Docker, the builds folder is the volume. *Note:* The FTP container is set up so that the root folder it displays is automatically the builds folder. All paths below are relative to that. ### Projects Each project must be in folder named ``. In addition, `/info.json` must exist with the following contents: ```json { "name": "Display name of the project" } ``` If `/index.md` exists, BepisBuild will display the rendered contents of the file on the project page. ### Builds and artifacts For each build, the artifacts must be stored in `/artifacts/` folder. The artifacts must be placed into the build folder along with `info.json` that has the following example contents: ```json { "id": 102, "date": "10.20.2019", "changelog": "
  • This is a changelog that is put as-is into the page
", "artifacts": [ { "file": "FileOne.file", "description": "First file" }, { "file": "FileTwo.file", "description": "Second file" } ] } ```