最終更新 1763950566

A self hosted dashboard and organizer for Excalidraw with live collaboration.

Z revised this gist 1763950566. Go to revision

No changes

Z revised this gist 1763950200. Go to revision

1 file changed, 2 insertions, 3 deletions

excalidash.sh

@@ -1,4 +1,4 @@
1 - # excalidash.install: $app_domain $app_port $@
1 + # excalidash.install: $app_domain $app_port
2 2 excalidash.install(){
3 3
4 4 # Config #
@@ -6,8 +6,7 @@ app_name="excalidash" # App Name
6 6 app_repo_url="https://github.com/ZimengXiong/ExcaliDash" # App Codebase
7 7 app_version="latest"
8 8 app_domain="${1:-"$app_name.$org_domain"}" # Unique app domain
9 - app_port="${2:-"3003"}" # App Port 6767
10 - db_port="$((app_port - 1))" # DB Port
9 + app_port="${2:-"3003"}" # App Port
11 10
12 11 # Setup env #
13 12 container_name="$app_name-$app_port"

Z revised this gist 1763950146. Go to revision

No changes

Z revised this gist 1763950086. Go to revision

1 file changed, 126 insertions

excalidash.sh(file created)

@@ -0,0 +1,126 @@
1 + # excalidash.install: $app_domain $app_port $@
2 + excalidash.install(){
3 +
4 + # Config #
5 + app_name="excalidash" # App Name
6 + app_repo_url="https://github.com/ZimengXiong/ExcaliDash" # App Codebase
7 + app_version="latest"
8 + app_domain="${1:-"$app_name.$org_domain"}" # Unique app domain
9 + app_port="${2:-"3003"}" # App Port 6767
10 + db_port="$((app_port - 1))" # DB Port
11 +
12 + # Setup env #
13 + container_name="$app_name-$app_port"
14 + app_name_domain="$(echo $app_domain | tr "." "-")"
15 + app_path="/data/${app_name_domain}"
16 + data_path="$app_path/${app_name}_data"
17 + code_path="$app_path/$(basename $app_repo_url)"
18 + app_container_config="$code_path/docker-compose.yml"
19 +
20 + mkdir -p "$app_path"
21 + echo cd "$app_path"
22 + cd "$app_path"
23 + if [ ! $? == "0" ];then
24 + err "Failed to cd \"$app_path\""
25 + return 1
26 + fi
27 +
28 + # Install App #
29 + echo git clone "$app_repo_url"
30 + git clone "$app_repo_url"
31 + cd "$code_path"
32 + if [ ! $? == "0" ];then
33 + err "Failed to cd \"$code_path\""
34 + return 1
35 + fi
36 +
37 + # Create folder $data_path
38 + echo sudo mkdir -p "$data_path"
39 + sudo mkdir -p "$data_path"
40 +
41 + # Set permissions $data_path
42 + #echo sudo chown -R 1000:1000 "$data_path"
43 + #sudo chown -R 1000:1000 "$data_path"
44 +
45 + # Contain App. Write docker-compose config.
46 + tee "$app_container_config" > /dev/null <<EOF
47 + services:
48 + backend:
49 + build:
50 + context: ./backend
51 + dockerfile: Dockerfile
52 + container_name: excalidash-backend
53 + environment:
54 + - DATABASE_URL=file:/app/prisma/dev.db
55 + - PORT=8000
56 + - NODE_ENV=production
57 + volumes:
58 + - "$data_path/backend-data:/app/prisma"
59 + networks:
60 + - excalidash-network
61 + restart: unless-stopped
62 + healthcheck:
63 + test:
64 + [
65 + "CMD",
66 + "node",
67 + "-e",
68 + "require('http').get('http://localhost:8000/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1))",
69 + ]
70 + interval: 30s
71 + timeout: 10s
72 + retries: 3
73 + frontend:
74 + container_name: $container_name
75 + #container_name: excalidash-frontend
76 + #image: "$app_name-$app_version"
77 + build:
78 + context: .
79 + dockerfile: frontend/Dockerfile
80 + ports:
81 + - "$app_port:80"
82 + depends_on:
83 + - backend
84 + networks:
85 + - excalidash-network
86 + restart: unless-stopped
87 + healthcheck:
88 + test:
89 + [
90 + "CMD",
91 + "wget",
92 + "--quiet",
93 + "--tries=1",
94 + "--spider",
95 + "http://localhost:80",
96 + ]
97 + interval: 30s
98 + timeout: 10s
99 + retries: 3
100 +
101 + networks:
102 + excalidash-network:
103 + driver: bridge
104 + #volumes:
105 + #backend-data:
106 + EOF
107 +
108 + echo cat ./docker-compose.yml
109 + cat ./docker-compose.yml
110 +
111 + # Run App. LIVE!
112 + echo Running $app_name container in the background.
113 +
114 + echo sudo docker-compose pull
115 + sudo docker-compose pull
116 +
117 + echo sudo docker-compose down
118 + sudo docker-compose down
119 +
120 + echo sudo docker-compose up -d
121 + sudo docker-compose up -d
122 +
123 + echo open http://$(host.ip):$app_port
124 +
125 + }
126 + # ---
Newer Older