You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: update installation for PUID/PGID and add troubleshooting section
- Update Docker Compose files to default PUID/PGID to 1000
- Add note about SECURE_COOKIES for non-SSL access in README and project site
- Create dedicated Troubleshooting page in documentation site
- Synchronize permissions documentation across all platforms
For a containerized setup, you can use Docker. We provide two configurations: one for standard CPU usage and one optimized for NVIDIA GPUs (CUDA).
191
191
192
+
> [!IMPORTANT]
193
+
> **Permissions:** Ensure you set the `PUID` and `PGID` environment variables to your host user's UID and GID (typically `1000` on Linux) to avoid permission issues with the SQLite database. You can find your UID/GID by running `id` on your host.
194
+
>
195
+
> **HTTP vs HTTPS:** By default, Scriberr enables **Secure Cookies** in production. If you are accessing the app via plain HTTP (not HTTPS), you MUST set `SECURE_COOKIES=false` in your environment variables, otherwise you will encounter "Unable to load audio stream" errors.
196
+
192
197
#### Standard Deployment (CPU)
193
198
194
199
Use this configuration for running Scriberr on any machine without a dedicated NVIDIA GPU.
@@ -205,6 +210,8 @@ services:
205
210
- scriberr_data:/app/data # volume for data
206
211
- env_data:/app/whisperx-env # volume for models and python envs
207
212
environment:
213
+
- PUID=${PUID:-1000}
214
+
- PGID=${PGID:-1000}
208
215
- APP_ENV=production # DO NOT CHANGE THIS
209
216
# CORS: comma-separated list of allowed origins for production
210
217
# - ALLOWED_ORIGINS=https://your-domain.com
@@ -250,6 +257,8 @@ services:
250
257
environment:
251
258
- NVIDIA_VISIBLE_DEVICES=all
252
259
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
260
+
- PUID=${PUID:-1000}
261
+
- PGID=${PGID:-1000}
253
262
- APP_ENV=production # DO NOT CHANGE THIS
254
263
# CORS: comma-separated list of allowed origins for production
255
264
# - ALLOWED_ORIGINS=https://your-domain.com
@@ -279,6 +288,39 @@ The application needs to:
279
288
280
289
You will know the application is ready when you see the line: `msg="Scriberr is ready" url=http://0.0.0.0:8080`.
281
290
291
+
### Troubleshooting
292
+
293
+
#### 1. SQLite OOM Error (out of memory)
294
+
295
+
If you see an "out of memory (14)" error from SQLite (specifically `SQLITE_CANTOPEN`), it usually means a permissions issue. The database engine cannot create temporary files in the data directory.
296
+
297
+
You can fix this by setting the `PUID` and `PGID` in your `docker-compose.yml` to match your host user's UID and GID, or by manually changing the ownership of the mapped folders on your host:
298
+
299
+
```bash
300
+
# If you used a named volume (e.g., 'scriberr_scriberr_data'):
# If you mapped a specific host folder (e.g., ./scriberr_data):
304
+
sudo chown -R 1000:1000 ./scriberr_data
305
+
sudo chown -R 1000:1000 ./env_data
306
+
```
307
+
308
+
Replace `1000` with the value you set for `PUID`/`PGID` (default is `1000`).
309
+
310
+
#### 2. "Unable to load audio stream"
311
+
312
+
If the application loads but you cannot play or see the audio waveform (receiving "Unable to load audio stream"), this is often due to the **Secure Cookies** security flag.
313
+
314
+
By default, when `APP_ENV=production`, Scriberr enables `SECURE_COOKIES=true`. This prevents cookies from being sent over insecure (HTTP) connections.
315
+
316
+
**Solutions:**
317
+
-**Recommended:** Deploy Scriberr behind a Reverse Proxy (like Nginx, Caddy, or Traefik) and use SSL/TLS (HTTPS).
318
+
-**Alternative:** If you must access over plain HTTP, set the following environment variable in your `docker-compose.yml`:
For a containerized setup, you can use Docker. We provide two configurations: one for standard CPU usage and one optimized for NVIDIA GPUs (CUDA).
79
79
80
+
> **Permissions:** Ensure you set the `PUID` and `PGID` environment variables to your host user's UID and GID (typically `1000` on Linux) to avoid permission issues with the SQLite database. You can find your UID/GID by running `id` on your host.
81
+
>
82
+
> **HTTP vs HTTPS:** By default, Scriberr enables **Secure Cookies** in production. If you are accessing the app via plain HTTP (not HTTPS), you MUST set `SECURE_COOKIES=false` in your environment variables, otherwise you will encounter "Unable to load audio stream" errors.
83
+
80
84
### Standard Deployment (CPU)
81
85
82
86
Use this configuration for running Scriberr on any machine without a dedicated NVIDIA GPU.
@@ -93,6 +97,8 @@ services:
93
97
- scriberr_data:/app/data # volume for data
94
98
- env_data:/app/whisperx-env # volume for models and python envs
95
99
environment:
100
+
- PUID=${PUID:-1000}
101
+
- PGID=${PGID:-1000}
96
102
- APP_ENV=production # DO NOT CHANGE THIS
97
103
# CORS: comma-separated list of allowed origins for production
98
104
# - ALLOWED_ORIGINS=https://your-domain.com
@@ -138,6 +144,8 @@ services:
138
144
environment:
139
145
- NVIDIA_VISIBLE_DEVICES=all
140
146
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
147
+
- PUID=${PUID:-1000}
148
+
- PGID=${PGID:-1000}
141
149
- APP_ENV=production # DO NOT CHANGE THIS
142
150
# CORS: comma-separated list of allowed origins for production
Common issues and their solutions when setting up or running Scriberr.
4
+
5
+
## 1. SQLite OOM Error (out of memory)
6
+
7
+
If you see an "out of memory (14)" error from SQLite (specifically `SQLITE_CANTOPEN`), it usually means a permissions issue. The database engine cannot create temporary files in the data directory.
8
+
9
+
You can fix this by setting the `PUID` and `PGID` in your `docker-compose.yml` to match your host user's UID and GID, or by manually changing the ownership of the mapped folders on your host:
10
+
11
+
```bash
12
+
# If you used a named volume (e.g., 'scriberr_scriberr_data'):
# If you mapped a specific host folder (e.g., ./scriberr_data):
16
+
sudo chown -R 1000:1000 ./scriberr_data
17
+
sudo chown -R 1000:1000 ./env_data
18
+
```
19
+
20
+
Replace `10001` with the value you set for `PUID`/`PGID` (default is `1000`).
21
+
22
+
## 2. "Unable to load audio stream"
23
+
24
+
If the application loads but you cannot play or see the audio waveform (receiving "Unable to load audio stream"), this is often due to the **Secure Cookies** security flag.
25
+
26
+
By default, when `APP_ENV=production`, Scriberr enables `SECURE_COOKIES=true`. This prevents cookies from being sent over insecure (HTTP) connections.
27
+
28
+
### Solutions:
29
+
-**Recommended:** Deploy Scriberr behind a Reverse Proxy (like Nginx, Caddy, or Traefik) and use SSL/TLS (HTTPS).
30
+
-**Alternative:** If you must access over plain HTTP, set the following environment variable in your `docker-compose.yml`:
0 commit comments