No description
  • CSS 38.9%
  • Shell 33.6%
  • HTML 23.4%
  • Python 4.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-20 23:00:24 +02:00
docker Sync product templates to current CLI (framework editable in dev) 2026-09-20 23:00:24 +02:00
entrypoints feat: initial implementation 2026-07-29 22:14:42 +02:00
scripts fix: run the production profile in prod and require SECRET_KEY in .env.deploy 2026-08-15 18:08:33 +02:00
src fix: run the production profile in prod and require SECRET_KEY in .env.deploy 2026-08-15 18:08:33 +02:00
.gitignore fix: anchor the features ignore rule so docker/features stays versioned 2026-08-15 18:10:08 +02:00
LICENSE feat: initial implementation 2026-07-29 22:14:42 +02:00
package-lock.json feat: initial implementation 2026-07-29 22:14:42 +02:00
package.json feat: initial implementation 2026-07-29 22:14:42 +02:00
pyproject.toml chore: pin the features released this evening 2026-09-03 19:14:47 +02:00
README.md feat: initial implementation 2026-07-29 22:14:42 +02:00

egc_wiki

A web application built with SPLENT, derived from the openwiki_spl product line.

This repository is a thin shell. It declares which features the product installs (see pyproject.toml) and SPLENT composes, validates and runs them.

Run it locally

Your machine only needs Docker, Git and GNU Make. Python, Node and the database all live inside containers, so nothing else has to be installed.

1. Create a workspace

A SPLENT product is not standalone. It lives in a workspace folder next to the SPLENT tooling repositories.

mkdir splent_workspace && cd splent_workspace
git clone https://github.com/diverso-lab/splent_framework.git
git clone https://github.com/diverso-lab/splent_cli.git
git clone <url-of-this-repository>

Those three are all you need to run the product. The variability model this product derives from is not one of them: pyproject.toml records its DOI under [tool.splent.spl_model], so the CLI downloads it once from UVLHub and caches it under .splent_cache/spls/.

2. Check your Git config file

The CLI container mounts your ~/.gitconfig. If that file does not exist, Docker creates it as an empty directory and installing features fails later. Create it once as a real file.

rm -rf ~/.gitconfig && touch ~/.gitconfig
git config --global user.name "Your Name"
git config --global user.email "you@example.com"

3. Start the SPLENT CLI

cd splent_cli
make setup

That prepares the workspace .env, starts the CLI container and drops you inside it. Every splent command below runs in there. From the host you can also use docker exec splent_cli_container splent <command>.

4. Bring the product up

splent product:select egc_wiki
splent product:resolve        # install the features declared in pyproject.toml
splent product:derive --dev   # build images, run migrations, start the stack
splent db:seed -y             # load demo data, optional

The first derive downloads images and compiles assets, so give it a few minutes. When it finishes the app is served at http://localhost:5281, and splent product:port prints that URL again whenever you need it.

Everyday commands

Command What it does
splent product:up --dev Start the stack
splent product:down --dev Stop the stack
splent product:restart Restart the Flask app
splent product:logs Tail the container logs
splent product:console Python shell with the app loaded
splent feature:status Features installed in this product
splent db:migrate Generate and apply a migration
splent product:port Print the local URL

When something looks wrong

splent product:logs       # what the app actually says
splent doctor             # full workspace diagnosis

splent product:validate goes further and checks that the feature selection satisfies the variability model, downloading the model first if this machine has never seen it.

Documentation

Everything else, from the feature catalog and the UVL variability model to the full command reference and deployment, lives at docs.splent.io.