> For the complete documentation index, see [llms.txt](https://docs.ngsurvey.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ngsurvey.com/installation-setup/installation/docker.md).

# Docker

### Usage

To run **ngSurvey** on your local machine using port `8080`:

1. Pull the Docker image from Docker Hub.
2. Set the required `ConnectionStrings:NgSurveyDB` environment variable to your database host and details.

```bash
docker pull ngsurvey/ngsurveyee:latest
docker run -d --name ngsurvey -p 8080:80 -e "ConnectionStrings:NGSurveyDB=Server=YourSQLServerHost;Initial Catalog=NGSurvey;User ID=youruserid;Password=yourpassword" ngsurvey/ngsurveyee:latest
```

Once running, access ngSurvey at `http://localhost:8080` with the default account:

* **User**: ngsadmin
* **Password**: admin

To deploy on platforms like Azure, AWS, Google Cloud, or Windows Server, consult the respective vendor's Docker documentation.

***

### Using Docker Compose - SQL Express

For a quick 5-minute setup with **ngSurvey** and a fully configured **SQL Express** instance with persistent data storage:

1. Download the pre-configured YAML file: [ngsurveyee.yml](https://ngsurvey.s3.eu-central-1.amazonaws.com/ngsurveyee.yml).
2. Run the following command:

   ```bash
   docker-compose -f ngsurveyee.yml up
   ```

ngSurvey will be available at `http://localhost:8080`.

* The setup creates two containers: one for **ngSurvey** and one for **SQL Express**.
* Data will persist even if the containers are updated or stopped.
* **Important**: Update the default password in `ngsurveyee.yml` using a text editor before deployment.

***

### Using Docker Compose - MySQL

For a quick 5-minute setup with **ngSurvey** and a fully configured **MySQL** instance with persistent data storage:

1. Download the pre-configured YAML file: [ngsurveyee.mysql.yml](https://ngsurvey.s3.eu-central-1.amazonaws.com/ngsurveyee.mysql.yml).
2. Run the following command:

   ```bash
   docker-compose -f ngsurveyee.mysql.yml up
   ```

ngSurvey will be available at `http://localhost:8080`.

* The setup creates two containers: one for **ngSurvey** and one for **MySQL**.
* Data will persist even if the containers are updated or stopped.
* **Important**: Update the default password in `ngsurveyee.mysql.yml` using a text editor before deployment.

***

### Using Docker Compose - PostgreSQL

For a quick 5-minute setup with **ngSurvey** and a fully configured **PostgreSQL** instance with persistent data storage:

1. Download the pre-configured YAML file: [ngsurveyee.postgres.yml](https://ngsurvey.s3.eu-central-1.amazonaws.com/ngsurveyee.postgres.yml).
2. Run the following command:

   ```bash
   docker-compose -f ngsurveyee.postgres.yml up
   ```

ngSurvey will be available at `http://localhost:8080`.

* The setup creates two containers: one for **ngSurvey** and one for **PostgreSQL**.
* Data will persist even if the containers are updated or stopped.
* **Important**: Update the default password in `ngsurveyee.postgres.yml` using a text editor before deployment.

***

### Database Setup

Out of the box, ngSurvey will automatically configure, create, or update the database specified in your connection string. When running on **AWS**, ngSurvey will automatically pick up all RDS connection properties.

***

### Mail Server / Third-Party APIs Setup

Once installed, you can configure your mail server via the **Administration > System > Settings** page. You can also set up third-party API integrations such as Google reCAPTCHA.

***

***

{% hint style="info" %}
If you're planning to collect a large amount of files or use a large amount of files as medias we would recommend setting up a [Docker volume](/installation-setup/installation/docker/filesystem-storage.md) and use ngSurvey [filesystem storage](/installation-setup/system-settings/active-directory-settings-1.md) feature to store your files.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ngsurvey.com/installation-setup/installation/docker.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
