Commit Graph

70 Commits

Author SHA1 Message Date
Evan a9012a6613 Move cloudflare tunnel creation back into startup.sh (#2694)
## Description:
Reverts #49b01d8

Move cloudflare tunnel creation back into startup.sh. This keeps the
infra outside of the main app.
## Please complete the following:

- [ ] I have added screenshots for all UI updates
- [ ] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [ ] I have added relevant tests to the test directory
- [ ] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced

## Please put your Discord username so you can be contacted if a bug or
regression is found:

evan
2025-12-25 13:24:23 -08:00
Ahmet Dedeler 18efa4cd73 Load env vars before server config init (#2586)
## Summary
- load dotenv before constructing the server config so .env values are
available
- avoid misconfigured tunnels/host metadata when env vars were
previously undefined

## Testing
- npm test -- --runInBand
2025-12-09 16:10:53 -08:00
evanpelle 7d93b484bd fix websocket error (#1208)
## Description:

When updating tunnel creation, the port was switched to 3000, so it
pointed to master, it should be pointed to port 80 (nginx) so that nginx
can route requests to the appropriate worker.

Also fixed some ws handling.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

DISCORD_USERNAME
2025-06-17 09:46:13 -07:00
evanpelle 718eda9888 cloudflare fixed tunnel name (#1096)
## Description:
The binary created a new tunnel on startup, and if the container crashed
looped, then it would generate 100s of tunnels causing us to reach the
1000 tunnel limit.

Now the config is stored on a mounted volume, so if the container
restarts it sees the existing config and does not create a new tunnel.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

evan
2025-06-08 19:38:23 -07:00
evanpelle da93fe05ea fix cloudflare tunnels (#1076)
The Server didn't have correct permissions to create the directory for
the cloudflare config. Have docker do it instead. Also the credentials
file key was incorrect.
2025-06-06 16:13:05 -07:00
evanpelle 49b01d8014 have master create tunnels for all workers #780 (#1042)
## Description:
We want to move away from using nginx to cloudflare to route among
workers. This will simplify the nginx config, move routing computation
off the server, and make it easier to implement a multi-host
architecture.

The worker tunnels are not currently used.

I also moved the tunnel creation from startup.sh to Server. The shell
script was getting too complex.


## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

evan
2025-06-06 13:43:21 -07:00
Evan f620264ce3 load environment variable for development 2025-04-05 21:39:05 -07:00
Evan a029b4277f use node cluster to shard server 2025-03-02 09:39:09 -08:00
Evan 808107c9c3 don't log zod validation errors 2025-03-02 09:29:10 -08:00
Evan 389e905813 server is lagging for some reason and cpu is high, log cpu usage to track it 2025-02-24 13:39:03 -08:00
NewHappyRabbit 02d5060352 Customizable creative mode 2025-02-24 23:06:50 +02:00
Evan f995fc4ec6 remove test error 2025-02-24 09:10:43 -08:00
Evan cace7e1789 create rate limit async handler 2025-02-24 08:44:53 -08:00
Evan 34fff98c99 make europe and world more frequent 2025-02-23 20:46:31 -08:00
Evan 0994fb19bb rate limit start & create private lobby, change max game duration to 3 hours 2025-02-23 19:42:25 -08:00
Evan 528c8c371e only allow 1 ip per game, don't allow modifying public games 2025-02-23 19:42:15 -08:00
Evan a072a24433 add ws rate limiter 2025-02-23 19:41:38 -08:00
Evan 19794e4c65 add express rate limiting 2025-02-23 19:38:17 -08:00
Evan e37cba91dc don't crash when failing to load discord secrets 2025-02-17 19:36:31 -08:00
Evan 6a66d0c52d load archived game if not found 2025-02-17 19:30:30 -08:00
Evan 969886331c create discord login button & flow 2025-02-16 12:18:50 -08:00
Evan 6d507914c9 add websocket error handling 2025-02-12 13:31:22 -08:00
NewHappyRabbit 303543d246 Lobby urls! Server will server index.html and act as a SPA. 2025-02-12 21:18:23 +02:00
Evan 40966ca3b9 format all files with prettier 2025-02-12 08:28:15 -08:00
NewHappyRabbit 7fcbaa8584 Added creative mode. Everything costs 0 gold, builds instantly and you start with 100k population 2025-02-12 00:15:30 +02:00
NewHappyRabbit 684b0bb2e0 Added checkboxes to disable Bots and NPCs for single player and private lobbies 2025-02-11 03:29:56 +02:00
Evan b3498976fb show game map name in public lobby 2025-02-09 13:15:06 -08:00
Evan fa22861d43 patch server perf upates from v0.14.1 2025-02-05 19:53:04 -08:00
Evan 4ee37323f9 format codebase with prettier 2025-02-01 12:05:11 -08:00
Evan f6b739e263 validate usernames on change, fix public lobby highlight bug, validate
strings with zod for safety
2025-01-02 09:02:23 -08:00
evanpelle 239f5f11dc fix merge errors 2024-12-31 13:10:58 -08:00
Evan 0b8950f4bc fix ip processing bug: ip was sometimes an array 2024-12-31 13:09:20 -08:00
Mittani 0cce2b3b57 * resolve conflict 2024-12-31 13:07:41 -08:00
Mittani 697b4c6111 * updata validation on public games 2024-12-31 13:07:17 -08:00
Mittani af6c519d77 * updata validation on public games 2024-12-31 13:06:43 -08:00
Mittani aba8e5dd81 + add validation server side 2024-12-31 13:06:43 -08:00
Mittani aa01ea7694 + add random bot names 2024-12-31 13:05:22 -08:00
Evan 0693b5db65 fix ip processing bug: ip was sometimes an array 2024-12-30 13:24:09 -08:00
Evan cb75f6780c log ip address for debugging (TODO remove logging before next release) 2024-12-27 12:36:06 -08:00
evanpelle 57cbf5c55e Refactor: Split config into Config and ServerConfig 2024-12-25 14:04:19 -08:00
evanpelle 44d6962b88 have private lobby show players 2024-12-24 11:47:11 -08:00
Evan 33b3255a38 try-catch on websocket message to prevent crashing server 2024-12-23 11:31:17 -08:00
evanpelle ff02d9d8b6 have core/ directory use consolex for remote logging 2024-12-18 12:00:00 -08:00
evanpelle 642d5dc4ca create consolex class for remote logging 2024-12-18 11:50:31 -08:00
Evan 113518a96e use better structured logging 2024-12-17 20:34:15 -08:00
Evan 94992e1144 send all logs from client to server and log them 2024-12-17 19:53:17 -08:00
evanpelle 031f62c701 have clients send logs to server 2024-12-17 17:14:24 -08:00
evanpelle 1417808c14 store user's persistent id in bigquery 2024-12-17 14:30:16 -08:00
Evan 722165c401 adding persistent id 2024-12-17 14:30:16 -08:00
Evan 37a71c2ef0 added discord bot 2024-12-17 14:29:31 -08:00