1
0

Add home_assistant container
Some checks failed
Deploy / Deploy (push) Failing after 1m48s

This commit is contained in:
2026-02-10 19:07:34 +00:00
parent de91c62e67
commit 3817f1950f
3 changed files with 88 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
name: Deploy
on:
push:
branches:
- main
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup ssh-agent
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Deploy to remote
env:
REMOTE_USER: ${{ vars.REMOTE_USER }}
REMOTE_HOST: ${{ vars.REMOTE_HOST }}
REMOTE_PATH: ${{ vars.REMOTE_PATH }}
run: |
ssh -o StrictHostKeyChecking=no "$REMOTE_USER"@"$REMOTE_HOST" "mkdir -p \"$REMOTE_PATH\""
scp -r ./* "$REMOTE_USER"@"$REMOTE_HOST":"$REMOTE_PATH"
ssh "$REMOTE_USER"@"$REMOTE_HOST" "docker compose -f $REMOTE_PATH/compose.yml down"
ssh "$REMOTE_USER"@"$REMOTE_HOST" "docker compose -f $REMOTE_PATH/compose.yml pull"
ssh "$REMOTE_USER"@"$REMOTE_HOST" "docker compose -f $REMOTE_PATH/compose.yml up -d --force-recreate"

39
compose.yml Normal file
View File

@@ -0,0 +1,39 @@
services:
home_assistant:
image: ghcr.io/home-assistant/home-assistant:2026.2.1
user: 2019:2019 # home_assistant:home_assistant
restart: unless-stopped
depends_on:
init:
condition: service_completed_successfully
restart: true
networks:
- home_assistant_network
ports:
- 8123:8123
environment:
TZ: Europe/London
volumes:
- config:/config:rw
init:
image: busybox:1.37.0
user: root:root
command: /init.sh
restart: no
network_mode: none
volumes:
- ./init.sh:/init.sh:ro
# Used for resolving user and group names within the init script
- /etc/passwd:/etc/passwd:ro
- /etc/group:/etc/group:ro
# Mount all named volumes so they can be initialised
- config:/config:rw
volumes:
config:
networks:
home_assistant_network:
driver: bridge

16
init.sh Normal file
View File

@@ -0,0 +1,16 @@
#!/usr/bin/env sh
# Define a helper function that runs a command
# If the command fails, the script prints an error message
# and exits immediately.
run() {
# "$@" expands to all arguments passed to this function
# and preserves proper word splitting and quoting.
"$@" || {
echo "Error: command failed: $*" >&2
exit 1
}
}
run chown home_assistant:home_assistant /config