|
|
8 years ago | |
|---|---|---|
| .vscode | 8 years ago | |
| build | 8 years ago | |
| config | 8 years ago | |
| handlers | 8 years ago | |
| static | 8 years ago | |
| store | 8 years ago | |
| .gitignore | 8 years ago | |
| .travis.yml | 8 years ago | |
| LICENSE.md | 8 years ago | |
| Makefile | 8 years ago | |
| README.md | 8 years ago | |
| descriptor.json | 8 years ago | |
| docker-compose.yml | 8 years ago | |
| main.go | 8 years ago | |
README.md
Golang URL Shortener (Work in Progress)
Main Features
- URL Shortening
- Visitor Counting
- Expireable Links
- URL deletion
- Authorization System via OAuth 2.0 from Google (more providers following)
- High performance database with bolt
- Easy ShareX integration
- Dockerizable
Server Installation
Standard
Download the package for your architecture and operating system from bintray and extract it.
Docker
TODO
Configuration
The configuration is a JSON file, an example is located here. If your editor supports intellisense by using a schema (e.g. VS Code) then you can simply press space for auto completion.
The config parameters should be really selfexplaning, but here is a detailed description for all of these:
TODO: Add config parameters
OAuth
Visit console.cloud.google.com, create or use an existing project, goto APIs & Services -> Credentials and create there an OAuth Client-ID for the application type Webapplicaton. There you get the Client-ID and ClientSecret for your configuration. It's important, that you set in the Google Cloud Platform YOUR_URL/api/v1/callback as authorized redirect URLs.
Clients
General
In general the POST endpoints can be called, by using one of the following techniques:
- application/json
- application/x-www-form-urlencoded
- multipart/form-data
For all the endpoints which have protected in her path there is the Authorization header required.
ShareX
For ShareX usage, we refer to the menu item in the frontend where your configuration will be generated. There are further information for the detailled use.
Why did you built this
Just only because I want to extend my current self hosted URL shorter and learn about new techniques like:
- Golang unit tests
- React
- Makefiles
- Travis CI
- Key / Value databases
