https://github.com/earentir/cmsmgmt
CMS Management
https://github.com/earentir/cmsmgmt
cms joomla wordpress
Last synced: 5 months ago
JSON representation
CMS Management
- Host: GitHub
- URL: https://github.com/earentir/cmsmgmt
- Owner: earentir
- License: gpl-2.0
- Created: 2024-02-24T21:53:10.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-11-21T22:08:46.000Z (7 months ago)
- Last Synced: 2025-11-22T00:10:50.492Z (7 months ago)
- Topics: cms, joomla, wordpress
- Language: Go
- Homepage:
- Size: 7.39 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cmsmgmt
Content Management System Management (cmsmgmt) is a command-line tool written in Go for inspecting and managing local installations of WordPress and Joomla. It can detect the CMS type in a given directory, extract the database configuration from the CMS configuration file, connect to the database, list user accounts, edit user details, and show general or version information.
## Features
- **Automatic CMS detection** – Point `cmsmgmt` at the root of your CMS installation using the `-p`/`--path` flag (or run it in the CMS directory), and it will determine whether you are working with WordPress or Joomla by looking for `wp-config.php` or `configuration.php`.
- **Database configuration parsing** – Reads your CMS configuration to determine connection details for MySQL/PostgreSQL (Joomla) or MySQL (WordPress), including host, port, username, password and database name.
- **List users** – Enumerates all user accounts in your CMS. For WordPress it reports the username, e-mail, role and other metadata; for Joomla it shows ID, username, name, email and roles.
- **Edit users** – Allows you to update user information (name and e-mail) for both WordPress and Joomla. Run `cmsmgmt users edit ` and follow the prompts.
- **CMS information** – Displays general information about the CMS and version number. The `info db` command prints the database name, database user and detected table prefixes. `info version` prints the WordPress or Joomla version (and release for Joomla).
- **Cross-database support** – Joomla installations can be backed by MySQL or PostgreSQL. WordPress support currently assumes MySQL.
## Installation
This project is written in Go. To build from source you need Go ≥ 1.24:
```bash
git clone https://github.com/earentir/cmsmgmt.git
cd cmsmgmt
go build -o cmsmgmt
```
Alternatively, you can install the latest version into your `$GOBIN` using:
```bash
go install github.com/earentir/cmsmgmt@latest
```
The resulting binary can be copied anywhere on your `PATH`.
## Usage
Run `cmsmgmt --help` to see top-level usage. The basic pattern is:
```bash
cmsmgmt [--path /path/to/cms] [subcommand] [flags]
```
If `--path` is omitted, `cmsmgmt` assumes the current working directory is the root of your CMS installation.
### List users
```bash
# From within the CMS root directory
cmsmgmt users list
# Or specify the CMS path explicitly
cmsmgmt --path /var/www/html users list
```
### Show CMS information
```bash
# Display DB information such as DB name, DB user and table prefixes
cmsmgmt info db
# Show CMS version (and release for Joomla)
cmsmgmt info version
```
### Edit a user
```bash
# Edit the user with username "admin"
cmsmgmt users edit admin
```
When you edit a user, `cmsmgmt` will connect to the database and update the user's name and e-mail address.
## Roadmap
Future enhancements may include:
- Changing passwords for Joomla and WordPress users.
- Additional CMS support beyond WordPress and Joomla.
- More detailed reporting on CMS configuration and security settings.
## Authors
- [@earentir](https://www.github.com/earentir)
## License
This project follows the Linux Kernel licence (GPL v2). If you require another open licence, please open an issue and we will try to accommodate it.