JSKIP_TO_CONTENT
  • Help
  • Glossary
  • Tickets
  • EcoSystem Status
Moko Consulting
  • Home
  • News
  • Services
  • Products
  • Jobs
You are here:
  1. Home
  2. Support
  3. MokoGIT
  4. Guides

Guides

CI/CD with Gitea Actions

Details
Category: Guides
  • Applicable Software: MokoGIT
  • Min Version Number: 02.08.00
  • Max Version Number: Not Applicable

What are Gitea Actions?

Gitea Actions is MokoGIT's built-in CI/CD system. It uses a workflow syntax compatible with GitHub Actions, so if you've used GitHub Actions before, you'll feel right at home. Moko Consulting manages the runner infrastructure, so you can focus on writing your pipelines.

Creating Your First Workflow

  1. In your repository, create the directory .mokogit/workflows/. (The legacy .gitea/workflows/ and .github/workflows/ paths are still recognized for compatibility.)
  2. Add a YAML file (e.g., ci.yaml) with your workflow definition.
  3. Commit and push — the workflow will run automatically.

Example: Basic CI Pipeline

name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Install dependencies
        run: npm ci

      - name: Run tests
        run: npm test

Workflow Triggers

Control when workflows run using the on key:

  • push — Run on commits pushed to specified branches.
  • pull_request — Run when PRs are opened, updated, or synchronized.
  • schedule — Run on a cron schedule (e.g., nightly builds).
  • workflow_dispatch — Manually trigger from the MokoGIT UI.

Secrets and Variables

Store sensitive values (API keys, deployment credentials) as repository secrets:

  1. Go to Settings → Actions → Secrets.
  2. Click Add Secret.
  3. Enter a Name and Value.

Reference secrets in your workflow:

steps:
  - name: Deploy
    run: ./deploy.sh
    env:
      API_KEY: ${{ secrets.API_KEY }}

Viewing Workflow Results

Check the Actions tab in your repository to see:

  • A list of all workflow runs with status (success, failure, in progress).
  • Detailed logs for each step.
  • Re-run options for failed workflows.

Common Use Cases

  • Automated testing — Run unit tests on every push or PR.
  • Build and package — Compile code and create release artifacts.
  • Deployment — Deploy to staging or production on merge to your release branch.
  • Linting — Check code style and formatting automatically.

The managed release pipeline

On MokoConsulting's own repositories, the shared CI/CD pipeline (distributed automatically by Sync Profiles) does the heavy lifting for you: a single tier-selecting deploy.yml builds and deploys to the right environment based on the branch, a universal auto-release.yml cuts stable releases, and a pre-release.yml publishes development-channel builds. Promotion follows the dev → rc → stable ladder. For the full picture, see MokoGIT: CI/CD & Release Pipeline and MokoGIT: Branch Model & Release Channels.

Runner Infrastructure

Moko Consulting manages the Gitea Actions runners for your MokoGIT instance. If you need custom runners (e.g., for specialized build environments or GPU workloads), contact our support team.

Last Updated: September 02, 2026
Hits: 69
  • mokogit
  • ci/cd
  • gitea actions
  • runners

Issues and Project Management

Details
Category: Guides
  • Applicable Software: MokoGIT
  • Min Version Number: 02.08.00
  • Max Version Number: Not Applicable

Using Issues

MokoGitea's built-in issue tracker helps you report bugs, request features, and manage tasks within each repository.

Creating an Issue

  1. Navigate to your repository and click the Issues tab.
  2. Click New Issue.
  3. Enter a descriptive Title and detailed Description (Markdown is supported).
  4. Optionally assign Labels, a Milestone, and an Assignee.
  5. Click Submit New Issue.

Labels

Labels help categorize issues (e.g., bug, enhancement, documentation). Create and manage labels under Issues → Labels. Use colors and descriptions to keep your team aligned.

Milestones

Milestones group related issues into a release or sprint. Create milestones under Issues → Milestones with a title, description, and optional due date. Track progress via the milestone's completion percentage.

Assigning Issues

Assign issues to team members to clarify ownership. You can assign multiple people to a single issue if collaboration is needed.

Project Boards

MokoGitea supports Kanban-style project boards for visual task management.

  1. Go to the Projects tab in your repository (or organization).
  2. Click New Project and give it a name.
  3. Add columns like To Do, In Progress, and Done.
  4. Drag and drop issues between columns as work progresses.

Linking Issues to Pull Requests

Reference an issue in a pull request or commit message using #issue-number (e.g., Fixes #42). When the pull request is merged, the linked issue will automatically close.

Tips

  • Use issue templates (stored in .gitea/ISSUE_TEMPLATE/) to standardize bug reports and feature requests.
  • Subscribe to issues to receive notifications about updates.
  • Use @mentions to notify specific team members in comments.
Last Updated: September 02, 2026
Hits: 85
  • mokogit

Matching repos to sync profiles by Makefile PLATFORM (applies_to)

Details
Category: Guides
  • Applicable Software: MokoGIT
  • Min Version Number: 02.10.00
  • Max Version Number: Not Applicable

Sync profiles decide which repositories a template's workflows and files get synced into. Traditionally a profile matches repos by their registered platform metadata. The new applies_to field adds a second, text-based way to match: it looks directly at each repo's root Makefile.

What applies_to does

applies_to is a list of regular expressions (one per line). At sync time, MokoGIT reads the candidate repo's root Makefile and checks each expression against it. If any line matches, the repo is a member of the profile.

This runs in addition to the normal platform match — the two are combined as a union:

A repo joins the profile if its platform metadata matches OR any applies_to expression matches its Makefile.

Because it only reads the Makefile, applies_to can match a repo that has no platform registered at all. You don't need to pre-register a platform or pass any “known platform” check — if the Makefile says PLATFORM = something, you can target it.

When to use it

Use applies_to when you want a profile to cover repos by what their Makefile declares, rather than by a registered platform. A common case: pulling in new or infrastructure repos that set PLATFORM=<x> in their Makefile before any platform entry exists for them.

How to match PLATFORM = <x>

Repos declare their platform in the Makefile, for example:

PLATFORM = go

The declaration can use =, :=, or ?=, with different spacing. To match all of those forms reliably, use this expression (replace <x> with your platform name):

(?m)^\s*PLATFORM\s*[:?]?=\s*<x>\b

What the pieces do:

  • (?m) — checks each line of the Makefile independently.
  • ^\s*PLATFORM — the line must begin with PLATFORM (so commented-out lines starting with # are skipped).
  • \s*[:?]?=\s* — accepts =, :=, and ?=, with any spaces around them.
  • \b — a word boundary, so PLATFORM=php won't accidentally match a profile looking for phpfpm (and vice-versa).

Worked example: match every PLATFORM=go repo

To make a profile include every repository whose Makefile declares Go as its platform:

# match any repo whose Makefile declares PLATFORM = go
(?m)^\s*PLATFORM\s*[:?]?=\s*go\b

Any repo with PLATFORM = go, PLATFORM:=go, or PLATFORM ?= go in its root Makefile is now included — even one with no Go platform registered — together with whatever the profile's platform selector already matched.

Comments

Lines that begin with # in the applies_to list are treated as comments and ignored, so you can label what each expression is for (as shown above).

Notes

  • Expressions are evaluated at sync-resolution time, against the Makefile on the repo's default branch. No build or checkout of other branches happens.
  • An empty or missing applies_to simply falls back to platform-only matching — existing profiles behave exactly as before.
Last Updated: September 02, 2026
Hits: 4
  • mokogit
  • sync profiles

MokoBackup MCP Server

Details
Category: Guides
  • Applicable Software: MokoGIT
  • Min Version Number: 02.09.00
  • Max Version Number: Not Applicable

MokoBackup is a Model Context Protocol (MCP) server that gives AI assistants and automation agents a single, consistent way to run and manage backups across your Dolibarr and Joomla environments. It ties together SSH-driven database and file backups, native Akeeba Backup control on Joomla sites, and MokoOnyxBackup — so one server can dump a MySQL database, archive site files, or trigger a full-site backup on demand. Every workspace scopes its own targets through a simple JSON config, keeping credentials and destinations tidy and per-project.

What it is

MokoBackup (@mokoconsulting/mcp-mokobackup) is an MCP server that exposes backup operations as callable tools for any MCP-aware client, such as Claude Code. Instead of memorizing shell commands or juggling site-specific procedures, an agent connects to the server and calls a small set of well-named tools to create, list, download, prune, and delete backups.

It supports several backup strategies through one server:

  • SSH backups — MySQL/PostgreSQL database dumps and tar.gz file archives created over SSH, pulled down to a local backup directory.
  • Akeeba Backup — drives Akeeba Backup on Joomla sites through the Joomla Web Services API (start, list, download, delete backups, and list profiles).
  • MokoOnyxBackup — the same lifecycle (start, list, download, delete, profiles, status) for MokoOnyxBackup on Joomla sites.
  • Dolibarr — reads a Dolibarr instance's conf.php over SSH and backs up the database, documents, and custom files.

Each workspace has its own configuration file listing the backup targets (sites/databases), so a single installed server can serve many projects without cross-contamination.

Install (npm)

MokoBackup is published to public npm under the @mokoconsulting scope. Install it globally:

npm install -g @mokoconsulting/mcp-mokobackup

Or run it on demand with npx (no global install required):

npx -y @mokoconsulting/mcp-mokobackup

Requirements: Node.js 20 or newer. Optionally, you can pull the package from the MokoGIT registry mirror by adding this scope-to-registry mapping to your .npmrc:

@mokoconsulting:registry=https://git.mokoconsulting.tech/api/packages/MokoConsulting/npm/

Configure

Register the server with your MCP client (for example, in a project or global .mcp.json). Point the BACKUP_MCP_CONFIG environment variable at the workspace's backup config file:

{
  "mcpServers": {
    "backup": {
      "command": "npx",
      "args": ["@mokoconsulting/mcp-mokobackup"],
      "env": {
        "BACKUP_MCP_CONFIG": ".backup-mcp.json"
      }
    }
  }
}

The config file defines a defaultTarget and a map of named targets. Each target specifies its type (mysql, akeeba, mokobackup, etc.), SSH connection details for SSH-based backups (sshHost, sshUser, sshKeyPath), database credentials, remote paths to archive, and a localBackupDir for downloaded backups. See config.example.json in the repository for a complete, working example.

Tooling

MokoBackup exposes its capabilities as discrete tools, grouped by backup strategy. Most tools accept an optional target argument to select which configured target to act on (defaulting to defaultTarget).

  • SSH backups — backup_database (dump a MySQL/PostgreSQL database over SSH), backup_files (archive remote directories to a local tar.gz), backup_list (list local backups with sizes and dates), backup_prune (delete local backups older than N days), backup_status (disk usage and last-backup summary), and backup_list_targets (list all configured targets).
  • Akeeba Backup (Joomla) — akeeba_backup (start a backup), akeeba_list (list backup records), akeeba_download (download an archive locally), akeeba_delete (delete a backup record), and akeeba_profiles (list backup profiles).
  • MokoOnyxBackup (Joomla) — mokobackup_start, mokobackup_list, mokobackup_download, mokobackup_delete, mokobackup_profiles, and mokobackup_status (latest backup status).
  • Dolibarr — dolibarr_backup (back up the database, documents, and custom files by reading conf.php over SSH) and dolibarr_conf (display Dolibarr database settings from conf.php, with passwords omitted).

Get help

Need a hand configuring targets or scheduling backups? Open a support ticket with MokoConsulting, or call us at (931) 279-6313.

Last Updated: September 02, 2026
Hits: 10
  • mokogit
  • mcp

MokoDreamHost MCP Server

Details
Category: Guides
  • Applicable Software: MokoGIT
  • Min Version Number: 02.09.00
  • Max Version Number: Not Applicable

The MokoConsulting DreamHost MCP server connects your AI assistant directly to the DreamHost API, so you can manage DNS records, domains, hosting accounts, MySQL databases, and email from a natural-language conversation. It runs locally over the Model Context Protocol (MCP), reads your DreamHost API key from a simple config file, and never requires exposing credentials to a third-party service. Whether you are adding an A record, auditing domain expiry dates, or listing hosting users, the server exposes focused, safe tools your agent can call on demand.

What it is

@mokoconsulting/mcp-mokodreamhost is a Model Context Protocol (MCP) server that wraps the DreamHost API. It lets any MCP-compatible AI client — such as Claude Code — read and manage DreamHost DNS records, hosted domains, domain registrations, hosting users, MySQL databases, and email addresses through a small set of purpose-built tools.

The server is written in TypeScript, communicates over stdio, and authenticates to DreamHost using a Web Panel API key that you control. It is part of the Moko Consulting infrastructure toolset and is licensed under GPL-3.0-or-later.

  • Package: @mokoconsulting/mcp-mokodreamhost
  • Version: 1.3.0
  • Binary: dreamhost-mcp
  • Requires: Node.js 20 or newer

Install (npm)

The package is published to public npm under the @mokoconsulting scope. Install it globally:

npm install -g @mokoconsulting/mcp-mokodreamhost

Or run it on demand without a global install using npx:

npx -y @mokoconsulting/mcp-mokodreamhost

Requires Node.js 20 or newer. Optionally, you can pull the package from the MokoGIT registry mirror by adding this scope-to-registry mapping to your .npmrc:

@mokoconsulting:registry=https://git.mokoconsulting.tech/api/packages/MokoConsulting/npm/

Configure

The server reads a DreamHost API key from ~/.dreamhost-mcp.json:

{
  "apiKey": "your-dreamhost-api-key"
}

Generate an API key at DreamHost Panel > Web Panel API. You can override the config file location with the DREAMHOST_MCP_CONFIG environment variable.

Register the server with your MCP client (for example, in .mcp.json):

{
  "mcpServers": {
    "dreamhost": {
      "command": "dreamhost-mcp",
      "env": {
        "DREAMHOST_MCP_CONFIG": "/path/to/config.json"
      }
    }
  }
}

The only environment variable the server reads is DREAMHOST_MCP_CONFIG (optional — it defaults to ~/.dreamhost-mcp.json). The env block above is optional and only needed if you keep your config somewhere other than the default path.

Tooling

The server exposes 13 tools across five areas:

  • DNS management — dreamhost_dns_list (list records, optional domain filter), dreamhost_dns_add (add A, AAAA, CNAME, MX, TXT, or SRV records), dreamhost_dns_remove (remove a record by exact match), and dreamhost_dns_check (check whether a record exists for a domain, with optional type filter).
  • Domains — dreamhost_domain_list (list all hosted domains) and dreamhost_domain_registrations (list registrations with expiry dates).
  • Hosting accounts — dreamhost_user_list (list hosting users and accounts) and dreamhost_account_status (account status and usage).
  • Databases — dreamhost_mysql_list (list MySQL databases) and dreamhost_mysql_users (list database users).
  • Email & account — dreamhost_mail_list (list email addresses, optional domain filter), dreamhost_api_commands (list the API commands available to your key), and dreamhost_rewards_referrals (list referral rewards).

Get help

Need a hand? Open a support ticket with Moko Consulting or call (931) 279-6313, and our team will help you get set up.

Last Updated: September 02, 2026
Hits: 12
  • mokogit
  • mcp
  1. MokoGIT MCP Server
  2. MokoGIT: Branch Model & Release Channels
  3. MokoGIT: Branch Protection & Organization Governance
  4. MokoGIT: Cascade Merge Rules

Support

  • Help
  • Glossary
  • Tickets
  • EcoSystem Status

🛎️ Prefer white‑glove setup?

Moko Consulting can provision the line, port your number, tune policies, and hand you a zero‑drama system with a one‑page runbook.
Find out More Here or Contact us to find out more!
📝 Open Support Ticket ☎️ Call ‪(931) 279-6313
mokogit 35 MokoWaaS 27 Onboarding 16 mcp 12 MokoOnyx 11 CMS 9 Marketing 5 Branding 5
  • Terms of Service
  • Privacy Policy
  • Privacy Information Request
Copyright © 2026 Moko Consulting. All Rights Reserved.
Powered by MokoSuite