Files
artcraft/_docs/dev_setup_server.md
T
2026-02-13 06:03:01 +07:00

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