# This will start with an in memory database.
$ docker run -p 3567:3567 -d supertokens/supertokens-mysql
You can use your own config.yaml
file as a shared volume or pass the key-values as environment variables.
If you do both, only the shared config.yaml
file will be considered.
Available environment variables
- Core [click for more info]
- COOKIE_DOMAIN
- REFRESH_API_PATH
- SUPERTOKENS_HOST
- SUPERTOKENS_PORT
- ACCESS_TOKEN_VALIDITY
- ACCESS_TOKEN_BLACKLISTING
- ACCESS_TOKEN_PATH
- ACCESS_TOKEN_SIGNING_KEY_DYNAMIC
- ACCESS_TOKEN_SIGNING_KEY_UPDATE_INTERVAL
- ENABLE_ANTI_CSRF
- REFRESH_TOKEN_VALIDITY
- INFO_LOG_PATH
- ERROR_LOG_PATH
- COOKIE_SECURE
- SESSION_EXPIRED_STATUS_CODE
- COOKIE_SAME_SITE
- MAX_SERVER_POOL_SIZE
- MySQL: [click for more info]
- MYSQL_USER
- MYSQL_PASSWORD
- MYSQL_CONNECTION_POOL_SIZE
- MYSQL_HOST
- MYSQL_PORT
- MYSQL_DATABASE_NAME
- MYSQL_KEY_VALUE_TABLE_NAME
- MYSQL_SESSION_INFO_TABLE_NAME
- MYSQL_PAST_TOKENS_TABLE_NAME
$ docker run \
-p 3567:3567 \
-e MYSQL_USER=mysqlUser \
-e MYSQL_HOST=localhost \
-e MYSQL_PORT=3306 \
-e MYSQL_PASSWORD=password \
-d supertokens/supertokens-mysql
- In your
config.yaml
file, please make sure you store the following key / values:core_config_version: 0
host: "0.0.0.0"
mysql_config_version: 0
info_log_path: null
(to log in docker logs)error_log_path: null
(to log in docker logs)
- The path for the
config.yaml
file in the container is/usr/lib/supertokens/config.yaml
$ docker run \
-p 3567:3567 \
-v /path/to/config.yaml:/usr/lib/supertokens/config.yaml \
-d supertokens/supertokens-mysql
- By default, all the logs will be available via the
docker logs <container-name>
command. - You can setup logging to a shared volume by:
- Setting the
info_log_path
anderror_log_path
variables in yourconfig.yaml
file (or passing the values asn env variables). - Mounting the shared volume for the logging directory.
- Setting the
$ docker run \
-p 3567:3567 \
-v /path/to/logsFolder:/home/logsFolder \
-e INFO_LOG_PATH=/home/logsFolder/info.log \
-e ERROR_LOG_PATH=/home/logsFolder/error.log \
-e MYSQL_USER=mysqlUser \
-e MYSQL_PASSWORD=password \
-d supertokens/supertokens-mysql
- Before you start this container, make sure to initialize your database.
- You do not need to ensure that the MySQL database has started before this container is started. During bootup, SuperTokens will wait for ~1 hour for a MySQL instance to be available.
- If
MYSQL_USER
andMYSQL_PASSWORD
are not provided, then SuperTokens will use an in memory database.
Please refer to our documentation for this.