---
title: Install a 311 Reporting Service
author: Holger Kreis
published_time: January 3, 2024
date: 2024-01-03
description: In-depth insight into the Mark-a-Spot Drupal Docker setup
tags: [311 Reporting, Progblem Reporting, Open Source Software, 311, GeoReport, Docker, Installation Guide, Drupal CMS, Local Government Tech, DevOps, Citizen Engagement, Incident Tracking, Community Feedback, Service Requests]
img: /assets/images/blog/docker.png
lang: en
---
<img src="/assets/images/blog/docker.png" style="float:right; margin: 0 0 0 2rem; width: 20rem" /> Mark-a-Spot is an open-source platform for [municipal issue tracking](/municipal-issue-tracking) and an [Open311 server](/311-request-management) based on the Drupal content management system. The associated Github repository offers a Docker setup to make it easier to operate Mark-a-Spot. If you'd rather skip the operations work, see the [managed cloud option in our pricing](/pricing).

## First Steps

This guide will take you through setting up a local Mark-a-Spot project for development and testing purposes.

### Prerequisites

To begin the installation, you will need:

- **Docker**: A platform for containerizing applications.
- **Docker Compose**: A tool for defining and running multi-container Docker applications.

### Installation Steps

1. **Clone the repository**:
   The first step is to clone the repository and switch to the directory:

    ```bash
    git clone https://github.com/markaspot/mark-a-spot.git
    cd mark-a-spot
    ```

2. **Start Docker containers**:
   The following command initializes the Docker containers and starts them in the background:

    ```bash
    docker-compose up -d
    ```

3. **Execute the start script**:
   The `start.sh` script initializes the application. If there are permission issues, the script should be made executable with the command `chmod a+x ./scripts/start.sh`.

    ```bash
   docker exec -it markaspot ./scripts/start.sh
    ```

   The script offers two options in addition to the choice of location and country:
   - `-y`: Automatic installation with predefined values (New York, USA)
   - `-t`: Imports translation files and activates the translation of terms.

After running the script, the application is accessible at http://localhost. Note that the script resets the database and initializes Mark-a-Spot from scratch. Therefore, familiarize yourself with the Drupal development process.

### Docker Services

The Docker Compose setup includes:

- `web`: The Nginx web server.
- `markaspot`: The Mark-a-Spot Drupal application.
- `db`: The MariaDB database.
- `phpmyadmin`: PHPMyAdmin for database management.
- `ui`: The Nuxt UI

### Configuration

The configuration of the Docker services can be adjusted in the `docker-compose.yml` file.

## Usage

The Drupal application is accessible at `http://localhost`.

PHPMyAdmin for database management can be found at `http://localhost:8080`.

## Development with Docksal

For local development, [Docksal](https://docksal.io/), a Docker-based development environment, is recommended.

### Prerequisites

- Docksal
- Docker
- Docker Compose

## License

Mark-a-Spot is under the [GNU General Public License, version 2 or any later version](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html).

---

**Related Topics:**
- [Mark-a-Spot Pricing](/pricing): self-hosted GPL or managed cloud
- [Open311 Request Management](/311-request-management) on the platform
- [Municipal Issue Tracking](/municipal-issue-tracking) with workflows and SLA
