Skip to content
poiromaniax edited this page Sep 11, 2025 · 2 revisions

TableSlayer Self-Hosting Wiki

Welcome to the complete TableSlayer self-hosting documentation! This wiki will guide you through setting up your own TableSlayer instance with your own infrastructure and services.

This work is a fork of the fantastic TableSlayer Project. All intellectual property rights belong to them. Due to their generosity of allowing the enthusiast to self host, the code is available to us. Thank you Siege Perilous team!

🎯 What You'll Achieve

A fully functional TableSlayer deployment with:

  • Real-time synchronization between admin UI and playfield
  • Fog changes syncing properly using self-hosted R2 URLs
  • Google OAuth signup working without errors
  • Docker deployment with proper production setup
  • Database migrations for production environment

πŸ“š Wiki Navigation

Getting Started

  • Prerequisites - System requirements and required accounts
  • Service Setup - Configure Turso, R2, PartyKit, Resend, and Google OAuth

Implementation

Operations

πŸš€ Quick Start

  1. Check Prerequisites β†’ Ensure you have required accounts and server access
  2. Setup Services β†’ Configure external services (database, storage, etc.)
  3. Modify Code β†’ Apply critical bug fixes
  4. Configure Environment β†’ Set up production environment variables
  5. Deploy β†’ Use Docker Compose for production deployment

πŸ’‘ Key Features of This Setup

  • Production Ready: Tested implementation with real-world fixes
  • Comprehensive: Covers all aspects from setup to maintenance
  • Docker Based: Easy deployment with Docker Compose
  • Fully Self-Hosted: No dependencies on original TableSlayer services
  • Asset Management: Clear guidance on handling game assets

πŸ”§ Architecture Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Your Domain   │───▢│  TableSlayer │───▢│   Turso DB  β”‚
β”‚                 β”‚    β”‚   (Docker)   β”‚    β”‚             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚  External Services β”‚
                    β”‚  β€’ PartyKit (RT)   β”‚
                    β”‚  β€’ Cloudflare R2   β”‚
                    β”‚  β€’ Resend (Email)  β”‚
                    β”‚  β€’ Google OAuth    β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Technology Stack

  • Database: Turso (LibSQL/SQLite)
  • Storage: Cloudflare R2
  • Real-time: PartyKit
  • Email: Resend
  • Auth: Google OAuth
  • Deployment: Docker + Docker Compose
  • Reverse Proxy: Nginx (recommended)

πŸ“‹ Before You Start

Make sure you understand:

  • Basic Docker and Linux server administration
  • DNS configuration for your domain
  • Environment variable management
  • Basic database concepts

Ready to begin? Start with Prerequisites!


This documentation is based on a successful production deployment that resolved critical issues with real-time synchronization and Google OAuth. The implementation has been tested and verified to work in production.

Clone this wiki locally