malt666 commited on
Commit
94b3446
·
verified ·
1 Parent(s): 9adc675

Delete health.sh

Browse files
Files changed (1) hide show
  1. health.sh +0 -201
health.sh DELETED
@@ -1,201 +0,0 @@
1
- #!/bin/sh
2
-
3
- # Ensure we are in the correct directory
4
- cd /home/node/app
5
-
6
- # --- BEGIN: SillyTavern Runtime Setup (copied from original Dockerfile ENTRYPOINT) ---
7
-
8
- # Note: The git update logic from the original ENTRYPOINT is removed here as
9
- # .git directory is removed at the end of the build process in the Dockerfile.
10
-
11
- echo '--- Checking for CONFIG_YAML environment variable ---';
12
- # Ensure the CWD has correct permissions for writing config.yaml
13
- # mkdir -p ./config && chown node:node ./config; # Removed mkdir
14
- if [ -n "$CONFIG_YAML" ]; then
15
- echo 'Environment variable CONFIG_YAML found. Writing to ./config.yaml (root directory)...';
16
- # Write directly to ./config.yaml in the CWD
17
- printf '%s\n' "$CONFIG_YAML" > ./config.yaml && \
18
- chown node:node ./config.yaml && \
19
- echo 'Config written to ./config.yaml and permissions set successfully.';
20
- else
21
- echo 'Warning: Environment variable CONFIG_YAML is not set or empty. Attempting to copy default config...';
22
- # Copy default if ENV VAR is missing and the example exists
23
- if [ -f "./public/config.yaml.example" ]; then
24
- # Copy default to ./config.yaml in the CWD
25
- cp "./public/config.yaml.example" "./config.yaml" && \
26
- chown node:node ./config.yaml && \
27
- echo 'Copied default config to ./config.yaml';
28
- else
29
- echo 'Warning: Default config ./public/config.yaml.example not found.';
30
- fi;
31
- fi;
32
-
33
- # --- BEGIN: Configure Git default identity at Runtime (Needed for some plugins/extensions) ---
34
- echo '--- Configuring Git default user identity at runtime ---';
35
- git config --global user.name "SillyTavern Sync" && \
36
- git config --global user.email "[email protected]";
37
- echo '--- Git identity configured for runtime user. ---';
38
- # --- END: Configure Git default identity at Runtime ---
39
-
40
- # --- BEGIN: Dynamically Install Plugins at Runtime ---
41
- echo '--- Checking for PLUGINS environment variable ---';
42
- if [ -n "$PLUGINS" ]; then
43
- echo "*** Installing Plugins specified in PLUGINS environment variable: $PLUGINS ***" && \
44
- # Ensure plugins directory exists
45
- mkdir -p ./plugins && chown node:node ./plugins && \
46
- # Set comma as delimiter
47
- IFS=',' && \
48
- # Loop through each plugin URL
49
- for plugin_url in $PLUGINS; do \
50
- # Trim leading/trailing whitespace
51
- plugin_url=$(echo "$plugin_url" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') && \
52
- if [ -z "$plugin_url" ]; then continue; fi && \
53
- # Extract plugin name
54
- plugin_name_git=$(basename "$plugin_url") && \
55
- plugin_name=${plugin_name_git%.git} && \
56
- plugin_dir="./plugins/$plugin_name" && \
57
- echo "--- Installing plugin: $plugin_name from $plugin_url into $plugin_dir ---" && \
58
- # Remove existing dir if it exists
59
- rm -rf "$plugin_dir" && \
60
- # Clone the plugin (run as root, fix perms later)
61
- git clone --depth 1 "$plugin_url" "$plugin_dir" && \
62
- if [ -f "$plugin_dir/package.json" ]; then \
63
- echo "--- Installing dependencies for $plugin_name ---" && \
64
- (cd "$plugin_dir" && npm install --no-audit --no-fund --loglevel=error --no-progress --omit=dev --force && npm cache clean --force) || echo "WARN: Failed to install dependencies for $plugin_name"; \
65
- else \
66
- echo "--- No package.json found for $plugin_name, skipping dependency install. ---"; \
67
- fi || echo "WARN: Failed to clone $plugin_name from $plugin_url, skipping..."; \
68
- done && \
69
- # Reset IFS
70
- unset IFS && \
71
- # Fix permissions for plugins directory after installation
72
- echo "--- Setting permissions for plugins directory ---" && \
73
- chown -R node:node ./plugins && \
74
- echo "*** Plugin installation finished. ***"; \
75
- else
76
- echo 'PLUGINS environment variable is not set or empty, skipping runtime plugin installation.';
77
- fi;
78
- # --- END: Dynamically Install Plugins at Runtime ---
79
-
80
- # --- BEGIN: Auto-configure cloud-saves plugin if secrets provided ---
81
- echo '--- Checking for cloud-saves plugin auto-configuration ---';
82
- if [ -d "./plugins/cloud-saves" ] && [ -n "$REPO_URL" ] && [ -n "$GITHUB_TOKEN" ]; then
83
- echo "*** Auto-configuring cloud-saves plugin with provided secrets ***" && \
84
- config_file="./plugins/cloud-saves/config.json" && \
85
- echo "--- Creating config.json for cloud-saves plugin at $config_file ---" && \
86
- # Note: autoSaveEnabled is now defaulted to false
87
- printf '{\n "repo_url": "%s",\n "branch": "main",\n "username": "",\n "github_token": "%s",\n "display_name": "user",\n "is_authorized": true,\n "last_save": null,\n "current_save": null,\n "has_temp_stash": false,\n "autoSaveEnabled": false,\n "autoSaveInterval": %s,\n "autoSaveTargetTag": "%s"\n}\n' "$REPO_URL" "$GITHUB_TOKEN" "${AUTOSAVE_INTERVAL:-30}" "${AUTOSAVE_TARGET_TAG:-}" > "$config_file" && \
88
- chown node:node "$config_file" && \
89
- echo "*** cloud-saves plugin auto-configuration completed ***";
90
- else
91
- if [ ! -d "./plugins/cloud-saves" ]; then
92
- echo 'cloud-saves plugin not found, skipping auto-configuration.';
93
- elif [ -z "$REPO_URL" ] || [ -z "$GITHUB_TOKEN" ]; then
94
- echo 'REPO_URL or GITHUB_TOKEN environment variables not provided, skipping cloud-saves auto-configuration.';
95
- fi;
96
- fi;
97
- # --- END: Auto-configure cloud-saves plugin ---
98
-
99
- # --- BEGIN: Dynamically Install Extensions at Runtime ---
100
- echo '--- Checking for EXTENSIONS environment variable ---';
101
- if [ -n "$EXTENSIONS" ]; then
102
- echo "*** Installing Extensions specified in EXTENSIONS environment variable: $EXTENSIONS ***" && \
103
- # Determine extension installation directory based on INSTALL_FOR_ALL_USERS
104
- if [ "$INSTALL_FOR_ALL_USERS" = "true" ]; then
105
- ext_install_dir="./public/scripts/extensions/third-party" && \
106
- echo "--- Installing extensions for all users (system-wide) to $ext_install_dir ---";
107
- else
108
- ext_install_dir="./data/default-user/extensions" && \
109
- echo "--- Installing extensions for default user only to $ext_install_dir ---";
110
- fi && \
111
- # Ensure extension directory exists
112
- mkdir -p "$ext_install_dir" && chown node:node "$ext_install_dir" && \
113
- # Set comma as delimiter
114
- IFS=',' && \
115
- # Loop through each extension URL
116
- for ext_url in $EXTENSIONS; do \
117
- # Trim leading/trailing whitespace
118
- ext_url=$(echo "$ext_url" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') && \
119
- if [ -z "$ext_url" ]; then continue; fi && \
120
- # Extract extension name
121
- ext_name_git=$(basename "$ext_url") && \
122
- ext_name=${ext_name_git%.git} && \
123
- ext_dir="$ext_install_dir/$ext_name" && \
124
- echo "--- Installing extension: $ext_name from $ext_url into $ext_dir ---" && \
125
- # Remove existing dir if it exists
126
- rm -rf "$ext_dir" && \
127
- # Clone the extension (run as root, fix perms later)
128
- git clone --depth 1 "$ext_url" "$ext_dir" && \
129
- if [ -f "$ext_dir/package.json" ]; then \
130
- echo "--- Installing dependencies for extension $ext_name ---" && \
131
- (cd "$ext_dir" && npm install --no-audit --no-fund --loglevel=error --no-progress --omit=dev --force && npm cache clean --force) || echo "WARN: Failed to install dependencies for extension $ext_name"; \
132
- else \
133
- echo "--- No package.json found for extension $ext_name, skipping dependency install. ---"; \
134
- fi || echo "WARN: Failed to clone extension $ext_name from $ext_url, skipping..."; \
135
- done && \
136
- # Reset IFS
137
- unset IFS && \
138
- # Fix permissions for extensions directory after installation
139
- echo "--- Setting permissions for extensions directory ---" && \
140
- chown -R node:node "$ext_install_dir" && \
141
- echo "*** Extension installation finished. ***"; \
142
- else
143
- echo 'EXTENSIONS environment variable is not set or empty, skipping runtime extension installation.';
144
- fi;
145
- # --- END: Dynamically Install Extensions at Runtime ---
146
-
147
- # --- BEGIN: Cleanup before start ---
148
- # Remove .gitignore (already done in build, but safety check)
149
- echo 'Attempting final removal of .gitignore...'
150
- rm -f .gitignore
151
- if [ ! -e .gitignore ]; then
152
- echo '.gitignore successfully removed (if it existed).'
153
- else
154
- echo 'WARN: .gitignore could not be removed or reappeared.'
155
- fi;
156
- # Remove .git directory (already done in build, but safety check)
157
- echo 'Attempting final removal of .git directory...'
158
- rm -rf .git
159
- if [ ! -d .git ]; then
160
- echo '.git directory successfully removed (if it existed).'
161
- else
162
- echo 'WARN: .git directory could not be removed.'
163
- fi;
164
- # --- END: Cleanup before start ---
165
-
166
- echo 'Starting SillyTavern server in background...';
167
- # Execute node server directly in the background
168
- node server.js &
169
-
170
- # Get the PID of the background node process
171
- NODE_PID=$!
172
-
173
- echo "SillyTavern server started with PID $NODE_PID. Waiting for it to become responsive..."
174
-
175
- # Wait for SillyTavern to be responsive (Health Check)
176
- until curl --output /dev/null --silent --head --fail http://localhost:8000/; do
177
- echo "SillyTavern is still starting or not responsive on port 8000, waiting 5 seconds..."
178
- # Check if the node process is still running while waiting
179
- if ! kill -0 $NODE_PID 2>/dev/null; then
180
- echo "ERROR: SillyTavern node process (PID $NODE_PID) has exited unexpectedly."
181
- exit 1
182
- fi
183
- sleep 5
184
- done
185
-
186
- echo "SillyTavern started successfully! Beginning periodic keep-alive..."
187
-
188
- # Periodic Keep-Alive Loop
189
- while true; do
190
- echo "Sending keep-alive request to http://localhost:8000/"
191
- # Send a simple GET request. Don't care about the output.
192
- curl http://localhost:8000/ > /dev/null 2>&1
193
- echo "Keep-alive request sent. Sleeping for 30 minutes."
194
- sleep 1800 # Sleep for 30 minutes (30 * 60 = 1800 seconds)
195
- done
196
-
197
- # The script will ideally never reach here because of the infinite loop.
198
- # However, if the loop somehow breaks or the node process exits,
199
- # we might want to handle that. For now, the health check loop includes
200
- # a check if the node process is still alive.
201
- wait $NODE_PID # Wait for the node process if the loop ever exits (unlikely)