mirror of
https://github.com/sigmasternchen/mobmash.click
synced 2025-03-14 23:59:01 +00:00
doc: Add description of the local Docker setup to README
This commit is contained in:
parent
7b904d9dc4
commit
e5244db6b0
2 changed files with 38 additions and 4 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
||||||
.idea
|
.idea
|
||||||
config.php
|
config.php
|
||||||
|
config2.php
|
39
README.md
39
README.md
|
@ -2,7 +2,9 @@
|
||||||
|
|
||||||
This project aims to unravel the answer to the gargantuan query of existential magnitude: Which is the best Minecraft mob?
|
This project aims to unravel the answer to the gargantuan query of existential magnitude: Which is the best Minecraft mob?
|
||||||
|
|
||||||
Visitors are prompted with two mobs and should decide which one they like better. After they choose, the "looser" is replaced with a new candidate. In the background, an Elo-style rating system is keeping track of the individual matches. The rating also determines the next candidate - similar rating are paired up. Within one session, pairings are not repeated.
|
Visitors are prompted with two mobs and should decide which one they like better. After they choose, the "looser" is
|
||||||
|
replaced with a new candidate. In the background, an Elo-style rating system is keeping track of the individual matches.
|
||||||
|
The rating also determines the next candidate - similar ratings are paired up. Within one session, pairings are not repeated.
|
||||||
|
|
||||||
## Tech Stack
|
## Tech Stack
|
||||||
|
|
||||||
|
@ -27,10 +29,41 @@ Issues and Pull Requests are always welcome!
|
||||||
|
|
||||||
## Local Development
|
## Local Development
|
||||||
|
|
||||||
To develop locally, you need a PostgreSQL database and a PHP 8 interpreter. If you don't have a local web server, you can just use the built-in development server of PHP: `php -S localhost:8080 -t ./html/`
|
### With Docker
|
||||||
|
|
||||||
|
The easiest way to develop locally is using Docker and Docker Compose. Just execute:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd local-dev
|
||||||
|
docker compose up --build
|
||||||
|
```
|
||||||
|
|
||||||
|
This will start a PostgreSQL server and a PHP dev container. The working directory is mounted in the container.
|
||||||
|
So, for PHP changes, you don't need to rebuild the container. However, for JS changes or new emojis (`emoji.css`)
|
||||||
|
you will either have to rebuild the container, or execute the build scripts manually (see "Without Docker") below.
|
||||||
|
|
||||||
|
### Without Docker
|
||||||
|
|
||||||
|
If you don't want to use Docker, you need a PostgreSQL database, a PHP 8 interpreter, and npm.
|
||||||
|
If you don't have a local web server, you can just use the built-in PHP development server:
|
||||||
|
`php -S localhost:8080 -t ./html/`
|
||||||
|
|
||||||
As for configuration, just copy `./config.templ.php` to `./config.php`, fill out the values, and you are ready to go.
|
As for configuration, just copy `./config.templ.php` to `./config.php`, fill out the values, and you are ready to go.
|
||||||
|
|
||||||
The migrations are automatically applied with the first served request.
|
The migrations are automatically applied with the first served request.
|
||||||
|
|
||||||
You will probably have to run `./bin/cron/updateData.php` to create the mob entries in the database and fetch the images. The other files in the `./bin/cron/` are not necessary for most development work, as they will just some cleanup and caching stuff for production.
|
To compile the JS, execute:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd resources/js
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
This will also download Font Awesome.
|
||||||
|
|
||||||
|
In order to download the emoji, execute `./bin/setup/fetch-emoji.sh`.
|
||||||
|
You'll have to repeat this whenever you add new emoji to `emoji.css`.
|
||||||
|
|
||||||
|
You will also have to run `./bin/cron/updateData.php` to create the mob entries in the database and fetch the images.
|
||||||
|
The other files in the `./bin/cron/` are not necessary for most development work, as they will just some cleanup and caching stuff for production.
|
||||||
|
|
Loading…
Reference in a new issue