Skip to content

Commit 84a352c

Browse files
committed
change path, make dockge optional
1 parent 2e1ee49 commit 84a352c

File tree

7 files changed

+71
-34
lines changed

7 files changed

+71
-34
lines changed

.github/workflows/build-ova.yml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
name: Build OVF Image
22

33
on:
4+
push:
5+
branches:
6+
- add-dockge
47
workflow_dispatch:
58
inputs:
69
core_tag:
@@ -63,9 +66,9 @@ jobs:
6366
env:
6467
PACKER_LOG: 1
6568
run: |
66-
CORE_TAG="${{ github.event.inputs.core_tag }}"
67-
PROXY_TAG="${{ github.event.inputs.proxy_tag }}"
68-
GATEWAY_TAG="${{ github.event.inputs.gateway_tag }}"
69+
CORE_TAG="${{ github.event.inputs.core_tag || '2.0.0-alpha2' }}"
70+
PROXY_TAG="${{ github.event.inputs.proxy_tag || '2.0.0-alpha2' }}"
71+
GATEWAY_TAG="${{ github.event.inputs.gateway_tag || '2.0.0-alpha2' }}"
6972
packer build \
7073
-var "iso_url=file://$PWD/ubuntu-24.04.4-live-server-amd64.iso" \
7174
-var "core_tag=${CORE_TAG}" \
@@ -78,9 +81,9 @@ jobs:
7881
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
7982
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
8083
AWS_DEFAULT_REGION: eu-central-1
81-
CORE_TAG: ${{ github.event.inputs.core_tag }}
82-
PROXY_TAG: ${{ github.event.inputs.proxy_tag }}
83-
GATEWAY_TAG: ${{ github.event.inputs.gateway_tag }}
84+
CORE_TAG: ${{ github.event.inputs.core_tag || '2.0.0-alpha2' }}
85+
PROXY_TAG: ${{ github.event.inputs.proxy_tag || '2.0.0-alpha2' }}
86+
GATEWAY_TAG: ${{ github.event.inputs.gateway_tag || '2.0.0-alpha2' }}
8487
run: |
8588
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
8689
FILENAME="defguard_${TIMESTAMP}_core-${CORE_TAG}_edge-${PROXY_TAG}_gateway-${GATEWAY_TAG}.ova"

ova/defguard.pkr.hcl

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -95,21 +95,21 @@ build {
9595
provisioner "shell" {
9696
inline = [
9797
"sudo bash /tmp/docker-setup.sh",
98-
"sudo mkdir -p /opt/defguard",
99-
"sudo mv /tmp/docker-compose.yaml /opt/defguard/docker-compose.yaml",
100-
"sudo mv /tmp/docker-compose.standalone.yaml /opt/defguard/docker-compose.standalone.yaml",
101-
"sudo mv /tmp/generate-env.sh /opt/defguard/generate-env.sh",
102-
"sudo chmod +x /opt/defguard/generate-env.sh",
103-
"sudo mv /tmp/start.sh /opt/defguard/start.sh",
104-
"sudo chmod +x /opt/defguard/start.sh",
105-
"echo 'DEFGUARD_CORE_TAG=${var.core_tag}' | sudo tee /opt/defguard/.image-tags > /dev/null",
106-
"echo 'DEFGUARD_PROXY_TAG=${var.proxy_tag}' | sudo tee -a /opt/defguard/.image-tags > /dev/null",
107-
"echo 'DEFGUARD_GATEWAY_TAG=${var.gateway_tag}' | sudo tee -a /opt/defguard/.image-tags > /dev/null",
98+
"sudo mkdir -p /opt/stacks/defguard",
99+
"sudo mv /tmp/docker-compose.yaml /opt/stacks/defguard/docker-compose.yaml",
100+
"sudo mv /tmp/docker-compose.standalone.yaml /opt/stacks/defguard/docker-compose.standalone.yaml",
101+
"sudo mv /tmp/generate-env.sh /opt/stacks/defguard/generate-env.sh",
102+
"sudo chmod +x /opt/stacks/defguard/generate-env.sh",
103+
"sudo mv /tmp/start.sh /opt/stacks/defguard/start.sh",
104+
"sudo chmod +x /opt/stacks/defguard/start.sh",
105+
"echo 'DEFGUARD_CORE_TAG=${var.core_tag}' | sudo tee /opt/stacks/defguard/.image-tags > /dev/null",
106+
"echo 'DEFGUARD_PROXY_TAG=${var.proxy_tag}' | sudo tee -a /opt/stacks/defguard/.image-tags > /dev/null",
107+
"echo 'DEFGUARD_GATEWAY_TAG=${var.gateway_tag}' | sudo tee -a /opt/stacks/defguard/.image-tags > /dev/null",
108108
"sudo mv /tmp/99-defguard.cfg /etc/cloud/cloud.cfg.d/99-defguard.cfg",
109109
"sudo mv /tmp/defguard-init.service /etc/systemd/system/defguard-init.service",
110110
"sudo systemctl daemon-reload",
111111
"sudo systemctl enable docker.service",
112-
"sudo chown -R ubuntu:ubuntu /opt/defguard",
112+
"sudo chown -R ubuntu:ubuntu /opt/stacks/defguard",
113113
"sudo rm -f /etc/netplan/00-installer-config.yaml /etc/netplan/50-cloud-init.yaml",
114114
"sudo cloud-init clean --logs",
115115
"sudo rm -f /etc/ssh/ssh_host_*",

ova/files/defguard-init.service

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ Wants=network-online.target docker.service
55

66
[Service]
77
Type=oneshot
8-
WorkingDirectory=/opt/defguard
8+
WorkingDirectory=/opt/stacks/defguard
99
StandardOutput=append:/var/log/defguard-startup.log
1010
StandardError=append:/var/log/defguard-startup.log
11-
ExecStart=/bin/bash /opt/defguard/generate-env.sh
12-
ExecStart=/bin/bash /opt/defguard/start.sh
11+
ExecStart=/bin/bash /opt/stacks/defguard/generate-env.sh
12+
ExecStart=/bin/bash /opt/stacks/defguard/start.sh

ova/files/docker-compose.standalone.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,15 @@ services:
5555
dockge:
5656
image: louislam/dockge:1
5757
restart: unless-stopped
58+
profiles: [dockge]
5859
ports:
5960
- "5001:5001"
6061
volumes:
6162
- /var/run/docker.sock:/var/run/docker.sock
6263
- ./.volumes/dockge:/app/data
63-
- /opt:/opt
64+
- /opt/stacks:/opt/stacks
6465
environment:
65-
DOCKGE_STACKS_DIR: /opt
66+
DOCKGE_STACKS_DIR: /opt/stacks
6667

6768
db:
6869
restart: always

ova/files/docker-compose.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,15 @@ services:
5656
dockge:
5757
image: louislam/dockge:1
5858
restart: unless-stopped
59+
profiles: [dockge]
5960
ports:
6061
- "5001:5001"
6162
volumes:
6263
- /var/run/docker.sock:/var/run/docker.sock
6364
- ./.volumes/dockge:/app/data
64-
- /opt:/opt
65+
- /opt/stacks:/opt/stacks
6566
environment:
66-
DOCKGE_STACKS_DIR: /opt
67+
DOCKGE_STACKS_DIR: /opt/stacks
6768

6869
db:
6970
restart: always

ova/files/generate-env.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/bin/bash
2-
# Generates /opt/defguard/.env with random secrets on first boot.
2+
# Generates /opt/stacks/defguard/.env with random secrets on first boot.
33
# If .env already exists (e.g. provided via cloud-init), this script does nothing.
44

5-
ENV_FILE="/opt/defguard/.env"
5+
ENV_FILE="/opt/stacks/defguard/.env"
66

77
if [ -f "$ENV_FILE" ]; then
88
echo "DefGuard: .env already exists, skipping generation."
@@ -17,8 +17,8 @@ DEFGUARD_GATEWAY_SECRET=$(openssl rand -hex 32)
1717
DEFGUARD_YUBIBRIDGE_SECRET=$(openssl rand -hex 32)
1818
DB_PASSWORD=$(openssl rand -hex 16)
1919

20-
if [ -f "/opt/defguard/.image-tags" ]; then
21-
source "/opt/defguard/.image-tags"
20+
if [ -f "/opt/stacks/defguard/.image-tags" ]; then
21+
source "/opt/stacks/defguard/.image-tags"
2222
fi
2323

2424
: "${DEFGUARD_CORE_TAG:?DEFGUARD_CORE_TAG is required}"

ova/files/start.sh

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,53 @@
11
#!/bin/bash
22
# Starts defguard via docker compose.
33
# Default (no active-profiles file): starts the full all-in-one stack.
4-
# To select specific components, create /opt/defguard/active-profiles with a
4+
# To select specific components, create /opt/stacks/defguard/active-profiles with a
55
# space or newline-separated list of profiles: core, gateway, edge
6+
#
7+
# To enable the Dockge docker management UI (port 5001), create the file:
8+
# /opt/stacks/defguard/enable-docker-management
9+
# Example cloud-init:
10+
# write_files:
11+
# - path: /opt/stacks/defguard/enable-docker-management
12+
# content: ""
613

7-
PROFILES_FILE="/opt/defguard/active-profiles"
14+
PROFILES_FILE="/opt/stacks/defguard/active-profiles"
15+
ENABLE_DOCKER_MGMT_FILE="/opt/stacks/defguard/enable-docker-management"
16+
17+
# Append the dockge profile if the opt-in flag file is present
18+
_maybe_add_dockge() {
19+
local profiles="$1"
20+
if [ -f "$ENABLE_DOCKER_MGMT_FILE" ]; then
21+
if [ -z "$profiles" ]; then
22+
echo "dockge"
23+
else
24+
echo "${profiles},dockge"
25+
fi
26+
else
27+
echo "$profiles"
28+
fi
29+
}
830

931
if [ ! -f "$PROFILES_FILE" ]; then
10-
docker compose -f /opt/defguard/docker-compose.yaml up -d
32+
COMPOSE_PROFILES=$(_maybe_add_dockge "")
33+
if [ -n "$COMPOSE_PROFILES" ]; then
34+
export COMPOSE_PROFILES
35+
fi
36+
docker compose -f /opt/stacks/defguard/docker-compose.yaml up -d
1137
else
1238
COMPOSE_PROFILES=$(tr '[:space:]' ',' < "$PROFILES_FILE" | tr -s ',' | sed 's/,$//')
1339
if [ -z "$COMPOSE_PROFILES" ]; then
1440
echo "Warning: $PROFILES_FILE is empty or contains only whitespace; starting full all-in-one stack."
15-
unset COMPOSE_PROFILES
16-
docker compose -f /opt/defguard/docker-compose.yaml up -d
41+
COMPOSE_PROFILES=$(_maybe_add_dockge "")
42+
if [ -n "$COMPOSE_PROFILES" ]; then
43+
export COMPOSE_PROFILES
44+
else
45+
unset COMPOSE_PROFILES
46+
fi
47+
docker compose -f /opt/stacks/defguard/docker-compose.yaml up -d
1748
else
49+
COMPOSE_PROFILES=$(_maybe_add_dockge "$COMPOSE_PROFILES")
1850
export COMPOSE_PROFILES
19-
docker compose -f /opt/defguard/docker-compose.standalone.yaml up -d
51+
docker compose -f /opt/stacks/defguard/docker-compose.standalone.yaml up -d
2052
fi
2153
fi

0 commit comments

Comments
 (0)