docker compose wrapper to quickly run a local arkhamdb instance.
Warning
This is tailored to previewing the card database and images. This is not a production-ready setup, nor does it currently support developing arkhamdb itself.
git clone --recurse-submodules https://github.com/arkham-build/arkhamdb-docker.git
cd arkhamdb-docker
docker compose up --buildThe first run initializes the database and imports card data automatically.
✨ You can now access the application at http://localhost:8000.
The folders <repo>/arkhamdb-json-data and <repo>/images are mounted into the running docker container.
Changes to files in the images folder will be visible in the "Browse" view immediately.
In order to update card data or images in the deck builder view, run make import-cards again after making changes and confirm the new card data version in the application UI.
type: mysql or mariadb
host: 127.0.0.1
port: 3307
database: symfony
user: symfony_user
password: symfony_password
The /_arkhamdb-docker/* endpoints are disabled unless ARKHAMDB_DOCKER_TEST_API_KEY is set for the app service:
ARKHAMDB_DOCKER_TEST_API_KEY=test-key docker compose up --buildAll requests must include X-ArkhamDB-Docker-Test-API-Key.
Create a confirmed user with a deck:
curl \
-H "X-ArkhamDB-Docker-Test-API-Key: test-key" \
-H "Content-Type: application/json" \
-d '{"username":"e2e","email":"e2e@example.com","password":"SecurePassword123!","createDeck":true}' \
http://localhost:8000/_arkhamdb-docker/test/usersCreate an OAuth app:
curl \
-H "X-ArkhamDB-Docker-Test-API-Key: test-key" \
-H "Content-Type: application/json" \
-d '{"name":"arkham-build-e2e","redirectUri":"http://localhost:8788/auth/arkhamdb/callback"}' \
http://localhost:8000/_arkhamdb-docker/test/oauth-appsHealth check:
curl -H "X-ArkhamDB-Docker-Test-API-Key: test-key" http://localhost:8000/_arkhamdb-docker/healthIf you need to develop against ArkhamDB's OAuth gateway, you can create an oauth client by running the following command. By default, this will create a client with grant_types set to ["authorization_code", "refresh_token"].
make redirect_uri="<url>" name="<name>" create-oauth-appThe command will output the client_id and client_secret.
Authorization endpoint: http://localhost:8000/oauth/v2/auth