From 338e84f72b945a30fdc9e4e3f73c2fbc83ef2eac Mon Sep 17 00:00:00 2001 From: "Phyks (Lucas Verney)" Date: Thu, 5 Jan 2017 17:24:10 +0100 Subject: [PATCH] Update for Phyks instance --- env | 97 ++++++--- provision.sh | 43 +--- setup.sh | 191 ----------------- tz.txt | 583 --------------------------------------------------- 4 files changed, 79 insertions(+), 835 deletions(-) delete mode 100755 setup.sh delete mode 100644 tz.txt diff --git a/env b/env index 2cbee8d..2a809e8 100644 --- a/env +++ b/env @@ -1,14 +1,12 @@ # ==== Required configuration settings for Huginn ==== # Replace the following with the output from "rake secret" -# FIXME - next line -APP_SECRET_TOKEN=4714932e88290ad2bacbafc56a8d1df59ca02e3fde1eaec379d96a2834e1d9cc15a80610d432246af74a9cef1c0974e0acdff08fac44a2f7c8cdb3a230e212bd +APP_SECRET_TOKEN=FIXME # This is the domain where your Huginn instance will be running. The default should work # for development, but it needs to be changed to your Huginn domain when you deploy to a # production environment (e.g., yourdomain.com, possibly including a port). -# FIXME - next line -DOMAIN=localhost:3000 +DOMAIN=huginn.phyks.me # Optionally set an asset host # ASSET_HOST=http://assets.example.com @@ -17,22 +15,21 @@ DOMAIN=localhost:3000 # Database Setup # ############################ -# FIXME - At least the DATABASE_USERNAME and DATABASE_PASSWORD DATABASE_ADAPTER=mysql2 -DATABASE_ENCODING=utf8mb4 +#DATABASE_ENCODING=utf8 DATABASE_RECONNECT=true DATABASE_NAME=huginn_production DATABASE_POOL=20 DATABASE_USERNAME=huginn -DATABASE_PASSWORD=mysqlpassword -#DATABASE_HOST=your-domain-here.com -#DATABASE_PORT=3306 +DATABASE_PASSWORD="FIXME" +DATABASE_HOST=10.0.2.2 +DATABASE_PORT=3306 #DATABASE_SOCKET=/tmp/mysql.sock # MySQL only: If you are running a MySQL server >=5.5.3, you should # set DATABASE_ENCODING to utf8mb4 instead of utf8 so that the # database can hold 4-byte UTF-8 characters like emoji. -#DATABASE_ENCODING=utf8mb4 +DATABASE_ENCODING=utf8mb4 # ==== Additional required production settings ==== @@ -42,17 +39,54 @@ RAILS_ENV=production # Should Rails force all requests to use SSL? FORCE_SSL=false -############################ -# Allowing Signups # -############################ +################################################ +# User authentication and registration # +################################################ # This invitation code will be required for users to signup with your Huginn installation. # You can see its use in user.rb. PLEASE CHANGE THIS! -INVITATION_CODE=try-huginn +INVITATION_CODE=FIXME # If you don't want to require new users to have an invitation code in order to sign up, set this to true. SKIP_INVITATION_CODE=false +# If you'd like to require new users to confirm their email address after sign up, set this to true. +REQUIRE_CONFIRMED_EMAIL=true + +# If REQUIRE_CONFIRMED_EMAIL is true, set this to the duration in which a user needs to confirm their email address. +ALLOW_UNCONFIRMED_ACCESS_FOR=2.days + +# Duration for which the above confirmation token is valid +CONFIRM_WITHIN=3.days + +# Minimum password length +MIN_PASSWORD_LENGTH=8 + +# Duration for which the reset password token is valid +RESET_PASSWORD_WITHIN=6.hours + +# Set to 'failed_attempts' to lock user accounts for the UNLOCK_AFTER period they fail MAX_FAILED_LOGIN_ATTEMPTS login attempts. Set to 'none' to allow unlimited failed login attempts. +LOCK_STRATEGY=failed_attempts + +# After how many failed login attempts the account is locked when LOCK_STRATEGY is set to failed_attempts. +MAX_FAILED_LOGIN_ATTEMPTS=10 + +# Can be set to 'email', 'time', 'both' or 'none'. 'none' requires manual unlocking of your users! +UNLOCK_STRATEGY=both + +# Duration after which the user is unlocked when UNLOCK_STRATEGY is 'both' or 'time' and LOCK_STRATEGY is 'failed_attempts' +UNLOCK_AFTER=1.hour + +# Duration for which the user will be remembered without asking for credentials again. +REMEMBER_FOR=4.weeks + +# Set to 'true' if you would prefer new users to start with a default set of agents +IMPORT_DEFAULT_SCENARIO_FOR_ALL_USERS=false + +# Users can be given a default set of agents to get them started +# You can override this scenario with your own scenario via file path or URL +# DEFAULT_SCENARIO_FILE=path-or-url-to-scenario.json + ############################# # Email Configuration # ############################# @@ -66,11 +100,10 @@ SKIP_INVITATION_CODE=false # If you have trouble with port 587 on Gmail, you can also try setting # SMTP_AUTHENTICATION to login and the SMTP_PORT to 465. -# FIXME - At least the next four lines -SMTP_DOMAIN=example.com -SMTP_USER_NAME=huginn@mail.example.com -SMTP_PASSWORD=mailpassword -SMTP_SERVER=smtp.example.com +SMTP_DOMAIN=phyks.me +SMTP_USER_NAME=huginn@phyks.me +SMTP_PASSWORD=FIXME +SMTP_SERVER=smtp.phyks.me SMTP_PORT=587 SMTP_AUTHENTICATION=plain SMTP_ENABLE_STARTTLS_AUTO=true @@ -80,8 +113,7 @@ SMTP_ENABLE_STARTTLS_AUTO=true SEND_EMAIL_IN_DEVELOPMENT=false # The address from which system emails will appear to be sent. -# FIXME - Next line -EMAIL_FROM_ADDRESS=huginn@example.com +EMAIL_FROM_ADDRESS=huginn@huginn.phyks.me ########################### # Agent Logging # @@ -129,6 +161,24 @@ AWS_ACCESS_KEY="your aws access key" # Set AWS_SANDBOX to true if you're developing Huginn code. AWS_SANDBOX=false +######################### +# Additional Agent gems # +######################### + +# Agent gems can be added to Huginn by specifying them in a comma separated +# list, the gem version and arguments for the gem command are optional. +# When not providing a git(hub) repository the gem needs to be published to +# https://rubygems.org. +# Check http://bundler.io/v1.11/git.html for a list of valid arguments. +# +# Configuration examples: +# +# ADDITIONAL_GEMS=huginn_nlp_agents,test_agent +# ADDITIONAL_GEMS=huginn_nlp_agents(~> 0.2.1),test_agent +# ADDITIONAL_GEMS=huginn_nlp_agents(git: https://github.com/kreuzwerker/DKT.huginn_nlp_agents.git),test_agent +# ADDITIONAL_GEMS=huginn_nlp_agents(github: kreuzwerker/DKT.huginn_nlp_agents),test_agent +# ADDITIONAL_GEMS=huginn_nlp_agents(~> 0.2.1, git: https://github.com/kreuzwerker/DKT.huginn_nlp_agents.git),test_agent + ######################## # Various Settings # ######################## @@ -170,7 +220,7 @@ EVENT_EXPIRATION_CHECK=6h # Use Graphviz for generating diagrams instead of using Google Chart # Tools. Specify a dot(1) command path built with SVG support # enabled. -#USE_GRAPHVIZ_DOT=dot +USE_GRAPHVIZ_DOT=dot # Default layout for agent flow diagrams generated by Graphviz. # Choose from `circo`, `dot` (default), `fdp`, `neato`, `osage`, @@ -179,8 +229,7 @@ EVENT_EXPIRATION_CHECK=6h #DIAGRAM_DEFAULT_LAYOUT=dot # Timezone. Use `rake time:zones:local` or `rake time:zones:all` to get your zone name -# FIXME - Next line unless you are in the UK -TIMEZONE="London" +TIMEZONE="Paris" # Number of failed jobs to keep in the database FAILED_JOBS_TO_KEEP=100 diff --git a/provision.sh b/provision.sh index 7709d3c..21aaae1 100755 --- a/provision.sh +++ b/provision.sh @@ -20,8 +20,7 @@ cd ruby-2.2.3 make -j`nproc` make install -# Update rake to avoid error -gem install --force rake -v 10.5.0 +gem install rake # Install the bundler and foreman gems: gem install bundler foreman --no-ri --no-rdoc @@ -29,17 +28,8 @@ gem install bundler foreman --no-ri --no-rdoc # Create a user for Huginn: adduser --disabled-login --gecos 'Huginn' huginn -# Install the database packages: -# FIXME (next two lines) -debconf-set-selections <<< 'mysql-server mysql-server/root_password password ct2yqS21jFWxI1Js' -debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password ct2yqS21jFWxI1Js' -apt-get install -y mysql-server-5.5 mysql-server mysql-client libmysqlclient-dev - -# Set up MySQL user -# FIXME: Next three lines, use the same DATABASE USERNAME and DATABASE PASSWORD from the env file, DATABASE ROOT PASSWORD from above -mysql -u root -pct2yqS21jFWxI1Js <<< "CREATE USER 'huginn'@'localhost' IDENTIFIED BY 'vMB4OQGAW8uWgQB4';" -mysql -u root -pct2yqS21jFWxI1Js <<< "SET storage_engine=INNODB;" -mysql -u root -pct2yqS21jFWxI1Js <<< "GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ON huginn_production.* TO 'huginn'@'localhost';" +# Install database lib package +apt-get install -y libmysqlclient-dev # Clone the Source cd /home/huginn @@ -66,7 +56,7 @@ sudo -u huginn -H bundle exec rake db:create RAILS_ENV=production sudo -u huginn -H bundle exec rake db:migrate RAILS_ENV=production # Create admin user and example agents -sudo -u huginn -H bundle exec rake db:seed RAILS_ENV=production +sudo -u huginn -H bundle exec rake db:seed RAILS_ENV=production SEED_EMAIL=phyks@phyks.me SEED_USERNAME=phyks SEED_PASSWORD=password # Compile Assets sudo -u huginn -H bundle exec rake assets:precompile RAILS_ENV=production @@ -75,13 +65,13 @@ sudo -u huginn -H bundle exec rake assets:precompile RAILS_ENV=production sudo -u huginn cp /vagrant/Procfile /home/huginn/huginn/Procfile # Export the init scripts: -rake production:export +sudo bundle exec rake production:export # Setup Logrotate cp deployment/logrotate/huginn /etc/logrotate.d/huginn # Check it's running -rake production:status +sudo bundle exec rake production:status # Install nginx apt-get install -y nginx @@ -91,24 +81,3 @@ cp /vagrant/huginn /etc/nginx/sites-available/huginn rm /etc/nginx/sites-enabled/default nginx -t service nginx restart - - - - - - - - - - - - - - - - - - - - - diff --git a/setup.sh b/setup.sh deleted file mode 100755 index 93f434c..0000000 --- a/setup.sh +++ /dev/null @@ -1,191 +0,0 @@ -#!/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 deleted file mode 100644 index 2c47cfe..0000000 --- a/tz.txt +++ /dev/null @@ -1,583 +0,0 @@ -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