mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	Rename esphomeyaml to esphome (#426)
* Rename * Update * Add migration * Fix * Fix dashboard * Change test * Fixes * Code cleanup * Fix import order * Update * Automate docker builds * Shellcheck
This commit is contained in:
		
							
								
								
									
										35
									
								
								docker/rootfs/etc/cont-init.d/10-requirements.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										35
									
								
								docker/rootfs/etc/cont-init.d/10-requirements.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| #!/usr/bin/with-contenv bash | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: ESPHome | ||||
| # This files check if all user configuration requirements are met | ||||
| # ============================================================================== | ||||
| # shellcheck disable=SC1091 | ||||
| source /usr/lib/hassio-addons/base.sh | ||||
|  | ||||
| # Check SSL requirements, if enabled | ||||
| if hass.config.true 'ssl'; then | ||||
|     if ! hass.config.has_value 'certfile'; then | ||||
|         hass.die 'SSL is enabled, but no certfile was specified.' | ||||
|     fi | ||||
|  | ||||
|     if ! hass.config.has_value 'keyfile'; then | ||||
|         hass.die 'SSL is enabled, but no keyfile was specified' | ||||
|     fi | ||||
|  | ||||
|     if ! hass.file_exists "/ssl/$(hass.config.get 'certfile')"; then | ||||
|         if ! hass.file_exists "/ssl/$(hass.config.get 'keyfile')"; then | ||||
|             # Both files are missing, let's print a friendlier error message | ||||
|             text="You enabled encrypted connections using the \"ssl\": true option. | ||||
|             However, the SSL files \"$(hass.config.get 'certfile')\" and \"$(hass.config.get 'keyfile')\" | ||||
|             were not found. If you're using Hass.io on your local network and don't want | ||||
|             to encrypt connections to the ESPHome dashboard, you can manually disable | ||||
|             SSL by setting \"ssl\" to false." | ||||
|             hass.die "${text}" | ||||
|         fi | ||||
|         hass.die 'The configured certfile is not found' | ||||
|     fi | ||||
|  | ||||
|     if ! hass.file_exists "/ssl/$(hass.config.get 'keyfile')"; then | ||||
|         hass.die 'The configured keyfile is not found' | ||||
|     fi | ||||
| fi | ||||
							
								
								
									
										28
									
								
								docker/rootfs/etc/cont-init.d/20-nginx.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										28
									
								
								docker/rootfs/etc/cont-init.d/20-nginx.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| #!/usr/bin/with-contenv bash | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: ESPHome | ||||
| # Configures NGINX for use with ESPHome | ||||
| # ============================================================================== | ||||
| # shellcheck disable=SC1091 | ||||
| source /usr/lib/hassio-addons/base.sh | ||||
|  | ||||
| declare certfile | ||||
| declare keyfile | ||||
| declare port | ||||
|  | ||||
| mkdir -p /var/log/nginx | ||||
|  | ||||
| # Enable SSL | ||||
| if hass.config.true 'ssl'; then | ||||
|     rm /etc/nginx/nginx.conf | ||||
|     mv /etc/nginx/nginx-ssl.conf /etc/nginx/nginx.conf | ||||
|  | ||||
|     certfile=$(hass.config.get 'certfile') | ||||
|     keyfile=$(hass.config.get 'keyfile') | ||||
|  | ||||
|     sed -i "s/%%certfile%%/${certfile}/g" /etc/nginx/nginx.conf | ||||
|     sed -i "s/%%keyfile%%/${keyfile}/g" /etc/nginx/nginx.conf | ||||
| fi | ||||
|  | ||||
| port=$(hass.config.get 'port') | ||||
| sed -i "s/%%port%%/${port}/g" /etc/nginx/nginx.conf | ||||
							
								
								
									
										14
									
								
								docker/rootfs/etc/cont-init.d/30-esphome.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								docker/rootfs/etc/cont-init.d/30-esphome.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| #!/usr/bin/with-contenv bash | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: ESPHome | ||||
| # This files installs the user ESPHome version if specified | ||||
| # ============================================================================== | ||||
| # shellcheck disable=SC1091 | ||||
| source /usr/lib/hassio-addons/base.sh | ||||
|  | ||||
| declare esphome_version | ||||
|  | ||||
| if hass.config.has_value 'esphome_version'; then | ||||
|     esphome_version=$(hass.config.get 'esphome_version') | ||||
|     pip2 install --no-cache-dir --no-binary :all: "https://github.com/esphome/esphome/archive/${esphome_version}.zip" | ||||
| fi | ||||
							
								
								
									
										13
									
								
								docker/rootfs/etc/cont-init.d/40-migrate.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								docker/rootfs/etc/cont-init.d/40-migrate.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| #!/usr/bin/with-contenv bash | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: ESPHome | ||||
| # This files migrates the esphome config directory from the old path | ||||
| # ============================================================================== | ||||
| # shellcheck disable=SC1091 | ||||
| source /usr/lib/hassio-addons/base.sh | ||||
|  | ||||
| if [[ ! -d /config/esphome && -d /config/esphomeyaml ]]; then | ||||
|     echo "Moving config directory from /config/esphomeyaml to /config/esphome" | ||||
|     mv /config/esphomeyaml /config/esphome | ||||
|     mv /config/esphome/.esphomeyaml /config/esphome/.esphome | ||||
| fi | ||||
							
								
								
									
										62
									
								
								docker/rootfs/etc/nginx/nginx-ssl.conf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										62
									
								
								docker/rootfs/etc/nginx/nginx-ssl.conf
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| worker_processes  1; | ||||
| pid /var/run/nginx.pid; | ||||
| error_log stderr; | ||||
|  | ||||
| events { | ||||
|     worker_connections  1024; | ||||
| } | ||||
|  | ||||
| http { | ||||
|     access_log         stdout; | ||||
|     include            mime.types; | ||||
|     default_type       application/octet-stream; | ||||
|     sendfile           on; | ||||
|     keepalive_timeout  65; | ||||
|  | ||||
|     upstream esphome { | ||||
|         ip_hash; | ||||
|         server unix:/var/run/esphome.sock; | ||||
|     } | ||||
|     map $http_upgrade $connection_upgrade { | ||||
|         default upgrade; | ||||
|         ''      close; | ||||
|     } | ||||
|  | ||||
|     server { | ||||
|         server_name hassio.local; | ||||
|         listen %%port%% default_server ssl; | ||||
|         root /dev/null; | ||||
|  | ||||
|         ssl_certificate /ssl/%%certfile%%; | ||||
|         ssl_certificate_key /ssl/%%keyfile%%; | ||||
|         ssl_protocols TLSv1.2; | ||||
|         ssl_prefer_server_ciphers on; | ||||
|         ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA; | ||||
|         ssl_ecdh_curve secp384r1; | ||||
|         ssl_session_timeout  10m; | ||||
|         ssl_session_cache shared:SSL:10m; | ||||
|         ssl_session_tickets off; | ||||
|         ssl_stapling on; | ||||
|         ssl_stapling_verify on; | ||||
|  | ||||
|         # Redirect http requests to https on the same port. | ||||
|         # https://rageagainstshell.com/2016/11/redirect-http-to-https-on-the-same-port-in-nginx/ | ||||
|         error_page 497 https://$http_host$request_uri; | ||||
|  | ||||
|         location / { | ||||
|             proxy_redirect off; | ||||
|             proxy_pass http://esphome; | ||||
|  | ||||
|             proxy_http_version 1.1; | ||||
|             proxy_set_header Upgrade $http_upgrade; | ||||
|             proxy_set_header Connection $connection_upgrade; | ||||
|             proxy_set_header Authorization ""; | ||||
|  | ||||
|             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 Host $http_host; | ||||
|             proxy_set_header X-NginX-Proxy true; | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										46
									
								
								docker/rootfs/etc/nginx/nginx.conf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										46
									
								
								docker/rootfs/etc/nginx/nginx.conf
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| worker_processes  1; | ||||
| pid /var/run/nginx.pid; | ||||
| error_log stderr; | ||||
|  | ||||
| events { | ||||
|     worker_connections  1024; | ||||
| } | ||||
|  | ||||
| http { | ||||
|     access_log         stdout; | ||||
|     include            mime.types; | ||||
|     default_type       application/octet-stream; | ||||
|     sendfile           on; | ||||
|     keepalive_timeout  65; | ||||
|  | ||||
|     upstream esphome { | ||||
|         ip_hash; | ||||
|         server unix:/var/run/esphome.sock; | ||||
|     } | ||||
|     map $http_upgrade $connection_upgrade { | ||||
|         default upgrade; | ||||
|         ''      close; | ||||
|     } | ||||
|  | ||||
|     server { | ||||
|         server_name hassio.local; | ||||
|         listen %%port%% default_server; | ||||
|         root /dev/null; | ||||
|  | ||||
|         location / { | ||||
|             proxy_redirect off; | ||||
|             proxy_pass http://esphome; | ||||
|  | ||||
|             proxy_http_version 1.1; | ||||
|             proxy_set_header Upgrade $http_upgrade; | ||||
|             proxy_set_header Connection $connection_upgrade; | ||||
|             proxy_set_header Authorization ""; | ||||
|  | ||||
|             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 Host $http_host; | ||||
|             proxy_set_header X-NginX-Proxy true; | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										9
									
								
								docker/rootfs/etc/services.d/esphome/finish
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								docker/rootfs/etc/services.d/esphome/finish
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| #!/usr/bin/execlineb -S0 | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: ESPHome | ||||
| # Take down the S6 supervision tree when ESPHome fails | ||||
| # ============================================================================== | ||||
| if -n { s6-test $# -ne 0 } | ||||
| if -n { s6-test ${1} -eq 256 } | ||||
|  | ||||
| s6-svscanctl -t /var/run/s6/services | ||||
							
								
								
									
										14
									
								
								docker/rootfs/etc/services.d/esphome/run
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										14
									
								
								docker/rootfs/etc/services.d/esphome/run
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| #!/usr/bin/with-contenv bash | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: ESPHome | ||||
| # Runs the ESPHome dashboard | ||||
| # ============================================================================== | ||||
| # shellcheck disable=SC1091 | ||||
| source /usr/lib/hassio-addons/base.sh | ||||
|  | ||||
| if hass.config.true 'leave_front_door_open'; then | ||||
|     export DISABLE_HA_AUTHENTICATION=true | ||||
| fi | ||||
|  | ||||
| hass.log.info "Starting ESPHome dashboard..." | ||||
| exec esphome /config/esphome dashboard --socket /var/run/esphome.sock --hassio | ||||
							
								
								
									
										9
									
								
								docker/rootfs/etc/services.d/nginx/finish
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								docker/rootfs/etc/services.d/nginx/finish
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| #!/usr/bin/execlineb -S0 | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: ESPHome | ||||
| # Take down the S6 supervision tree when NGINX fails | ||||
| # ============================================================================== | ||||
| if -n { s6-test $# -ne 0 } | ||||
| if -n { s6-test ${1} -eq 256 } | ||||
|  | ||||
| s6-svscanctl -t /var/run/s6/services | ||||
							
								
								
									
										10
									
								
								docker/rootfs/etc/services.d/nginx/run
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										10
									
								
								docker/rootfs/etc/services.d/nginx/run
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| #!/usr/bin/with-contenv bash | ||||
| # ============================================================================== | ||||
| # Community Hass.io Add-ons: ESPHome | ||||
| # Runs the NGINX proxy | ||||
| # ============================================================================== | ||||
| # shellcheck disable=SC1091 | ||||
| source /usr/lib/hassio-addons/base.sh | ||||
|  | ||||
| hass.log.info "Starting NGINX..." | ||||
| exec nginx -g "daemon off;" | ||||
		Reference in New Issue
	
	Block a user