--- layout: docs title: "Setup API Server" section: "operator_menu" --- # Setup API Server The API Server is the main run-time for VinylDNS. To setup the API server, follow these steps: 1. [Pre-requisites](pre.html) 1. [Setup MySQL](setup-mysql.html) 1. [Setup AWS SQS](setup-sqs.html) 1. [Configure API Server](config-api.html) 1. [Using the API Docker Image](#using-the-api-docker-image) ## Using the API Docker Image The API server is provided via the [VinylDNS API Image](https://hub.docker.com/r/vinyldns/api/). The docker image allows you to mount your own config, as well as your own external dependency jars. The API server is _stateless_, allowing you to run multiple instances in multiple data centers for high-availability purposes. **Note: If using VinylDNS Java Crypto and the pre-requisites defined here, no additional jars need to be loaded.** ## Environment variables 1. `MYSQL_ADDRESS` - the IP address of the mysql server; defaults to `vinyldns-mysql` assuming a docker compose setup 1. `MYSQL_PORT` - the port of the mysql server; defaults to 3306 ## Volume Mounts The API exposes volumes that allow the user to customize the runtime. Those mounts include: * `/opt/vinyldns/lib_extra` - place here additional jar files that need to be loaded into the classpath when the application starts up. This is used for "plugins" that are proprietary or not part of the standard build. All jar files here will be placed on the class path. * `/opt/vinyldns/conf` - place an `application.conf` file here with your own custom settings. Once you have your config created, place here. ## Ports The API only exposes port 9000 for HTTP access to all endpoints