Install Backend
Deploy the saving service in server/mysql-backend on a server that can reach MySQL.
Enter the DrawSplatTM admin password to use the MySQL setup wizard. No password? Click Preview as Viewer for a read-only tour — no real data is loaded.
Choose Railway, DigitalOcean, or another MySQL host. Connect the public saving service here; boards stay private to each signed-in account. Save and reopen boards, including added audio and video notes, through an HTTPS API. Google classroom rooms, templates, moderation, and turn-ins remain separate features.
Deploy the saving service in server/mysql-backend on a server that can reach MySQL.
Create an empty MySQL database and give its credentials to the saving service. Tables are created automatically at startup; existing databases receive tracked migrations.
Test the public API address, enable online saving, then sign in on the whiteboard. Keep database credentials on the server.
This is the URL DrawSplatTM can call. It should point to the backend API, not directly to MySQL.
Railway: Deploy server/mysql-backend from GitHub and add a MySQL service in the same project. Reference its MYSQL_URL in the API service.
DigitalOcean: Run the bundled Docker Compose setup on a Droplet, or deploy the API on App Platform and connect a managed database.
Existing MySQL: Run this same API wherever Node.js or Docker is available. Set a database URL or individual host, port, database, username, and password settings.
Step-by-step hosting guideFor teachers setting up their own saving account. Student accounts should be provisioned by the school. This password is separate from the Teacher Admin password.
Then open the whiteboard and choose File → Save online. Use File → Online account to sign out on a shared device.
Use these fields to generate a server-only .env template. The password is not saved in the browser.
Put this on the backend server as server/mysql-backend/.env. Keep it out of Git and away from students.
GET /health checks the database and supported features.POST /auth/login signs in to an account.GET /boards lists only your saved boards.GET /boards/:key opens your board.PUT /boards/:key saves your board with conflict detection.