From 2ce1c4fafcc55d63564a35035b1ea35c38ffdc6d Mon Sep 17 00:00:00 2001 From: Kelvin Chen Date: Thu, 6 Oct 2016 23:11:58 -0400 Subject: [PATCH 01/10] Update rtorrent image - Switch to Ubuntu Xenial as base - Update PHP5->PHP7 - Remove AutoDL-irssi since it causes more problems than it is worth --- Dockerfiles/rtorrent/Dockerfile | 45 ++++++++++----------------- Dockerfiles/rtorrent/autodl.cfg | 3 -- Dockerfiles/rtorrent/{start => init} | 9 +----- Dockerfiles/rtorrent/irssi.cfg | 4 --- Dockerfiles/rtorrent/nginx.conf | 9 ++---- Dockerfiles/rtorrent/supervisord.conf | 8 +---- 6 files changed, 21 insertions(+), 57 deletions(-) delete mode 100644 Dockerfiles/rtorrent/autodl.cfg rename Dockerfiles/rtorrent/{start => init} (62%) delete mode 100644 Dockerfiles/rtorrent/irssi.cfg diff --git a/Dockerfiles/rtorrent/Dockerfile b/Dockerfiles/rtorrent/Dockerfile index dba0453..06df0da 100644 --- a/Dockerfiles/rtorrent/Dockerfile +++ b/Dockerfiles/rtorrent/Dockerfile @@ -1,48 +1,35 @@ -FROM kelvinchen/seedbox:base +FROM buildpack-deps:xenial-scm MAINTAINER Kelvin Chen -# Install all dependencies -RUN echo "deb http://httpredir.debian.org/debian stretch main" >> /etc/apt/sources.list \ - && apt-get update \ - && apt-get install -y --no-install-recommends \ +# Install dependencies +RUN apt-get update \ + && apt-get install -y \ + supervisor \ rtorrent \ - php5-fpm \ - php5-cli \ - php5-geoip \ mediainfo \ - irssi \ - libxml-libxml-perl \ - libxml-libxslt-perl \ - libjson-perl \ - libjson-xs-perl \ - libnet-ssleay-perl \ - libdigest-perl \ - libdigest-sha-perl \ - libhtml-parser-perl \ - libarchive-zip-perl \ + php7.0-fpm \ + php7.0-cli \ + nginx \ + unrar-free \ + unzip \ + ffmpeg \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* -# Configure/install r(u)torrent and autodl-irssi +# Configure/install r(u)torrent RUN ln -s /config/rtorrent/rtorrent.rc ~/.rtorrent.rc \ + && mkdir -p /var/run/php \ && git clone --depth=1 \ https://github.com/Novik/ruTorrent.git \ /opt/rutorrent \ - && git clone --depth=1 --recursive \ - https://github.com/autodl-community/autodl-irssi.git \ - ~/.irssi/scripts \ - && mkdir -p ~/.irssi/scripts/autorun \ - && cp ~/.irssi/scripts/autodl-irssi.pl ~/.irssi/scripts/autorun \ - && ln -s /config/autodl/ ~/.autodl \ - && sed -i "s/www-data/root/g" /etc/php5/fpm/pool.d/www.conf + && sed -i "s/www-data/root/g" /etc/php/7.0/fpm/pool.d/www.conf VOLUME /config /torrents EXPOSE 80 49161 49161/udp 6881/udp -COPY start rtorrent.rc supervisord.conf autodl.cfg / +COPY init rtorrent.rc supervisord.conf / COPY nginx.conf /etc/nginx/nginx.conf COPY rutorrent_config.php /opt/rutorrent/conf/config.php -COPY irssi.cfg /root/.irssi/config -CMD ["/start"] +CMD ["/init"] diff --git a/Dockerfiles/rtorrent/autodl.cfg b/Dockerfiles/rtorrent/autodl.cfg deleted file mode 100644 index 00e41a7..0000000 --- a/Dockerfiles/rtorrent/autodl.cfg +++ /dev/null @@ -1,3 +0,0 @@ -[options] -gui-server-port = 39410 -gui-server-password = password diff --git a/Dockerfiles/rtorrent/start b/Dockerfiles/rtorrent/init similarity index 62% rename from Dockerfiles/rtorrent/start rename to Dockerfiles/rtorrent/init index 8828e73..6f29535 100755 --- a/Dockerfiles/rtorrent/start +++ b/Dockerfiles/rtorrent/init @@ -7,17 +7,10 @@ mkdir -p /config/rtorrent cp -n /rtorrent.rc /config/rtorrent/rtorrent.rc # Remove rtorrent lock file if it exists so rtorrent can start -rm /config/rtorrent/rtorrent.lock +rm -f /config/rtorrent/rtorrent.lock # Make folders for storing rutorrent data mkdir -p /config/rutorrent/settings /config/rutorrent/torrents \ /config/rutorrent/users /config/rutorrent/plugins -# Copy all plugins in /config/rutorrent/plugins to the rutorrent directory -cp -rf $(ls -d1 /config/rutorrent/plugins/**) /opt/rutorrent/plugins/ - -# Set up autodl-irssi -mkdir -p /config/autodl -cp -n /autodl.cfg /config/autodl - supervisord -c /supervisord.conf diff --git a/Dockerfiles/rtorrent/irssi.cfg b/Dockerfiles/rtorrent/irssi.cfg deleted file mode 100644 index 46bb45d..0000000 --- a/Dockerfiles/rtorrent/irssi.cfg +++ /dev/null @@ -1,4 +0,0 @@ -settings = { - core = { real_name = "irssi"; user_name = "irssi"; nick = "irssi"; }; - "fe-text" = { actlist_sort = "refnum"; }; -}; diff --git a/Dockerfiles/rtorrent/nginx.conf b/Dockerfiles/rtorrent/nginx.conf index 4544d51..2f729a7 100644 --- a/Dockerfiles/rtorrent/nginx.conf +++ b/Dockerfiles/rtorrent/nginx.conf @@ -24,10 +24,7 @@ http { access_log off; error_log off; - gzip on; - gzip_disable "msie6"; - - client_max_body_size 8M; + client_max_body_size 0; server { listen 80 default_server; @@ -42,11 +39,11 @@ http { } location / { - try_files $uri $uri/ =404; + try_files $uri $uri/ =404; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass unix:/var/run/php5-fpm.sock; + fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi.conf; } diff --git a/Dockerfiles/rtorrent/supervisord.conf b/Dockerfiles/rtorrent/supervisord.conf index 1721f2c..2539fc8 100644 --- a/Dockerfiles/rtorrent/supervisord.conf +++ b/Dockerfiles/rtorrent/supervisord.conf @@ -11,16 +11,10 @@ autorestart = true [program:php] priority = 2 -command = php5-fpm -F -R +command = php-fpm7.0 -F -R autorestart = true [program:nginx] priority = 3 command = nginx -g "daemon off;" autorestart = true - -[program:autodl-irssi] -priority = 4 -environment = TERM=xterm -command = irssi -autorestart = true From 0ca861a2de125888dd523326da50ce98dd8d6d90 Mon Sep 17 00:00:00 2001 From: Kelvin Chen Date: Thu, 6 Oct 2016 23:51:56 -0400 Subject: [PATCH 02/10] Install plex with auto-update script --- Dockerfiles/plex/Dockerfile | 14 +++++++++----- Dockerfiles/plex/{start => init} | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) rename Dockerfiles/plex/{start => init} (72%) diff --git a/Dockerfiles/plex/Dockerfile b/Dockerfiles/plex/Dockerfile index 42bf7b2..20c51ca 100644 --- a/Dockerfiles/plex/Dockerfile +++ b/Dockerfiles/plex/Dockerfile @@ -1,8 +1,12 @@ -FROM kelvinchen/seedbox:base +FROM buildpack-deps:xenial-scm MAINTAINER Kelvin Chen -RUN curl -sL "https://plex.tv/downloads/latest/1?channel=8&build=linux-ubuntu-x86_64&distro=ubuntu&X-Plex-Token=" > /tmp/plex.deb \ - && dpkg -i /tmp/plex.deb \ +# Download plexupdate script and install Plex +# This script can be later used to update Plex directly in the container +RUN curl -sL "https://github.com/mrworf/plexupdate/raw/master/plexupdate.sh" \ + > /usr/local/bin/plexupdate \ + && chmod +x /usr/local/bin/plexupdate \ + && plexupdate -pad \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* @@ -11,6 +15,6 @@ VOLUME /config EXPOSE 32400 COPY plexmediaserver /etc/default/plexmediaserver -COPY start Preferences.xml / +COPY init Preferences.xml / -CMD ["/start"] +CMD ["/init"] diff --git a/Dockerfiles/plex/start b/Dockerfiles/plex/init similarity index 72% rename from Dockerfiles/plex/start rename to Dockerfiles/plex/init index a0cb2d6..a4ebb19 100755 --- a/Dockerfiles/plex/start +++ b/Dockerfiles/plex/init @@ -2,6 +2,6 @@ mkdir -p "/config/Plex Media Server/" cp -n /Preferences.xml "/config/Plex Media Server/" -rm "/config/Plex Media Server/plexmediaserver.pid" +rm -f "/config/Plex Media Server/plexmediaserver.pid" start_pms > /dev/null 2>&1 From 3b04a54fc38df633faf790fc2f715498f67e1687 Mon Sep 17 00:00:00 2001 From: Kelvin Chen Date: Fri, 7 Oct 2016 00:09:52 -0400 Subject: [PATCH 03/10] Switch Sickrage from old base image --- Dockerfiles/sickrage/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfiles/sickrage/Dockerfile b/Dockerfiles/sickrage/Dockerfile index c278396..1344506 100644 --- a/Dockerfiles/sickrage/Dockerfile +++ b/Dockerfiles/sickrage/Dockerfile @@ -1,4 +1,4 @@ -FROM kelvinchen/seedbox:base +FROM buildpack-deps:xenial-scm MAINTAINER Kelvin Chen RUN apt-get update \ From a27bf5625fd0aae8f50044edca9e4fd0e101efdf Mon Sep 17 00:00:00 2001 From: Kelvin Chen Date: Fri, 7 Oct 2016 00:16:33 -0400 Subject: [PATCH 04/10] Remove old base image from syncthing --- Dockerfiles/syncthing/Dockerfile | 6 +++--- Dockerfiles/syncthing/{start => init} | 0 2 files changed, 3 insertions(+), 3 deletions(-) rename Dockerfiles/syncthing/{start => init} (100%) diff --git a/Dockerfiles/syncthing/Dockerfile b/Dockerfiles/syncthing/Dockerfile index 29ac43b..1fbdf6f 100644 --- a/Dockerfiles/syncthing/Dockerfile +++ b/Dockerfiles/syncthing/Dockerfile @@ -1,4 +1,4 @@ -FROM kelvinchen/seedbox:base +FROM buildpack-deps:xenial-curl MAINTAINER Kelvin Chen RUN curl -sL https://syncthing.net/release-key.txt | apt-key add - \ @@ -13,6 +13,6 @@ VOLUME /config EXPOSE 8384 22000 21027/udp -COPY start config.xml / +COPY init config.xml / -CMD ["/start"] +CMD ["/init"] diff --git a/Dockerfiles/syncthing/start b/Dockerfiles/syncthing/init similarity index 100% rename from Dockerfiles/syncthing/start rename to Dockerfiles/syncthing/init From 2382d79fbe4bd3dced55e34ee520608c9bc70d86 Mon Sep 17 00:00:00 2001 From: Kelvin Chen Date: Fri, 7 Oct 2016 00:50:47 -0400 Subject: [PATCH 05/10] Update OpenVPN image - Change base image to Ubuntu Xenial - Rename `create-client` command to more intuitive `export-client` --- Dockerfiles/openvpn/Dockerfile | 8 ++++---- Dockerfiles/openvpn/{create-client => export-client} | 0 Dockerfiles/openvpn/{start => init} | 0 3 files changed, 4 insertions(+), 4 deletions(-) rename Dockerfiles/openvpn/{create-client => export-client} (100%) rename Dockerfiles/openvpn/{start => init} (100%) diff --git a/Dockerfiles/openvpn/Dockerfile b/Dockerfiles/openvpn/Dockerfile index 07fd92f..f971f3e 100644 --- a/Dockerfiles/openvpn/Dockerfile +++ b/Dockerfiles/openvpn/Dockerfile @@ -1,4 +1,4 @@ -FROM kelvinchen/seedbox:base +FROM ubuntu:xenial MAINTAINER Kelvin Chen # Install OpenVPN @@ -17,7 +17,7 @@ EXPOSE 1194/udp VOLUME /config COPY vars /usr/share/easy-rsa/ -COPY openvpn.conf start client.ovpn / -COPY create-client /usr/local/bin/ +COPY openvpn.conf init client.ovpn / +COPY export-client /usr/local/bin/ -CMD ["/start"] +CMD ["/init"] diff --git a/Dockerfiles/openvpn/create-client b/Dockerfiles/openvpn/export-client similarity index 100% rename from Dockerfiles/openvpn/create-client rename to Dockerfiles/openvpn/export-client diff --git a/Dockerfiles/openvpn/start b/Dockerfiles/openvpn/init similarity index 100% rename from Dockerfiles/openvpn/start rename to Dockerfiles/openvpn/init From e59831738618b945372b6d4db72c10c02fee1ec4 Mon Sep 17 00:00:00 2001 From: Kelvin Chen Date: Fri, 7 Oct 2016 01:43:03 -0400 Subject: [PATCH 06/10] Switch frontend from old base image to alpine --- Dockerfiles/frontend/Dockerfile | 11 ++++------- Dockerfiles/frontend/common_default.conf | 5 ++++- Dockerfiles/frontend/{start => init} | 2 +- Dockerfiles/frontend/nginx.conf | 10 +++++----- Dockerfiles/frontend/ssl-gen | 2 +- 5 files changed, 15 insertions(+), 15 deletions(-) rename Dockerfiles/frontend/{start => init} (96%) diff --git a/Dockerfiles/frontend/Dockerfile b/Dockerfiles/frontend/Dockerfile index 18f172c..c2f8a16 100644 --- a/Dockerfiles/frontend/Dockerfile +++ b/Dockerfiles/frontend/Dockerfile @@ -1,10 +1,7 @@ -FROM kelvinchen/seedbox:base +FROM nginx:1.11-alpine MAINTAINER Kelvin Chen -RUN apt-get update \ - && apt-get install --no-install-recommends -y apache2-utils \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +RUN apk add --no-cache apache2-utils openssl VOLUME /config @@ -15,7 +12,7 @@ ENV USERNAME=user \ USE_SSL=false COPY nginx.conf common_default.conf ssl.conf /etc/nginx/ -COPY start / +COPY init / COPY ssl-gen /usr/local/bin -CMD ["/start"] +CMD ["/init"] diff --git a/Dockerfiles/frontend/common_default.conf b/Dockerfiles/frontend/common_default.conf index f35ea47..d6e4bcc 100644 --- a/Dockerfiles/frontend/common_default.conf +++ b/Dockerfiles/frontend/common_default.conf @@ -3,7 +3,10 @@ listen 80; listen [::]:80; -include proxy_params; +proxy_set_header Host $http_host; +proxy_set_header X-Real-IP $remote_addr; +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_redirect off; diff --git a/Dockerfiles/frontend/start b/Dockerfiles/frontend/init similarity index 96% rename from Dockerfiles/frontend/start rename to Dockerfiles/frontend/init index 1d1cfd9..123cd10 100755 --- a/Dockerfiles/frontend/start +++ b/Dockerfiles/frontend/init @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # Make placeholder config directory mkdir -p /config/frontend diff --git a/Dockerfiles/frontend/nginx.conf b/Dockerfiles/frontend/nginx.conf index 6acd66a..5316df4 100644 --- a/Dockerfiles/frontend/nginx.conf +++ b/Dockerfiles/frontend/nginx.conf @@ -29,25 +29,25 @@ http { gzip on; gzip_disable "msie6"; - client_max_body_size 8M; + client_max_body_size 0; auth_basic "Restricted"; auth_basic_user_file .htpasswd; upstream rtorrent { - server seedbox_rtorrent_1; + server rtorrent; } upstream syncthing { - server seedbox_syncthing_1:8384; + server syncthing:8384; } upstream plex { - server seedbox_plex_1:32400; + server plex:32400; } upstream sickrage { - server seedbox_sickrage_1:8081; + server sickrage:8081; } server { diff --git a/Dockerfiles/frontend/ssl-gen b/Dockerfiles/frontend/ssl-gen index f310ac0..da2a6c1 100755 --- a/Dockerfiles/frontend/ssl-gen +++ b/Dockerfiles/frontend/ssl-gen @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh # Short helper script to generate self signed SSL certificates. From bc2d6d8bdcdd375de6ea1024fe38ab66b2d86369 Mon Sep 17 00:00:00 2001 From: Kelvin Chen Date: Fri, 7 Oct 2016 01:45:39 -0400 Subject: [PATCH 07/10] Allow building through docker-compose --- docker-compose.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index b4d4572..fe69ea5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,6 +12,7 @@ volumes: services: frontend: image: kelvinchen/seedbox:frontend + build: Dockerfiles/frontend restart: always networks: - main @@ -25,6 +26,7 @@ services: rtorrent: image: kelvinchen/seedbox:rtorrent + build: Dockerfiles/rtorrent restart: always networks: - main @@ -38,6 +40,7 @@ services: plex: image: kelvinchen/seedbox:plex + build: Dockerfiles/plex restart: always networks: - main @@ -49,6 +52,7 @@ services: sickrage: image: kelvinchen/seedbox:sickrage + build: Dockerfiles/sickrage restart: always networks: - main @@ -58,6 +62,7 @@ services: syncthing: image: kelvinchen/seedbox:syncthing + build: Dockerfiles/syncthing restart: always networks: - main @@ -70,6 +75,7 @@ services: openvpn: image: kelvinchen/seedbox:openvpn + build: Dockerfiles/openvpn restart: always networks: - main From 96616ce5b038840f722e8d837f122683cf4d79ea Mon Sep 17 00:00:00 2001 From: Kelvin Chen Date: Fri, 7 Oct 2016 01:55:23 -0400 Subject: [PATCH 08/10] Delete base image --- Dockerfiles/base/Dockerfile | 20 -------------------- build-all.sh | 2 -- push-images.sh | 1 - 3 files changed, 23 deletions(-) delete mode 100644 Dockerfiles/base/Dockerfile diff --git a/Dockerfiles/base/Dockerfile b/Dockerfiles/base/Dockerfile deleted file mode 100644 index eeaa00d..0000000 --- a/Dockerfiles/base/Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM debian:jessie -MAINTAINER Kelvin Chen - -# Install all dependencies that are used in multiple images. -RUN echo "deb http://httpredir.debian.org/debian jessie non-free" \ - >> /etc/apt/sources.list \ - && apt-get update \ - && apt-get install --no-install-recommends -y \ - vim \ - ca-certificates \ - python \ - python-dev \ - curl \ - git \ - nginx \ - unzip \ - unrar \ - supervisor \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* diff --git a/build-all.sh b/build-all.sh index 053200a..99bcc5b 100755 --- a/build-all.sh +++ b/build-all.sh @@ -22,8 +22,6 @@ while getopts ":nq" opt; do esac done -docker build -t kelvinchen/seedbox:base --pull Dockerfiles/base - docker build -t kelvinchen/seedbox:frontend $ARGS Dockerfiles/frontend & docker build -t kelvinchen/seedbox:plex $ARGS Dockerfiles/plex & docker build -t kelvinchen/seedbox:rtorrent $ARGS Dockerfiles/rtorrent & diff --git a/push-images.sh b/push-images.sh index 300e642..bc8a796 100755 --- a/push-images.sh +++ b/push-images.sh @@ -2,7 +2,6 @@ # Push all images to the docker registry. -docker push kelvinchen/seedbox:base docker push kelvinchen/seedbox:frontend docker push kelvinchen/seedbox:plex docker push kelvinchen/seedbox:rtorrent From 058ebc3b07bf5ecf28589f4e403c3f2f83aa69a9 Mon Sep 17 00:00:00 2001 From: Kelvin Chen Date: Fri, 7 Oct 2016 02:35:38 -0400 Subject: [PATCH 09/10] Auto-install plexpass update --- Dockerfiles/plex/init | 6 ++++++ config.default | 4 ++++ docker-compose.yml | 2 ++ 3 files changed, 12 insertions(+) diff --git a/Dockerfiles/plex/init b/Dockerfiles/plex/init index a4ebb19..a62f893 100755 --- a/Dockerfiles/plex/init +++ b/Dockerfiles/plex/init @@ -1,5 +1,11 @@ #!/usr/bin/env bash +# Update to latest plexpass version +if [[ "$PLEX_EMAIL" ]]; then + echo -e "EMAIL='$PLEX_EMAIL'\nPASS='$PLEX_PASSWORD'" > "$HOME/.plexupdate" + plexupdate -ad +fi + mkdir -p "/config/Plex Media Server/" cp -n /Preferences.xml "/config/Plex Media Server/" rm -f "/config/Plex Media Server/plexmediaserver.pid" diff --git a/config.default b/config.default index dbadf99..af0faf0 100644 --- a/config.default +++ b/config.default @@ -1,3 +1,7 @@ USERNAME=username PASSWORD=hunter2 USE_SSL=false + +# For Plex Pass downlaod +PLEX_EMAIL= +PLEX_PASSWORD= diff --git a/docker-compose.yml b/docker-compose.yml index fe69ea5..0a9b1b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -49,6 +49,8 @@ services: volumes: - config:/config - torrents:/torrents + env_file: + - config sickrage: image: kelvinchen/seedbox:sickrage From 6d9f404658832e444ee47400bbd5892e9c2eaa76 Mon Sep 17 00:00:00 2001 From: Kelvin Chen Date: Fri, 7 Oct 2016 02:45:27 -0400 Subject: [PATCH 10/10] Update README --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2c33cf4..465a69d 100644 --- a/README.md +++ b/README.md @@ -43,10 +43,17 @@ Copy the `config.default` file to `config` and change the variables as desired. The variables are all self-explanatory. If you want to enable SSL, you would need to have your certificate and key be -at `/config/frontend/ssl.crt` and `/config/frontend/ssl.key` respectively. The +at `/config/frontend/ssl.crt` and `/config/frontend/ssl.key` respectively. The frontend image includes a command `ssl-gen` to automatically create self signed certificates for you. +## PlexPass +If you own PlexPass, you can get the docker image to auto-update to the latest +PlexPass version when the container starts up. This is arguably bad docker +practice since containers are supposed to be immutable, but in this case, I +think the convenience outweighs that. All you have to do is set the +`PLEX_EMAIL` and `PLEX_PASSWORD` variables in the config file. + ## Where is my data? All data are saved in the docker volumes `seedbox_config` or `seedbox_torrents`. @@ -58,7 +65,7 @@ editing the volumes settings in the `docker-compose.yml` file. The OpenVPN container generates a single client key/cert pair by default. Run the command below to get your OpenVPN config file: ```sh -$ docker exec seedbox_openvpn_1 create-client client >> client.ovpn +$ docker-compose exec openvpn export-client client >> client.ovpn ``` Edit the `client.ovpn` and replace the line `remote MYSERVER_HOST 1194` with the hostname or IP address of your server.