SPB Git

Repository Public

sp-calendar.json 4.7 KB 127 lines json

1{2  "app": "sp-calendar",3  "label": "SP Calendar — prise de rendez-vous self-hosted (calendar.spboucher.ai)",4  "domain": "calendar.spboucher.ai",5  "port": 8660,6  "health_path": "/api/health",7  "dir": "~/apps/sp-calendar",8  "extra_paths": [],9  "sync_excludes": [10    ".git/",11    ".DS_Store",12    "node_modules/",13    ".next/",14    ".env",15    ".env.*",16    "data/",17    "backups/",18    "test-results/",19    "playwright-report/",20    "tsconfig.tsbuildinfo",21    "next-env.d.ts",22    "_*.mjs"23  ],24  "requires": {25    "runtimes": [26      "node",27      "pnpm",28      "pm2",29      "postgresql@17"30    ],31    "ram_gb": 2,32    "ports": [33      866034    ]35  },36  "ram_mb_observed": 400,37  "size_mb": 3,38  "placement": {39    "pin": "M4M64c",40    "prefer": "M4M64c",41    "avoid": [42      "M1M32"43    ],44    "reason": "Choisi par mld pick le 2026-11-11 (score 0.558, premier). PostgreSQL 17 local : base sp_calendar, rôle spcal_app créés ce jour-là ; sauvegardes ~/backups/sp-calendar ; les clés d'accès sont liées au domaine, pas au nœud, mais la base ne suit pas un mld move sans dump/restore."45  },46  "processes": [47    {48      "name": "sp-calendar-web",49      "manager": "pm2",50      "script": "/opt/homebrew/bin/node",51      "args": [52        "node_modules/next/dist/bin/next",53        "start",54        "-p",55        "8660",56        "-H",57        "0.0.0.0"58      ],59      "interpreter": null,60      "cwd": "{{HOME}}/apps/sp-calendar",61      "env": {62        "NODE_ENV": "production",63        "PORT": "8660",64        "NEXT_TELEMETRY_DISABLED": "1",65        "PATH": "/opt/homebrew/opt/postgresql@17/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"66      },67      "cron_restart": null,68      "autorestart": true,69      "max_memory_restart": "1G",70      "kill_timeout": 800071    },72    {73      "name": "sp-calendar-worker",74      "manager": "pm2",75      "script": "/opt/homebrew/bin/node",76      "args": [77        "node_modules/tsx/dist/cli.mjs",78        "src/worker/index.ts"79      ],80      "interpreter": null,81      "cwd": "{{HOME}}/apps/sp-calendar",82      "env": {83        "NODE_ENV": "production",84        "PATH": "/opt/homebrew/opt/postgresql@17/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"85      },86      "cron_restart": null,87      "autorestart": true,88      "max_memory_restart": "600M",89      "kill_timeout": 1500090    },91    {92      "name": "sp-calendar-backup",93      "manager": "pm2",94      "script": "/bin/bash",95      "args": [96        "scripts/backup.sh"97      ],98      "interpreter": null,99      "cwd": "{{HOME}}/apps/sp-calendar",100      "env": {101        "PATH": "/opt/homebrew/opt/postgresql@17/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"102      },103      "cron_restart": "35 3 * * *",104      "autorestart": false,105      "max_memory_restart": null106    }107  ],108  "ngrok": null,109  "launchd": [],110  "env_overrides": {},111  "hooks": {112    "post_sync": [113      "set -o pipefail; test -f .env || { echo 'ERREUR: .env absent (secrets) — voir docs/OPERATIONS.md'; exit 1; }; chmod 600 .env; mkdir -p ~/data/sp-calendar ~/backups/sp-calendar && chmod 700 ~/data/sp-calendar ~/backups/sp-calendar && test -s ~/.config/sp-calendar/backup-passphrase && echo '  secrets + storage ok'",114      "set -o pipefail; export PATH=\"/opt/homebrew/bin:$PATH\"; pnpm install --frozen-lockfile --silent 2>&1 | grep -v '^\\s*at ' | tail -2; test -d node_modules/next && test -d node_modules/postgres && echo '  deps ok'",115      "set -o pipefail; export PATH=\"/opt/homebrew/opt/postgresql@17/bin:/opt/homebrew/bin:$PATH\"; node_modules/.bin/tsx scripts/migrate.ts && node_modules/.bin/tsx scripts/bootstrap.ts && echo '  db ok'",116      "set -o pipefail; export PATH=\"/opt/homebrew/bin:$PATH\"; rm -rf .next; NEXT_TELEMETRY_DISABLED=1 node_modules/.bin/next build 2>&1 | tail -3 && test -f .next/BUILD_ID && echo '  build ok'"117    ],118    "post_start": []119  },120  "ka_repo": false,121  "tunnel": {122    "domain": "calendar.spboucher.ai",123    "gateway": "BHS64",124    "note": "DNS A calendar.spboucher.ai → 51.161.112.61 vérifié le 2026-11-11 (posé par le propriétaire) ; route Caddy posée par mld deploy"125  },126  "notes": "Next.js 16 (sp-calendar-web :8660) + worker tsx (sp-calendar-worker : file de courriels PostgreSQL, expiration des demandes, abonnements ICS, rétention) + sauvegarde chiffrée quotidienne 03:35 (sp-calendar-backup → ~/backups/sp-calendar, 30 jours). PostgreSQL 17 local (db sp_calendar, rôle spcal_app). Secrets uniquement dans ~/apps/sp-calendar/.env (600) et ~/.config/sp-calendar/backup-passphrase ; copie laptop ~/Desktop/Cluster/secrets/sp-calendar/. Connexion admin par clé d'accès ; lien d'enrôlement initial : ~/data/sp-calendar/setup-url.txt ; récupération : node_modules/.bin/tsx scripts/setup-token.ts --recovery."127}
Files main
Menu

Theme