Every time we help set up a new, custom FixMyStreet site, we follow the same basic process to make sure all the key things get done. We've listed the steps here so you can follow them too.
Checklist: 13 things to do
To create a custom FixMyStreet installation, these are the key things you need to do. You don’t have to do them exactly in this order – some can be done at the same time as others – but if you’re not sure then just work through the list.
Pick a name
You need a name for your
right at the start because that's the name you'll use for the directories
where your own resources and templates go.
Your name needs to be unique (that is, no other FixMyStreet cobrands are already using it), suitable as a directory name (so no punctuation), and ideally related to the domain name you're going to use for it (although this isn't 100% obligatory).
For example, if your project is called FixMyPark, the cobrand name will be
Set up the domain name
- If you already own the domain name, you're good to go. But if this is a new project and you don't have the domain set up already, don't leave it too late to register the domain and point it at your server.
Translate into language(s) you need
- If FixMyStreet doesn't already have translations for the language(s) you need, you can start work on that right away — see more about languages.
Install the software on the server
There are several different ways of doing this — see
Even if you're not hosting the site yourself, you might want to install the software in order to see how your customisation looks before putting it live.
Secure access to the admin
Make sure you're being challenged to provide a username and password when
accessing the admin at
Typically this means using creating a superuser. If you've not already done so, run the `bin/createsuperuser` script to create a user that has access to the admin.
Change the colour scheme
See changing colour and CSS
for detailed instructions.
You can just change the colour variables without needing to touch any other CSS.
Change the logo
You'll need an understanding of CSS in order to change the logo —
it's optimised in the FixMyStreet design for good perfomance on old or
narrow clients, which makes it a little bit more difficult than just
dropping in a graphics file.
We'll be adding instructions later, but meanwhile see the page about changing the CSS.
Write your own FAQ
You almost certainly need to re-write the FAQ and other information pages
to match your project.
To do this, copy the template files into your own cobrand's directory and rewrite them. The generic base FAQ can be found at
See more about templates.
Limit geocoder lookups to your area
When someone enters a place name, you only want your FixMyStreet to look
for it in the place your site covers. This is controlled by the
GEOCODING_DISAMBIGUATIONsetting. See more about the geocoder.
We've listed this separately from the other config settings because it may take a little bit of testing to see what options work best — this depends on which geocoder you are using.
Configure your admin boundaries (MapIt)
You need to decide what kind of boundary data you'll be using — see
more about boundaries.
As part of that work, you'll need to set
MAPIT_URLand the other MapIt config settings to match the service you're using.
Set non-default config settings
Many of the
can be left with their defaults, but some you must change.
As well as system settings (for example,
FMS_DB_NAME), every new site needs custom
EXAMPLE_PLACESsettings. Make sure the example places you choose really do work if you enter them as the location on the front page.
Even though your site might work with other settings left as defaults, you should go through the whole
cong/general.ymlfile to check everything is how you want it.
Create the bodies (authorities, councils)
- Once your site is running log into the admin and add the bodies.
Add category names & contact emails
- Once you've created the bodies to whom reports will be sent, you can add their problem categories (for example, "Potholes", "Streetlights"). At the same time, add the contact email addresses for each one — see more about contacts and categories.
Remember that this just covers the key parts of a custom installation. There’s a lot more you can change — for example, you can write custom Perl code for the Cobrand module if you want to override specific behaviour not covered by config variables.