9c4c1ff91ed79f9ffadc1395e1978f2cb1b9791c
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
bcard
Персональная визитная карточка mikhailkilin.ru.
Стек
- Rust + 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-пайплайн
Запуск локально
cargo run
Сервер стартует на http://0.0.0.0:3000.
Сборка и запуск через Docker
docker build -t bcard .
docker run -p 3000:3000 bcard
CI/CD и деплой
При пуше в репозиторий:
- Woodpecker CI собирает Docker-образ и пушит в
git.mikhailkilin.ru/killingdruid/bcard:latest - 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)
Description
Languages
HTML
56.3%
Rust
40.4%
Dockerfile
3.3%