# Unifi Controller Administration To administrate Unifi device you need the Unifi Controller appliance. If you have some Unifi device the controller can be embedded inside but for switch or other unifi simple device you will need to have a separate Unifi controller. You can dockerize it or make it run on LXC for Proxmox. ## Installation Recommend Debian based server with at least 2 GB of RAM. ```bash apt-get update; apt-get install ca-certificates curl -y ``` ```bash curl -sO https://get.glennr.nl/unifi/install/install_latest/unifi-latest.sh && bash unifi-latest.sh ``` You can access the web admin page : ```bash https://ip.of.your.server:8443 ``` ## Usage ```The script has multiple options: Option: --help Shows script options and information. Option: --skip Skip any kind of manual input. Option: --skip-swap Skip swap file check/creation. Option: --add-repository Add UniFi Repository if --skip is used. Option: --local-install Inform script that it's a local setup/application host, to open port 10001/udp ( discovery ). Option: --custom-url [argument] Manually provide a UniFi Network application download URL. ( argument is optional ) example: --custom-url https://dl.ui.com/unifi/5.13.29/unifi_sysvinit_all.deb Option: --v6 Run the Let's Encrypt script in IPv6 mode. Option: --email [argument] Specify what email address you want to use for Let's Encrypt renewal notifications. example: --email glenn@glennr.nl Option: --fqdn [argument] Specify what domain name ( FQDN ) you want to use, you can specify multiple domain names with : as separator,. Example: --fqdn glennr.nl:www.glennr.nl Option: --server-ip [argument] Specify the server IP address manually. example: --server-ip 1.1.1.1 Option: --custom-acme-server [argument] Specify a custom ACME server. example: --custom-acme-server https://acme-staging-v02.api.letsencrypt.org/directory Option: --retry [argument] Specify how many times the Let's Encrypt should retry the challenge/hostname resolving. example: --retry 5 Option: --external-dns [argument] Use external DNS server to resolve the FQDN. example: --external-dns 1.1.1.1 Option: --force-renew Force renew the certificates. Option: --dns-challenge Runs the Let's Encrypt script in DNS mode instead of HTTP. Option: --dns-provider Specify your DNS server provider. example: --dns-provider ovh Supported providers: cloudflare, digitalocean, dnsimple, dnsmadeeasy, gehirn, google, linode, luadns, nsone, ovh, rfc2136, route53, sakuracloud Please refer to the link above regarding how the credentials file should look like. Option: --dns-provider-credentials Specify where the API credentials of your DNS provider are located. example: --dns-provider-credentials ~/.secrets/EUS/ovh.ini Option: --private-key [argument] Specify path to your private key (paid certificate). Example: --private-key /tmp/PRIVATE.key Option: --signed-certificate [argument] Specify path to your signed certificate (paid certificate). example: --signed-certificate /tmp/SSL_CERTIFICATE.cer Option: --chain-certificate [argument] Specify path to your chain certificate (paid certificate). example: --chain-certificate /tmp/CHAIN.cer Option: --intermediate-certificate [argument] Specify path to your intermediate certificate (paid certificate). example: --intermediate-certificate /tmp/INTERMEDIATE.cer Option: --own-certificate Requirement if you want to import your own paid certificates with the use of --skip Option: --prevent-modify-firewall Dont automatically open/close port 80 on UniFi Gateway Consoles. ``` ## Contributing Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.