https://blog.wise-leader.com/transmission_server/

 

Good Daddy의 Ubuntu 리눅스 NAS - 트랜미션 서버 설치하기 - 굿대디의 지식공유 일기

Good Daddy의 Ubuntu 리눅스 NAS - 트랜미션 서버 설치하기 굿대디의 지식공유 일기 %

blog.wise-leader.com

을 참고하였습니다. 

 

트랜스미션 저장소를 추가해준다.

sudo add-apt-repository ppa:transmissionbt/ppa

설치할 수 있는 것을 업데이트 하고 트랜스미션 관련항목들을 설치해준다.

sudo apt-get update
sudo apt-get install transmission-cli transmission-common transmission-daemon

트랜스미션을 설정한다.

sudo vi /etc/transmission-daemon/settings.json

아래 항목들을 수정해준다.

"download-dir": "/transmission/download",     #다운로드 디렉토리이다.
"incomplete-dir": "/transmission/incomplete", #incomplete 디렉토리이다.
"incomplete-dir-enabled": true,				  #incomplete 디렉토리를 사용할 여부이다.
"rpc-bind-address": "0.0.0.0",                #WEB-Interface으로 접근가능한 주소이다. 0.0.0.0는 모두 접속가능하다. 
"rpc-authentication-required": true,          #계정과 비밀번호를 입력해야 하는지 설정이다 false로 설정할시에 그냥 접속할수있다.
"rpc-enabled": true,                          #당연하지만 외부에서 접속이 가능하게 활성화가 필요하다.
"rpc-password": "passwd",                 	  #외부앱에서 접속시 사용자 비밀번호
"rpc-username": "user",                    	  #외부앱에서 접속시 사용자 계정명
"rpc-whitelist": "trans.example.com",         #외부 접속이 가능한 사이트 명이나 IP 를 적어준다.
"rpc-whitelist-enabled": false,         	  #이걸 false로 해야 외부에서 접속이 가능하다.
"rpc-port": 9091,                             #원격으로 접속하는 WEB-Interface의 포트번호이다.

버그인지 설정을 저장하고 재시작(restart)을 했을때 초기화 되는 현상이 발생했다. restart대신에 reload를 해주자.

sudo service transmission-daemon reload

트랜스미션 서버를 시작한다.

sudo service transmission-daemon start

재부팅되어도 트랜스미션이 시작되도록 설정을 추가한다.

sudo vi /etc/systemd/system/transmission-daemon.service

아래 항목을 넣어준다.

[Unit]
Description=transmission-daemon

[Service]
User=debian-transmission
ExecStart = /usr/bin/transmission-daemon -f --config-dir /var/lib/transmission-daemon/info
Restart = always
RestartSec = 240
IOSchedulingClass = best-effort
IOSchedulingPriority = 7
Nice = 10
CPUSchedulingPolicy = idle

[Install]
WantedBy=multi-user.target

추가한 설정을 적용해 준다.

sudo systemctl --system daemon-reload
sudo systemctl enable transmission-daemon.service
sudo systemctl start transmission-daemon.service

이제 localhost:9091 이나 외부 도메인을 통해 접속이 가능해졌다.

파일 쓰기 권한을 위해 아래와 같이 추가해준다.

sudo usermod -aG username debian-transmission
sudo chown username:username -R transmission/
sudo chmod 775 -R transmission/

 

그리고 설정 파일이 바뀌지 않았는지 확인해준다.

sudo vi /etc/transmission-daemon/settings.json

바뀐게 있다면 다시 제대로 설정해주자.

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,

처음엔 plex 미디어서버를 설치했지만 제대로 사용하기 위해선 유료 구매를 해야했다.

그리고 성능도 유료로 구매할 정도는 아닌거 같아서 다른 미디어 서버를 찾았다.

 

jellyfin은 무료이고 설치도 쉽다.

 

https://jellyfin.org/downloads/server

 

Downloads | Jellyfin

The portable version can be run on any system with a .NET Core runtime.

jellyfin.org

curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash

명령 스크립트를 받아서 실행하면 바로 설치가 된다.

enter와 y를 적절하게 입력해준다.

기본적으로 8096포트로 설치가 된다.

 

앞서 설치했던 owncloud와 같은 공간을 사용하기 위해 그룹을 만들고 함께 묶었다.

적당한 그룹을 만든다.

sudo groupadd groupname

젤리핀과 owncloud의 계정을 그룹에 추가해준다.

자신의 사용자도 그룹에 추가하면 data폴더에 접근이 쉬워진다.

sudo usermod -aG groupname www-data
sudo usermod -aG groupname jellyfin

data디렉토리의 소유자 그룹을 변경해준다.

sudo chown :groupname /var/www/owncloud/data

재부팅을 하면 적용이 된다.

 

그외에 권한 문제가 생기면 acl을 참고하기 바란다.(setfacl,getfacl)

https://it-serial.tistory.com/58

 

[Linux] ACL 개념 & 설정법(setfacl, getfacl)

리눅스는 대체적으로 서버로 많이 활용되고 있습니다. 서버로 활용되면 보안을 철저히 해야합니다. 간단하지만 리눅스 서버 보안 관련하여 ACL을 사용하기도 합니다. ○ ACL이란 ? ▷ Access Control L

it-serial.tistory.com

ls -al을 하면 현재 디렉토리의 파일과 디렉토리의 권한과 소유자 그룹을 볼수 있다.

drwxrwxrwx+ 로 나오는데

d는 디렉토리 첫 rwx는 소유자의 권한 두번째 rwx는 그룹의 권한 마지막 rwx는 다른 사용자의 권한이다.

+는 acl이 설정되어 있다는 의미이다.

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,
sudo vi /var/www/owncloud/config/config.php

개인서버로 cloud서비스를 이용할 수 있는 owncloud를 설치한다.

처음에는 우분투22.04에서 owncloud 설치하기라는 owncloud 가이드대로 했지만

외부 도메인에서 작동하지 않아 다른 설치방법을 찾았다.

https://github.com/linuxsyr/owncloud

 

GitHub - linuxsyr/owncloud: script to install owncloud on ubuntu 22.04

script to install owncloud on ubuntu 22.04. Contribute to linuxsyr/owncloud development by creating an account on GitHub.

github.com

명령어 스크립트를 다운로드 받아서 한 번에 설치할 수 있다.

물론 중간중간 enter와 y를 눌러주긴 해야한다.

 

스크립트 파일을 받아서 실행가능하게 권한을 변경해주고 실행한다.

wget https://raw.githubusercontent.com/linuxsyr/owncloud/main/owncloud.bash
chmod +x owncloud.bash
sudo bash ./owncloud.bash

설치가 다 되면 config.php에 신뢰할수 있는 도메인을 추가해줘야 제대로 작동한다.

sudo vi /var/www/owncloud/config/config.php
'trusted_domains' => [
	'localhost',
	'도메인',
	'내부 ip',
  ],

처음엔 localhost만 존재할 텐데 도메인과 내부 ip를 추가해준다.

 

데이터 디렉토리를 바꾸려면 아래와 링크와 같이 하면 된다.

바꿀 데이터 폴더와 기존 데이터 폴더를 www-data:www-data로 소유권한을 주어야 하는 것 같다.

그리고 폴더가 변경된 이후에 소유그룹을 변경하자.

https://jamong1014.tistory.com/111

 

[Server]OwnCloud 'data 폴더' 바꾸기 (Ubuntu/Debian)

가정 현재 폴더 : /var/www/owncloud/data 새 폴더 : /mnt/owncloud/data 아파치로 웹 서버 사용 중 OwnCloud의 데이터베이스 이름은 'owncloud' 단계 설명 아파치 중지 인스턴스에 대한 유지 관리 모드 활성화 Rsync

jamong1014.tistory.com

 

이걸로 설치를 하게 되면 owncloud 계정이 root에 비밀번호가 1234로 저장된다.

로그인해서 비밀번호를 바꿔는게 좋을 것이다.

그리고 db 계정은 root 이고 비밀번호가 1234인데 바꿔주는 것이 좋을 것이다.

db로 mariadb와 mysql을 사용하는데 비밀번호 변경은 아래와 같이 해주면 된다.

mysql -u root -p

비밀번호를 입력하라고 나오는데 1234를 입력한다.

mariadb에 접속되는데 mysql을 사용한다고 설정한다.

use mysql;

패스워드를 변경해준다. password()는 암호를 복호화해준다.

set password for 'root'@'localhost' = password('바꿀 비밀번호');

 바뀐 사항을 적용시킨다.

flush privileges;
exit;

마리아 db에서 나온다.

mysql -u root -p

새로운 비밀번호로 로그인이 되는지 확인한다.

 

기본적으로 80 포트로 설치된다.

 

owncloud 데이터 폴더 내용을 변경해도 목록이 반영되지 않는데 아래와 같이 하면 반영된다.

owncloud가 설치된 폴더로 들어간다.

cd /var/www/owncloud
sudo -u www-data php occ files:scan --all

파일을 검색해준다.

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,

2테라의 하드가 달려있는 오래된(인텔 3세대) 데스크탑이 있는데

방치하기 아깝고 우분투도 써보고 웹서버도 개발해보고 NAS도 깔아보기 위해

겸사겸사 우분투 서버 22.04를 설치했다.

여러가지 문제가 생겨서 6~7번은 지우고 다시 깔았던거 같다.

나중에 다시 찾아볼지 몰라 정리해둔다.

 

먼저 설치할 우분투를 받는다.

우분투 서버는 gui가 제외되서 이미지 용량이 1.4G정도이고 우분투 데스크탑은 3.6G정도 된다.

https://ubuntu.com/download

 

Get Ubuntu | Download | Ubuntu

Download Ubuntu desktop, Ubuntu Server, Ubuntu for Raspberry Pi and IoT devices, Ubuntu Core and all the Ubuntu flavours. Ubuntu is an open-source software platform that runs everywhere from the PC to the server and the cloud.

ubuntu.com

우분투 서버 22.04 버전을 다운로드 받는다.

 

이미지를 usb에 굽기 위해서 ventoy 를 다운로드 받는다.

운영체제에 맞는 버전을 다운로드 받는다.

나는 windows버전을 받았다.

 

https://www.ventoy.net/en/download.html

 

Ventoy

Ventoy is an open source tool to create bootable USB drive for ISO files. With ventoy, you don't need to format the disk again and again, you just need to copy the iso file to the USB drive and boot it.

www.ventoy.net

 

ventoy는 부트로더를 깐 뒤에 usb에 iso를 복사해서 선택하게 되어 있어

usb하나로 여러개의 운영체제를 설치할 수 있다.

4g이상의 usb 장치를 선택해준다.(우분투 서버기준)

여러 iso를 함께 넣을거라면 8g나 16g 이상을 선택하는 것이 좋다.

포맷이 되니 usb에 필요한 파일이 있다면 먼저 백업해두자.

 

압축을 풀어서 폴더에 들어간 뒤 ventoy2disk.exe를 실행시킨다.

오래된 컴퓨터라 11은 깔 필요가 없어서 옵션의 보안 부트는 해제했다.

옵션에서 파티션 유형을 mbr로 바꿔준다.

그리고 설치를 클릭한다. 경고가 나오면 확인을 눌러준다.

ventoy 실행화면

장치를 포맷하고 부트로더를 깔아준다.

완료되면 장치가 비어있을 것이다.

거기에 다운로드한 우분투 iso파일을 넣어준다.

나는 윈도우10도 같이 넣어주었다.

 

같은 저장소에서 윈도우와 멀티부팅을 하려면 윈도우를 먼저 깔고 우분투를 깔아야

grub을 통해 부팅할 운영체제를 선택할 수 있다.

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,