Skip to content

Repository files navigation

Шаблон для проектов с DevPod

Open in GitHub Codespaces

github.devlicense

Этот репозиторий является отправной точкой для проектов при работе с которыми я использую DevPod

devpod up git@github.com:CosmDandy/template-devpod.git --id template-devpod-[...] --provider [...]
 "features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
},
 "mounts": [
"source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind"
],
"features": {
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}
},
"runArgs": [
"--privileged",
"--pid=host",
"--network=host"
],

Секреты: sops + direnv

В корне лежит .envrc с функцией use_sops. Она расшифровывает secrets.sops.yaml и раскладывает пары в переменные окружения — по одному обращению к хранилищу на файл, а не на каждое значение.

# 1. правила шифрования: кому доступен файл
cat > .sops.yaml <<'YAML'creation_rules: - path_regex: secrets\.sops\.yaml$ age: age1... # публичный ключ получателяYAML# 2. завести секреты (откроется редактор)
sops secrets.sops.yaml
# 3. разрешить direnv — один раз на каталог и после каждой правки .envrc
direnv allow

Дальше cd в каталог сам поднимает окружение, а watch_file перечитает его, когда secrets.sops.yaml изменится.

Зашифрованный файл коммитится — без ключа он бесполезен, и в .gitignore его нет намеренно.

Несколько окружений в одном репозитории

Вложенный .envrc подключает функции из корневого первой строкой:

# terraform/live/prod/.envrc
source_up
use_sops

Функции определяются в репозитории, а не в личном direnvrc

~/.config/direnv/direnvrc есть только на твоих машинах, а .envrc уезжают в git. Если объявить use_sops там, у всех остальных direnv оборвётся на command not found и не экспортирует ничего — а terraform после этого не упадёт, а пойдёт без TF_VAR_*. Поэтому определения живут здесь и опираются только на штатную stdlib direnv (has, log_error, direnv_load, watch_file).

Бейджи для нового проекта

Ряд собран так, чтобы читаться как одна система: левая половина у всех одна и та же серая (labelColor=21262d), цвет несёт справа. Живой статус оставляет семантику — зелёный при passing, красный при failing; статика красится в пурпур 7828dc и циан 00a8c8 из палитры og-картинки.

Всё идёт через shields.io намеренно: родные бейджи GitHub и Scorecard рисуются другими сервисами, и в одном ряду у них разная высота и разные скругления.

Ссылки вынесены в reference-style в конец файла — иначе строка с логотипом SLSA занимает больше тысячи символов прямо в тексте.

Замени REPO на имя репозитория и WORKFLOW на файл нужного workflow:

[![Open in GitHub Codespaces][codespaces]](https://codespaces.new/CosmDandy/REPO)[![build][build]](https://github.com/CosmDandy/REPO/actions/workflows/WORKFLOW)[![scorecard][scorecard]](https://scorecard.dev/viewer/?uri=github.com/CosmDandy/REPO)[![license][license]](LICENSE)[codespaces]: https://github.com/codespaces/badge.svg[build]: https://img.shields.io/github/actions/workflow/status/CosmDandy/REPO/WORKFLOW?branch=master&style=flat&label=build&labelColor=21262d&logo=githubactions&logoColor=8b949e[scorecard]: https://img.shields.io/ossf-scorecard/github.com/CosmDandy/REPO?style=flat&label=scorecard&labelColor=21262d[license]: https://img.shields.io/github/license/CosmDandy/REPO?style=flat&label=license&labelColor=21262d&color=484f58&logo=opensourceinitiative&logoColor=8b949e

Дополнительные, по смыслу проекта:

[ghcr.io]: https://img.shields.io/badge/ghcr.io-IMAGE-00a8c8?style=flat&labelColor=21262d&logo=docker&logoColor=8b949e[terraform]: https://img.shields.io/badge/terraform-1.x-7828dc?style=flat&labelColor=21262d&logo=terraform&logoColor=8b949e[cloudflare]: https://img.shields.io/badge/cloudflare-workers-00a8c8?style=flat&labelColor=21262d&logo=cloudflare&logoColor=8b949e

Логотипа OpenSSF в simple-icons нет, поэтому scorecard идёт без иконки. Логотип SLSA тоже отсутствует — он вшивается data-URI, готовую строку возьми из README любого репозитория с образами (wallcal, soniox-openai-shim).

About

Starting point for my projects: devcontainer, DevPod, sops, security gates

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages