UniFi Controller: Difference between revisions

From Alpine Linux
No edit summary
No edit summary
Line 7: Line 7:
Install <code>openjdk8-jre</code> from the community repository.
Install <code>openjdk8-jre</code> from the community repository.


Edit /etc/apk/respositories and uncomment the appropriate community repository for your Alpine version:
Edit <code>/etc/apk/respositories</code> and uncomment the appropriate community repository for your Alpine version:


<code>http://host.name/alpine_version/community</code>
<code>http://host.name/alpine_version/community</code>
Line 61: Line 61:
<code>chmod o-rwx unifi</code>
<code>chmod o-rwx unifi</code>


= Service Management =
Change into the UniFi bin directory.
 
<code>cd /srv/unifi/bin</code>
 
Remove the existing file.
 
<code>rm mongod</code>
 
Create a symlink to <code>/usr/bin/mongod</code>
 
<code>ln -s /usr/bin/mongod</code>
 
= Configure Service Management =
 
== Create UniFi Service Directory and Files ==


Create an s6 service directory for UniFi.
Create an s6 service directory for UniFi.
Line 116: Line 130:


<code>chmod 755 /etc/unifi/run</code>
<code>chmod 755 /etc/unifi/run</code>
== Create log User and Directory


Create the <code>log</code> user and group.
Create the <code>log</code> user and group.
Line 132: Line 148:


<code>chmod 750 /var/log/unifi</code>
<code>chmod 750 /var/log/unifi</code>
== Create the OpenRC Service Script ==
Open the script file using your favourite editor.
<code>vim /etc/init.d/unifi</code>
Paste the following into it.
<pre>
#!/sbin/openrc-run
name="unifi"
supervisor=s6
s6_service_path="${RC_SVCDIR}/s6-scan/${name}"
depend() {
need net s6-svscan
after firewall
}
start_pre() {
        if [ ! -L "${RC_SVCDIR}/s6-scan/${name}" ]; then
        ln -s "/etc/${name}" "${RC_SVCDIR}/s6-scan/${name}"
fi
}
</pre>
Ensure that the script is executable.
<code>chmod 755 /etc/init.d/unifi</code>

Revision as of 21:40, 10 December 2017

This material is work-in-progress ...

Do not follow instructions here until this notice is removed.
(Last edited by Zoot on 10 Dec 2017.)

Prerequisite Packages

OpenJDK 8 JRE

Install openjdk8-jre from the community repository.

Edit /etc/apk/respositories and uncomment the appropriate community repository for your Alpine version:

http://host.name/alpine_version/community

Update the package cache.

apk update

Install the package.

apk add openjdk8-jre

MongoDB

Install MongoDB

apk add mongodb

s6

Install s6

apk add s6

Install UniFi Controller

Create the unifi user and group.

adduser -D -H /srv/unifi -g unifi unifi

Change to the parent folder within which you wish to install the UniFi Controller.

cd /srv

Download the generic unix archive of the VERSION you wish to install.

wget http://www.ubnt.com/downloads/unifi/VERSION/UniFi.unix.zip

Unpack the archive.

unzip UniFi.unix.zip

Rename the unpacked directory.

mv UniFi unifi

Change ownership.

chown unifi:unifi unifi

Lock down permissions.

chmod o-rwx unifi

Change into the UniFi bin directory.

cd /srv/unifi/bin

Remove the existing file.

rm mongod

Create a symlink to /usr/bin/mongod

ln -s /usr/bin/mongod

Configure Service Management

Create UniFi Service Directory and Files

Create an s6 service directory for UniFi.

mkdir -p /etc/unifi/log

Add the run script, using your favourite editor.

vim /etc/unifi/run

Copy and paste the following into it.

#!/bin/ash

user='unifi'
group='unifi'

exec 2>&1

base='/srv/unifi'

if [ -d $base ]; then
    cd $base
    chown -R $user:$group .
    version=`head -1 webapps/ROOT/app-unifi/.version`
    echo "Starting UniFi Controller $version"
    exec s6-setuidgid $user java -jar lib/ace.jar start
else
    echo "Missing $base ... aborting"
    touch down
fi

Ensure that the run script is executable:

chmod 755 /etc/unifi/run

Add the log/run script, using your favourite editor.

vim /etc/unifi/log/run

Copy and paste the following into it.

#!/bin/ash

log_user='log'

exec s6-setuidgid $log_user s6-log -b n20 s1000000 t /var/log/unifi

Ensure that the log/run script is executable:

chmod 755 /etc/unifi/run

== Create log User and Directory

Create the log user and group.

adduser -D -H /var/log -g log log

Create the /var/log/unifi directory

mkdir -p /var/log/unifi

Update the directory ownership.

chown log:log /var/log/unifi

Lock down the permissions.

chmod 750 /var/log/unifi

Create the OpenRC Service Script

Open the script file using your favourite editor.

vim /etc/init.d/unifi

Paste the following into it.

#!/sbin/openrc-run

name="unifi"
supervisor=s6
s6_service_path="${RC_SVCDIR}/s6-scan/${name}"

depend() {
	need net s6-svscan
	after firewall
}

start_pre() {
        if [ ! -L "${RC_SVCDIR}/s6-scan/${name}" ]; then
	        ln -s "/etc/${name}" "${RC_SVCDIR}/s6-scan/${name}"
	fi
}

Ensure that the script is executable.

chmod 755 /etc/init.d/unifi