2.4 KiB
ArtCraft Server
ArtCraft's server is a Rust / Actix app called storyteller-web.
You don't need to run this to develop the ArtCraft application, but it can be useful to spin up a development instance for adding new server functions or as your own private local copy.
storyteller-web can function entirely within the development environment, and ArtCraft can be
pointed to a local instance of the server.
TODO: Concisely describe setting up server components. Note: we have
previous docs in old/ that may still be relevant, though they're perhaps
slightly out of date.
Server Setup (Mac)
Install and Migrate MySQL Database
# For now, the tooling doesn't support MySQL 9.6 as it was just released in January 2026.
# This will probably change in the future to no longer need to specify the 8.* series.
brew install mysql@8.4
# Try to connect
mysql -uroot
# If connection fails, start service, then try again.
brew services start mysql
mysql -uroot
# If that fails, reboot and try connecting again.
Create the storyteller database table. Connect to the database:
sudo mysql -u root
# If it needs a password, use argument -p and when prompted use "root" as the typical default password
Then run this:
use mysql;
CREATE DATABASE storyteller;
CREATE USER 'storyteller'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON storyteller.* TO 'storyteller'@'localhost';
Then verify access with ./script/dev_mysql_connect.sh
cargo install diesel_cli \
--no-default-features \
--features mysql,sqlite
If this fails,
brew install zstd
brew install openssl
Possibly,
export RUSTFLAGS="-L$(brew --prefix zstd)/lib -L$(brew --prefix openssl)/lib"
In older Macs, there have been some issues with Diesel CLI that require a few extra dependencies to be installed:
# If you're on Mac and the above command didn't work, run the following and then retry:
brew install libpq
You're ready to run the migrations:
diesel migration run
You might get a scary message about "Encountered unknown type for Mysql: enum" -- you can safely ignore this
error if you see it in isolation. It doesn't impact the migrations whatsoever.
Install Redis (Mac)
# Install Redis
brew install redis
# Start the service:
brew services start redis