# Devanturas by SimolZimol Professional Minecraft Plugin development and Discord bot programming, now powered by a Flask web app. ## Features - English website with sections: Home, Projects, Minecraft, About, Contact - Projects overview plus individual project pages (detail pages with feature lists, commands, install steps) - Dedicated Minecraft page with services and expertise - External links for each project (GitHub, Modrinth, SpigotMC, Wiki, Issues) - No links to private Gitea (as requested) ## Project Structure ``` website/ ├─ app.py # Flask app and routes ├─ requirements.txt # Python dependencies ├─ templates/ # Jinja2 templates │ ├─ base.html │ ├─ index.html │ ├─ projects.html │ ├─ project_detail.html │ ├─ minecraft.html │ ├─ about.html │ └─ contact.html └─ static/ ├─ css/ │ └─ styles.css └─ js/ └─ script.js ``` ## Quickstart (Windows PowerShell) ```pwsh # 1) Navigate to the project directory Set-Location -Path "c:\Users\Simon.Speedy\Documents\dev projekte\website" # 2) Create and activate a virtual environment python -m venv .venv .\.venv\Scripts\Activate.ps1 # 3) Install dependencies pip install -r requirements.txt # 4) Run the development server python app.py # The site will be available at http://127.0.0.1:5000 ``` If `python` isn’t found, try `py` instead of `python` in the above commands. ## Run with Docker (optional) ```pwsh # From project root docker build -t devanturas-site . docker run --rm -p 5000:5000 devanturas-site # Open http://localhost:5000 ``` ## Deploy on Coolify You can deploy this app on Coolify using the existing Dockerfile: 1) Create a new Application in Coolify and choose "Dockerfile" as the build type. 2) Point it to your repository and path where this project lives. 3) Environment variables (set in Coolify UI): - PORT: Coolify usually sets this automatically; the container binds to `0.0.0.0:$PORT`. - FLASK_DEBUG=false (optional) - WEB_CONCURRENCY=3 (optional Gunicorn workers override) - DEMO=... (example passthrough, Dockerfile includes `ENV DEMO=$DEMO`) 4) Exposed port: 5000 (Dockerfile uses `EXPOSE 5000` and `CMD` binds to `$PORT` with a default of 5000.) 5) Health check: GET /health should return 200 with `{ "status": "ok" }`. No other platform-specific files are required. Coolify will build the image from the Dockerfile and run it with the configured environment. ## Customization - Add more projects by updating the data structures in `app.py` under `/projects` and the detail routes. - To add Wiki/Issues links per project, populate the `links` dict with `wiki` and `issues` keys. If a project should not expose these, simply omit the keys and the template won’t render them. - All styling lives in `static/css/styles.css`. JS behaviors live in `static/js/script.js`. ## Domain Notes Ready to deploy to any of your domains: - devanturas.de, devanturas.eu, devanturas.net - simolzimol.de, simolzimol.eu You can serve this Flask app via any WSGI-capable host (e.g., Gunicorn + reverse proxy) or a PaaS of your choice. ## Privacy - No links to the private Gitea instance are included. ## License Choose a license and add it here if you plan to publish the source.