summaryrefslogtreecommitdiff
path: root/start_container.sh
blob: bf1c167298d465780134db344b4c193896769148 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/bash
set -e

# Load config
source "$(dirname "$0")/config.env"

# Create network if not exists
if ! podman network exists ${NETWORK}; then
    echo "Creating network: ${NETWORK} (subnet: ${PRIVATE_SUBNET})"
    podman network create --subnet=${PRIVATE_SUBNET} ${NETWORK}
else
    echo "Network exists: ${NETWORK}"
fi

# Stop existing container if running
podman stop ${CONTAINER_NAME} 2>/dev/null || true
podman rm ${CONTAINER_NAME} 2>/dev/null || true
ip route del ${PUBLIC_IP}/32 2>/dev/null || true

# Run container
podman run -d \
    --name ${CONTAINER_NAME} \
    --network ${NETWORK} \
    --ip ${PRIVATE_IP} \
    --cap-add=NET_ADMIN \
    --env-file "$(dirname "$0")/config.env" \
    -v ${CONTAINER_NAME}_data:/data \
    -v /git:/git \
    localhost/cgit-caddy

# Setup public IP
sleep 2
IFACE=$(podman exec ${CONTAINER_NAME} sh -c "ip -o link | grep -v lo | head -1 | cut -d: -f2 | tr -d ' ' | cut -d@ -f1")
podman exec ${CONTAINER_NAME} ip addr add ${PUBLIC_IP}/32 dev ${IFACE}
ip route add ${PUBLIC_IP}/32 via ${PRIVATE_IP}

echo "Running at https://${DOMAIN}/"