Megawack

Ubiquiti CloudKey+ - Changing the Default Site in UniFi

Changing the Default Site in UniFi

If you've done a site migration on UniFi (in my case, specifically on a CloudKey+ Gen2 UCK-G2-PLUS) you undoubtedly have encountered the situation where your nice, new site is working, however you still have the "Default" site and can not delete it.

This is another one of those "come on, guys" moments. This should be an easy thing in the WebUI; just allow deletion of anything until there is one site left, then disallow deletion of that one site.

Whatever.

There's a workaround that is not that difficult.

I'm not the one that figured this out, that credit apparently goes to @ckd in the unofficial Ubiquiti Discord. I got this from a Ubiquiti Community Wiki post on the subject. I'm reposting it here in case that wiki goes away (especially since there are all manner of errors when loading the site, it looks like it is somewhat neglected).

Here is a verbatim copy of the original wiki post.

ORIGINAL POST

While it is not possible from within the UniFi UI to change which site is considered the default, this can be done by manipulating the mongo database. It can be desirable to make another site the default if the currently designated default site needs to be deleted.

On the CLI of the server instance on which the UniFi controller is running, start mongo (the UniFi service must also be running):

    mongo --port 27117

On the mongo CLI, switch to the UniFi database:

    use ace

List the sites in the database:

    db.site.find()

Several sites should be listed; note the differences in properties between the default site and the the other site(s):

    { "_id" : ObjectId("[hex number 1]"), "name" : "default", "desc" : "Default", "attr_hidden_id" : "default", "attr_no_delete" : true }
    { "_id" : ObjectId("[hex number 2]"), "desc" : "Site 2", "name" : "utn83o47", "location_lat" : 40.7128, "location_lng" : -74.0060, "location_accuracy" : 0 } 

Using these commands, remove the default properties from the current default site and assign them to the site which is to become the new default site:

    db.site.update({ _id: ObjectId("[hex number 1]") },{ $unset: { attr_hidden_id: "",attr_no_delete: ""}})
    db.site.update({ _id: ObjectId("[hex number 2]") }, { $set: { attr_hidden_id: "default", attr_no_delete: true}}) 

Use

    db.site.find()

to verify that the changes were made as desired, and

    exit

the mongo CLI.

Restart the UniFi service for the changes to take effect. After the UniFi controller has restarted, the formerly default site can be deleted on the Site page of the UniFi Settings.

Once the old default site is deleted from within the controller UI, you can re-enter mongo and update your desired default site's name to 'default' so that it is addressable with 'default' in the controller URL (e.g. https://unifi:8443/manage/default):

    db.site.update({ _id: ObjectId("[hex number 2]") }, { $set: { name: "default"}})

If you don't want to delete the old default site, make sure you also change its default name so that two sites are not both named 'default':

    db.site.update({ _id: ObjectId("[hex number 1]") }, { $set: { name: "[any unique 8-char alphanumeric string]"}})