Releases: GhostManager/Ghostwriter_CLI
Ghostwriter CLI v1.0.0-rc1
Summary
This is the first release candidate for v1.0.0. This release contains significant code refactoring and changes to make it simpler to install, update, and manage Ghostwriter. It is intended to be used with Ghostwriter v6.3.0 and the container images we have been publishing since v6.2.0.
Release highlights:
- Ghostwriter CLI does not require a local copy of Ghostwriter's codebase and can now be run from any location
- Files like your TLS certificates, config file, and Docker YML file will now reside in your system's XDG data directory
- The default mode will now use published images, making installs ~5 minutes
- The
updatecommand now pulls the latest published image
Please read the full list of changes below.
CHANGELOG
[1.0.0-rc1] - 2026-02-24
Added
- Added the spaCy model selection to the configuration options for Ghostwriter v6.3.0
- Added a settings/ directory in the Ghostwriter data directory for custom Django configuration files
- This directory allows users running published container images (prod mode) to customize Django settings without needing a local codebase
- The directory includes a comprehensive README.md with examples for common customizations like SSO and email configuration
- Settings files are loaded in alphabetical order, allowing number prefixes for controlled loading sequence (e.g.,
1-sso-config.py) - Only applies to the default production mode;
local-devandlocal-prodmodes should continue using the codebase's config/settings/production.d and local.d directories
- Added
migratecommand to help users transition from legacy Ghostwriter installations to the new XDG data directory structure- Migrates SSL certificates from ssl/ to the data directory's ssl/ subdirectory
- Migrates .env configuration file to the data directory
- Migrates custom Django settings from config/settings/production.d/ to the data directory's settings/ subdirectory
- Automatically detects and migrates Docker volumes from old installations
- Migrates PostgreSQL database (production_postgres_data)
- Migrates media files and user uploads (production_data)
- Migrates backup archives (production_postgres_data_backups)
- Static files are regenerated automatically (no migration needed)
- Creates safety backup before volume migration to prevent data loss
- Verifies file counts after volume migration to ensure successful copy
- Offers to clean up old volumes after successful migration to free disk space
- Prompts for confirmation before overwriting existing files
- Source files and volumes remain in place (copy, not move) for safe verification
- Run from your old Ghostwriter directory with:
ghostwriter-cli migrate
Changed
- Changed production installations to pull published container images
- Images are now pre-built to remove the potential for builds to fail due to issues with system resources, package managers, or DNS
- New images are published whenever we tag a new release of Ghostwriter
- It is no longer necessary to clone or maintain a local copy of the Ghostwriter code repository
- New installs now take ~5 minutes, depending on available resources and network speed, a decrease of at least 4x
- The
.envconfig file and Docker YAML files now live in the system's XDG data file directory to allow Ghostwriter CLI to work from any location- Linux: ~/.local/share/ghostwriter/
- macOS: ~/Library/Application Support/ghostwriter/
- Windows: %LOCALAPPDATA%/ghostwriter/
- Images are now pre-built to remove the potential for builds to fail due to issues with system resources, package managers, or DNS
- As part of the above change, Ghostwriter CLI now downloads the latest Docker YAML file from Ghostwriter's releases
- This ensures you always have the file that matches your release in case we make changes for a release
- Some commands now offer
--versionflag that you can to specify the version to which you wish to update - The
updatecommand now pulls the latest published container images - The
versioncommand now lists the following version information:- The local version of Ghostwriter CLI
- The latest release of Ghostwriter CLI available from GitHub releases
- The version of the local Ghostwriter container images
- The version of the latest published Ghostwriter container images
- Replaced the
--devflag with the--modeoption to specifyprod(default) orlocal-prodorlocal-dev- The
local-devandlocal-prodmodes work like the old modes by using a local copy of the Ghostwriter code repository
- The
Ghostwriter CLI v0.3.0
Summary
This release updates the Docker client and removes support for Docker Compose v1, which Docker deprecated in 2022.
CHANGELOG
[0.3.0] - 2025-11-14
Changed
- Updated the Docker client to the latest version to ensure continued compatibility with Docker v29 and later (Closes #23; PR #24)
- Docker v29 deprecated support for the Docker API v1.41 and earlier
- This does not impact most commands for containers (e.g.,
up,build), but a few utility commands (e.g.,healthcheck) used older API calls for container information
Removed
- Removed support for the deprecated
docker-composev1 script (Closes #16)- Docker has deprecated this version and marked it as end of life as of July 2022
- Some current (e.g.,
pg-upgrade) and future features of Ghostwriter CLI cannot support v1, so it is time to remove it to avoid confusion - All users should be updated to at least v2.x
- If someone needs v1 and absolutely cannot upgrade, support for v1 remains in older Ghostwriter CLI binaries available from past releases
Ghostwriter CLI v0.2.30
Summary
This release enhances the backup and restore commands.
CHANGELOG
[0.2.30] - 2025-11-10
Changed
- The
backupcommand now also backs up all media files in theghostwriter_*_datamedia volumes- Media backups are stored alongside the database backups in the
ghostwriter_*_postgres_data_backupsvolumes
- Media backups are stored alongside the database backups in the
- The
restorecommand now includes an optional--mediaflag to restore a media backup- Restoring media will wipe the media volume and then replace the wiped contents with the backup
- Both backup files will share the same timestamp in the filename for easy identification
Ghostwriter CLI v0.2.29
Summary
This release adds a migrate_totp command to support the upcoming Ghostwriter v6.1 release and adds Podman as a fallback for Docker.
CHANGELOG
[0.2.29] - 2025-10-23
Added
- Added a
migrate_totpcommand to migrate TOTP secrets following upgrades in Ghostwriter v6.1- This is necessary to support existing users' 2FA TOTP tokens after upgrading Django's
allauthmodule
- This is necessary to support existing users' 2FA TOTP tokens after upgrading Django's
- Added support for Podman as an alternative to Docker
- Podman must be configured to use Docker compatibility mode
Ghostwriter CLI v0.2.28
Summary
This release updates the logs and running commands to include the new Ghostwriter v6.0.0+ containers.
CHANGELOG
[0.2.28] - 2025-07-30
Added
- Added the
frontendandcollabcontainers to thelogsandrunningcommands for Ghostwriter v6.0.0+
Ghostwriter CLI v0.2.27
Summary
This release includes some minor changes and introduces POSTGRES_CONN_MAX_AGE to the environment variables for use with Ghostwriter v6.0.1 and later.
CHANGELOG
[0.2.27] - 2025-07-25
Added
- Added
POSTGRES_CONN_MAX_AGEto the environment variables for Ghostwriter v6.0.1+- This variable sets the maximum age of a PostgreSQL connection age in seconds (default: 0 seconds / disabled for ASGI)
Changed
- Updated date formatting to make build dates from the GitHub API better match those baked into the binaries
Ghostwriter CLI v0.2.26
Summary
This is a minor release that adds error handling for interactions with GitHub's API and enhances the functionality of the version command.
CHANGELOG
[0.2.26] - 2025-07-22
Changed
- The version command now pulls the latest stable release version information for comparison and provides a download link
Ghostwriter CLI v0.2.25
Summary
This is a small release to accompany the release of Ghostwriter v6. It adds some helpful command aliases and a tag cleanup command for Ghostwriter v6's upgraded back end for tagging objects.
CHANGELOG
[0.2.25] - 2025-07-21
Added
- Added a
tagcleanupcommand for Ghostwriter v6- This command runs the Django management commands to remove orphaned tags and perform tag deduplication
- Added alias commands for
containers upandcontainers downto make it easier to runupanddown
Ghostwriter CLI v0.2.24
Summary
This release adjusts the pg-upgrade command for Ghostwriter <=5 to 6 upgrades. It now works in situations where users have customized the Docker network name.
CHANGELOG
[0.2.24] - 2025-06-25
Changed
- Updated the
pg-upgradecommand to pull the Docker network name for cases where users have customized it
Ghostwriter CLI v0.2.23
Summary
This release adds some convenience commands for cleaning up environments.
CHANGELOG
[0.2.23] - 2025-01-31
Added
- Added a
--volumesflag to thecontainers downcommand that deletes the data volumes when the containers come down - Added an
uninstallcommand that removes the target environment by deleting containers, images, and volume data