Files

2.5 KiB

ArtCraft Server

ArtCraft's server is a Rust / Actix app called storyteller-web.

Run it locally to develop backend functionality or connect the web app to your own API instance. The desktop app is maintained in storytold/artcraft.

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

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.

Finally, you'll need the sqlx CLI tool to run codegen. You likely won't need this now, but if you change any queries, this will be necessary:

cargo install sqlx-cli --version 0.7.4 --no-default-features --features rustls,mysql --locked

Install Redis (Mac)

# Install Redis
brew install redis

# Start the service:
brew services start redis