Awesome
MyUrls
基于 Go 1.22 与 Redis 实现的本地短链接服务,用于缩短 URL 与短链接还原。
Table of Contents
Dependencies
本服务依赖于 Redis 提供长短链接映射关系存储,你需要本地安装 Redis 服务来保证短链接服务的正常运行。
sudo apt-get update
# 安装Redis
sudo add-apt-repository ppa:chris-lea/redis-server -y
sudo apt-get update
sudo apt-get install redis-server -y
Docker
现在你可以无需安装其他服务,使用 docker 或 docker-compose 部署本项目。注:请自行修改 .env 中参数。
docker run -d --restart always --name myurls careywong/myurls:latest -domain example.com -port 8002 -conn 127.0.0.1:6379 -password ''
git clone https://github.com/CareyWang/MyUrls.git MyUrls
cd MyUrls
cp .env.example .env
docker-compose up -d
Install
安装项目依赖
make install
生成可执行文件,目录位于 build/ 。默认当前平台,其他平台请参照 Makefile 或执行对应 go build 命令。
make
Usage
前往 Actions 下载对应平台可执行文件。
Usage of ./MyUrls:
-conn string
address of the redis server (default "localhost:6379")
-domain string
domain of the server (default "localhost:8080")
-h display help
-password string
password of the redis server
-port string
port to run the server on (default "8080")
-proto string
protocol of the server (default "https")
建议配合 pm2 开启守护进程。
pm2 start myurls --name myurls -- -domain example.com
日志清理
假定工作目录为 /app
,可基于 logrotate 配置应用日志的自动轮转与清理。可参考示例配置,每天轮转一次日志文件,保留最近7天
tee > /etc/logrotate.d/myurls <<EOF
/app/logs/access.log {
daily
rotate 7
missingok
notifempty
compress
delaycompress
copytruncate
create 640 root adm
}
EOF
# 测试是否正常工作,不会实际执行切割
logrotate -d /etc/logrotate.d/myurls
Maintainers
Contributing
PRs accepted.
Small note: If editing the README, please conform to the standard-readme specification.
License
MIT © 2024 CareyWang