1
0

Add wireguard container
Some checks failed
Deploy / Deploy (push) Failing after 1m2s

This commit is contained in:
2026-04-01 22:34:12 +01:00
parent 557741e682
commit 54f90751fa
3 changed files with 100 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"

51
compose.yml Normal file
View File

@@ -0,0 +1,51 @@
services:
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
wireguard:
image: linuxserver/wireguard:1.0.20250521
restart: unless-stopped
depends_on:
init:
condition: service_completed_successfully
restart: true
cap_add:
- NET_ADMIN
# - SYS_MODULE
networks:
- wireguard_network
ports:
- 51820:51820/udp
environment:
PUID: "2024"
PGID: "2024"
TZ: "Etc/UTC"
SERVERURL: "wireguard.kappeh.org"
SERVERPORT: "51820"
PEERS: "tetra"
PEERDNS: "auto"
# INTERNAL_SUBNET: "10.0.0.0"
# ALLOWEDIPS: "0.0.0.0/0"
PERSISTENTKEEPALIVE_PEERS: "all"
LOG_CONFS: "true"
volumes:
config:/config
# /lib/modules:/lib/modules
networks:
wireguard_network:
driver: bridge
volumes:
config:

16
init.sh Executable 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
}
}
# Make sure volumes have correct permissions
run chown wireguard:wireguard /config