Arch Linux에 유저권한으로 Resilio Sync 설치
http://forcecore.tistory.com/1325
시간이 흘러서 Resilio Sync로 개명이 되었네.
https://wiki.archlinux.org/index.php/Resilio_Sync
설치 자체는 AUR에 rslsync 패키지를 설치시키면 된다. 어려운 것은 대몬 부분이다.
$ rslsync --dump-sample-config > ~/.config/rslsync/rslsync.conf
device_name 은 설정해줘야 한다.
https도 강제해볼까...
,"force_https" : true // disable http
,"ssl_certificate" : "/path/to/cert.pem"
,"ssl_private_key" : "/path/to/private.key"
https://wiki.archlinux.org/index.php/OpenSSL#Certificates
여기 나오는대로 인증서를 만들어준다. .pem, .key 파일을 만들어야 함.
유저로서 실행시킬 것이니까 system wide하게 하지 말고 유저 권한으로 과정을 전부 수행한다.
$ cd ~/.config/rslsync
$ mkdir private
$ chmod 700 private
$ touch private/key.pem
$ chmod 0600 private/key.pem
$ openssl genpkey -algorithm RSA -out private/key.pem -pkeyopt rsa_keygen_bits:4096
$ openssl req -key private/key.pem -x509 -new -days 3650 -out selfcert.pem
인증서도 생성했으니 다시 ssl_certificate, ssl_private_key 부분을 위에 만든 인증서로 지정해준다.
일단 잘 되나 실행부터 해보자.
$ rslsync --config ~/.config/rslsync/rslsync.conf --nodaemon
그리고 브라우저를 켜서
https://192.168.0.xx:8888
등 서버의 ip로 접속을 해보자. 설정파일에서 포트를 특별히 바꾸지 않았으면 8888일 것이다. 설정파일에서 유저 설정을 하지 않아도 웹으로 최초 접속시 생성 및 설정이 가능하다. 훌륭하게 잘 되는군...
이제 대몬으로 만들 차례. 시스템 서비스로 만들지 않으면 수동으로 실행을 해야 하는데 그렇게 하는 순간 rsync보다 우위가 없어진다 -_-;;; 반드시 귀찮아도 해야 하는 과정이다.
Arch Linux용 rslsync 패키지가 업데이트 되어서 설치하자마자 아래와 같이 바로 대몬화 할 수 있다고 안내가 나올 것이다.
* Running rslsync user instance (using current user account)
User instance MUST be configured before use. To perform configuration,
install rslsync-autoconfig package or follow manual configuration steps:
1. Copy /etc/rslsync/rslsync.conf to ~/.config/rslsync/rslsync.conf for
the user you wish to configure rslsync:
mkdir -p ~/.config/rslsync
cp /etc/rslsync.conf ~/.config/rslsync/rslsync.conf
2. Replace user-specific references with the appropriate information,
including the following settings:
- storage_path
- pid_file
- webui.listen
- webui.login
- webui.password
3. Make sure folder you specified as storage_path and folder where pid_file will
be located both exist in the filesystem, since rslsync will not create it for you.
Execute:
to reload user systemd modules: systemctl --user daemon-reload
to start rslsync manually: systemctl --user start rslsync
to autostart rslsync on user login: systemctl --user enable rslsync
위에 이야기 된대로 enable을 하고 start하니 서버가 작동을 한다. 옛날보다 설치가 훨씬 쉬워졌다.
문제는, 저 서비스가 시작되는 시점이 언제냐면, GUI든 ssh든 유저가 로그인 할 때이다. 즉, 시스템이 재시작된다고 시작되지 않는다!!! loginctl을 써야 함.
# loginctl enable-linger username
이렇게 하면 자동으로 시작해줄 것이다. 실제로 재부팅을 해가면서 테스트 해보자.