feat: docsgpt up runs and manages DocsGPT on Docker

`docsgpt up` copies the standalone Compose file shipped with this package
version into the stack directory (~/.docsgpt/server by default), writes its
.env and starts the stack on the images of the same version. A first run
asks who should reach DocsGPT (this computer, the network with a token, or a
domain with HTTPS) and which model provider to use; flags answer the same
questions for scripts. Re-running keeps secrets and settings and moves the
image tag, and the database password is only generated for a new database.

Also: down, status, logs, token, open, env, upgrade (uv tool installs
upgrade themselves and run `up` again) and uninstall (keeps settings and
data unless --purge). The commands import no Flask, Celery or settings.

The wheel carries deployment/docker-compose-standalone.yaml as
docsgpt/deploy/docker-compose.yaml; the sdist includes the source file.
This commit is contained in:
Alex committed 2026-09-15 22:57:00 +01:00
1 parent ac06527a8d
commit aa0e4ea280
13 files changed
+1567 -3

No files matched your search

+7 -1
View File
@@ -194,8 +194,14 @@ exclude = [
"docsgpt/vectors/",
]
# `docsgpt up` runs the standalone Compose file of its own version. The file
# stays in deployment/ (the release asset and the curl instructions use it
# there); the wheel carries a copy inside the package.
[tool.hatch.build.targets.wheel.force-include]
"deployment/docker-compose-standalone.yaml" = "docsgpt/deploy/docker-compose.yaml"
[tool.hatch.build.targets.sdist]
include = ["/docsgpt"]
include = ["/docsgpt", "/deployment/docker-compose-standalone.yaml"]
artifacts = ["docsgpt/static/**"]
exclude = [
"docsgpt/Dockerfile",