PotatoMaster101/sectxt

GitHub: PotatoMaster101/sectxt

一个基于 Rust 后端和 Web 前端的全栈秘密消息发送应用,支持容器化部署和云基础设施自动化。

Stars: 0 | Forks: 0

[![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/PotatoMaster101/sectxt/actions/workflows/ci.yml) [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) # Sectxt 发送秘密消息。 ## 后端 Crates - [`sectxt-api`](backend/crates/sectxt-api/):API 层 - [`sectxt-core`](backend/crates/sectxt-core/):领域层 - [`sectxt-db`](backend/crates/sectxt-db/):数据库层 ## 开发 所需工具: - [`cargo`](https://rust-lang.org/tools/install/) - [`docker`](https://www.docker.com/products/docker-desktop/) - [`npm`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) - [`sqlx-cli`](https://crates.io/crates/sqlx-cli) ``` docker compose up -d database cp .env.sample .env # backend sqlx migrate run --source 'backend/crates/sectxt-db/migrations' cargo test 'generate_openapi_doc' --manifest-path 'backend/Cargo.toml' cargo run --manifest-path 'backend/Cargo.toml' # frontend npm --prefix 'frontend/' install && npm --prefix 'frontend/' run dev ``` ## 部署 所需工具: - [`cargo`](https://rust-lang.org/tools/install/) - [`cross`](https://crates.io/crates/cross) - [`docker`](https://www.docker.com/products/docker-desktop/) - [`npm`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) - [`sqlx-cli`](https://crates.io/crates/sqlx-cli) - [`terraform`](https://developer.hashicorp.com/terraform/install) ### 搭建基础设施 ``` export DIGITALOCEAN_TOKEN='' export NEON_API_KEY='' ssh-keygen -t ed25519 -f ~/.ssh/keys/id_ed25519_sectxt terraform init terraform apply -auto-approve sqlx migrate run --source 'backend/crates/sectxt-db/migrations' --database-url "$(terraform output -raw database_url_direct)" ``` 将您域名上的 DNS 更新为指向 droplet 的 IP(`terraform output -raw server_ip`)。 ### 搭建站点 将 `VITE_API_BASE_URL` 更新为 `https:///api`,以便前端能够访问后端。 ``` cp .env.sample .env cross build --release --target 'x86_64-unknown-linux-gnu' --manifest-path 'backend/Cargo.toml' --target-dir 'dist/backend/' npm --prefix 'frontend/' install && npm --prefix 'frontend/' run build docker compose run --build --rm ansible ansible-playbook -i inventory.ini deploy.yml # 检查 logs ssh deployer@$(terraform output -raw server_ip) -i ~/.ssh/keys/id_ed25519_sectxt 'sudo journalctl -u sectxt-api --no-pager -n 500' ``` ### 销毁 ``` terraform destroy -auto-approve ``` ## TODO - [ ] 附件支持
标签:Docker, ECS, Rust, Terraform, 全栈应用, 加密通信, 可视化界面, 后端开发, 安全防御评估, 暗色界面, 系统提示词, 网络流量审计, 请求拦截