Trộm chó hahaha

This commit is contained in:
2026-07-08 13:53:01 +07:00
parent 5dbc679e16
commit 322f06d77e
+166 -92
View File
@@ -1,112 +1,186 @@
# Vitastor
# tromcho.net
[Читать на русском](README-ru.md)
Repository này chứa toàn bộ source code của website **tromcho.net**.
## The Idea
## Giới thiệu
Make Clustered Block Storage Fast Again.
`tromcho.net` là mã nguồn website được tổ chức để phục vụ phát triển, triển khai và vận hành theo quy trình chuẩn trên GitHub.
README này đóng vai trò tài liệu khởi đầu cho lập trình viên, DevOps engineer và cộng tác viên khi tiếp cận repository.
Vitastor is a distributed block, file and object SDS, direct replacement of Ceph RBD, CephFS and RGW,
and also internal SDS's of public clouds. However, in contrast to them, Vitastor is fast
and simple at the same time. The only thing is it's slightly young :-).
## Mục tiêu repository
Vitastor is architecturally similar to Ceph which means strong consistency,
primary-replication, symmetric clustering and automatic data distribution over any
number of drives of any size with configurable redundancy (replication or erasure codes/XOR).
- Quản lý tập trung toàn bộ source code của website.
- Chuẩn hóa quy trình phát triển, review và triển khai.
- Tạo nền tảng rõ ràng cho việc CI/CD, kiểm thử và vận hành production.
- Hỗ trợ onboarding nhanh cho thành viên mới.
Vitastor targets primarily SSD and SSD+HDD clusters with at least 10 Gbit/s network,
supports TCP and RDMA and may achieve 4 KB read and write latency as low as ~0.1 ms
with proper hardware which is ~10 times faster than other popular SDS's like Ceph
or internal systems of public clouds.
## Cấu trúc thư mục đề xuất
Vitastor supports QEMU, UBLK, NBD, NFS protocols, OpenStack, OpenNebula, Proxmox, Kubernetes drivers.
More drivers may be created easily.
```text
.
├── app/ # Source code ứng dụng chính
├── public/ # Static files, images, favicon, robots.txt
├── config/ # Cấu hình môi trường, app, service integration
├── database/ # Migration, seed, schema
├── tests/ # Unit test, integration test, e2e test
├── scripts/ # Script hỗ trợ build, deploy, backup, maintenance
├── docs/ # Tài liệu kỹ thuật, kiến trúc, quy trình
├── .github/ # GitHub Actions, issue template, PR template
├── Dockerfile # Build image ứng dụng
├── docker-compose.yml # Chạy local/dev bằng container
├── .env.example # Biến môi trường mẫu
└── README.md
```
Read more details in the documentation. You can start from here: [Quick Start](docs/intro/quickstart.en.md).
> Cấu trúc thực tế có thể thay đổi theo framework đang sử dụng.
## Talks and presentations
## Yêu cầu môi trường
- KuberConf'2025: [video](https://vitastor.io/presentation/kuberconf.webm)
- Highload'2025: [video](https://vitastor.io/presentation/hl2025/hl2025.webm),
[youtube](https://www.youtube.com/watch?v=0R8MLjFtz7g), presentation
([in Russian](https://vitastor.io/presentation/hl2025/), [in English](https://vitastor.io/presentation/hl2025/en.html))
- Highload'2022: presentation ([in Russian](https://vitastor.io/presentation/highload/highload.html)),
[video](https://vitastor.io/presentation/highload/talk.webm)
- DevOpsConf'2021: presentation ([in Russian](https://vitastor.io/presentation/devopsconf/devopsconf.html),
[in English](https://vitastor.io/presentation/devopsconf/devopsconf_en.html)),
[video](https://vitastor.io/presentation/devopsconf/talk.webm)
Tùy theo stack công nghệ của website, môi trường phát triển nên có:
## Documentation
- Git
- Docker và Docker Compose
- Node.js / PHP / Python / runtime phù hợp với dự án
- Make (khuyến nghị)
- Truy cập vào file cấu hình môi trường `.env`
- Introduction
- [Quick Start](docs/intro/quickstart.en.md)
- [Features](docs/intro/features.en.md)
- [Architecture](docs/intro/architecture.en.md)
- [Author and license](docs/intro/author.en.md)
- Installation
- [Packages](docs/installation/packages.en.md)
- [Docker](docs/installation/docker.en.md)
- [Proxmox](docs/installation/proxmox.en.md)
- [OpenNebula](docs/installation/opennebula.en.md)
- [OpenStack](docs/installation/openstack.en.md)
- [Kubernetes CSI](docs/installation/kubernetes.en.md)
- [S3](docs/installation/s3.en.md)
- [Building from Source](docs/installation/source.en.md)
- Configuration
- [Overview](docs/config.en.md)
- Parameter Reference
- [Common](docs/config/common.en.md)
- [Network](docs/config/network.en.md)
- [Client](docs/config/client.en.md)
- [Global Disk Layout](docs/config/layout-cluster.en.md)
- [OSD Disk Layout](docs/config/layout-osd.en.md)
- [OSD Runtime Parameters](docs/config/osd.en.md)
- [Monitor](docs/config/monitor.en.md)
- [Pool configuration](docs/config/pool.en.md)
- [Image metadata in etcd](docs/config/inode.en.md)
- Usage
- [vitastor-cli](docs/usage/cli.en.md) (command-line interface)
- [vitastor-disk](docs/usage/disk.en.md) (disk management tool)
- [fio](docs/usage/fio.en.md) for benchmarks
- [UBLK](docs/usage/ublk.en.md) for kernel mounts
- [NBD](docs/usage/nbd.en.md) - old interface for kernel mounts
- [QEMU, qemu-img and VDUSE](docs/usage/qemu.en.md)
- [NFS](docs/usage/nfs.en.md) clustered file system and pseudo-FS proxy
- [Administration](docs/usage/admin.en.md)
- Performance
- [Understanding storage performance](docs/performance/understanding.en.md)
- [Theoretical performance](docs/performance/theoretical.en.md)
- [Example comparison with Ceph](docs/performance/comparison1.en.md)
- [Newer benchmark of Vitastor 1.3.1](docs/performance/bench2.en.md)
## Bắt đầu nhanh
## Author and License
### 1. Clone repository
Copyright (c) Vitaliy Filippov (vitalif [at] yourcmc.ru), 2019+
```bash
git clone https://github.com/<your-org>/tromcho.net.git
cd tromcho.net
```
Join Vitastor Telegram Chat: https://t.me/vitastor
### 2. Tạo file môi trường
All server-side code (OSD, Monitor and so on) is licensed under the terms of
Vitastor Network Public License 1.1 (VNPL 1.1), a copyleft license based on
GNU GPLv3.0 with the additional "Network Interaction" clause which requires
opensourcing all programs directly or indirectly interacting with Vitastor
through a computer network and expressly designed to be used in conjunction
with it ("Proxy Programs"). Proxy Programs may be made public not only under
the terms of the same license, but also under the terms of any GPL-Compatible
Free Software License, as listed by the Free Software Foundation.
This is a stricter copyleft license than the Affero GPL.
```bash
cp .env.example .env
```
Please note that VNPL doesn't require you to open the code of proprietary
software running inside a VM if it's not specially designed to be used with
Vitastor.
Sau đó cập nhật các biến cấu hình cần thiết trong file `.env`.
Basically, you can't use the software in a proprietary environment to provide
its functionality to users without opensourcing all intermediary components
standing between the user and Vitastor or purchasing a commercial license
from the author 😀.
### 3. Chạy môi trường local
Client libraries (cluster_client and so on) are dual-licensed under the same
VNPL 1.1 and also GNU GPL 2.0 or later to allow for compatibility with GPLed
software like QEMU and fio.
Nếu dự án dùng Docker:
You can find the full text of VNPL-1.1 in the file [VNPL-1.1.txt](VNPL-1.1.txt).
GPL 2.0 is also included in this repository as [GPL-2.0.txt](GPL-2.0.txt).
```bash
docker compose up -d --build
```
Nếu dự án chạy trực tiếp theo framework, sử dụng lệnh tương ứng của stack hiện tại.
## Quy trình phát triển
- Tạo branch mới từ `main` hoặc `develop`.
- Đặt tên branch rõ ràng, ví dụ: `feature/homepage-banner`, `fix/login-timeout`.
- Commit ngắn gọn, đúng ngữ cảnh thay đổi.
- Tạo Pull Request để review trước khi merge.
- Không commit file bí mật như `.env`, private key hoặc credential.
## Quy ước commit
Khuyến nghị dùng convention sau:
```text
feat: thêm chức năng mới
fix: sửa lỗi
refactor: tái cấu trúc mã nguồn
chore: cập nhật tác vụ phụ trợ
ci: thay đổi pipeline CI/CD
docs: cập nhật tài liệu
test: bổ sung hoặc cập nhật kiểm thử
```
## CI/CD
Repository nên tích hợp các bước tự động sau:
- Lint source code
- Chạy unit test / integration test
- Build artifact hoặc Docker image
- Scan bảo mật dependency/container
- Deploy tới staging hoặc production theo rule xác định
Ví dụ vị trí cấu hình pipeline:
```text
.github/workflows/
```
## Biến môi trường
Không commit file `.env` thật lên GitHub.
Nên cung cấp `.env.example` với:
- Danh sách biến bắt buộc
- Giá trị mẫu an toàn
- Ghi chú ngắn cho từng biến quan trọng
Ví dụ:
```env
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost
DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=tromcho
DB_USER=user
DB_PASSWORD=change_me
```
## Triển khai
Khuyến nghị tách rõ các môi trường:
- local
- development
- staging
- production
Các thành phần nên được chuẩn hóa khi triển khai:
- Biến môi trường
- Reverse proxy / web server
- TLS certificate
- Database migration
- Backup strategy
- Log rotation và monitoring
## Bảo mật
- Không đưa secrets vào source code.
- Bật branch protection cho nhánh quan trọng.
- Review dependency định kỳ.
- Áp dụng nguyên tắc least privilege cho tài khoản deploy.
- Theo dõi log, audit và cảnh báo bất thường.
## Đóng góp
Khi đóng góp vào repository:
1. Fork hoặc tạo branch làm việc.
2. Cập nhật mã nguồn theo phạm vi thay đổi.
3. Kiểm tra local trước khi tạo Pull Request.
4. Viết mô tả PR rõ ràng: mục tiêu, phạm vi ảnh hưởng, cách kiểm thử.
## Tài liệu nên bổ sung
Repository này nên có thêm các tài liệu sau trong thư mục `docs/`:
- Kiến trúc hệ thống
- Sơ đồ database
- Luồng deploy
- Quy trình backup/restore
- Hướng dẫn xử lý sự cố
- Checklist release
## License
Bổ sung thông tin license phù hợp với mục đích sử dụng của dự án.
---
Có thể cập nhật README này tiếp theo theo đúng stack thực tế của `tromcho.net` như Laravel, WordPress, Next.js, Nuxt, Django hoặc static site.