first commit

This commit is contained in:
2026-03-10 00:02:57 +03:00
commit ee49b82f29
13 changed files with 211 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
## Development Environment Recommendations
This stack is most maintainable when the dev environment is repeatable and
configuration is centralized. The current scripts assume Ubuntu 16.04 and
hard-coded dependencies. The goal here is to make the environment predictable
without touching the protocol or rewriting core services.
Key recommendations:
- Standardize the dev workflow with containers (prefer `docker-compose`).
- Centralize ports, credentials, and paths into a single `.env` file.
- Provide a single entrypoint script to build/start/stop/log services.
- Keep database and service initialization scripted and idempotent.
## Focused Plan (Maintainability Only)
Phase 1: Audit and Baseline (13 days)
- Inventory the current scripts and dependencies in `hearthmod/`.
- Confirm service ports and startup order (gameserver → lobbyserver → web).
- Capture required Couchbase buckets and data seed steps.
Phase 2: Repeatable Local Environment (12 weeks)
- Add `docker-compose.yml` to orchestrate Couchbase, gameserver, lobbyserver,
and web services.
- Add `.env.example` for all required configuration values.
- Create a single `./dev` or `./scripts/dev.sh` entrypoint:
- `dev build` (build C services and web assets)
- `dev up` (start all services)
- `dev down` (stop services)
- `dev logs` (tail logs)
Phase 3: Configuration Cleanup (12 weeks)
- Replace hard-coded ports and credentials with env-configured values.
- Add a minimal config loader in `hm_web` and in C servers (config file or env).
- Update nginx config to use env-substituted paths.
Phase 4: Minimal Tests + Docs (1 week)
- Add a simple smoke test script that validates service ports and Couchbase
connectivity.
- Document the workflow in `README-dev.md` and update top-level README with a
pointer.
## Deliverables Checklist
- `docker-compose.yml` with defined services and volumes
- `.env.example` with required config variables
- A single dev entrypoint script
- Updated docs (this file) and a quick-start section
## Non-Goals (Intentionally Deferred)
- Updating Hearthstone protocol compatibility
- Rewriting the database or switching away from Couchbase
- Migrating C services to a different language
If you want, I can start by drafting the `docker-compose.yml` and a `dev` script
tailored to the current repo layout.