이 포스팅은 Notion에서 작성되었으며 다음추천인 링크를 통해 가입하시면 $10 Credit을 얻으실 수 있습니다(저에게는 $5 Credit이 쌓입니다) Notion 가입 Link
QNAP NAS를 거실에두고 SSD로 모두 바꾸었더니 HDD의 소음대신 이상한 고주파음이 들려오는 상황이 되어 QNAP NAS의 기능을 일부를 대신하여 수행해 줄 기기가 필요하여 구석에 잠자고 있던, Raspberry Pi를 새로 세팅해 보았습니다.
QNAP에서 상시로 동작하는 기능들을 위주로 Raspberry Pi로 옮기려고 합니다.
필요사항
- Raspberry Pi 3 B+ (이후 버전들도 상관없음)
Raspberry Pi 설치
- Raspberry Pi의 Image 설치관련 자세한 포스팅 들은 쉽게 찾을 수 있으실 것 입니다. 간략히 정리하면 다음과 같습니다.
- Micro SD(8G이상)카드 준비하고, PC balenaEtcher 프로그램을 설치합니다.
- Raspberry pi OS 다운로드 다음 링크에서 각자에 맞는 버전의 OS Image를 다운로드 합니다. 저는 모니터 및 그래픽 기능을 쓸 예정이 없어서 Lite버전을 설치하였습니다.
- SD 카드를 마운트하고 앞에설치한 etcher프로그램으로 이미지를 Flash 하면 준비 완료됩니다.
- 처음에 모니터연결 없이 무선랜, SSH 접근을 위해서는 Flash된 SD카드 안에 다음과 같은 두가지 파일을 만들어 주시면 됩니다.
- ssh - 빈파일
- wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="«your_SSID»" psk="«your_PSK»" key_mgmt=WPA-PSK }
- 위와 같이 설정이 마무리 되었다면 SD카드를 설치하고 전원을 넣으면, SSH를 통해 Raspberry pi 접근이 가능합니다
ssh pi@<raspberrypi_IP>
초기 Password: raspberry
#다음 명령어를 통해 초기 비밀번호 변경 후 사용
shell>>passwd
Oh-my-zsh, VIM 설치
초기 환경세팅 관련 Script이다. .zshrc .vimrc파일 내부에 Plugin 및 Vundle설정은 개별적으로 맞게 추가하여 사용하시면 됩니다.
#!/bin/bash
#Start
sudo apt install git, curl
#Install ZSH
sudo apt intall zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-autosuggestions $HOME/.oh-my-zsh/custom/plugins/zsh-autosuggestions
git clone https://github.com/ChesterYue/ohmyzsh-theme-passion.git $HOME/.oh-my-zsh/custom/themes/passion
ln -s $HOME/.oh-my-zsh/custom/themes/passion/passion.zsh-theme $HOME/.oh-my-zsh/custom/themes/.
#Install vim
sudo apt install vi
#개인에 맞게 수정필요
echo "source $HOME/__MY_ENV__/vim/_vimrc" > ~/.vimrc
#-------End---------
mkdir -p $HOME/.vim/backup
mkdir -p $HOME/.vim/bundle
git clone https://github.com/VundleVim/Vundle.vim.git $HOME/.vim/bundle/Vundle.vim
vim +PluginInstall +qall
Rclone Mount
이전에 Rclone를 사용하던 configuration을 그대로 사용하도록 하였습니다. 초기 설치 및 마운트는 다른 블로그들 참고 바랍니다. Raspberry pi에 Rclone Mount를 위해서는 두가지 스크립트가 필요합니다. 우선 특정 폴더에 다음 파일들을 생성해 줍니다. rclone config파일은 /home/pi/rclone/rclone.conf
파일로 저장해 두었습니다. 해당부분 변경하시면 됩니다.
plexdrive@.service
[Unit]
Description=Rclone Mount Service %i
Documentation=man:rclone(1)
After=network.target
[Service]
Type=simple
ExecStartPre=/bin/mkdir -p %h/gdrive
ExecStart= \
rclone --config /home/pi/rclone/rclone.conf \
mount gdrive: /home/pi/gdrive \
--allow-non-empty \
--drive-skip-gdocs \
--log-level ERROR \
--log-file=/home/pi/rclone/rclone.log \
--umask 000
ExecStop= \
fusermount -u %h/gdrive
[Install]
WantedBy=default.target
install.sh
#!/bin/bash
sudo cp ./rclone@.service /etc/systemd/system/rclone.service
sudo systemctl disable rclone
sudo systemctl enable rclone
sudo systemctl start rclone
이후 install.sh 파일을 실행하면 rclone mount 서비스 등록이 완료되어 ~/gdrive
위치에 마운트 되어 부팅시에도 바로 마운트되는 서비스 스크립트가 수행됩니다.
Docker 설치
다음 Script 를 수행하면 됩니다.
#!/bin/bash
sudo apt update
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker pi
sudo apt-get install -y python3 python3-pip
sudo apt-get install docker-compose
sudo reboot #재부팅 필수
Portainer 설치
다음 스크립트를 통해 설치 가능합니다
#!/bin/bash
docker run -d --name portainer \
--restart always -p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer
이후 http://ip:9000 IP로 접근후 Local 연결을 통해서 메뉴를 사용 가능합니다.
Hass(Home Assistant) 설치
다음과 같은 install.sh 스크립트를 만들고 sudo
명령어로 실행 시킵니다.
#!/bin/bash
docker run --init -d \
--name homeassistant \
--restart=unless-stopped \
-v /etc/localtime:/etc/localtime:ro \
-v /home/pi/HA/config:/config \
--network=host \
homeassistant/raspberrypi3-homeassistant:stable
이후 http://ip:8123 도메인을 통해서 접근 가능합니다.
Mosquitto 설치
다음 스크립트를 통해 설치 가능합니다.
#!/bin/bash
wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
pushd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-buster.list
sudo apt-get update
sudo apt-cache search mosquitto
sudo apt-get install mosquitto
popd
실행 상태확인은 다음과 같이 가능합니다.
sudo /etc/init.d/moquitto status
DuckDNS 연결
duckdns를 연결 업데이트 해주는 Script는 Duckdns사이트에서 자세한 설명과 함께 제공하고있다.
라즈베리안의 경우 다음 사이트에서 로그인후 도메인을 선택하면 자세한 사항을 확인할 수 있다.
Nginx Proxy Manager 설치
Nginx Proxy Manager는 내부 Port나 연결들을 Subdomain으로 연결하여 활용할 수 있는 기능을 제공한다. Nginx폴더를 만들고 해당 폴더에 docker-compose.yml 파일을 다음과 같이 생성해 줍니다.
version: "3"
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: always
ports:
# Public HTTP Port:
- '80:80'
# Public HTTPS Port:
- '443:443'
# Admin Web Port:
- '81:81'
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
restart: always
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./data/mysql:/var/lib/mysql
그후 docker-compose up -d
명령어를 통하여 설치를 해줍니다. 이후 reboot을 해주면 해당 서버 사용이 가능합니다.
접근은 http://<ip> 로 접근시 Nginx Proxy Manager설치 환영 페이지를 확인할수 있고, http://<ip>:81으로 관리자 페이지 접근이 가능합니다.
초기 id와 비밀번호는 다음과 같습니다.
- ID: admin@example.com
- PW: changeme
상세설정 및 관련은 다음페이지를 참고하셔도 됩니다.
Zigbee2mqtt 설치
다음 스크립트를 통해 도커 설치 진행해 주시면 됩니다. 관련하여 다음 포스팅도 참고하시기 바랍니다.
#!/bin/bash
docker run \
-d --name zigbee2mqtt \
-v /home/pi/HA/zigbee2mqtt/data:/app/data \
--device=/dev/ttyACM0 \
--privileged=true \
--network host \
koenkk/zigbee2mqtt:latest
'Software > Raspberry Pi' 카테고리의 다른 글
[RaspberryPi] Nginx + PHP 웹서버 설치 (0) | 2021.04.08 |
---|---|
[RaspberryPI] Squid Proxy Server 설치 (0) | 2021.04.02 |
Uploaded by Notion2Tistory v1.1.0