26 Commits

Author SHA1 Message Date
Cohee e2d8c0200f Use custom init script instead of postinstall (#5384)
* Use custom init script instead of postinstall

* Revert changes to start scripts in src\electron

* feat: add --ignore-scripts flag to npm install commands in batch and shell scripts

* feat: add --ignore-scripts flag to npm ci in Dockerfile
2026-04-01 23:34:00 +03:00
Cohee 2c09d32b5b feat(docker): add robust healthcheck script (#5028)
* feat(docker): add robust healthcheck script

- Added `docker/healthcheck.cjs`: A standalone, dependency-free Node.js script for verifying server status.
- Updated `Dockerfile`: Added HEALTHCHECK instruction and script copy step.
- Features: Auto-detects port from env/config, handles IPv4/IPv6 fallback, auto-retries HTTPS on socket hangup, and sets custom User-Agent.

* feat(docker): new healthcheck with /api/health endpoint

- Added `GET /api/health` endpoint to `server.js` (unauthenticated) for lightweight status checks.
- Update `docker/healthcheck.cjs`: Rewrite
- Updated Error handle for `HEALTHCHECK`

* feat(docker): switch to heartbeat file healthcheck mechanism

- Replaced network-based check with a file-based heartbeat approach.
- Updated `src/command-line.js`: Added `heartbeatInterval` argument with explicit ENV override (`SILLYTAVERN_HEARTBEAT_INTERVAL`).
- Updated `src/server-main.js`: Added logic to write `heartbeat.json` to data directory at set intervals.
- Rewrote `docker/healthcheck.cjs`: Script now monitors the heartbeat file timestamp (zero dependencies, no config parsing required).
- Updated `Dockerfile`: Sets default heartbeat interval to 30s and ensures script availability.
- Updated `config.yaml`: Added `heartbeatInterval` defaulting to 0 (disabled) for non-Docker users.

* Fix variable names

* Convert to ESM, use serverDirectory variable

* Move file to /src

* fix: update heartbeat path to use global DATA_ROOT variable

* Pretty colors

* Move healthcheck to docker-compose.yml

* Comment fixed

* Even cleaner diff!

---------

Co-authored-by: Pavdig <101715456+Pavdig@users.noreply.github.com>
2026-01-18 16:36:37 +02:00
Pavdig 78651bdf56 Docker: Build Optimization and Enhanced Non-Root/Volumeless Support (#5024)
* docker: optimize build layers and enhance permission handling

- Pre-created hardcoded dirs in Dockerfile to support volumeless non-root runs.
- Enhanced slightly docker-entrypoint.sh with robust volume detection and safer chown logic.
- Included legacy 'backups' directory... again.
- Added dos2unix to install list.
- Updated .dockerignore
- Updated comments
- Smaller fixes

* fix(docker): removed unnecessary comment, and the... *sighs* backups dir, again

* Exclude DS_Store everywhere

* Exclude tests and all jsconfigs from docker images

* Exclude local plugins from docker builds

* fix(docker): backups are back... yay xD

* feat(docker): add robust healthcheck script

- Added `docker/healthcheck.cjs`: A standalone, dependency-free Node.js script for verifying server status.
- Updated `Dockerfile`: Added HEALTHCHECK instruction and script copy step.
- Features: Auto-detects port from env/config, handles IPv4/IPv6 fallback, auto-retries HTTPS on socket hangup, and sets custom User-Agent.

* Fix .dockerignore permission

* Revert "feat(docker): add robust healthcheck script"

This reverts commit fa634fb08884cdef9245a12271cb9a13b487365f.

---------

Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
2026-01-17 22:51:50 +02:00
Cohee cd3bed87c1 Merge pull request #4954 from SillyTavern/fix/docker-readonly
Update Dockerfile
2026-01-14 01:46:14 +02:00
Cohee 108d9fd74f docker-compose.yml improvements
1. Enable colorized console outputs
2. Set node environment to production
2025-03-01 21:16:28 +02:00
Cohee 55a295f827 Remove version specification from docker-compose.yml 2025-03-01 21:03:53 +02:00
Cohee a161118308 Execute postinstall in docker entrypoint 2025-03-01 21:03:48 +02:00
Cohee 380bd4ef4b refactor: update runWebpackCompiler to accept options object 2025-02-19 22:03:43 +02:00
Cohee 441e5c6f7e Move webpack cache to data root 2025-02-17 23:41:59 +02:00
Cohee dd273a7727 Docker build: Pre-compile public libraries 2025-01-03 12:30:55 +00:00
Cohee a867b2f85a Add global extensions Docker volume
Closes #3251
2025-01-01 19:13:47 +02:00
YaraTheNomad 01dec6466c Docker image now allows passing CLI args to node 2024-12-10 16:05:13 +00:00
Bronya-Rand c2592d7d86 chore: update docker file to auto-create the plugins folder. 2024-05-21 04:31:21 +01:00
Cohee d02f81974c Don't dump config to docker console 2024-04-13 19:27:52 +03:00
Cohee a3da248e3c Adapt Docker files to neo-server data migration 2024-04-12 01:32:40 +03:00
lucy 96883bae59 [fix] [docker-compose] persist third party extensions
currently the third party extensions will get wiped on each container restart and also there is no way to re-import extensions
2024-02-03 06:35:04 +01:00
valadaptive 0ee19d2ede Set background client-side 2023-12-15 05:45:21 -05:00
Cohee 0648da8d05 Docker fix 2023-11-26 00:41:28 +02:00
Cohee a7024a1d34 Migrate to config.yaml 2023-11-25 23:45:33 +02:00
Cohee 47a2734ad4 Merge pull request #1352 from chrisbennight/staging
update docker registry in compose file to github from dockerhub
2023-11-20 01:06:38 +02:00
Cohee c0a8186d37 Add assets and update symbolic links in Dockerfile and entrypoint script 2023-11-14 01:30:47 +02:00
Chris Bennight 690dc328c5 update docker registry in compose file to github from dockerhub 2023-11-12 18:52:34 -05:00
Xrystal df55a66153 Add preset settings to Docker public (#1204) 2023-10-01 16:36:52 +03:00
Daleth Darko 3fe2b21686 Update docker-compose.yml to keep images (#1153) 2023-09-19 21:36:47 +03:00
Cohee ed86e8de04 #765 Fix docker startup 2023-07-23 16:52:25 +03:00
Cohee edd41989fd Initial commit 2023-07-20 20:32:15 +03:00