Utoljára aktív 1763950566

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

Revízió 6f940d1969c3bfa3aba7172ec18db1b8b494261e

excalidash.sh Eredeti
1# excalidash.install: $app_domain $app_port $@
2excalidash.install(){
3
4# Config #
5app_name="excalidash" # App Name
6app_repo_url="https://github.com/ZimengXiong/ExcaliDash" # App Codebase
7app_version="latest"
8app_domain="${1:-"$app_name.$org_domain"}" # Unique app domain
9app_port="${2:-"3003"}" # App Port 6767
10db_port="$((app_port - 1))" # DB Port
11
12# Setup env #
13container_name="$app_name-$app_port"
14app_name_domain="$(echo $app_domain | tr "." "-")"
15app_path="/data/${app_name_domain}"
16data_path="$app_path/${app_name}_data"
17code_path="$app_path/$(basename $app_repo_url)"
18app_container_config="$code_path/docker-compose.yml"
19
20mkdir -p "$app_path"
21echo cd "$app_path"
22cd "$app_path"
23if [ ! $? == "0" ];then
24 err "Failed to cd \"$app_path\""
25 return 1
26fi
27
28# Install App #
29echo git clone "$app_repo_url"
30git clone "$app_repo_url"
31cd "$code_path"
32if [ ! $? == "0" ];then
33 err "Failed to cd \"$code_path\""
34 return 1
35fi
36
37# Create folder $data_path
38echo sudo mkdir -p "$data_path"
39sudo 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.
46tee "$app_container_config" > /dev/null <<EOF
47services:
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
101networks:
102 excalidash-network:
103 driver: bridge
104#volumes:
105 #backend-data:
106EOF
107
108echo cat ./docker-compose.yml
109cat ./docker-compose.yml
110
111# Run App. LIVE!
112echo Running $app_name container in the background.
113
114echo sudo docker-compose pull
115sudo docker-compose pull
116
117echo sudo docker-compose down
118sudo docker-compose down
119
120echo sudo docker-compose up -d
121sudo docker-compose up -d
122
123echo open http://$(host.ip):$app_port
124
125}
126# ---