Fixes "No active session found" error when adjusting game settings before starting a game in arcade rooms. **Problem:** - Sessions were only created on START_GAME move - SET_CONFIG moves require an active session in setup phase - Users couldn't adjust settings until after starting game **Solution:** - Create session in setup phase when user joins room (if none exists) - Initialize with room's game config from database - Allows SET_CONFIG moves before game starts **Changes:** - socket-server.ts:72-100 - Auto-create session on join-arcade-session - RoomMemoryPairsProvider.tsx:4 - Remove unused import - nas-deployment/docker-compose.yaml:15 - Fix DB volume mount path **Related:** - Also fixes database persistence by correcting volume mount from ./data:/app/data to ./data:/app/apps/web/data 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| ddns-data | ||
| .env.example | ||
| README.md | ||
| deploy.sh | ||
| docker-compose.yaml | ||
README.md
NAS Deployment for Soroban Abacus Flashcards
This directory contains the deployment configuration for running the Soroban Abacus Flashcards (apps/web) on your NAS at abaci.one.
Quick Deployment
After pushing code changes to trigger the GitHub Actions build:
# From the project root
./nas-deployment/deploy.sh
Manual Deployment
-
Copy files to NAS:
scp nas-deployment/docker-compose.yaml nas.home.network:/volume1/homes/antialias/projects/abaci.one/ scp nas-deployment/.env nas.home.network:/volume1/homes/antialias/projects/abaci.one/ -
Deploy:
ssh nas.home.network "cd /volume1/homes/antialias/projects/abaci.one && docker-compose up -d"
Services
- Soroban Flashcards: Main Next.js app at
https://abaci.one - DDNS Updater: Keeps Porkbun DNS updated with current WAN IP
- Watchtower: Auto-updates containers every 5 minutes when new images are pushed
Configuration
Environment Variables
Copy .env.example to .env and customize as needed.
DDNS Configuration
The Porkbun DDNS configuration is in ddns-data/ddns-config.json and handles:
- Domain:
abaci.one - Provider: Porkbun
- Auto IP detection via ipinfo.io
- TTL: 300 seconds
Traefik Integration
- Automatic HTTPS via Let's Encrypt
- HTTP → HTTPS redirect
- HSTS headers for security
Monitoring
- Container status:
ssh nas.home.network 'cd /volume1/homes/antialias/projects/abaci.one && docker-compose ps' - Application logs:
ssh nas.home.network 'cd /volume1/homes/antialias/projects/abaci.one && docker-compose logs -f soroban-abacus-flashcards' - DDNS web UI:
http://[NAS-IP]:8000
Architecture
GitHub Actions → ghcr.io/antialias/soroban-abacus-flashcards:latest
↓
NAS → docker-compose → Traefik → abaci.one
↓
Watchtower (auto-update every 5min)
DDNS (Porkbun IP sync)
Files
docker-compose.yaml: Main deployment configurationdeploy.sh: Automated deployment script.env.example: Environment variables templateddns-data/ddns-config.json: Porkbun DDNS configurationREADME.md: This file