Compare commits
2 Commits
v0.0.1
...
029302b9e9
| Author | SHA1 | Date | |
|---|---|---|---|
| 029302b9e9 | |||
| 6c6e23f921 |
@@ -1,4 +1,3 @@
|
|||||||
.env
|
.env
|
||||||
rerun.sh
|
|
||||||
data/
|
data/
|
||||||
node_modules/
|
node_modules/
|
||||||
|
|||||||
@@ -0,0 +1,85 @@
|
|||||||
|
# Hearts
|
||||||
|
|
||||||
|
A multiplayer Hearts card game with real-time gameplay via WebSockets. Shares accounts with [Hokm](../hokm) — log in with the same credentials on both games.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- Docker & Docker Compose
|
||||||
|
- [Hokm](../hokm) installed at `/root/hokm` (provides card assets and shared user accounts)
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone git@git.goyban.com:goyban/hearts.git
|
||||||
|
cd hearts
|
||||||
|
cp .env.example .env
|
||||||
|
# edit .env — see below
|
||||||
|
```
|
||||||
|
|
||||||
|
Then start:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
|
Or use the helper script (stops, rebuilds, and tails logs):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./rerun.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
The game is available at:
|
||||||
|
- HTTP: `http://<host>:4000`
|
||||||
|
- HTTPS: `https://<host>:4443` (self-signed cert, needed for PWA install)
|
||||||
|
|
||||||
|
## .env reference
|
||||||
|
|
||||||
|
```dotenv
|
||||||
|
# Secret used to sign JWT session tokens. Change this to a random string.
|
||||||
|
JWT_SECRET=hearts-secret-change-me
|
||||||
|
|
||||||
|
# Username that gets admin privileges (access to /admin panel).
|
||||||
|
# Leave empty to disable admin.
|
||||||
|
ADMIN_USERNAME=
|
||||||
|
|
||||||
|
# HTTP and HTTPS ports (must match docker-compose.yml port mapping if changed).
|
||||||
|
PORT=4000
|
||||||
|
HTTPS_PORT=4443
|
||||||
|
|
||||||
|
# Path to Hokm's users.json so Hokm accounts work here too.
|
||||||
|
# Docker path (default, matches the volume mount in docker-compose.yml):
|
||||||
|
SHARED_USERS_FILE=/hokm-data/users.json
|
||||||
|
# If running directly with `node server.js` instead of Docker, use:
|
||||||
|
# SHARED_USERS_FILE=/root/hokm/data/users.json
|
||||||
|
|
||||||
|
# Optional: Resend (resend.com) for email verification codes on signup.
|
||||||
|
# Leave blank to skip email verification entirely.
|
||||||
|
RESEND_API_KEY=
|
||||||
|
RESEND_FROM=noreply@example.com
|
||||||
|
|
||||||
|
# Optional: Cloudflare Turnstile CAPTCHA on the signup form.
|
||||||
|
# Get keys at dash.cloudflare.com → Turnstile.
|
||||||
|
# Leave blank to disable CAPTCHA.
|
||||||
|
TURNSTILE_SITE_KEY=
|
||||||
|
TURNSTILE_SECRET=
|
||||||
|
```
|
||||||
|
|
||||||
|
### Minimum required changes
|
||||||
|
|
||||||
|
| Variable | What to set |
|
||||||
|
|---|---|
|
||||||
|
| `JWT_SECRET` | Any long random string (e.g. `openssl rand -hex 32`) |
|
||||||
|
| `ADMIN_USERNAME` | Your username, to unlock the admin panel |
|
||||||
|
|
||||||
|
Everything else is optional.
|
||||||
|
|
||||||
|
## Updating
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git pull
|
||||||
|
./rerun.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Data
|
||||||
|
|
||||||
|
Game data (users, stats, config) is stored in `./data/` which is bind-mounted into the container. It persists across restarts and rebuilds.
|
||||||
Reference in New Issue
Block a user