1
1
#! /usr/bin/env bash
2
2
set -Eeuo pipefail
3
3
4
+ info () { printf " %b%s%b" " \E[1;34m❯ \E[1;36m" " ${1:- } " " \E[0m\n" ; }
5
+ error () { printf " %b%s%b" " \E[1;31m❯ " " ERROR: ${1:- } " " \E[0m\n" >&2 ; }
6
+ warn () { printf " %b%s%b" " \E[1;31m❯ " " Warning: ${1:- } " " \E[0m\n" >&2 ; }
7
+
8
+ trap ' error "Status $? while: $BASH_COMMAND (line $LINENO/$BASH_LINENO)"' ERR
9
+
10
+ [ ! -f " /run/entry.sh" ] && error " Script must run inside Docker container!" && exit 11
11
+ [ " $( id -u) " -ne " 0" ] && error " Script must be executed with root privileges." && exit 12
12
+
13
+ echo " ❯ Starting umbrelOS for Docker v$( < /run/version) ..."
14
+ echo " ❯ For support visit https://github.com/dockur/umbrel/issues"
15
+
4
16
if [ ! -S /var/run/docker.sock ]; then
5
- echo " ERROR: Docker socket is missing? Please bind /var/run/docker.sock in your compose file." && exit 13
17
+ error " Docker socket is missing? Please bind /var/run/docker.sock in your compose file." && exit 13
6
18
fi
7
19
8
20
if ! docker network inspect umbrel_main_network & > /dev/null; then
9
21
if ! docker network create --driver=bridge --subnet=" 10.21.0.0/16" umbrel_main_network > /dev/null; then
10
- echo " ERROR: Failed to create network 'umbrel_main_network'!" && exit 14
22
+ error " Failed to create network 'umbrel_main_network'!" && exit 14
11
23
fi
12
24
if ! docker network inspect umbrel_main_network & > /dev/null; then
13
- echo " ERROR: Network 'umbrel_main_network' does not exist?" && exit 15
25
+ error " Network 'umbrel_main_network' does not exist?" && exit 15
14
26
fi
15
27
fi
16
28
17
29
target=$( hostname)
18
30
19
31
if ! docker inspect " $target " & > /dev/null; then
20
- echo " ERROR: Failed to find a container with name '$target '!" && exit 16
32
+ error " Failed to find a container with name '$target '!" && exit 16
21
33
fi
22
34
23
35
resp=$( docker inspect " $target " )
24
36
network=$( echo " $resp " | jq -r ' .[0].NetworkSettings.Networks["umbrel_main_network"]' )
25
37
26
38
if [ -z " $network " ] || [[ " $network " == " null" ]]; then
27
39
if ! docker network connect umbrel_main_network " $target " ; then
28
- echo " ERROR: Failed to connect container to network!" && exit 17
40
+ error " Failed to connect container to network!" && exit 17
29
41
fi
30
42
fi
31
43
32
44
mount=$( echo " $resp " | jq -r ' .[0].Mounts[] | select(.Destination == "/data").Source' )
33
45
34
46
if [ -z " $mount " ] || [[ " $mount " == " null" ]] || [ ! -d " /data" ]; then
35
- echo " ERROR: You did not bind the /data folder!" && exit 18
47
+ error " You did not bind the /data folder!" && exit 18
36
48
fi
37
49
38
50
# Create directories
@@ -46,7 +58,7 @@ if [[ "$mount" == *":\\"* ]]; then
46
58
fi
47
59
48
60
if [[ " $mount " != " /" * ]]; then
49
- echo " ERROR: Please bind the /data folder to an absolute path!" && exit 19
61
+ error " Please bind the /data folder to an absolute path!" && exit 19
50
62
fi
51
63
52
64
# Mirror external folder to local filesystem
0 commit comments