FixMyStreet with Docker (development)

You can use Docker and Docker Compose to get up and running quickly with FixMyStreet.

This is just one of many ways to install FixMyStreet.

If you have Docker and Docker Compose installed, then the following should set up a working FixMyStreet installation, with containers for the application, database, memcached and webserver:

docker/compose-dev up

Note that the setup step can take a long time the first time, and Docker does not output the ongoing logs. While it is running, you can run docker logs docker_setup_1 -f in another terminal to watch what it is doing.

Serving with HTTPS

Some client-side features (such as Geolocation API) are only available when the site is requested in a secure context (HTTPS). To use these features on your development, you’ll need to serve and visit FixMyStreet over HTTPS.

First, generate a self-signed SSL certificate and keyfile with something like:

openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout docker/ssl.key -out docker/ssl.crt -subj "/CN=My local CA" -days 3650

Create a file at docker/.env with the following content:

SERVER_ARGUMENTS='--listen :3000:ssl --ssl-cert=docker/ssl.crt --ssl-key=docker/ssl.key'

When you next run docker/compose-dev up, your custom $SERVER_ARGUMENTS will be passed to the underlying script/server command, and FixMyStreet will be accessible, with SSL, on eg:

Note: You will likely need to force your browser to accept the self-signed certificate, before it will let you visit the site.

Installation complete… now customise

You should then proceed to customise your installation.