{"id":1475,"date":"2024-01-16T23:02:01","date_gmt":"2024-01-16T22:02:01","guid":{"rendered":"https:\/\/chochol.io\/smart-home\/unifi-network-application-remote-adoption-of-an-access-point\/"},"modified":"2025-08-23T19:53:41","modified_gmt":"2025-08-23T17:53:41","slug":"unifi-network-application-remote-adoption-of-an-access-point","status":"publish","type":"post","link":"https:\/\/chochol.io\/en\/computer-networking\/unifi-network-application-remote-adoption-of-an-access-point\/","title":{"rendered":"UniFi Network Application: Remote Adoption of an Access Point"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1475\" class=\"elementor elementor-1475 elementor-1200\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ebb691f e-flex e-con-boxed e-con e-parent\" data-id=\"ebb691f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9eda01b elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents\" data-id=\"9eda01b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;exclude_headings_by_selector&quot;:[],&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;headings_by_tags&quot;:[&quot;h2&quot;,&quot;h3&quot;,&quot;h4&quot;,&quot;h5&quot;,&quot;h6&quot;],&quot;marker_view&quot;:&quot;numbers&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"table-of-contents.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__header\">\n\t\t\t\t\t\t<div class=\"elementor-toc__header-title\">\n\t\t\t\tTable of contents\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--expand\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__9eda01b\" aria-expanded=\"true\" aria-label=\"Open table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/div>\n\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--collapse\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__9eda01b\" aria-expanded=\"true\" aria-label=\"Close table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<div id=\"elementor-toc__9eda01b\" class=\"elementor-toc__body\">\n\t\t\t<div class=\"elementor-toc__spinner-container\">\n\t\t\t\t<svg class=\"elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading\" aria-hidden=\"true\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-05a17c7 elementor-widget elementor-widget-text-editor\" data-id=\"05a17c7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Hello!<\/h2><p>Today we will look at the process of remote adoption of UniFi series devices, which allows you to connect an Access Point from another network to the UniFi Network Application controller. This solution is especially useful in situations where UniFi devices and the UniFi network application are not on the same local network. We will focus on the requirements and a simple solution to this process, which is crucial for effective management of remote devices in our network.<\/p><h2>An introduction to our process<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a618c47 elementor-widget elementor-widget-image\" data-id=\"a618c47\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/chochol.io\/wp-content\/uploads\/2024\/01\/Untitled-Diagram.drawio-1.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"Network Diagram IPSec Site to Site Tunnel\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MTQ2MiwidXJsIjoiaHR0cHM6XC9cL2Nob2Nob2wuaW9cL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjRcLzAxXC9VbnRpdGxlZC1EaWFncmFtLmRyYXdpby0xLnBuZyJ9\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1536\" height=\"481\" src=\"https:\/\/chochol.io\/wp-content\/uploads\/2024\/01\/Untitled-Diagram.drawio-1-1536x481.png\" class=\"attachment-1536x1536 size-1536x1536 wp-image-1462\" alt=\"Diagram shows IPsec site-to-site tunnel between MikroTik routers at Site A and Site B over Internet.\" srcset=\"https:\/\/chochol.io\/wp-content\/uploads\/2024\/01\/Untitled-Diagram.drawio-1-1536x481.png 1536w, https:\/\/chochol.io\/wp-content\/uploads\/2024\/01\/Untitled-Diagram.drawio-1-300x94.png 300w, https:\/\/chochol.io\/wp-content\/uploads\/2024\/01\/Untitled-Diagram.drawio-1-1024x321.png 1024w, https:\/\/chochol.io\/wp-content\/uploads\/2024\/01\/Untitled-Diagram.drawio-1-768x241.png 768w, https:\/\/chochol.io\/wp-content\/uploads\/2024\/01\/Untitled-Diagram.drawio-1.png 1602w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-508b542 elementor-widget elementor-widget-text-editor\" data-id=\"508b542\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>I will be doing things on a Synology DS920+, on which also stands a UniFi Network Application installed in Docker. Under this configuration, the UniFi controller is located in the <strong>Location A<\/strong>, while the Access Point (which you want to connect to the controller at Location A) is located in the <strong>location B<\/strong>.The two sites are connected by an IPSec Site-to-Site tunnel on MikroTik routers, with <strong>location A<\/strong> having an address of <strong>192.168.100.0\/24<\/strong> and <strong>location B<\/strong> having an address of <strong>192.168.101.0\/24<\/strong>. It is possible to ping devices between these locations normally.<\/p><p>The discussed process of remote adoption of a UniFi device to a controller is done in a manner analogous to the situation when the controller is on another server (for example, it is Ubiquiti UniFi Cloud Key). This configuration is part of my home-lab environment, where I test and demonstrate various network scenarios.<\/p><h3>What is the UniFi Network Application?<\/h3><p><img decoding=\"async\" class=\" wp-image-1384 alignleft\" src=\"https:\/\/chochol.io\/wp-content\/uploads\/2024\/01\/63b40a92093c6b2f3767e4e6_tMCv8T-y_400x400-300x300.png\" sizes=\"(max-width: 220px) 100vw, 220px\" srcset=\"https:\/\/chochol.io\/wp-content\/uploads\/2024\/01\/63b40a92093c6b2f3767e4e6_tMCv8T-y_400x400-300x300.png 300w, https:\/\/chochol.io\/wp-content\/uploads\/2024\/01\/63b40a92093c6b2f3767e4e6_tMCv8T-y_400x400-150x150.png 150w, https:\/\/chochol.io\/wp-content\/uploads\/2024\/01\/63b40a92093c6b2f3767e4e6_tMCv8T-y_400x400-60x60.png 60w, https:\/\/chochol.io\/wp-content\/uploads\/2024\/01\/63b40a92093c6b2f3767e4e6_tMCv8T-y_400x400-360x360.png 360w, https:\/\/chochol.io\/wp-content\/uploads\/2024\/01\/63b40a92093c6b2f3767e4e6_tMCv8T-y_400x400.png 400w\" alt=\"Ubiquiti, logo\" width=\"220\" height=\"220\" \/><strong>Ubiquiti&#8217;s<\/strong> <strong>UniFi Network Applicaiton<\/strong> serves as a central hub for UniFi Series network devices, providing secure communication and management. This controller is responsible for the configuration and ongoing maintenance of connected devices, such as access points. Once a device is added to the controller, a permanent connection is established &#8211; likened to a parent-child relationship, where the controller acts as a &#8220;mother&#8221; to the &#8220;children&#8221; in the form of network devices. All information about each device is stored in the controller&#8217;s local file system.<\/p><p>An interesting aspect is that the <strong>UniFi<\/strong> series devices do not require a continuous controller to function. Once they receive their configuration from the controller, they can operate independently, sending only statistics about their operation to the controller for monitoring and analysis.<\/p><h2>Preparation<\/h2><p>In order to prepare the tutorial, we will adopt an established domain name and certain configuration names, shown below. For customized configuration, apply settings according to individual requirements.<\/p><ul><li>Full Domain Name (FQDN) of UniFi Network Application: <strong>https:\/\/unifi.xyz.com<\/strong>,<\/li><\/ul><h3>Hardware<\/h3><ul><li>1x <a href=\"https:\/\/global.synologydownload.com\/download\/Document\/Hardware\/DataSheet\/DiskStation\/20-year\/DS920+\/plk\/Synology_DS920_Plus_Data_Sheet_plk.pdf\" target=\"_blank\" rel=\"noopener\">Synology DS920+<\/a><\/li><li>1x <a href=\"https:\/\/mikrotik.com\/product\/rb5009upr_s_in\" target=\"_blank\" rel=\"noopener\">Mikrotik RB5009UPr+S+IN<\/a><\/li><li>3x <a href=\"https:\/\/dl.ubnt.com\/datasheets\/unifi\/UniFi_AC_APs_DS.pdf\" target=\"_blank\" rel=\"noopener\">Ubiquiti UniFi UAP-AC-Lite<\/a> (Site A &#8211; 2x, Site B &#8211; 1x)<\/li><\/ul><h3>Nginx Proxy Manager (optional)<\/h3><p>On my Synology, I set up a reverse proxy using <strong>Nginx Proxy Manager,<\/strong> which allows access to the UniFi dashboard via a URL (<strong>https:\/\/unifi.xyz.com<\/strong>) instead of the standard IP address. It is a solution that increases the convenience of managing UniFi devices by offering an easier to remember and more intuitive address available on the LAN. Are you interested in how to do it? <a href=\"https:\/\/chochol.io\/en\/hardware\/synology-free-ports-80-443-for-nginx-proxy-manager\/\">Take a look here.<\/a><\/p><p>In addition, local DNS redirection is performed by the AdGuard DNS server, also running on a containerized version of the Synology server.<\/p><h3>Software<\/h3><p>Ubiquiti also offers external devices that serve as controllers, such as Cloud Key. However, it is possible to replace them with a solution based on Docker Compose, which is an alternative especially for those who prefer more flexible and integrated IT environments. I will discuss the details of this solution later in the article.<\/p><h4>UniFi Network Application od LinuxServer.io<\/h4><p>Access to the repository of the containerized version of the UniFi Network Application developed by LinuxServer.io is <a href=\"https:\/\/github.com\/linuxserver\/docker-unifi-network-application\" target=\"_blank\" rel=\"noopener\">available here.<\/a><\/p><h2>Step 1 &#8211; Migrate UniFi Controller to UniFi Network Application<\/h2><p>If you haven&#8217;t yet migrated your old UniFi Controller to a new version with a separate MongoDB database, this moment may be ideal to do so. This process may seem complicated, but it is crucial for better performance and continuous updates. <a href=\"https:\/\/chochol.io\/en\/computer-networking\/unifi-controller-in-docker-migrating-to-unifi-network-application\/\">Take a look here!<\/a><\/p><h2>Step 2 &#8211; Log in over SSH to the UniFi device<\/h2><p>The first step in adopting UniFi devices from Ubiquiti is to access the device via SSH, after resetting it to factory settings.<\/p><ul><li>First, make sure that you are connected to the same local network as the UniFi device and that SSH is active on the device. Then, using a computer with a command line interface (CLI), prepare to establish a connection.<\/li><li>For Microsoft Windows operating system I recommend <a href=\"https:\/\/www.putty.org\/\" target=\"_blank\" rel=\"noopener\">PuTTY<\/a>, while for Apple macOS operating systems I recommend <a href=\"https:\/\/termius.com\/\" target=\"_blank\" rel=\"noopener\">Termius<\/a>.<\/li><li>Run Putty (Windows OS) or Termius (macOS), then connect to your device using the SSH command format:<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cb445f1 elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"cb445f1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-cb445f1\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash line-numbers\"data-previewers=\"\"><code>ssh &lt;username&gt;@&lt;ip-address&gt;<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_cb445f1 = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_cb445f1();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_cb445f1 );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-402d9b6 elementor-widget elementor-widget-text-editor\" data-id=\"402d9b6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n<li>To access the Access Point UniFi, use one of two sets of default login credentials. Possible options are:\n<ul>\n<li>Login: <strong>ubnt<\/strong><\/li>\n<li>Password: <strong>ubnt<\/strong><\/li>\n<\/ul>\n<\/li>\n<li>or\n<ul>\n<li>Login: <strong>ui<\/strong><\/li>\n<li>Password: <strong>ui<\/strong><\/li>\n<\/ul>\n<\/li>\n<li>After selecting the appropriate set of login credentials, launch an SSH client (such as PuTTY for Windows or Termius for macOS) and enter the command in the format:<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b74a0b7 e-flex e-con-boxed e-con e-parent\" data-id=\"b74a0b7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f98c60d elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"f98c60d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-f98c60d\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash line-numbers\"data-previewers=\"\"><code>ssh ubnt@192.168.101.20<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_f98c60d = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_f98c60d();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_f98c60d );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e6ee5b0 elementor-widget elementor-widget-text-editor\" data-id=\"e6ee5b0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n<li>After successfully logging into the UniFi using SSH, the terminal will display the message shown below:<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d492ac7 elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"d492ac7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-d492ac7\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash line-numbers\"data-previewers=\"\"><code>BusyBox v1.25.1 () built-in shell (ash)\n\n\n  ___ ___      .__________.__\n |   |   |____ |__\\_  ____\/__|\n |   |   \/    \\|  ||  __) |  |   (c) 2010-2023\n |   |  |   |  \\  ||  \\   |  |   Ubiquiti Inc.\n |______|___|  \/__||__\/   |__|\n            |_\/                  https:\/\/www.ui.com\n\n      Welcome to UniFi UAP-AC-Lite!\n\n********************************* NOTICE **********************************\n* By logging in to, accessing, or using any Ubiquiti product, you are     *\n* signifying that you have read our Terms of Service (ToS) and End User   *\n* License Agreement (EULA), understand their terms, and agree to be       *\n* fully bound to them. The use of SSH (Secure Shell) can potentially      *\n* harm Ubiquiti devices and result in lost access to them and their data. *\n* By proceeding, you acknowledge that the use of SSH to modify device(s)  *\n* outside of their normal operational scope, or in any manner             *\n* inconsistent with the ToS or EULA, will permanently and irrevocably     *\n* void any applicable warranty.                                           *\n***************************************************************************\n<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_d492ac7 = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_d492ac7();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_d492ac7 );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cfe4bb0 elementor-widget elementor-widget-text-editor\" data-id=\"cfe4bb0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n<li>On the device, after logging in via SSH, run the command specified below:<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c384029 elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"c384029\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-c384029\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash line-numbers\"data-previewers=\"\"><code>set-inform http:\/\/IP-ADRES-NETWORK-APPLICATION:8080\/inform<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_c384029 = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_c384029();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_c384029 );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5a157b5 elementor-widget elementor-widget-text-editor\" data-id=\"5a157b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>After executing the command, it is important to give the device time to save the changed configuration. After a few moments, the device should become visible in UniFi Network Application, ready for adoption. This will allow you to fully integrate the device into your network and manage it through the app.<\/li><\/ul><h2><strong>Additional Sources and information<\/strong><\/h2><p>For further exploration and more information, I recommend checking out the links below. They are valuable sources that were used in the development of this guide:<\/p><ul><li>UniFi Network &#8211; Remote Adoption (Layer 3): <a href=\"https:\/\/help.ui.com\/hc\/en-us\/articles\/204909754-UniFi-Network-Remote-Adoption-Layer-3\" target=\"_blank\" rel=\"noopener\">https:\/\/help.ui.com\/hc\/en-us\/articles\/204909754-UniFi-Network-Remote-Adoption-Layer-3<\/a><\/li><li>UniFi &#8211; Connect with SSH (Advanced): <a href=\"https:\/\/help.ui.com\/hc\/en-us\/articles\/204909374\" target=\"_blank\" rel=\"noopener\">https:\/\/help.ui.com\/hc\/en-us\/articles\/204909374<\/a><\/li><\/ul><h2>Read also<\/h2><ul><li><a href=\"https:\/\/chochol.io\/software\/tvheadend-przewodnik-instalacji-na-synology-w-docker-compose\/\">TVHeadend: Guide to installing on Synology in Docker Compose<\/a> \/ How to install TVHeadend on Synology with Docker Compose. A practical step-by-step guide for advanced users.<\/li><li><a href=\"https:\/\/chochol.io\/en\/smart-home\/home-assistant-installing-mirror-lighting-on-esphome\/\">Home Assistant: Install mirror lighting on ESPHome<\/a> \/ Set up simple mirror lighting with ESPHome in Home Assistant. Discover simple integration and control light with ease.<\/li><li><a href=\"https:\/\/chochol.io\/en\/computer-networking\/how-to-make-an-internet-speed-test-on-a-raspberry-pi\/\">How to do an internet speed test on Raspberry Pi<\/a> \/ Check the internet speed on Raspberry Pi with speedtest-cli. Discover how to set up and use the speed tool.<\/li><li><a href=\"https:\/\/chochol.io\/en\/hardware\/ads-b-receiver-installation-and-configuration-on-raspberry-pi\/\">ADS-B: Receiver Installation and Configuration on Raspberry Pi<\/a> \/ Discover the secrets of installing and configuring your own ADS-B antenna on Raspberry Pi. Develop skills and track aircraft in real time.<\/li><li><a href=\"https:\/\/chochol.io\/en\/software\/traccar-docker-installation-guide-on-synology\/\">Traccar: A guide to installing on Synology with Docker<\/a> \/ Step-by-step guide: Installing Traccar on Synology using Docker. Effective vehicle tracking on your own server.<\/li><li><a href=\"https:\/\/chochol.io\/en\/software\/traccar-configuring-gps-communication-in-docker\/\">Traccar: Configuring GPS communication in Docker<\/a> \/ Step by step how to enable Traccar GPS communication. Using Docker Compose, open ports for managing and receiving GPS data.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Discover how to connect a device from Ubiquiti UniFi from another network to Network Application &#8211; using Mikrotik&#8217;s IPSec tunnel as an example.<\/p>\n","protected":false},"author":1,"featured_media":1455,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[95],"tags":[159],"class_list":["post-1475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-computer-networking","tag-mikrotik"],"_links":{"self":[{"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/posts\/1475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/comments?post=1475"}],"version-history":[{"count":0,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/posts\/1475\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/media\/1455"}],"wp:attachment":[{"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/media?parent=1475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/categories?post=1475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/tags?post=1475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}