Test CI/CD pipeline
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed

This commit is contained in:
2026-02-14 15:46:48 +00:00
parent 9c4c1ff91e
commit 33134c34bf

View File

@@ -1,56 +1,5 @@
# bcard
Персональная визитная карточка [mikhailkilin.ru](https://mikhailkilin.ru).
Персональная визитка https://mikhailkilin.ru
## Стек
- **Rust** + [Axum](https://github.com/tokio-rs/axum) — HTTP-сервер
- **Tokio** — асинхронный рантайм
- **Docker** — multi-stage сборка (builder на `rust:1.75`, финальный образ на `debian:bookworm-slim`)
- **Woodpecker CI** — автоматическая сборка и пуш Docker-образа в реестр `git.mikhailkilin.ru`
## Структура
```
.
├── src/
│ └── main.rs # HTTP-сервер, отдаёт HTML на /
├── k8s/
│ └── bcard.yaml # Kubernetes-манифест (Namespace, Deployment, Service, Ingress)
├── Cargo.toml # Зависимости: axum, tokio
├── Dockerfile # Multi-stage сборка
└── .woodpecker.yml # CI-пайплайн
```
## Запуск локально
```bash
cargo run
```
Сервер стартует на `http://0.0.0.0:3000`.
## Сборка и запуск через Docker
```bash
docker build -t bcard .
docker run -p 3000:3000 bcard
```
## CI/CD и деплой
При пуше в репозиторий:
1. **Woodpecker CI** собирает Docker-образ и пушит в `git.mikhailkilin.ru/killingdruid/bcard:latest`
2. **ArgoCD** подхватывает манифесты из `k8s/` и деплоит на кластер
Для работы пайплайна в настройках репозитория Woodpecker должны быть заданы секреты `docker_username` и `docker_password`.
## Инфраструктура
Сервис разворачивается на K3s-кластере (`k8s/bcard.yaml`):
- **Namespace:** `bcard`
- **Deployment:** 1 реплика, образ из Gitea-реестра
- **Service:** ClusterIP, порт 80 → 3000
- **Ingress:** `mikhailkilin.ru`, TLS через cert-manager (Let's Encrypt)
Rust/Axum web-сервер. CI/CD: Woodpecker (build) + ArgoCD (deploy).