6个版本
0.1.1 | 2022年3月25日 |
---|---|
0.1.0 | 2022年2月4日 |
0.1.0-beta.3 | 2021年11月19日 |
0.1.0-beta.1 | 2021年11月6日 |
#21 in #链接缩短器
75KB
569 行
Goxidize
链接缩短器。
先决条件
- Rust 1.56+
- npm CLI 和 Node.js
- 任何官方支持的PostgreSQL
构建
在构建项目之前,请创建一个包含有效PostgreSQL URL的 .env
文件,例如以下内容。
DATABASE_URL=postgresql://127.0.0.1:5432/goxidize
然后,运行数据库迁移。
sqlx migrate run
该数据库将被用于 sqlx
在编译时进行检查。
如果您还没有设置数据库,sqlx
将使用 sqlx-data.json
进行检查。要生成此文件,请运行 cargo sqlx prepare -- --lib
和 cargo sqlx prepare --check -- --lib
。请注意,您仍然需要一个可工作的数据库来运行测试。
开发
Parcel开发服务器支持前端资源的自动重新加载。使用以下文件让Parcel服务器代理请求到后端。
const { createProxyMiddleware } = require("http-proxy-middleware");
module.exports = function (app) {
app.use(
createProxyMiddleware(["/**", "!/", "!**/*.html", "!**/*.js", "!*.css", "!**/*.css", "!**/*.map"], {
target: "https://127.0.0.1:8000/",
})
);
};
运行以下命令以启动服务器。
cargo run # use cargo watch for auto-reloading
# then on a separate terminal, run
# `npm install` if you have not installed the dependencies, and
npm start
生产环境
npm run build
配置
使用YAML文件进行配置。这会影响程序运行时的行为。
# configuration.yml
port: 8000
database:
url: postgresql://127.0.0.1:5432
name: goxidize
debug: true
部署
以下提供使用 docker-compose
进行部署的示例。
# docker-compose.yml
version: '3'
services:
db:
image: postgres:14
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: goxidize
LANG: C.UTF-8
volumes:
- dbdata:/var/lib/postgresql/data
goxidize:
image: ghcr.io/caizixian/goxidize:master
restart: always
depends_on:
- "db"
ports:
- "8000:8000"
# Using environment variables is another option
volumes:
- "./goxidize_config.yml:/goxidize/configuration.yml"
volumes:
dbdata:
# goxidize_config.yml
host: "0.0.0.0"
port: 8000
database:
host: db
port: 5432
username: postgres
password: password
name: goxidize
debug: false
许可证
除非另有说明(例如,在个别文件中),项目采用Apache许可证第2版 LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0 或MIT许可证 LICENSE-MIT 或 http://opensource.org/licenses/MIT,由您选择。
依赖项
~36–50MB
~1M SLoC