diff --git a/README.md b/README.md index 4a0229a..e00efe5 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ I created this installation for Vagrant/VirtualBox because I couldn't get email working from the Docker image. - Clone this repository: `git clone https://github.com/m0nty/huginn-vagrant.git` +- Either use ./setup.sh for semi-automatic configuration via a dialog interface. + (If you do this, skip down to the line about config.vm.box below.) Or ... - Edit the `env` file, which will be copied to `/home/huginn/huginn/.env` (look for the FIXME comments in the file to see what you need to adjust). - Edit `provision.sh` and change the MySQL passwords for the root MySQL user and diff --git a/Vagrantfile b/Vagrantfile index 48ac87e..6c7b90a 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -13,5 +13,5 @@ Vagrant.configure(2) do |config| config.vm.hostname = "huginn.local" config.vm.box_check_update = false config.vm.provision "shell", inline: "/vagrant/provision.sh" - config.vm.network :forwarded_port, guest:3000, host:3000, id:"nginx", host_ip:"127.0.0.1", auto_correct: false + config.vm.network :forwarded_port, guest:3000, host:3000, id:"nginx", host_ip:"127.0.0.1", auto_correct: true end diff --git a/provision.sh b/provision.sh index 64b96e7..dec8e8b 100755 --- a/provision.sh +++ b/provision.sh @@ -28,16 +28,15 @@ adduser --disabled-login --gecos 'Huginn' huginn # Install the database packages: # FIXME (next two lines) -debconf-set-selections <<< 'mysql-server mysql-server/root_password password rootmysqlpassword' -debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password rootmysqlpassword' +debconf-set-selections <<< 'mysql-server mysql-server/root_password password DATABASE_ROOT_PASSWORD' +debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password DATABASE_ROOT_PASSWORD' apt-get install -y mysql-server-5.5 mysql-server mysql-client libmysqlclient-dev # Set up MySQL user -# FIXME: Next line, use the same as DATABASE_USERNAME and DATABASE_PASSWORD from the env file -mysql -u root -prootmysqlpassword <<< "CREATE USER 'huginn'@'localhost' IDENTIFIED BY 'mysqlpassword';" -# FIXME: Next two lines, use the same as 'rootmysqlpassword' above -mysql -u root -prootmysqlpassword <<< "SET storage_engine=INNODB;" -mysql -u root -prootmysqlpassword <<< "GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ON huginn_production.* TO 'huginn'@'localhost';" +# FIXME: Next three lines, use the same DATABASE USERNAME and DATABASE PASSWORD from the env file, DATABASE ROOT PASSWORD from above +mysql -u root -pDATABASE_ROOT_PASSWORD <<< "CREATE USER 'DATABASE_USERNAME'@'localhost' IDENTIFIED BY 'DATABASE_PASSWORD';" +mysql -u root -pDATABASE_ROOT_PASSWORD <<< "SET storage_engine=INNODB;" +mysql -u root -pDATABASE_ROOT_PASSWORD <<< "GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ON huginn_production.* TO 'DATABASE_USERNAME'@'localhost';" # Clone the Source cd /home/huginn diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000..93f434c --- /dev/null +++ b/setup.sh @@ -0,0 +1,191 @@ +#!/bin/bash + +# This script will help you set up a Huginn instance inside a VirtualBox +# virtual machine. You will need VirtualBox and Vagrant installed to use +# it. Huginn itself will be automatically downloaded. This script is not +# clever and is not idempotent, so using it more than once might produce +# unexpected results. The files you need to amend are suitably commented +# so you could always change them using your favourite editor if needed. + +# -- Functions ----------------------------------------------------------------- + +DIALOG=$(which dialog) || $(which whiptail) + +function genpw { + echo $(< /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-16}) +} + +function genkey { + echo $(< /dev/urandom tr -dc a-f0-9 | head -c${1:-64}) +} + +function quit { + $DIALOG --defaultno --title "Quit Installer?" --yesno "Do you want to quit? No changes have been made yet." 6 60 + [[ "$?" = "0" ]] && exit +} + + +# -- Greetings ----------------------------------------------------------------- + +read -r -d '' MESSAGE <<"EOMESSAGE" +This script will guide you through providing configuration +information for the Huginn Vagrant setup scripts available from +https://github.com/m0nty/huginn-vagrant. This is mostly passwords, +usernames and email settings. Default passwords are provided so +you don't have to do too much yourself. + +Huginn itself is the creation of Andrew Cantino and others, +available from https://github.com/cantino/huginn/. It, and its +dependencies, will be automatically downloaded and installed into +a VirtualBox VM for you when you type 'vagrant up' in this +directory. So you will need VirtualBox and Vagrant installed first. + +Note that this script will not check your input - if you want to +provide empty or nonsense values, I'm not sure why you'd do that, +but it's up to you. + +Press to proceed. +EOMESSAGE + +OK=$(dialog --title "Huginn/VirtualBox Configurator" --msgbox --stdout "$MESSAGE" 22 72) + + +# -- Email Parameters ---------------------------------------------------------- + +SMTP_DOMAIN=example.com +SMTP_USER_NAME=huginn@mail.example.com +SMTP_PASSWORD=mailpassword +SMTP_SERVER=smtp.example.com +SMTP_PORT=587 +SMTP_AUTHENTICATION=plain +SMTP_ENABLE_STARTTLS_AUTO=true +EMAIL_FROM_ADDRESS=huginn@example.com + +VALUES=$(dialog \ + --ok-label "Submit" \ + --backtitle "Configure Email" \ + --title "Email Config" \ + --form "Enter values in each field and select " \ + --stdout \ + 16 80 0 \ + "SMTP_DOMAIN" 1 2 "$SMTP_DOMAIN" 1 42 32 0 \ + "SMTP_USER_NAME (for authentication)" 2 2 "$SMTP_USER_NAME" 2 42 32 0 \ + "SMTP_PASSWORD (for authentication)" 3 2 "$SMTP_PASSWORD" 3 42 32 0 \ + "SMTP_SERVER" 4 2 "$SMTP_SERVER" 4 42 32 0 \ + "SMTP_PORT (25, 462, 587 etc)" 5 2 "$SMTP_PORT" 5 42 32 0 \ + "SMTP_AUTHENTICATION (plain, login)" 6 2 "$SMTP_AUTHENTICATION" 6 42 32 0 \ + "SMTP_ENABLE_STARTTLS_AUTO (true, false)" 7 2 "$SMTP_ENABLE_STARTTLS_AUTO" 7 42 32 0 \ + "EMAIL_FROM_ADDRESS" 8 2 "$EMAIL_FROM_ADDRESS" 8 42 32 0 ) + # | | | | | | + # Label Vertical Offset____/ / Field Vertical Offset____/ / / / + # / / / / + # Label Horizontal Offset____/ Field Horizontal Offset______/ / / + # / / + # Field Length (cannot be altered if 0)_____/ / + # / + # Input Length (same as field length when 0)___/ + +[[ ${#VALUES} -gt 0 ]] || quit +readarray -t EMAIL_SETTINGS <<<"$VALUES" + +SMTP_DOMAIN=${EMAIL_SETTINGS[0]} +SMTP_USER_NAME=${EMAIL_SETTINGS[1]} +SMTP_PASSWORD=${EMAIL_SETTINGS[2]} +SMTP_SERVER=${EMAIL_SETTINGS[3]} +SMTP_PORT=${EMAIL_SETTINGS[4]} +SMTP_AUTHENTICATION=${EMAIL_SETTINGS[5]} +SMTP_ENABLE_STARTTLS_AUTO=${EMAIL_SETTINGS[6]} +EMAIL_FROM_ADDRESS=${EMAIL_SETTINGS[7]} + + +# -- Database Parameters ------------------------------------------------------- + +unset VALUES + +DATABASE_USERNAME=huginn +DATABASE_PASSWORD=$(genpw) +DATABASE_ROOT_PASSWORD=$(genpw) + +VALUES=$(dialog \ + --ok-label "Submit" \ + --backtitle "Configure Database" \ + --title "DB Config" \ + --form "Enter values in each field and select " \ + --stdout \ + 10 80 0 \ + "DATABASE_USERNAME" 1 2 "$DATABASE_USERNAME" 1 42 32 0 \ + "DATABASE_PASSWORD" 2 2 "$DATABASE_PASSWORD" 2 42 32 0 \ + "DATABASE_ROOT_PASSWORD" 3 2 "$DATABASE_ROOT_PASSWORD" 3 42 32 0 ) + +[[ ${#VALUES} -gt 0 ]] || quit +readarray -t DB_SETTINGS <<<"$VALUES" + +DATABASE_USERNAME=${DB_SETTINGS[0]} +DATABASE_PASSWORD=${DB_SETTINGS[1]} +DATABASE_ROOT_PASSWORD=${DB_SETTINGS[2]} + + +# -- Miscellaneous Parameters ------------------------------------------------------- + +unset VALUES + +LISTEN_IP=0.0.0.0 +LISTEN_PORT=3000 +DOMAIN=localhost +APP_SECRET_TOKEN=$(genkey) +TIMEZONE=London + +VALUES=$(dialog \ + --ok-label "Submit" \ + --backtitle "Configure Miscellaneous" \ + --title "Misc Config" \ + --form "Enter values in each field and select " \ + --stdout \ + 10 80 0 \ + "LISTEN_IP" 1 2 "$LISTEN_IP" 1 42 32 0 \ + "LISTEN_PORT" 2 2 "$LISTEN_PORT" 2 42 32 0 \ + "DOMAIN" 3 2 "$DOMAIN" 3 42 32 0 \ + "TIMEZONE" 4 2 "$TIMEZONE" 4 42 32 0 \ + "APP_SECRET_TOKEN (for rails app)" 5 2 "$APP_SECRET_TOKEN" 5 42 32 64 ) + +[[ ${#VALUES} -gt 0 ]] || quit +readarray -t MISC_SETTINGS <<<"$VALUES" + +LISTEN_IP=${MISC_SETTINGS[0]} +LISTEN_PORT=${MISC_SETTINGS[1]} +DOMAIN=${MISC_SETTINGS[2]} +TIMEZONE=${MISC_SETTINGS[3]} +APP_SECRET_TOKEN=${MISC_SETTINGS[4]} + +# -- Substitute Values in Files ----------------------------------------------------- + +# Mail Settings +sed -i "s/^SMTP_DOMAIN=.*$/SMTP_DOMAIN=$SMTP_DOMAIN/" env +sed -i "s/^SMTP_USER_NAME=.*$/SMTP_USER_NAME=$SMTP_USER_NAME/" env +sed -i "s/^SMTP_PASSWORD=.*$/SMTP_PASSWORD=$SMTP_PASSWORD/" env +sed -i "s/^SMTP_SERVER=.*$/SMTP_SERVER=$SMTP_SERVER/" env +sed -i "s/^SMTP_PORT=.*$/SMTP_PORT=$SMTP_PORT/" env +sed -i "s/^SMTP_AUTHENTICATION=.*$/SMTP_AUTHENTICATION=$SMTP_AUTHENTICATION/" env +sed -i "s/^SMTP_ENABLE_STARTTLS_AUTO=.*$/SMTP_ENABLE_STARTTLS_AUTO=$SMTP_ENABLE_STARTTLS_AUTO/" env +sed -i "s/^EMAIL_FROM_ADDRESS=.*$/EMAIL_FROM_ADDRESS=$EMAIL_FROM_ADDRESS/" env + +# DB Settings +sed -i "s/^DATABASE_USERNAME=.*/DATABASE_USERNAME=$DATABASE_USERNAME/" env +sed -i "s/^DATABASE_PASSWORD=.*/DATABASE_PASSWORD=$DATABASE_PASSWORD/" env +sed -i "s/DATABASE_USERNAME/$DATABASE_USERNAME/g" provision.sh +sed -i "s/DATABASE_PASSWORD/$DATABASE_PASSWORD/g" provision.sh +sed -i "s/DATABASE_ROOT_PASSWORD/$DATABASE_ROOT_PASSWORD/g" provision.sh + +# Misc Settings +sed -i "s/^APP_SECRET_TOKEN=.*/APP_SECRET_TOKEN=$APP_SECRET_TOKEN/" env +sed -i "s/^TIMEZONE=.*/TIMEZONE=\"$TIMEZONE\"/" env +sed -i "s/^DOMAIN=.*/DOMAIN=$DOMAIN:$LISTEN_PORT/" env +sed -ri "s/^ listen [0-9]+.[0-9]+.[0-9]+.[0-9]+:[0-9]+ default_server;/ listen $LISTEN_IP:$LISTEN_PORT default_server;/" huginn +sed -ri "s/PORT-[0-9]+/PORT-$LISTEN_PORT/" Procfile +sed -ri "s/IP-[0-9]+.[0-9]+.[0-9]+.[0-9]+/IP-$LISTEN_IP/" Procfile +sed -ri "s/guest:[0-9]+/guest:$LISTEN_PORT/" Vagrantfile +sed -ri "s/host:[0-9]+/host:$LISTEN_PORT/" Vagrantfile + +echo "All done, you should be able to type 'vagrant up' to provision your" +echo "new virtual machine containing a working Huginn installation." + diff --git a/tz.txt b/tz.txt new file mode 100644 index 0000000..2c47cfe --- /dev/null +++ b/tz.txt @@ -0,0 +1,583 @@ +Africa/Abidjan +Africa/Accra +Africa/Addis_Ababa +Africa/Algiers +Africa/Asmara +Africa/Asmera +Africa/Bamako +Africa/Bangui +Africa/Banjul +Africa/Bissau +Africa/Blantyre +Africa/Brazzaville +Africa/Bujumbura +Africa/Cairo +Africa/Casablanca +Africa/Ceuta +Africa/Conakry +Africa/Dakar +Africa/Dar_es_Salaam +Africa/Djibouti +Africa/Douala +Africa/El_Aaiun +Africa/Freetown +Africa/Gaborone +Africa/Harare +Africa/Johannesburg +Africa/Juba +Africa/Kampala +Africa/Khartoum +Africa/Kigali +Africa/Kinshasa +Africa/Lagos +Africa/Libreville +Africa/Lome +Africa/Luanda +Africa/Lubumbashi +Africa/Lusaka +Africa/Malabo +Africa/Maputo +Africa/Maseru +Africa/Mbabane +Africa/Mogadishu +Africa/Monrovia +Africa/Nairobi +Africa/Ndjamena +Africa/Niamey +Africa/Nouakchott +Africa/Ouagadougou +Africa/Porto-Novo +Africa/Sao_Tome +Africa/Timbuktu +Africa/Tripoli +Africa/Tunis +Africa/Windhoek +America/Adak +America/Anchorage +America/Anguilla +America/Antigua +America/Araguaina +America/Argentina/Buenos_Aires +America/Argentina/Catamarca +America/Argentina/ComodRivadavia +America/Argentina/Cordoba +America/Argentina/Jujuy +America/Argentina/La_Rioja +America/Argentina/Mendoza +America/Argentina/Rio_Gallegos +America/Argentina/Salta +America/Argentina/San_Juan +America/Argentina/San_Luis +America/Argentina/Tucuman +America/Argentina/Ushuaia +America/Aruba +America/Asuncion +America/Atikokan +America/Atka +America/Bahia +America/Bahia_Banderas +America/Barbados +America/Belem +America/Belize +America/Blanc-Sablon +America/Boa_Vista +America/Bogota +America/Boise +America/Buenos_Aires +America/Cambridge_Bay +America/Campo_Grande +America/Cancun +America/Caracas +America/Catamarca +America/Cayenne +America/Cayman +America/Chicago +America/Chihuahua +America/Coral_Harbour +America/Cordoba +America/Costa_Rica +America/Creston +America/Cuiaba +America/Curacao +America/Danmarkshavn +America/Dawson +America/Dawson_Creek +America/Denver +America/Detroit +America/Dominica +America/Edmonton +America/Eirunepe +America/El_Salvador +America/Ensenada +America/Fort_Nelson +America/Fort_Wayne +America/Fortaleza +America/Glace_Bay +America/Godthab +America/Goose_Bay +America/Grand_Turk +America/Grenada +America/Guadeloupe +America/Guatemala +America/Guayaquil +America/Guyana +America/Halifax +America/Havana +America/Hermosillo +America/Indiana/Indianapolis +America/Indiana/Knox +America/Indiana/Marengo +America/Indiana/Petersburg +America/Indiana/Tell_City +America/Indiana/Vevay +America/Indiana/Vincennes +America/Indiana/Winamac +America/Indianapolis +America/Inuvik +America/Iqaluit +America/Jamaica +America/Jujuy +America/Juneau +America/Kentucky/Louisville +America/Kentucky/Monticello +America/Knox_IN +America/Kralendijk +America/La_Paz +America/Lima +America/Los_Angeles +America/Louisville +America/Lower_Princes +America/Maceio +America/Managua +America/Manaus +America/Marigot +America/Martinique +America/Matamoros +America/Mazatlan +America/Mendoza +America/Menominee +America/Merida +America/Metlakatla +America/Mexico_City +America/Miquelon +America/Moncton +America/Monterrey +America/Montevideo +America/Montreal +America/Montserrat +America/Nassau +America/New_York +America/Nipigon +America/Nome +America/Noronha +America/North_Dakota/Beulah +America/North_Dakota/Center +America/North_Dakota/New_Salem +America/Ojinaga +America/Panama +America/Pangnirtung +America/Paramaribo +America/Phoenix +America/Port_of_Spain +America/Port-au-Prince +America/Porto_Acre +America/Porto_Velho +America/Puerto_Rico +America/Rainy_River +America/Rankin_Inlet +America/Recife +America/Regina +America/Resolute +America/Rio_Branco +America/Rosario +America/Santa_Isabel +America/Santarem +America/Santiago +America/Santo_Domingo +America/Sao_Paulo +America/Scoresbysund +America/Shiprock +America/Sitka +America/St_Barthelemy +America/St_Johns +America/St_Kitts +America/St_Lucia +America/St_Thomas +America/St_Vincent +America/Swift_Current +America/Tegucigalpa +America/Thule +America/Thunder_Bay +America/Tijuana +America/Toronto +America/Tortola +America/Vancouver +America/Virgin +America/Whitehorse +America/Winnipeg +America/Yakutat +America/Yellowknife +Antarctica/Casey +Antarctica/Davis +Antarctica/DumontDUrville +Antarctica/Macquarie +Antarctica/Mawson +Antarctica/McMurdo +Antarctica/Palmer +Antarctica/Rothera +Antarctica/South_Pole +Antarctica/Syowa +Antarctica/Troll +Antarctica/Vostok +Arctic/Longyearbyen +Asia/Aden +Asia/Almaty +Asia/Amman +Asia/Anadyr +Asia/Aqtau +Asia/Aqtobe +Asia/Ashgabat +Asia/Ashkhabad +Asia/Baghdad +Asia/Bahrain +Asia/Baku +Asia/Bangkok +Asia/Beirut +Asia/Bishkek +Asia/Brunei +Asia/Calcutta +Asia/Chita +Asia/Choibalsan +Asia/Chongqing +Asia/Chungking +Asia/Colombo +Asia/Dacca +Asia/Damascus +Asia/Dhaka +Asia/Dili +Asia/Dubai +Asia/Dushanbe +Asia/Gaza +Asia/Harbin +Asia/Hebron +Asia/Ho_Chi_Minh +Asia/Hong_Kong +Asia/Hovd +Asia/Irkutsk +Asia/Istanbul +Asia/Jakarta +Asia/Jayapura +Asia/Jerusalem +Asia/Kabul +Asia/Kamchatka +Asia/Karachi +Asia/Kashgar +Asia/Kathmandu +Asia/Katmandu +Asia/Khandyga +Asia/Kolkata +Asia/Krasnoyarsk +Asia/Kuala_Lumpur +Asia/Kuching +Asia/Kuwait +Asia/Macao +Asia/Macau +Asia/Magadan +Asia/Makassar +Asia/Manila +Asia/Muscat +Asia/Nicosia +Asia/Novokuznetsk +Asia/Novosibirsk +Asia/Omsk +Asia/Oral +Asia/Phnom_Penh +Asia/Pontianak +Asia/Pyongyang +Asia/Qatar +Asia/Qyzylorda +Asia/Rangoon +Asia/Riyadh +Asia/Saigon +Asia/Sakhalin +Asia/Samarkand +Asia/Seoul +Asia/Shanghai +Asia/Singapore +Asia/Srednekolymsk +Asia/Taipei +Asia/Tashkent +Asia/Tbilisi +Asia/Tehran +Asia/Tel_Aviv +Asia/Thimbu +Asia/Thimphu +Asia/Tokyo +Asia/Ujung_Pandang +Asia/Ulaanbaatar +Asia/Ulan_Bator +Asia/Urumqi +Asia/Ust-Nera +Asia/Vientiane +Asia/Vladivostok +Asia/Yakutsk +Asia/Yekaterinburg +Asia/Yerevan +Atlantic/Azores +Atlantic/Bermuda +Atlantic/Canary +Atlantic/Cape_Verde +Atlantic/Faeroe +Atlantic/Faroe +Atlantic/Jan_Mayen +Atlantic/Madeira +Atlantic/Reykjavik +Atlantic/South_Georgia +Atlantic/St_Helena +Atlantic/Stanley +Australia/ACT +Australia/Adelaide +Australia/Brisbane +Australia/Broken_Hill +Australia/Canberra +Australia/Currie +Australia/Darwin +Australia/Eucla +Australia/Hobart +Australia/LHI +Australia/Lindeman +Australia/Lord_Howe +Australia/Melbourne +Australia/North +Australia/NSW +Australia/Perth +Australia/Queensland +Australia/South +Australia/Sydney +Australia/Tasmania +Australia/Victoria +Australia/West +Australia/Yancowinna +Brazil/Acre +Brazil/DeNoronha +Brazil/East +Brazil/West +Canada/Atlantic +Canada/Central +Canada/Eastern +Canada/East-Saskatchewan +Canada/Mountain +Canada/Newfoundland +Canada/Pacific +Canada/Saskatchewan +Canada/Yukon +CET +Chile/Continental +Chile/EasterIsland +CST6CDT +Cuba +EET +Egypt +Eire +EST +EST5EDT +Etc/GMT +Etc/GMT+0 +Etc/GMT+1 +Etc/GMT+10 +Etc/GMT+11 +Etc/GMT+12 +Etc/GMT+2 +Etc/GMT+3 +Etc/GMT+4 +Etc/GMT+5 +Etc/GMT+6 +Etc/GMT+7 +Etc/GMT+8 +Etc/GMT+9 +Etc/GMT0 +Etc/GMT-0 +Etc/GMT-1 +Etc/GMT-10 +Etc/GMT-11 +Etc/GMT-12 +Etc/GMT-13 +Etc/GMT-14 +Etc/GMT-2 +Etc/GMT-3 +Etc/GMT-4 +Etc/GMT-5 +Etc/GMT-6 +Etc/GMT-7 +Etc/GMT-8 +Etc/GMT-9 +Etc/Greenwich +Etc/UCT +Etc/Universal +Etc/UTC +Etc/Zulu +Europe/Amsterdam +Europe/Andorra +Europe/Athens +Europe/Belfast +Europe/Belgrade +Europe/Berlin +Europe/Bratislava +Europe/Brussels +Europe/Bucharest +Europe/Budapest +Europe/Busingen +Europe/Chisinau +Europe/Copenhagen +Europe/Dublin +Europe/Gibraltar +Europe/Guernsey +Europe/Helsinki +Europe/Isle_of_Man +Europe/Istanbul +Europe/Jersey +Europe/Kaliningrad +Europe/Kiev +Europe/Lisbon +Europe/Ljubljana +Europe/London +Europe/Luxembourg +Europe/Madrid +Europe/Malta +Europe/Mariehamn +Europe/Minsk +Europe/Monaco +Europe/Moscow +Europe/Nicosia +Europe/Oslo +Europe/Paris +Europe/Podgorica +Europe/Prague +Europe/Riga +Europe/Rome +Europe/Samara +Europe/San_Marino +Europe/Sarajevo +Europe/Simferopol +Europe/Skopje +Europe/Sofia +Europe/Stockholm +Europe/Tallinn +Europe/Tirane +Europe/Tiraspol +Europe/Uzhgorod +Europe/Vaduz +Europe/Vatican +Europe/Vienna +Europe/Vilnius +Europe/Volgograd +Europe/Warsaw +Europe/Zagreb +Europe/Zaporozhye +Europe/Zurich +GB +GB-Eire +GMT +GMT+0 +GMT0 +GMT-0 +Greenwich +Hongkong +HST +Iceland +Indian/Antananarivo +Indian/Chagos +Indian/Christmas +Indian/Cocos +Indian/Comoro +Indian/Kerguelen +Indian/Mahe +Indian/Maldives +Indian/Mauritius +Indian/Mayotte +Indian/Reunion +Iran +Israel +Jamaica +Japan +Kwajalein +Libya +MET +Mexico/BajaNorte +Mexico/BajaSur +Mexico/General +MST +MST7MDT +Navajo +NZ +NZ-CHAT +Pacific/Apia +Pacific/Auckland +Pacific/Bougainville +Pacific/Chatham +Pacific/Chuuk +Pacific/Easter +Pacific/Efate +Pacific/Enderbury +Pacific/Fakaofo +Pacific/Fiji +Pacific/Funafuti +Pacific/Galapagos +Pacific/Gambier +Pacific/Guadalcanal +Pacific/Guam +Pacific/Honolulu +Pacific/Johnston +Pacific/Kiritimati +Pacific/Kosrae +Pacific/Kwajalein +Pacific/Majuro +Pacific/Marquesas +Pacific/Midway +Pacific/Nauru +Pacific/Niue +Pacific/Norfolk +Pacific/Noumea +Pacific/Pago_Pago +Pacific/Palau +Pacific/Pitcairn +Pacific/Pohnpei +Pacific/Ponape +Pacific/Port_Moresby +Pacific/Rarotonga +Pacific/Saipan +Pacific/Samoa +Pacific/Tahiti +Pacific/Tarawa +Pacific/Tongatapu +Pacific/Truk +Pacific/Wake +Pacific/Wallis +Pacific/Yap +Poland +Portugal +PRC +PST8PDT +ROC +ROK +Singapore +Turkey +UCT +Universal +US/Alaska +US/Aleutian +US/Arizona +US/Central +US/Eastern +US/East-Indiana +US/Hawaii +US/Indiana-Starke +US/Michigan +US/Mountain +US/Pacific +US/Pacific-New +US/Samoa +UTC +WET +W-SU +Zulu