Install and safely update MJobs
MJobs is a local developer preview. Source installation is the supported route today; a green CI badge is not a full product/security acceptance claim.
Windows quick start
Requirements: Git, PowerShell and Docker Desktop in Linux-container mode. Docker must be running. You do not need a host Python or Node installation just to use the Docker application.
git clone https://github.com/MulattoTech/MJobs.git
cd MJobs
.\Start-MJobs.ps1
Open http://127.0.0.1:18700 for the fictional workspace. The startup command builds images, creates missing local configuration, runs migrations, and waits for readiness. Use -NoOpen to avoid opening a browser. Use -NoBuild only when the current source has already been built.
Personal workspace
.\Start-MJobs.ps1 -Personal
Open http://127.0.0.1:18701. This separate Compose project does not copy fictional records into personal data. Keep real profiles out of test fixtures. External submission remains off.
First useful walkthrough
- In the fictional workspace, load the fictional demo and open a job.
- Review the selected profile and its approved facts. Confirm that unapproved facts are not used.
- Inspect Sources, job provenance, matching and the pipeline workbench.
- Prepare a sample resume/cover letter and inspect document history.
- Exercise a dry run against the local mock ATS; use fictional confirmation only.
- Reload or restart the same workspace and inspect retained state.
The longer user-testing guide records capabilities and limitations. Missing controls or a failed step are defects to report, not permission to invent a successful result.
Existing installations and upgrades
Before pulling changes, create and validate a backup following LOCAL_BACKUP.md. Preserve the original .env and credential-encryption key. A newly generated key cannot decrypt credentials encrypted with the old one.
From a clean source checkout, fetch updates and advance only by fast-forward, then rebuild with the same workspace mode and project. Do not discard local changes to obtain a clean update.
git status --short --branch
git pull --ff-only
.\Start-MJobs.ps1 -Personal
Use the original startup mode instead of -Personal when updating the fictional workspace. Never switch modes against the same populated database. See workspace identity and modes.
Database startup retains the existing mjobs administrator for migrations and backup/restore. The API, scheduler and workers use a separate restricted login, provisioned after migrations for both fresh and populated databases. Its credential file lives in the project's runtime-database volume and is mounted read-only by runtime services. Rebuild the image when taking this change; an older image does not contain the provisioning command.
The runtime password is independently derived from the original protected administrator password and a versioned database/role context. Recovery can reconstruct a missing generated file without changing .env, rotating the administrator password or replacing the credential-encryption key. An existing runtime role with unexpected privileges or a mismatched credential stops provisioning; retain the original configuration and inspect private migration logs instead of resetting data. The backup restore command provisions the runtime login before verifying encrypted credentials and starting the application.
Troubleshooting
| Symptom | Safe response |
|---|---|
| Docker unavailable | Start Docker Desktop, select Linux containers and rerun startup. |
| Missing encryption key | Recover the original key/configuration; do not replace it against existing data. |
| Workspace mode mismatch | Read the mode runbook; retain the existing database. |
| Services not ready | Inspect Activity and the same project's Compose logs. Keep logs private if they contain applicant data. |
| Port occupied | Stop only your own conflicting instance or choose an unused port with the launcher's -Port option. |
| A browser journey fails | Record exact commit, steps and sanitized evidence in a bug report. |
Source builds are tested on Ubuntu CI; the user-facing launcher is PowerShell. Cross-platform installation promises beyond the executed acceptance evidence remain unverified.