Base plugin for Redmine, providing a shared engineering model on which domain extensions are built.
cosmoSys turns Redmine into a workspace where tasks, requirements, documents and their relations form a live model of the project. Teams can navigate that model as a tree, analyse it through diagrams and matrices, and turn it into professional documentation without leaving the shared workspace. It is free, open source, and has no per-seat limits.
Domain extensions such as cosmoSys-Req add specialised capabilities on top of this base.
This is not a new project created by this repository. It is a refactoring and
continuation of the earlier
cosmosys_rm Redmine plugin.
That line of development runs from its first commit on 28 November 2020
through the current 2026 refactoring. The repository history was deliberately
restarted to publish a clean software artifact; this does not erase or replace
the project's earlier history and authorship.
This repository contains an early alpha artifact. It is suitable for controlled evaluation and is not yet declared production-ready. You can install it and try it, but expect breaking changes.
cosmoSys requires a working Redmine installation. It is developed and validated against Redmine 7.0.1 (Rails 8). Earlier major versions are not supported. It is licensed under GPLv3 by cosmoBots.eu.
In addition to the normal Redmine runtime, cosmoSys needs:
- System packages:
graphviz(diagrams),librsvg2-binandlibreoffice-writer(report export to ODT/DOCX/PDF),libxml2-devandpkg-config(buildlibxml-ruby), andgit(dependency resolution). - Ruby gems (declared in this plugin's
Gemfile):libxml-ruby >= 6.0;- rspreadsheet, pinned by
revision, used for ODS export/import and materialisation. Without
RSPREADSHEET_PATH, Bundler resolves it from Git; you can also check out the pinned revision locally and pointRSPREADSHEET_PATHat it.
- Runtime gems installed into the plugin environment by the deployment
image:
andandandrubyzip.
Install cosmoSys into an existing Redmine instance the same way you install any Redmine plugin. You do not need Docker or the deployment repository for this.
-
Stop the web server (or run migrations while no requests are served).
-
Place the plugin in the plugins directory. From the Redmine root, either clone the repository or copy the plugin files so that
plugins/cosmosysexists:cd /path/to/redmine git clone https://github.com/cosmoBots/cosmoSys.git plugins/cosmosysA packaged release can be unpacked to
plugins/cosmosysinstead. Only the plugin directory itself is required; cosmoSys has no install-time dependency on this workspace. -
Install dependencies. Redmine resolves plugins from its own
Gemfile. cosmoSys' gems must be available to the Redmine bundle, so run from the Redmine root:bundle install
If Bundler cannot read this plugin's
Gemfile(for example because it uses theRSPREADSHEET_PATHform), install the gems explicitly in the Redmine environment:gem install andand rubyzip libxml-ruby
-
Run the plugin migrations. cosmoSys extends the Redmine schema with its own tables and columns. From the Redmine root:
RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=cosmosysFor a development or test environment, set
RAILS_ENV=development(ortest) accordingly. Migrations001–009are sealed by releases through 0.1.6. Migration009adds the snapshot wiki-page count only if the column is absent, so it also repairs databases where an earlier 0.1.5 build already added it. An upgrade from an earlier release migrates through the latest available migration. -
Normalise item query names (recommended). cosmoSys sets the visible domain vocabulary to
item/items(andítem/ítemsin Spanish) and normalises the persisted names of public queries that Redmine installs. After migrating, run its normalisation script once from the Redmine root:RAILS_ENV=production bundle exec rails runner \ plugins/cosmosys/scripts/normalize_item_query_names.rbThis matches the behaviour of the reference bootstrap (see
scripts/bootstrap_redmine.shin the workspace). You can skip it if you prefer Redmine's default issue vocabulary, but the plugin's own data and report labels then stay inconsistent with the visible item terms. -
Restart Redmine so the plugin is loaded, then open the administration screen to see the cosmoSys entries (item kinds, templates, and visual identity) and confirm the plugin is listed.
To update cosmoSys in place:
cd /path/to/redmine
git -C plugins/cosmosys fetch
git -C plugins/cosmosys checkout <new-tag-or-sha>
RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=cosmosys
# restart RedmineThe migration base is developed fast and the project is still in alpha: the schema is not yet backward-compatible by design, so back up the database before upgrading.
For a reproducible Docker installation, use the separate
cosmoSys_deploy repository.
It defines the Redmine image, pins compatible cosmoSys revisions, runs the
migrations and bootstrap, and provides health checks, backups and update/restore
scripts. You do not need to clone or install this plugin separately.
Clone the deployment repository, create its environment file and set the required database, Redmine secret and initial administrator credentials as described in its README:
git clone https://github.com/cosmoBots/cosmoSys_deploy.git
cd cosmoSys_deploy
cp .env.example .env
# Edit .env and replace the required example credentials.To run Redmine with cosmoSys only:
docker compose -f compose.yml build
docker compose -f compose.yml up -dThe deployment repository also provides a Requirements variant with
cosmoSys-Req. Its full setup, configuration, upgrade and backup instructions
are maintained in cosmoSys_deploy/README.md.
For a manual Compose start, use both files:
docker compose -f compose.yml -f compose.requirements.yml build
docker compose -f compose.yml -f compose.requirements.yml up -dThe canonical repository for this project is github.com/cosmoBots/cosmoSys. Forks and mirrors are welcome under the terms of the GPLv3, but they are not maintained by cosmoBots.eu and may diverge from this source.
- Contact: txinto@elporis.com
- Licence: GNU General Public License version 3; see
LICENSE.