서버 설정

config.toml, 서버가 파일을 저장하는 위치, 그리고 토큰, 릴레이, 저장된 프록시, 웹훅을 관리하는 CLI 명령을 설명합니다.

번역된 페이지입니다. 영어 문서와 내용이 다르면 영어 문서가 기준입니다. English

파일 위치

시스템폴더
Windows%APPDATA%\Droidline
macOS~/Library/Application Support/Droidline
Linux~/.config/droidline

DROIDLINE_HOME이나 --home <folder>로 다른 폴더를 지정할 수 있습니다. 이렇게 하면 PC 한 대에서 서로 독립된 서버를 여러 개 띄울 수 있습니다. 지금 쓰는 폴더는 droidline doctor가 출력합니다.

파일작성 주체내용
config.toml사용자포트, 언어, 원격 주소, 웹훅
state.json서버페어링된 폰, 해시로 저장한 클라이언트 토큰
secrets.dpapi(Windows) 또는 secrets.json서버서버 키, TLS 키, 릴레이 토큰, 저장된 프록시, 웹훅 시크릿
tls.crt서버직접 연결 경로에서 폰이 고정(pinning)해 확인하는 인증서

config.toml

서버를 처음 시작하면 주석이 달린 이 파일을 만듭니다. 파일을 고친 뒤에는 droidline serve를 다시 시작하세요.

name = ""            # 폰에 표시되는 이 PC의 이름. 비워 두면 컴퓨터 이름
lang = ""            # 에러 메시지 언어: en, ko, zh. 비워 두면 시스템 언어
offline_wait = 30    # 명령이 오프라인 폰을 기다리는 시간(초)

[agent]
listen = ":8779"     # 폰이 여기로 접속

[client]
listen = "127.0.0.1:8780"   # 내 코드가 여기로 접속
require_token = false       # true면 로컬을 포함한 모든 연결에 토큰 필요
allowed_origins = []        # HTTP API를 호출할 수 있는 웹 페이지

[discovery]
listen = ":8778"     # "off"면 와이파이 탐색을 끔

[pairing]
code = true          # 같은 와이파이에서 6자리 코드로 페어링 허용

[remote]
addresses = []       # 예: "tls://203.0.113.5:8779", "wss://droid.example.com/agent"

[relay]
url = ""             # droidline relay set으로 설정

[[webhooks]]
url = "https://example.com/hooks/droidline"
package = "com.kakao.talk"
text_contains = ""
device = ""

관리 명령

이 명령들은 서버 폴더의 파일을 바꿉니다. 릴레이 설정을 바꿨다면 서버를 다시 시작하세요.

droidline token create "build server"     # 클라이언트 토큰을 한 번만 출력
droidline token list
droidline token revoke <id>

droidline relay set <url> <token>
droidline relay status
droidline relay off

droidline proxy add kr1 socks5://user:pass@203.0.113.10:1080
droidline proxy list
droidline proxy remove kr1

droidline webhook secret
droidline rename <device> <name>
droidline revoke <device>

서비스로 실행하기

droidline serve는 포그라운드에서 실행되고 로그를 표준 에러로 출력합니다. 계속 실행해 두려면 시스템의 서비스 관리자를 쓰세요. Windows에서는 로그온할 때 실행되는 예약 작업이나 서비스 래퍼, macOS에서는 launchd 에이전트, Linux에서는 systemd 사용자 유닛을 씁니다.

[Unit]
Description=Droidline server

[Service]
ExecStart=%h/.local/bin/droidline serve
Restart=on-failure

[Install]
WantedBy=default.target