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.
- install docker and git.
- run the following commands in a shell. If your system does not have
make
installed (e.g. on Windows), copy the referenced commands from theMakefile
and run them manually instead when approriate.
# 1. clone this git repository to a folder and change to it.
git clone https://github.com/fspoettel/arkhamdb-docker && cd arkhamdb-docker
# 2. Clone arkhamdb and arkhamdb-json-data repositories.
# If you want to use a fork of the data repository, adjust the command to use your fork.
make setup
# 3. Start the containers in one terminal.
docker compose up
# 4. In a second terminal, initialize the database.
# You only need to do this once on first run.
make init-db
# 5. Import card data.
make import-cards
✨ 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
- Register via the application user interface.
- Connect to the database with a SQL editor (e.g. TablePlus), using the credentials referenced above.
- Navigate to the
users
table and find the record pointing to the user you registered. - Set the
enabled
field to1
. - You can now login.
If 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-app
The command will output the client_id
and client_secret
.
Authorization endpoint: http://localhost:8000/oauth/v2/auth