Giter Site home page Giter Site logo

skyxv / korturl Goto Github PK

View Code? Open in Web Editor NEW
38.0 2.0 19.0 1.53 MB

One-stop short url service.一站式的短网址服务,提供浏览器端及API两种方式缩短网址,以及可视化的流量追踪。

License: MIT License

Python 53.37% CSS 2.72% JavaScript 19.48% HTML 24.43%
shorturl redis webservice flowtrace visible-data django django-rest-framework useragent-parser echarts pipenv

korturl's Introduction

KortURL

Support Python Version License

One-stop short url service.一站式的短网址服务,提供浏览器端及API两种方式缩短网址,以及可视化的流量追踪。

One-stop short url service.一站式的短网址服务,提供浏览器端及API两种方式缩短网址,以及可视化的流量追踪。欢迎Issue & PR!

本项目为自带分析统计的短网址服务,提供浏览器端长网址的缩短,还原,以及批量缩短网址API。 同时有账号系统,匿名用户只能访问短网址然后跳转。

目前统计的维度:

  • 每日访问量
  • 24小时访问趋势
  • 访问设备
  • 访客操作系统
  • 浏览器
  • 运营商
  • 国内访问分布
pip3 install pipenv

在项目根目录下:

pipenv install
sudo apt-get update
sudo apt-get install redis-server

安装后配置文件在/etc/redis/redis.conf

Django ORM支持的数据库,推荐mysql

以mysql为例:

sudo apt-get install python3-dev
sudo apt-get install libmysqld-dev
pipenv install mysqlclient

配置文件位于KortURL/settings.py

API身份验证模块:

  • SIMPLE_JWT.ACCESS_TOKEN_LIFETIME: 令牌过期时间。默认5分钟。
  • SIMPLE_JWT.REFRESH_TOKEN_LIFETIME: 刷新令牌过期时间。默认24小时。
  • SIMPLE_JWT.AUTH_HEADER_TYPES: API身份验证时请求头的认证类型。默认KortURL

Redis相关设置:

  • REDIS_HOST: Redis的ip地址。
  • REDIS_PORT: Redis的端口。
  • REDIS_PASSWORD: Redis的密码。如果没有设置密码,则赋值None
  • MAP_CACHE_DB: 缓存长短网址键值对的Redis数据库(如果没有修改过redis配置,可选值有0-15)。
  • BROKER_DB: Celery broker 使用的Redis数据库。
  • RESULT_DB: Celery 任务执行结果存储Redis数据库。

MAP_CACHE_DB, BROKER_DB, RESULT_DB不要设置为相同的数据库。

Celery相关设置:

这里如果你的服务器的Redis是有密码的。则注释掉无密码的两行,使用下面的两行。

KortURL 设置:

  • KORT_URL.PROTOCOL: 你的服务协议。有HTTPHTTPS两种选择,默认HTTPS
  • KORT_URL.SERVER_NAME: 域名。即nginx配置里的server_name。必须正确填写,默认是localhost:8000,会导致短网址无法正确跳转。
  • KORT_URL.SITE_NAME: 站名。默认KortURL。将会显示在页面上的导航栏。
  • KORT_URL.COMPANY_NAME: 企业名称。默认KortURL。将会显示在页面的footer。
  • KORT_URL.BACKGROUND_COLOR: 页面背景色。如果你不喜欢默认的背景色。那尽管修改它!
  • KORT_URL.IP_RATE: 限制每个ip的访问频率,可选周期有day, hour, min, sec,默认3/sec,即每个ip每秒最多3次。

如果有需要,可将static/imgs中的favicon.icologo.png替换为自己想要的。文件名保持一致即可。

以上参数设置完毕后:

pipenv run python manage.py makemigrations

pipenv run python manage.py migrate

原本这里是一些自己写的生产环境部署的内容,后来想了想,文档还是官方的好,所以就只附链接了:

使用uWSGI和nginx来设置Django和你的web服务器

部署django-django官方文档

运行celery命令:

pipenv run nohup celery -A KortURL worker -l info --logfile logs/celery.log &

uwsgi(如果是虚拟环境级别的uwsgi, 在命令前加上pipenv run):

  • 启动
uwsgi --ini 你的uwsgi配置文件名(.ini格式)
  • 停止
uwsgi --stop uwsgi.pid
  • 重新加载
uwsgi --reload uwsgi.pid

korturl's People

Contributors

dependabot[bot] avatar skyxv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

korturl's Issues

问下支持win10吗?

你好,想问下这个工具可以在win10下使用么?
另外,如果部署在服务器中怎么实现可视化,没有ubuntu图形界面。
还有,这个工具可以锁定追踪某个用户么?比如对于访问某页面的一个用户,持续追踪其走向?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.