Longurl Save

A self-hosted short url service

Project README

longurl

deploy Go Reference

screenshot

Introduction

longurl is a self-hosted short url service.

Try It Out

curl -H "Content-Type:application/json" -X POST --data '{"url": "https://github.com/long2ice/longurl"}' https://longurl.long2ice.io

Return like this:

{
  "url": "https://longurl.long2ice.io/3FXrsHE"
}

Now Visit https://longurl.long2ice.io/3FXrsHE.

Params

  • url (required): the url to be shorted.
  • path (optional): the custom path for short url, can config allow or not.
  • expire_at (optional): when the short url expire, can set default expire in config.
  • max_times (optional): max times access, shorted url will be invalid if reached.

Deploy

First write a config.yaml.

server:
  host: 0.0.0.0
  port: 3000
  logTimezone: Asia/Shanghai
  logTimeFormat: 2006-01-02 15:04:05.000000
url:
  domain: localhost:3000
  schema: http
  length: 7                 # the path length
  allowCustomPath: true     # allow custom short url path
  expireSeconds: 2592000    # default expire seconds
  unique: true               # same urls only generate one short url
database:
  type: mysql
  dsn: root:123456@tcp(127.0.0.1:3306)/longurl?parseTime=true

Then run with docker.

docker run -d -p 3000:3000 --name longurl -v /config.yaml:/config/config.yaml ghcr.io/long2ice/longurl/longurl

You can visit http://localhost:3000/docs to see the API docs.

Frontend

The frontend project is https://github.com/long2ice/longurl-web.

Credits

  • Fiber, Express inspired web framework written in Go.
  • Ent, An entity framework for Go.
  • Sonyflake, A distributed unique ID generator inspired by Twitter's Snowflake.

License

This project is licensed under the Apache-2.0 License.

Open Source Agenda is not affiliated with "Longurl" Project. README Source: long2ice/longurl
Stars
51
Open Issues
1
Last Commit
7 months ago
Repository
License

Open Source Agenda Badge

Open Source Agenda Rating