-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathecosystem.config.js
More file actions
125 lines (125 loc) · 5.71 KB
/
Copy pathecosystem.config.js
File metadata and controls
125 lines (125 loc) · 5.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
module.exports = {
apps: [{
name: "warframe-sync-prices",
autorestart: true,
script: "dist/sync_prices.js",
log_date_format: "YYYY-MM-DD HH:mm Z",
},
{
name: "warframe-sync-items",
autorestart: false,
cron_restart: "0 0 * * *",
script: "dist/sync_items.js",
log_date_format: "YYYY-MM-DD HH:mm Z",
},
{
name: "warframe-server",
autorestart: true,
script: "dist/server.js",
log_date_format: "YYYY-MM-DD HH:mm Z",
},
{
// Nuxt 4 (Nitro) frontend (SSR). Build first: `cd app && npm ci &&
// npm run build`, which emits a self-contained .output/ bundle run
// directly by node (no `nuxt start`, no --openssl-legacy-provider).
// NUXT_PUBLIC_API_URL overrides runtimeConfig.public.apiURL at
// RUNTIME and MUST be the PUBLIC API origin, or the browser would
// call localhost and every request fails with ERR_CONNECTION_REFUSED
// (API_URL is kept as the build-time default).
name: "warframe-app",
cwd: "./app",
script: ".output/server/index.mjs",
interpreter: "node",
autorestart: true,
env: {
NUXT_PUBLIC_API_URL: "https://warframe.digitalshopuy.com",
API_URL: "https://warframe.digitalshopuy.com",
SITE_URL: "https://warframe.digitalshopuy.com",
PORT: "3312",
HOST: "0.0.0.0",
},
log_date_format: "YYYY-MM-DD HH:mm Z",
},
{
name: "warframe-sync-auctions",
autorestart: true,
script: "dist/sync_auctions.js",
log_date_format: "YYYY-MM-DD HH:mm Z",
},
{
// Populates/refreshes the riven weapon list that
// warframe-sync-auctions depends on (getAllRivens) - was
// previously missing from this file entirely, so on a fresh
// deploy or DB reset the auctions sync had no weapons to loop
// over and the endo/plat rivens leaderboard stayed empty.
name: "warframe-sync-rivens",
autorestart: false,
cron_restart: "0 0 * * 0",
script: "dist/sync_rivens.js",
log_date_format: "YYYY-MM-DD HH:mm Z",
},
{
// Refreshes the WFCD drop data daily: the drop-data backup (mission
// rewards + relic contents) that powers the Star Chart, the in-app
// drop dialog, and the relic EV board's "currently dropping" gate —
// AND the relic collection behind /relics_ev (buildRelics), so the
// relic list stays current when Varzia rotates the Prime Resurgence
// set instead of only refreshing on a manual /build_relics call.
// WFCD only changes on game patches, so a daily run keeps both
// collections current without hammering the source.
name: "warframe-sync-drops",
autorestart: false,
cron_restart: "0 3 * * *",
script: "dist/sync_drops.js",
log_date_format: "YYYY-MM-DD HH:mm Z",
},
{
// i18n: rebuilds the localized game-noun name dictionaries
// (warframe-translations collection) that power the multi-language
// item names + the /i18n/:scope/:lang endpoint. Reuses warframe.market's
// own localized names (one Language-header list fetch per scope×lang),
// so it only changes on game/content updates — a daily run (staggered
// after sync-drops) keeps all 12 non-en locales current without
// hammering the source.
name: "warframe-sync-translations",
autorestart: false,
cron_restart: "0 4 * * *",
script: "dist/sync_translations.js",
log_date_format: "YYYY-MM-DD HH:mm Z",
},
{
// Rebuilds the Foundry mastery/build catalogue (warframe-foundry
// collection) from WFCD warframe-items and re-links every item and
// part to its warframe.market url_name using our own item catalogue.
// That link is what lets /foundry price the gear a player is still
// missing. Staggered after sync-translations so the market names it
// matches against are already fresh. Only changes on a game patch.
name: "warframe-sync-foundry",
autorestart: false,
cron_restart: "0 5 * * *",
script: "dist/sync_foundry.js",
log_date_format: "YYYY-MM-DD HH:mm Z",
},
{
// Targeted heal for set docs whose items_in_set roster never got
// populated (a Prime enriched before warframe.market published its
// setParts — /set_full then 500s "Not a set", /set shows zero parts).
// sync-items already re-enriches these on its nightly run, but that
// is the heavy full-catalogue sync the deploy leaves stopped; this
// one-shot scans only the sets and fixes the degenerate ones fast, so
// a Prime released between nightly syncs is healed on the next deploy.
// Staggered after sync-foundry. See sync_repair_sets.ts.
name: "warframe-sync-repair-sets",
autorestart: false,
cron_restart: "30 5 * * *",
script: "dist/sync_repair_sets.js",
log_date_format: "YYYY-MM-DD HH:mm Z",
},
{
name: "warframe-live",
autorestart: true,
script: "dist/live.js",
log_date_format: "YYYY-MM-DD HH:mm Z",
},
],
};