Скачиваем образ RASPBIAN по ссылке http://downloads.raspberrypi.org/raspbian_latest Записываем образ на SD карточку с помощью Win32DiskImager или imageUSB Подключеаем Rasberry PI Устанавливаем подключение SSH Логин pi Пароль raspberry Далее обновляем репозитарий и систему sudo apt-get update && sudo apt-get install raspberrypi* raspi-config sudo raspi-config Expand Filesystem Advanced Options > Memory split As we're running headless, 4MB ssh-keygen (I hit enter for all three options to accept defaults and no passphrase) sudo service ssh start (to start sshd) sudo update-rc.d ssh defaults (to run the ssh server on startup by default) reboot Добавляем пользователя sudo adduser unifi Устанавливаем MC коммандер sudo apt-get install mc Устанавливаем Oracle Java 7 JDK sudo apt-get install oracle-java7-jdk Устанавливаем Mongodb sudo mkdir /opt/mongodb cd /opt/mongodb sudo wget https://github.com/brice-morin/ArduPi/blob/master/mongodb-rpi/mongo/bin/bsondump?raw=true -O bsondump sudo wget https://github.com/brice-morin/ArduPi/blob/master/mongodb-rpi/mongo/bin/mongo?raw=true -O mongo sudo wget https://github.com/brice-morin/ArduPi/blob/master/mongodb-rpi/mongo/bin/mongod?raw=true -O mongod sudo wget https://github.com/brice-morin/ArduPi/blob/master/mongodb-rpi/mongo/bin/mongodump?raw=true -O mongodump sudo chmod +x * Скачиваем UniFi cd /home/pi/ sudo wget http://www.ubnt.com/downloads/unifi/3.2.7/UniFi.unix.zip или sudo wget http://www.ubnt.com/downloads/unifi/4.2.0/UniFi.unix.zip Устанавливаем контроллер UniFi sudo unzip UniFi.unix.zip sudo mv UniFi /opt/UniFi cd /opt/UniFi/bin sudo ln -fs /opt/mongodb/mongod mongod Создаем файл /etc/init.d/unifi для версии 4.2.0 ############################################################### #!/bin/sh ### BEGIN INIT INFO # Provides: unifi # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Should-Start: $network # Should-Stop: $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Starts the UniFi admin interface # Description: Starts the UniFi admin interface. ### END INIT INFO DAEMON=/usr/bin/java DAEMON_ARGS="-jar /opt/UniFi/lib/ace.jar start" start() { echo "Starting unifi" start-stop-daemon -b -o -c unifi -S -u unifi -x $DAEMON -- $DAEMON_ARGS } stop() { dbpid=`pgrep -fu unifi $DAEMON` if [ ! -z "$dbpid" ]; then echo "Stopping unifi" start-stop-daemon -o -c unifi -K -u unifi -x $DAEMON -- $DAEMON_ARGS fi } status() { dbpid=`pgrep -fu unifi $DAEMON` if [ -z "$dbpid" ]; then echo "unifi: not running." else echo "unifi: running (pid $dbpid)" fi } case "$1" in start) start ;; stop) stop ;; restart|reload|force-reload) stop start ;; status) status ;; *) echo "Usage: /etc/init.d/unifi {start|stop|reload|force-reload|restart|status}" exit 1 esac exit 0 ############################################################### для версии 3,5,7 ############################################################### #!/bin/bash # chkconfig: 2345 95 20 # description: UniFi system # processname: UniFi ctrl_start() { sudo java -jar /opt/UniFi/lib/ace.jar start & } ctrl_stop() { sudo java -jar /opt/UniFi/lib/ace.jar stop & } ctrl_restart() { ctrl_stop sleep 1 ctrl_start } case "$1" in start) echo -n "starting UniFi system" ctrl_start echo " service started" ;; stop) echo -n "stopping UniFi system" ctrl_stop echo " service stopped" ;; restart) echo -n "restarting UniFi system" ctrl_restart echo "service restarted" ;; *) echo "usage: service UniFi {start|stop|restart}" ;; esac exit 0 ############################################################### Копируем для автоматической загрузки sudo cp unifi /etc/init.d sudo chmod +x /etc/init.d/unifi Устанавливаем права cd /opt/UniFi sudo mkdir work && sudo mkdir data && sudo mkdir logs sudo chown -R unifi work data logs Создаем еще один файл /etc/logrotate.d/unifi ############################################################### /opt/UniFi/logs/*.log { rotate 7 daily missingok notifempty delaycompress compress copytruncate } ############################################################### sudo cp unifi /etc/logrotate.d sudo chmod +x /etc/logrotate.d/unifi Добавляем в загрузку sudo update-rc.d unifi defaults Запускаем sudo java -jar /opt/UniFi/lib/ace.jar start & sudo java -jar /opt/UniFi/lib/ace.jar stop & Основные комманды sudo service unifi start sudo service unifi stop Смотрим как работает top Перезагружаем reboot Дополнительно ############################################################### EIRP = (transmit power + antenna gain - cable loss) There isn't a cable loss in the UAP or UAP-LR as they're internal cards, same with all but the UAP-Outdoor, UAP-Outdoor5, or UAP-Outdoor+ because you can use different cables to connect to the antenna. Examples: UAP-LR - (27dBm + 3dBi) = 30dBm EIRP UAP - (20dBm + 3dBi) = 23dBm EIRP По умолчанию контроллер UniFi использует следующие порты: unifi.shutdown.port=8081 (для управления) unifi.http.port=8080 (порт для UAP для информирования контроллера) unifi.https.port=8443 (порт для GUI / API контроллера, как в браузере) portal.http.port=8880 (порт для HTTP перенаправления) portal.https.port=8843 (порт для HTTPS перенаправления) unifi.db.port=27117 (локальный порт для сервера БД) ############################################################### Так как база бастро распухает есть решение purgebd.js ############################################################### // keep N-day worth of data days=30; dryrun=true; use ace; collectionNames = db.getCollectionNames(); for (i=0; i < collectionNames.length; i++) { name = collectionNames; query = null; if (name.indexOf('stat')==0 || name.indexOf('event')==0 || name.indexOf('alarm')==0) { query = {time: {$lt:new Date().getTime()-days*86400*1000}}; } if (name.indexOf('session')==0) { query = {assoc_time: {$lt:new Date().getTime()/1000-days*86400}}; } if (name.indexOf('user')==0) { query = {last_seen: {$lt:new Date().getTime()/1000-days*86400}}; } if (query) { count = db.getCollection(name).find(query).count(); print((dryrun ? "[dryrun] " : "") + "pruning " + count + " entries from " + name + "... "); if (!dryrun) db.getCollection(name).remove(query); } } if (!dryrun) db.repairDatabase(); ############################################################### Убедитесь, что скрипт верный перед тем, как выполнить следующую команду: sudo /opt/mongodb/mongo --port=27117 < purgebd.js По умолчанию, MongoDB находится в режиме 'dryrun' и сообщит о том, что сделала.
Вау! Довольно точно переписано: http://habrahabr.ru/sandbox/88903/ от 31 октября 2014 в 17:19. А что такое UniFi Controller, кстати? Ну чтобы польза была, может что добавите?
Так это и есть мой пост еще на сайте http://www.prochor.ru/content/nashi-stati/raspberry-pi/content8/unifi-controller-na-rasberry-pi.html Ubiquiti UniFi AP это готовое решение для создание обширной офисной сети, зоны покрытия Wi-Fi сигналом территории торгово-развлекаетльного центра или аэровокзала. Система на базе Ubiquiti UniFi AP поддерживает внутрисетевой роуминг — бесшовный переход клиентского устройства от одной «базовой станции» к другой. НО БЕЗ КОНТРОЛЛЕРА ЭТО НЕ РАБОТАЕТ...
" Prochor Ну во первых , хаять вы все мастера. Во вторых. Если это мои пере посты , то где реклама. в первом посте нет ни ссылок на мой сайт, ни где купить. Исключительно как установить. И исключительно после ваших реплик, они появились как доказательство моего участия. Так что я просто требую публичных извинений.. " Публично приношу извинения за то, что сходу увидел, что это перепост и не секунду не усомнился в этом. Приношу благодарность за то, что моя (не указанная здесь, но видимо потенциальная) способность хаять была высоко оценена. UPD. Отдельно доставило "вы все мастера." Неужели я не один?