Update README.md, check_dependencies.sh, colors.txt, and 3 more files for new alpha, get rid of IMagick for vips
This commit is contained in:
parent
33f64cc57d
commit
a3556c44e1
6 changed files with 1317 additions and 1048 deletions
48
README.md
48
README.md
|
|
@ -7,14 +7,14 @@ This system is designed from the ground up to be modular, easily configurable, a
|
|||
## ✨ Features
|
||||
|
||||
* **Automated Map Generation:** Leverages `minetestmapper` to create high-resolution PNG maps of your game worlds.
|
||||
* **Performant Image Processing:** Uses `vips`, a high-performance and memory-efficient library, to scale even huge maps (tested up to 64k x 64k pixels) for the web.
|
||||
* **Performant Image Processing:** Uses `vips` for all image processing tasks (resizing and metadata reading), providing a massive performance increase and support for huge maps. The project is now completely independent of ImageMagick.
|
||||
* **Tiled Map Generation:** Uses `gdal2tiles.py` to create performant, zoomable map tiles for a smooth user experience.
|
||||
* **Dynamic Map Viewer:** Implements an interactive map viewer using **OpenLayers**, powered by the generated map tiles, including digital zoom beyond the highest resolution.
|
||||
* **Live Player & Area Display:** Dynamically loads player positions and protected areas, displaying them as interactive overlays on the live map.
|
||||
* **Layer Control:** A menu on the map allows toggling the visibility of players, parent areas, and sub-areas (parcels).
|
||||
* **Live Data Overlays:** Dynamically fetches player positions and protected areas, displaying them as interactive overlays on the live map.
|
||||
* **Layer Control:** A menu on the map allows users to toggle the visibility of Players, Parent Areas, and Sub-Areas (Parcels).
|
||||
* **Map Archive:** Automatically saves a daily snapshot of the map and makes it available through a toggle on the world detail page.
|
||||
* **Template-Driven Site Generation:** Builds all static HTML pages from simple, customizable templates.
|
||||
* **Flexible Configuration:** Configuration is easy with a central global `config.sh` and a `web.conf` file for every one of your worlds.
|
||||
* **Flexible Configuration:** Configuration is easy with a central global `config.sh` and a `web.conf`-file for every of your worlds.
|
||||
* **Automation-Ready:** Designed for unattended execution via scheduling tools like `cron`.
|
||||
|
||||
## 🔧 Prerequisites
|
||||
|
|
@ -24,8 +24,6 @@ To run this system, the following software packages must be installed on your se
|
|||
* **bash:** The scripting language used for the entire project.
|
||||
* **vips:** A high-performance image processing library.
|
||||
* *Debian/Ubuntu Install:* `sudo apt-get install libvips-tools`
|
||||
* **ImageMagick:** Currently still required for the `identify` command (to read image dimensions).
|
||||
* *Debian/Ubuntu Install:* `sudo apt-get install imagemagick`
|
||||
* **GDAL/OGR:** Provides the `gdal2tiles.py` script for tile generation.
|
||||
* *Debian/Ubuntu Install:* `sudo apt-get install gdal-bin python3-gdal`
|
||||
* **SQLite3:** The command-line tool to query the game databases (`players.sqlite`, `auth.sqlite`).
|
||||
|
|
@ -34,7 +32,7 @@ To run this system, the following software packages must be installed on your se
|
|||
* *Debian/Ubuntu Install:* `sudo apt-get install bc`
|
||||
* **jq:** A command-line JSON processor, used by `sync_areas.sh`.
|
||||
* *Debian/Ubuntu Install:* `sudo apt-get install jq`
|
||||
* **minetestmapper:** The executable used to render maps from world data. Must be placed within the project directory.
|
||||
* **minetestmapper:** The executable used to render maps from world data. This must be placed within the project directory.
|
||||
* **iproute2:** Provides the `ss` command for `check_server_status.sh` (usually pre-installed on most systems).
|
||||
* **Web Server:** A web server like Nginx or Apache is needed to serve the generated static files.
|
||||
|
||||
|
|
@ -51,7 +49,7 @@ OR
|
|||
Clone the Git repository to a base directory.
|
||||
|
||||
```bash
|
||||
git clone [https://git.geigernet.eu/rainer/luanti-web.git](https://git.geigernet.eu/rainer/luanti-web.git) /opt/luweb
|
||||
git clone https://git.geigernet.eu/rainer/luanti-web.git /opt/luweb
|
||||
cd /opt/luweb
|
||||
# Make all scripts executable
|
||||
chmod +x generate_map.sh generate_site.sh check_server_status.sh check_dependencies.sh sync_players.sh sync_areas.sh
|
||||
|
|
@ -79,8 +77,7 @@ The system is designed so that **only worlds with a `web.conf` file** will be di
|
|||
├── minetestmapper (executable)
|
||||
├── site_generator/
|
||||
│ ├── functions/
|
||||
│ │ └── generators/
|
||||
│ │ └── ...
|
||||
│ │ └── ...
|
||||
│ ├── templates/
|
||||
│ └── examples/
|
||||
├── web_content/
|
||||
|
|
@ -92,17 +89,20 @@ The system is designed so that **only worlds with a `web.conf` file** will be di
|
|||
|
||||
## 🚀 Usage & Automation (Cronjob)
|
||||
|
||||
The scripts are designed for automated execution. Set them up using `crontab -e`.
|
||||
The scripts are designed for automated execution. If run without a `<world_key>` argument, they will process all worlds that contain a `web.conf` file.
|
||||
|
||||
**Example for `crontab -e`:**
|
||||
```bash
|
||||
# (Frequently) Update player and server status
|
||||
# Update player data for all worlds every minute
|
||||
* * * * * cd /opt/luweb && ./sync_players.sh >> /var/log/luweb/cron.log 2>&1
|
||||
|
||||
# Check server online status every 5 minutes
|
||||
*/5 * * * * cd /opt/luweb && ./check_server_status.sh >> /var/log/luweb/cron.log 2>&1
|
||||
|
||||
# (Hourly) Generate the base map and tiles
|
||||
# Generate map and tiles for all worlds once per hour
|
||||
0 * * * * cd /opt/luweb && ./generate_map.sh >> /var/log/luweb/cron.log 2>&1
|
||||
|
||||
# (Infrequently) Sync area data and rebuild the static site
|
||||
# Sync area data and rebuild the static site twice a day
|
||||
45 */12 * * * cd /opt/luweb && ./sync_areas.sh >> /var/log/luweb/cron.log 2>&1
|
||||
30 */12 * * * cd /opt/luweb && ./generate_site.sh >> /var/log/luweb/cron.log 2>&1
|
||||
```
|
||||
|
|
@ -111,7 +111,23 @@ The scripts are designed for automated execution. Set them up using `crontab -e`
|
|||
**MIT License**
|
||||
Copyright (c) 2025 Rage87 - rage87@geigernet.eu
|
||||
|
||||
(License text as before)
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
## 👤 Authors
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
|
||||
OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
## 👤 Autoren
|
||||
* **Rage87** (Main-Developer)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue