chore: local dev tilt wip
All checks were successful
/ build (map[dockerfile:./services/api/Dockerfile name:api]) (push) Successful in 42s
/ build (map[dockerfile:./services/watchers/Dockerfile name:watchers]) (push) Successful in 1m20s
/ build (map[dockerfile:./services/web/Dockerfile name:web]) (push) Successful in 1m21s
/ build (map[dockerfile:./services/app/Dockerfile name:app]) (push) Successful in 49s
/ build (map[dockerfile:./services/files/Dockerfile name:files]) (push) Successful in 1m12s
/ build (map[dockerfile:./services/tasks/Dockerfile name:tasks]) (push) Successful in 53s
/ build (map[dockerfile:./services/hasura/Dockerfile name:hasura]) (push) Successful in 1m0s
/ deploy (push) Successful in 8s

This commit is contained in:
devthejo 2026-01-11 14:40:58 +01:00
parent 4198dc3ad9
commit fc0733998e
No known key found for this signature in database
GPG key ID: 00CCA7A92B1D5351
9 changed files with 170 additions and 31 deletions

54
.env Normal file
View file

@ -0,0 +1,54 @@
# DEV PORTS
API_PORT=4200
WEB_PORT=4203
SERVICE_APP_PORT=4209
FILES_PORT=4292
EXPOSE_API_PORT=4200
EXPOSE_HASURA_PORT=4201
EXPOSE_PG_PORT=4204
EXPOSE_MINO_PORT=4290
EXPOSE_MINIO_PORT=4290
EXPOSE_MINO_CONSOLE_PORT=4291
EXPOSE_MINIO_CONSOLE_PORT=4291
MINIO_ROOT_USER=minio-admin
MINIO_ROOT_PASSWORD=minio-admin
EXPOSE_FILES_PORT=4292
EXPOSE_REDIS_QD_PORT=4278
EXPOSE_REDIS_HG_PORT=4279
EXPOSE_KVROCKS_CG_PORT=4277
EXPOSE_RABBITMQ_NODE_PORT=4272
EXPOSE_RABBITMQ_MANAGEMENT_PORT_PORT=4273
OSRM_CAR_PORT=4261
OSRM_FOOT_PORT=4262
OSRM_BICYCLE_PORT=4263
TILESERVERGL_PORT=4282
NOMINATIM_PORT=4283
HASURA_CONSOLE_PORT=4295
HASURA_CONSOLE_API_PORT=4293
# JWT
CLAIMS_NAMESPACE=https://alertesecours.fr/claims
# APP
APP_OA_FILES_URL=http://10.0.2.2:4292/api/v1/oas
APP_GRAPHQL_URL=http://10.0.2.2:4201/v1/graphql
APP_GRAPHQL_WS_URL=ws://10.0.2.2:4201/v1/graphql
APP_OSRM_CAR_URL=http://10.0.2.2:4261
APP_OSRM_FOOT_URL=http://10.0.2.2:4262
APP_OSRM_BICYCLE_URL=http://10.0.2.2:4263
APP_GEOLOC_SYNC_URL=http://10.0.2.2:4200/api/v1/oas/geoloc/sync
# APP_MAPVIEW_STYLE_URL=https://tiles.alertesecours.fr/styles/basic-preview/style.json
APP_MAPVIEW_STYLE_URL=http://10.0.2.2:4203/app/style.json
# APP_MAPVIEW_STYLE_URL=https://openmaptiles.geo.data.gouv.fr/styles/osm-bright/style.json
# API KEY
WHAT3WORDS_API_KEY=
# GoogleServices
ANDROID_GOOGLE_SERVICES_FILE_PATH=/home/jo/.lab/alertesecours/google-services.json
ANDROID_GOOGLE_SERVICES_FILE_PATH=/home/jo/.lab/alertesecours/GoogleService-Info.plist

View file

@ -8,7 +8,11 @@ EXPOSE_API_PORT=4200
EXPOSE_HASURA_PORT=4201 EXPOSE_HASURA_PORT=4201
EXPOSE_PG_PORT=4204 EXPOSE_PG_PORT=4204
EXPOSE_MINO_PORT=4290 EXPOSE_MINO_PORT=4290
EXPOSE_MINIO_PORT=4290
EXPOSE_MINO_CONSOLE_PORT=4291 EXPOSE_MINO_CONSOLE_PORT=4291
EXPOSE_MINIO_CONSOLE_PORT=4291
MINIO_ROOT_USER=minio-admin
MINIO_ROOT_PASSWORD=minio-admin
EXPOSE_FILES_PORT=4292 EXPOSE_FILES_PORT=4292
EXPOSE_REDIS_QD_PORT=4278 EXPOSE_REDIS_QD_PORT=4278
EXPOSE_REDIS_HG_PORT=4279 EXPOSE_REDIS_HG_PORT=4279
@ -47,4 +51,4 @@ WHAT3WORDS_API_KEY=
# GoogleServices # GoogleServices
ANDROID_GOOGLE_SERVICES_FILE_PATH=/home/jo/.lab/alertesecours/google-services.json ANDROID_GOOGLE_SERVICES_FILE_PATH=/home/jo/.lab/alertesecours/google-services.json
ANDROID_GOOGLE_SERVICES_FILE_PATH=/home/jo/.lab/alertesecours/GoogleService-Info.plist ANDROID_GOOGLE_SERVICES_FILE_PATH=/home/jo/.lab/alertesecours/GoogleService-Info.plist

9
.tiltignore Normal file
View file

@ -0,0 +1,9 @@
**/node_modules/**
**/.git/**
**/.cache/**
**/.dev-secrets/**
**/android/**
**/ios/**
**/*.log
osm-files/**
tileserver-files/**

View file

@ -41,22 +41,37 @@ cp .env.default .env
### Start Services ### Start Services
Start all services with: Start all services with Tilt:
```sh ```sh
yarn dev:up yarn dev
``` # or
Or using devbox scripts: devbox run dev
```sh # or run a subset of services:
devbox run dev:up tilt up api files hasura
``` ```
View logs: View logs in Tilt UI (web HUD opens automatically). CLI alternative:
```sh ```sh
yarn dev:logs yarn dev:logs
# or
tilt logs
``` ```
Or using devbox:
Stop services:
```sh ```sh
devbox run dev:logs # If running in the foreground terminal:
Ctrl-C
# Or explicitly:
tilt down
```
Compose fallback (legacy):
```sh
yarn compose:up
yarn compose:down
# or via devbox:
devbox run compose:up
devbox run compose:down
``` ```
### Using Devbox ### Using Devbox

38
Tiltfile Normal file
View file

@ -0,0 +1,38 @@
# Tiltfile for as-services
# Orchestrates docker-compose services with Tilt, providing a unified UI/logs and incremental workflows.
# Watch ignores are configured via .tiltignore
# Ensure .env exists so docker-compose gets expected env
local_resource(
name="ensure-env",
cmd="bash -lc 'if [ ! -f .env ] && [ -f .env.default ]; then cp .env.default .env && echo Created .env from .env.default; fi'",
allow_parallel=True,
auto_init=True,
)
# Optional: pre-pull builder image used in Dockerfiles
local_resource(
name="pull-builder",
cmd="docker pull devthefuture/dockerfile-x",
allow_parallel=True,
auto_init=True,
)
# Drive docker-compose with Tilt
dc = docker_compose('./docker-compose.yaml')
# Compose services are registered via docker_compose; explicit resource dependencies
# removed for compatibility with Tilt v0.35 (resource_deps not available).
# Optional groups for readability (requires Tilt Teams; keep commented if not used)
# set_team_ui_settings({
# 'resource_groups': {
# 'core': ['db', 'rabbitmq', 'redis-q-dedup', 'redis-hot-geodata', 'kvrocks-cold-geodata', 'maildev'],
# 'object-storage': ['minio', 'minio-setup'],
# 'hasura': ['hasura', 'hasura_console'],
# 'api-stack': ['api', 'files', 'tasks', 'watchers'],
# 'geo': ['osrm-car', 'osrm-foot', 'tileserver-gl', 'nominatim', 'nominatim-pg'],
# 'frontends': ['web', 'app'],
# }
# })

View file

@ -5,7 +5,8 @@
"yarn", "yarn",
"git", "git",
"curl", "curl",
"jq" "jq",
"tilt"
], ],
"shell": { "shell": {
"init_hook": [ "init_hook": [
@ -49,4 +50,4 @@
"NODE_ENV": "development", "NODE_ENV": "development",
"LOCAL_DEV": "true" "LOCAL_DEV": "true"
} }
} }

View file

@ -74,6 +74,10 @@
} }
} }
}, },
"tilt": {
"resolved": "github:NixOS/nixpkgs/ca77296380960cd497a765102eeb1356eb80fed0?narHash=sha256-PgLSZDBEWUHpfTRfFyklmiiLBE1i1aGCtz4eRA3POao%3D#tilt",
"source": "nixpkg"
},
"yarn": { "yarn": {
"resolved": "github:NixOS/nixpkgs/ca77296380960cd497a765102eeb1356eb80fed0?narHash=sha256-PgLSZDBEWUHpfTRfFyklmiiLBE1i1aGCtz4eRA3POao%3D#yarn", "resolved": "github:NixOS/nixpkgs/ca77296380960cd497a765102eeb1356eb80fed0?narHash=sha256-PgLSZDBEWUHpfTRfFyklmiiLBE1i1aGCtz4eRA3POao%3D#yarn",
"source": "nixpkg", "source": "nixpkg",

View file

@ -32,25 +32,25 @@ services:
minio-setup: minio-setup:
image: minio/mc:latest image: minio/mc:latest
depends_on: depends_on:
- minio minio:
condition: service_healthy
environment: environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minio-admin} MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minio-admin}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minio-admin} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minio-admin}
entrypoint: > entrypoint:
/bin/sh -c ' - /bin/sh
set -e - -ec
mc alias set myminio http://minio:9000 "$$MINIO_ROOT_USER" "$$MINIO_ROOT_PASSWORD"; - |
# wait for server to be ready mc alias set myminio http://minio:9000 "$MINIO_ROOT_USER" "$MINIO_ROOT_PASSWORD"
until mc ls myminio >/dev/null 2>&1; do until mc ls myminio >/dev/null 2>&1; do
echo "Waiting for MinIO to be ready..."; echo "Waiting for MinIO to be ready..."
sleep 1; sleep 1
done; done
echo "MinIO is up and running, configuring..."; echo "MinIO is up and running, configuring..."
mc mb -p myminio/avatar || true; mc mb -p myminio/avatar || true
mc mb -p myminio/audio || true; mc mb -p myminio/audio || true
mc anonymous set download myminio/avatar || true; mc anonymous set download myminio/avatar || true
echo "MinIO bucket setup complete."; echo "MinIO bucket setup complete."
'
rabbitmq: rabbitmq:
image: docker.io/rabbitmq:4.1 image: docker.io/rabbitmq:4.1
@ -154,6 +154,12 @@ services:
HASURA_GRAPHQL_ENDPOINT: http://localhost:${EXPOSE_HASURA_PORT:-4201} HASURA_GRAPHQL_ENDPOINT: http://localhost:${EXPOSE_HASURA_PORT:-4201}
HASURA_INTERNAL_HOSTNAME: ${HASURA_INTERNAL_HOSTNAME:-hasura} HASURA_INTERNAL_HOSTNAME: ${HASURA_INTERNAL_HOSTNAME:-hasura}
HASURA_EXPOSE_PORT: ${EXPOSE_HASURA_PORT:-4201} HASURA_EXPOSE_PORT: ${EXPOSE_HASURA_PORT:-4201}
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:${HASURA_CONSOLE_PORT:-4295}/ >/dev/null 2>&1 || curl -sf http://localhost:${HASURA_CONSOLE_PORT:-4295}/ >/dev/null"]
interval: 10s
timeout: 5s
retries: 10
start_period: 10s
api: api:
image: helpme_api:prod image: helpme_api:prod
@ -381,6 +387,12 @@ services:
- "${MAILDEV_SMTP_PORT:-4225}:1025" - "${MAILDEV_SMTP_PORT:-4225}:1025"
- "${MAILDEV_WEB_PORT:-4226}:1080" - "${MAILDEV_WEB_PORT:-4226}:1080"
restart: always restart: always
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:${MAILDEV_WEB_PORT:-1080}/ >/dev/null 2>&1 || curl -sf http://localhost:${MAILDEV_WEB_PORT:-1080}/ >/dev/null"]
interval: 10s
timeout: 5s
retries: 10
start_period: 10s
web: web:
image: helpme_web image: helpme_web

View file

@ -20,9 +20,11 @@
"tests/*" "tests/*"
], ],
"scripts": { "scripts": {
"dev": "yarn dev:up && yarn dev:logs", "dev": "tilt up",
"dev:up": "up", "dev:up": "tilt up",
"dev:logs": "dev-logs", "dev:logs": "tilt logs",
"compose:up": "scripts/up",
"compose:down": "docker compose down -v",
"up:modjo": "git stash && yarn up '@modjo/*' && git stash pop && yarn", "up:modjo": "git stash && yarn up '@modjo/*' && git stash pop && yarn",
"release": "commit-and-tag-version", "release": "commit-and-tag-version",
"lint": "eslint .", "lint": "eslint .",