Customized Docker Images
This is a mono repository with many different customized Docker images. Please take a closer look at the detailed instructions for the individual image:
- Arcane
- Docker Ubuntu Ansible
- Formbricks
- Hoppscotch
- Infisical
- MCP Auth Proxy
- n8n
- n8n-mcp
- n8n Sandbox Service
- Nagios
- Open WebUI
- Outline
- Plane
- RabbitMQ
- SearXNG
- Semaphore
.
├── .devcontainer/ Dev Container configuration for this repository
├── .github/ GitHub Actions workflows, CODEOWNERS, Dependabot config
├── .mise/ mise hooks (e.g. postinstall)
├── contexts/ One directory per Docker image, each a self-contained build context
│ ├── arcane/
│ ├── docker-ubuntu-ansible/
│ ├── formbricks/
│ ├── hoppscotch/
│ ├── infisical/
│ ├── mcp-auth-proxy/
│ ├── n8n/
│ ├── n8n-mcp/
│ ├── n8n-sandbox-service/
│ ├── nagios/
│ ├── open-webui/
│ ├── outline/
│ ├── plane/
│ ├── rabbitmq/
│ ├── searxng/
│ ├── semaphore/
├── mise.toml Tool versions and tasks (managed via mise)
└── package.json Node.js tooling for repo-wide linting (commitlint, Prettier)
Each subdirectory under contexts/ is an independent Docker build context containing at
least a Dockerfile and a README.md describing the image. New images are added by
creating a new directory here.
This repository uses mise to manage tool versions (Node.js, pnpm) and devcontainers for a ready-to-use development environment.
Open the repository in VS Code and reopen it in the Dev Container
(Dev Containers: Reopen in Container). This automatically installs mise, the pinned
tool versions, and the Node.js dependencies via the postCreateCommand hook.
mise install
mise run installThis installs Node.js and pnpm at the pinned versions and installs the npm dependencies
used for linting (commitlint, prettier).
Commit messages must follow the Conventional Commits
specification (enforced by commitlint, see .commitlintrc.mjs) and are
linted on every pull request.
pnpm commitlint --from <base-sha> --to <head-sha>Repository files (*.js, *.json, *.md, *.yml, …) are formatted with
Prettier.
pnpm prettier --check .
pnpm prettier --write .- Create or edit the relevant directory under
contexts/<image>/. - Add/update a
README.mdin that directory describing the image, its build args, and usage. - Open a pull request. CI only builds the Docker image(s) whose context changed (see Continuous Integration below).
CI runs via .github/workflows/ci.yml on pull requests and on
pushes to main:
- Lint Commit Messages – validates commit messages on pull requests.
- Detect Changes – determines which files/
contexts/*directories changed to scope the following jobs. - Lint Prettier Files – runs Prettier
--checkon changed formattable files. - Build Docker Image (one job per image, e.g.
n8n) – builds the image for the changed context, tags it based on the upstream base image version and the commit SHA, and pushes it to the GitHub Container Registry (ghcr.io) on pushes tomain.
Dependencies (GitHub Actions, devcontainer features, npm packages, and each Docker image's base image/packages) are kept up to date automatically via Dependabot.
- Ownership of specific paths is defined in .github/CODEOWNERS.
- Please open a pull request against
main - CI must pass (commit lint, Prettier, and the Docker build for any changed image) before merging.