메인 항목으로

haugene/transmission-openvpn 설치

본 장에서는 ExpressVPN을 이용한 방법으로 설명을 합니다.

ExpressVPN이 아닌 다른 VPN을 이용하신다면 아래 링크를 참고하세요.

    Supported Providers : https://haugene.github.io/docker-transmission-openvpn/supported-providers/ Open VPN Config : https://github.com/haugene/vpn-configs-contrib

     

    먼저 볼륨을 Mapping할 디렉트로를 생성합니다. 이 디렉토리로 Torrent 파일을 올리고, 다운로드 경로가 설정 됩니다.

    제 경우 "/volume2/Transmission" 이라는 디렉토리를 생성하고, 하위에 "config"와 "data" 디렉토리를 생성 합니다.

    mkdir /volume2/Transmission
    mkdir /volume2/Transmission/config
    mkdir /volume2/Transmission/data

    아래와 같이 "docker-compose.yml" 파일을 작성합니다.

    version: '3.3'
    services:
        transmission-openvpn:
            restart: always
            cap_add:
                - NET_ADMIN
            volumes:
                - '/volume2/Transmission/data/:/data'
                - '/volume2/Transmission/config/:/config'
            environment:
                - OPENVPN_PROVIDER=EXPRESSVPN
                - OPENVPN_USERNAME=[설명1]
                - OPENVPN_PASSWORD=[설명1]
                - OPENVPN_CONFIG=my_expressvpn_south_korea_-_2_udp
                - OPENVPN_OPTS=--inactive 3600 --ping 10 --ping-exit 60 #킬스위치 기능입니다.
                - LOCAL_NETWORK=192.168.1.0/24 #사용하는 네트워크 대역대로 변경 필요
                - CREATE_TUN_DEVICE=true
                - TZ=Asia/Seoul
                - HEALTH_CHECK_HOST=google.com
                - TRANSMISSION_WEB_UI=flood-for-transmission
                - PUID=1026 #ssh에서 'id 계정명'으로 맞는 값을 찾아 입력
                - PGID=100 #ssh에서 'id 계정명'으로 맞는 값을 찾아 입력
                - TRANSMISSION_WATCH_DIR_ENABLED=true
                - TRANSMISSION_WATCH_DIR=/data/torrentfile
                # 보안 옵션 입니다.
                #- TRANSMISSION_RPC_AUTHENTICATION_REQUIRED=true
                #- TRANSMISSION_RPC_USERNAME=webgui_id
                #- TRANSMISSION_RPC_PASSWORD=webgui_pw
                #- TRANSMISSION_RPC_HOST_WHITELIST="127.0.0.1,192.168.1.*"
            logging:
                driver: json-file
                options:
                    max-size: 10m
            ports:
                - '9091:9091'
            image: haugene/transmission-openvpn

    만일 VPN Provider가 mullvad 일때는 아래를 yaml에 추가해 줍니다.

            sysctls:
                - "net.ipv6.conf.all.disable_ipv6=0"


    [설명1] ExpressVPN 계정코드

    OPENVPN_USERNAME : ExpressVPN 사용자명
    OPENVPN_PASSWORD : ExpressVPN 비밀번호

    이 값은 ExpressVPN 아래와 같이 확인 할 수 있습니다.

    ex_vpn1.png

    ex_vpn2.png

    ex_vpn3.png

    [설명2] LOCAL_NETWORK : 사용하시는 네트워크 대역대를 입력 합니다. 여러개 일 경우 "," 여러개를 지정할 수 있습니다.

    예제 : "192.168.1.0/24" (CIDR 값을 사용해야 합니다.)

    [설명3] TRANSMISSION_RPC_HOST_WHITELIST : Transmission 접속 시 보안을 위해 허용할 IP 대역대 입니다.

    여러개 일 경우 "," 여러개를 지정할 수 있으며, 와일드카드인 "*"를 사용할 수 있습니다.

    "127.0.0.1,192.168.1.*,172.17.0.*"

    제 경우 "127.0,0,1"는 localhost, "192.168.1.*"는 제가 사용하는 로컬 IP 대역대, "172.17.0.*"는 Docker Bridge 네트워크가 사용하는
    IP 대역대를 입력하였습니다.

    Docker를 실행 합니다.

    docker-compose up -d

    설치를 마치면 "/volume1/Transmission/data" 디렉토리가 아래와 같이 구성 됐음을 확인 할 수 있습니다.

    "completed" : 다운로드가 끝난 파일이 옮겨지는 디렉토리 입니다.
    "incompleted" : 다운로드가 진행 중인 파일이 있는 디렉토리 입니다.
    "torrentfile" : Transmission이 Watch 중인 디렉토리로 ".torrent" 파일을 이 디렉토리로 위치 시 바로 다운로드가 시작 됩니다.

    다운로드 후 목록에서 자동 삭제하고 텔레그램 봇으로 다운로드 완료 상태를 안내하기 위해 작성한 스크립트로 다른장에서 별도 설명 드리겠습니다.

    설치가 완료되면 "IP:9091"로 접속 합니다.

    trans_gui.png

    보안 옵션 미적용시 관리 페이지의 외부 노출이 걱정될 경우 Nginx Proxy Manager의 Proxy Host를 통해

    "Access List"에 인증정보를 넣어 접속시에 2차 인증 절차를 추가하실 수 있습니다.

    wetty_auth.png