Files
tony beb86b2bda
Android development APK / apk (push) Failing after 30s
Checks / go (push) Failing after 30s
Checks / flutter (push) Failing after 30s
Checks / compose (push) Failing after 30s
Container images / publish (., deploy/pocketbase/Dockerfile, evoliohealth-pocketbase) (push) Failing after 30s
Container images / publish (., server/Dockerfile, evoliohealth-server) (push) Failing after 30s
test: fix actions errors
2026-07-22 13:21:03 +02:00

62 lines
2.8 KiB
Markdown

# EvolioHealth specifications
EvolioHealth is a private, self-hosted platform for recording, synchronizing, and visualizing personal health, activity, body-measurement, and progress-photo data.
The product has two deliverables:
- **EvolioHealth Server**: Go business API, bundled Flutter Web application, internal PocketBase persistence, encrypted private media, and a replaceable SQLite reference database.
- **EvolioHealth Companion**: Android Flutter application with offline storage, Health Connect integration, and direct Bluetooth Low Energy support for the Xiaomi Mi Body Composition Scale 2.
This package is the initial product and architecture source of truth for implementation by Codex. Start with [the documentation index](docs/index.md).
## Fixed principles
- Privacy and strict user isolation are product requirements.
- PocketBase is never directly exposed.
- Deployment uses one `compose.yaml`; `APP_ENV=dev|prod` selects runtime behavior.
- Runtime containers are non-root, capability-free, and compatible with common Linux NAS/container hosts.
- Data ownership, export, correction, and deletion are first-class features.
- The initial mobile target is Android only.
## Status
The repository foundation is now present. It contains minimal Go, Flutter Web,
and Flutter Android entry points, container builds, a hardened Compose topology,
and Gitea Actions workflows. Business functionality remains staged according to
[the development plan](docs/development-plan.md).
## Repository layout
```text
server/ Go API and bundled Flutter Web server
web/ Flutter Web application
companion/ Flutter Android Companion
deploy/pocketbase/ Private PocketBase container
.gitea/workflows/ Checks, container publishing, and development APK
compose.yaml Single supported deployment definition
docs/ Authoritative specifications and decisions
```
## Development deployment
Copy `.env.example` to `.env`, set `APP_URL`, and start the stack with the
standard Docker Compose interface. Images default to:
```text
git.zaynet.fr/tony/evoliohealth-server:dev
git.zaynet.fr/tony/evoliohealth-pocketbase:dev
```
PocketBase has no host port and is connected only to the internal backend
network. The public application listens on host port `8080` for local
development and is the only service a reverse proxy may target.
## Automated builds
Gitea Actions requires an online runner carrying the `ubuntu-latest` label.
Container publication uses the repository secret `REGISTRY_TOKEN`, containing
a dedicated Gitea personal access token limited to `write:package`. A push to
`main` publishes multi-architecture development images for `linux/amd64` and
`linux/arm64`. The Android workflow produces a debug APK retained as a
short-lived workflow artifact; release signing is not configured yet.