내 서버에는 내가 이미 사용하고 있는 Mozilla Thunderbird 이메일 클라이언트와 통합되는 간단한(신뢰할 수 있는) 캘린더 서버가 필요합니다.
또한 Android 클라이언트인가요?
답변1
간단하고 안정적인 캘린더 서버인 Radicale
복사 및 요약https://github.com/Kozea/Radicale/wiki/Simple-installation
설치가 간단함
##### Install dependencies for Radicale
ServerUSER@Server:~$ sudo apt-get install python3-pip
##### Install dependencies for bcrypt encryption method
ServerUSER@Server:~$ sudo python3 -m pip install --upgrade passlib bcrypt
##### -H flag uses root's home rather than USER's home
ServerUSER@Server:~$ sudo -H python3 -m pip install --upgrade radicale
구성이 간단함
##### Put user "fakeuser" in a new "users" file
ServerUSER@SERVER:~$ sudo htpasswd -B -c /etc/radicale/users fakeuser
New password:
Re-type new password:
##### Add another user
ServerUSER@SERVER:~$ sudo htpasswd -B /etc/radicale/users user2
New password:
Re-type new password:
##### Install dependencies for bcrypt encryption method
ServerUSER@SERVER:~$ sudo python3 -m pip install --upgrade passlib bcrypt
구성 파일 편집
ServerUSER@SERVER:~$ sudo nano /etc/radicale/config
Radicale에게 사용자를 찾을 수 있는 위치를 알려주세요.
##### Add these lines under relevant portions of [auth] section
type = htpasswd
htpasswd_filename = /etc/radicale/users
# encryption method used in the htpasswd file
htpasswd_encryption = bcrypt
일부 안전 제한 추가
##### Add these lines under relevant portions of [server] section
max_connections = 20
# 1 Megabyte
max_content_length = 10000000
# 10 seconds
timeout = 10
##### Add these lines under relevant portions of [auth] section
# Average delay after failed login attempts in seconds
delay = 1
다른 컴퓨터에서 SSL/TLS 연결을 허용하도록 파일을 편집합니다.
##### Add these lines under relevant portions of [server] section
hosts = 0.0.0.0:5232
##### By setting ssl = True, Radicale no longer responds to HTTP requests.
ssl = True
certificate = /etc/ssl/radicale.cert.pem
key = /etc/ssl/radicale.key.pem
SSL/TLS 키
서버의 Radical 서비스에 대한 HTTPS 연결을 허용하려면 자체 서명된 SSL/TLS 인증서를 만드세요.
##### You can hit enter as an answer to all the questions to set the default except this one:
##### "Common Name (eg, YOUR name) []:" where you will enter your domain name or dns record
##### used for your development server, or in case of wildcard certificates,
##### use an astrisk, like this: *.mycompany.com
##### By using a self-signed certificate, your browser should warn you of this fact.
##### Confirm exception as you wish, but this exception is necessary to visit page.
ServerUSER@Server:~$ openssl req -nodes -newkey rsa:2048 -keyout /etc/ssl/radicale.key.pem -out /etc/ssl/radicale.cert.pem -x509 -days 365
Common Name (eg, YOUR name) []: developmentserver12345
급진적인 서비스
Radicale이 항상 백그라운드에서 실행될 수 있도록 서버에서 서비스 설정
##### Create "radicale" user and group for Radicale service
ServerUSER@Server:~$ sudo useradd --system --home-dir / --shell /sbin/nologin radicale
##### Make storage folder writable by user "radicale"
ServerUSER@Server:~$ sudo mkdir -p /var/lib/radicale/collections
ServerUSER@Server:~$ sudo chown -R radicale:radicale /var/lib/radicale/collections
##### Make storage folder non-readable by others
ServerUSER@Server:~$ sudo chmod -R o= /var/lib/radicale/collections
/etc/systemd/system/radicale.service 파일을 생성합니다.
ServerUSER@Server:~$ sudo nano /etc/systemd/system/radicale.service
/etc/systemd/system/radicale.service 빈 나노 화면에 다음을 잘라내어 붙여넣고 저장합니다.
[Unit]
Description=A simple CalDAV (calendar) and CardDAV (contact) server
After=network.target
Requires=network.target
[Service]
ExecStart=/usr/bin/env python3 -m radicale
Restart=on-failure
User=radicale
# Deny other users access to the calendar data
UMask=0027
# Optional security settings
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
PrivateDevices=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
NoNewPrivileges=true
ReadWritePaths=/var/lib/radicale/collections
[Install]
WantedBy=multi-user.target
수동으로 서비스 시작(오류 및/또는 서버 재시작 시 서비스가 자동으로 시작됨)
# Enable the service
ServerUSER@Server:~$ sudo systemctl enable radicale
# Start the service
ServerUSER@Server:~$ sudo systemctl start radicale
# Check the status of the service
ServerUSER@Server:~$ sudo systemctl status radicale
# View all log messages
ServerUSER@Server:~$ sudo journalctl --unit radicale.service
썬더버드에 연결
Thunderbird에서 새 캘린더 생성(Public.IP.Address 서버)
- 썬더버드 열기
- "이벤트 및 작업 > 캘린더"를 클릭하세요.
- "파일 > 새로 만들기 > 달력"을 클릭합니다. [또는 "달력 창 > 달력 목록" 영역을 마우스 오른쪽 버튼으로 클릭하고 "새 달력"을 선택합니다]
- 대화 상자에서 "네트워크에서"를 선택하고 "다음"을 클릭하십시오.
- 형식과 위치를 선택하고 "다음"을 클릭하세요.
- 형식: CalDAV
- 위치: fakeusercalDAV01의 URL(전체)을 복사하여 붙여넣습니다.
- 이름, 색상, Thunderbird 이메일 계정을 입력하고 "다음"을 클릭하세요.
- 이름: TSRRC(TB-Server Real Radicale Calendar)
- 색상: [TSRRC에서 이벤트를 표시하고 싶은 색상]
- 이메일: [기본값]
- "마침"을 클릭하세요
안드로이드에 연결
Android에서 새 캘린더 만들기(Public.IP.Address Server)
- DAVdroid 설치
- 캘린더 열기
- 캘린더에 계정 추가[DAVdroid 아님]
- 계정 유형으로 DAVdroid를 선택하세요.
- URL과 사용자 이름으로 로그인
- 포인트 캘린더https://Public.IP.Address:5232/fakeuser/775e38a1-32eg-9e0x-e3tn-fax92930uskl/
- 사용자 이름: fakeuser
- 비밀번호: [htpasswd에 제공한 비밀번호]
- 새 캘린더를 수동으로 몇 번 새로 고치고 Radicale 로그를 확인하여 문제를 해결하세요.