e1f0179d7a
gates / gates (push) Successful in 2s
A new front-door fixture: crafty's own API v2 (login as admin, a role created and read back, a wrong-token control), reached over its own HTTPS port on the bench as traefik reaches it on a box. Bench 9401 (harness v4, swap 0): proven, 10-min watch 0 kills (anon peak 2.7 % of 2048M); the abort starts and serves. Box 9202: done in 51.3 s, the role read back. Written by upgrade-test.py --write-ladder. Evidence: felhom.eu/documentation/audits/more-night-apps-2026-09-30/ Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
132 lines
7.0 KiB
YAML
132 lines
7.0 KiB
YAML
# =============================================================================
|
||
# .felhom.yml - App metadata for felhom-controller
|
||
# =============================================================================
|
||
|
||
# --- Display info (shown on dashboard) ---
|
||
display_name: "Crafty Controller"
|
||
description: "Minecraft szerver kezelő webes felülettel"
|
||
category: "games"
|
||
subdomain: "minecraft"
|
||
slug: "crafty-controller"
|
||
# catalog_since: the date THIS repo last changed this app's pinned images. Any commit that
|
||
# changes an image: line must set this to the same day (see CLAUDE.md).
|
||
catalog_since: "2026-09-30"
|
||
|
||
# --- Resource hints (displayed on deploy screen) ---
|
||
resources:
|
||
mem_request: "256M"
|
||
mem_limit: "2048M"
|
||
pi_compatible: false
|
||
needs_hdd: false
|
||
|
||
# --- Deploy fields (first deployment only) ---
|
||
deploy_fields:
|
||
- env_var: DOMAIN
|
||
label: "Domain"
|
||
type: domain
|
||
description: "A szerver domain neve"
|
||
locked_after_deploy: true
|
||
|
||
- env_var: SUBDOMAIN
|
||
label: "Aldomain"
|
||
type: subdomain
|
||
default: "minecraft"
|
||
required: true
|
||
locked_after_deploy: true
|
||
description: "Az alkalmazás aldomainje"
|
||
|
||
- env_var: CRAFTY_PASSWORD
|
||
label: "Admin jelszó"
|
||
type: password
|
||
generate: password:24
|
||
locked_after_deploy: true
|
||
description: "A Crafty admin felhasználó (admin) kezdeti jelszava — ezzel tudsz belépni a kezelőfelületre"
|
||
|
||
# --- App info (info page content) ---
|
||
app_info:
|
||
tagline: "Minecraft szerver kezelő - hozd létre a saját világodat"
|
||
docs_url: "https://docs.craftycontrol.com/"
|
||
|
||
use_cases:
|
||
- 'Minecraft szerver létrehozása és kezelése webes felületen'
|
||
- 'Több szerver párhuzamos futtatása (Java és Bedrock)'
|
||
- 'Automatikus mentések és ütemezett újraindítás'
|
||
- 'Játékos menedzsment és konzol hozzáférés'
|
||
- 'Szerver fájlok kezelése böngészőből'
|
||
|
||
first_steps:
|
||
- 'Nyisd meg a minecraft.DOMAIN címet a böngészőben'
|
||
- 'A kezdeti belépési adatokat ezen az oldalon (Kezdeti belépési adatok) találod'
|
||
- 'Hozz létre egy új Minecraft szervert a varázslóval'
|
||
- 'Állítsd be a szerver beállításokat (játékmód, nehézség, stb.)'
|
||
- 'Állítsd be a szerver portját a 25565–25575 tartományon belül (server.properties → server-port); az első szerver a 25565-öt használja, a továbbiak 25566–25575-öt'
|
||
- 'Helyi hálózaton csatlakozz a szerver helyi IP-címére és portjára (pl. 192.168.x.x:25565) — a Minecraft kliens „helyi hálózat keresése” nem listázza automatikusan, add meg kézzel a címet'
|
||
- 'Interneten keresztüli eléréshez port-továbbítás szükséges a választott port(ok)ra — egyeztess az üzemeltetővel'
|
||
|
||
prerequisites:
|
||
- 'Legalább 2 GB szabad RAM ajánlott (Minecraft szerver + Crafty)'
|
||
- 'x86 processzor szükséges (nem fut Raspberry Pi-n)'
|
||
- 'A Minecraft szerverek a 25565–25575 porttartományt használhatják (egyszerre legfeljebb 11 szerver)'
|
||
|
||
# --- Controller-side health probe ---
|
||
healthcheck:
|
||
checks:
|
||
- type: tcp
|
||
port: 8443
|
||
|
||
# --- Initial login (felhom-seeded) ---
|
||
# The admin password is seeded into default.json by the compose entrypoint (CRAFTY_PASSWORD deploy
|
||
# field). The controller reads it back from default.json and shows it on the app page under "Kezdeti
|
||
# belépési adatok" — same value the customer set at deploy time.
|
||
initial_credentials:
|
||
file: /crafty/app/config/default.json
|
||
format: json
|
||
username_key: username
|
||
password_key: password
|
||
note: "Kezdeti admin jelszó (a telepítéskor beállított). Az első belépés után változtasd meg a Crafty felületén — ez a kártya továbbra is a kezdeti jelszót mutatja."
|
||
|
||
# --- English copy (localisation slice 5, R-560) --------------------------------------------
|
||
# The Hungarian above is UNCHANGED. A box on English reads this block field by field; a missing
|
||
# field shows the Hungarian one; a controller older than 0.257.0 ignores the block entirely.
|
||
i18n:
|
||
en:
|
||
description: 'A Minecraft server manager with a web interface'
|
||
app_info:
|
||
tagline: 'A Minecraft server manager - build your own world'
|
||
use_cases:
|
||
- 'Create and run a Minecraft server from a web page'
|
||
- 'Run several servers side by side (Java and Bedrock)'
|
||
- 'Backups and scheduled restarts happen on their own'
|
||
- 'Manage players and reach the console'
|
||
- 'Handle the server files from your browser'
|
||
first_steps:
|
||
- 'Open minecraft.DOMAIN in your browser'
|
||
- 'The first sign-in details are on this page, under Initial sign-in details'
|
||
- 'Create a new Minecraft server with the wizard'
|
||
- 'Set the server options (game mode, difficulty and the rest)'
|
||
- 'Set the server port inside the range 25565-25575 (server.properties -> server-port); the first server uses 25565 and the rest 25566-25575'
|
||
- 'On your home network, connect to the server''s local IP address and port (192.168.x.x:25565, for example) - the Minecraft client''s local network search does not list it on its own, so type the address in by hand'
|
||
- 'Reaching it over the internet needs port forwarding to the port or ports you chose - ask whoever runs the network'
|
||
prerequisites:
|
||
- 'At least 2 GB of free RAM is recommended (the Minecraft server + Crafty)'
|
||
- 'An x86 processor is needed (it does not run on a Raspberry Pi)'
|
||
- 'Minecraft servers may use the port range 25565-25575 (at most 11 servers at once)'
|
||
deploy_fields:
|
||
- env_var: DOMAIN
|
||
label: 'Domain'
|
||
description: 'The server domain name'
|
||
- env_var: SUBDOMAIN
|
||
label: 'Subdomain'
|
||
description: 'The subdomain this app answers on'
|
||
- env_var: CRAFTY_PASSWORD
|
||
label: 'Admin password'
|
||
description: 'The first password of Crafty''s admin user (admin) - this is what signs you in'
|
||
initial_credentials:
|
||
note: 'The first admin password (the one set at install time). Change it in Crafty after your first sign-in - this card keeps showing the first password.'
|
||
|
||
# update_ladder — the test record: one tested step per line, oldest first (JSON flow mappings,
|
||
# `09-update-architecture.md` §6.4 part 4). WRITTEN BY scripts/upgrade-test.py, never by hand;
|
||
# gated by scripts/check-test-record.py. An image: move without a proven entry here is refused.
|
||
update_ladder:
|
||
- {"from": {"crafty-controller": "registry.gitlab.com/crafty-controller/crafty-4:4.10.7"}, "to": {"crafty-controller": "registry.gitlab.com/crafty-controller/crafty-4:4.11.0"}, "digest": {"crafty-controller": "sha256:7b6e87514259549647e15ceeaf73d238792e6d77e2c79fc744d5badc8d6e997c"}, "verdict": "proven", "tested_at": "2026-09-30T16:37:55Z", "harness_version": 4, "evidence": "felhom.eu/documentation/audits/more-night-apps-2026-09-30/bench/apps/crafty-controller/bench/evidence/MV-crafty-controller/verdict.json", "box_evidence": "felhom.eu/documentation/audits/more-night-apps-2026-09-30/box/crafty-controller/step.txt", "memory_peak_pct": 2.7, "marks": {"files_may_change": false, "needs_person": null, "memory_tight": false}, "memory_basis": "anon", "memory_cgroup_peak_pct": 8.0}
|