No description
Find a file
2025-12-19 12:12:53 +00:00
.forgejo/workflows refactor(ci): use same builder for local and ci, remove multi arch 2025-12-02 23:03:45 +00:00
.github/workflows fix(ci): runner permissions and login 2025-12-08 10:49:03 +00:00
docs fix: super annoying bug related to copy tls certs 2025-12-10 10:58:17 +00:00
examples add(nextcloud): add the https mode to example 2025-12-09 21:18:02 +00:00
schemas update: reva version and overal version manifests 2025-12-01 22:00:09 +00:00
scripts add: more illegals 2025-12-19 12:12:53 +00:00
services add(nextcloud): internal CA bundle sync in entrypoint 2025-12-11 11:16:54 +00:00
tls/certificate-authority add(initial): made cernbox stack to work 2025-11-19 19:07:50 +00:00
.gitattributes add: attrs for *.noun files 2025-12-05 08:50:10 +00:00
.gitignore add: .milestones to ignore 2025-12-19 12:12:38 +00:00
.markdownlint.json add(initial): made cernbox stack to work 2025-11-19 19:07:50 +00:00
LICENSE.md add(initial): made cernbox stack to work 2025-11-19 19:07:50 +00:00
Makefile refactor: add dockypody single entry 2025-12-05 15:00:31 +00:00
README.md refactor: add dockypody single entry 2025-12-05 15:00:31 +00:00
todo.md add(initial): made cernbox stack to work 2025-11-19 19:07:50 +00:00

Open Cloud Mesh Containers

This repository hosts scripts and resources to build and publish container images for OCM services using DockyPody, a Nushell-based build system.

Quick Start

  1. Generate TLS certificates:

    make tls all
    
  2. Build a service:

    nu scripts/dockypody.nu build --service <service-name>
    

For complete setup instructions, see Getting Started Guide.

Key Features

  • Multi-platform builds - Build platform variants (e.g., debian, alpine) with shared configuration
  • Version management - Build multiple versions from manifests with automatic tagging
  • Dependency resolution - Automatic dependency building with correct build order
  • Cache optimization - Deterministic cache busting for efficient rebuilds
  • TLS management - Selective certificate copying for secure, minimal images
  • Local development - Use local folder sources for iterative development without committing changes

See Build System for complete feature documentation.

Local Development

For local development, you can use local filesystem directories as sources instead of Git repositories:

{
  "sources": {
    "reva": {
      "path": "../reva"  // Local development directory
    }
  }
}

Benefits:

  • Test changes without committing to Git
  • Iterate quickly on local modifications
  • Build with uncommitted code

Restrictions:

  • Development only - Local sources are automatically rejected in CI/production builds
  • Paths must be within the repository root (path traversal prevention)

For complete details, see Service Configuration - Local Folder Sources.

Documentation

For New Users

For Developers

For Service Authors

Reference Documentation

See Documentation Index for complete documentation listing.

Service Configuration

Services are defined in services/{service-name}.nuon:

{
  "name": "revad-base",
  "context": "services/revad-base",
  "dockerfile": "services/revad-base/Dockerfile",
  "sources": {
    "revad": {
      "url": "https://github.com/cs3org/reva",
      "ref": "v3.3.3"
    }
  }
}

See Service Configuration for complete documentation.

Workflows

CI/CD workflows are available for GitHub Actions and Forgejo Actions:

  • GitHub: .github/workflows/build-containers.yml
  • Forgejo: .forgejo/workflows/build-containers.yml

See CI/CD Workflows for workflow documentation (pending).

Conventions

  • Release builds: native runner architecture (linux/amd64 on GitHub-hosted runners)
  • Dev/Stage builds: linux/amd64 only, triggered by commit messages containing (dev-build) or (stage-build)
  • Registries: GHCR (ghcr.io) and Forgejo (domain from git origin)