|
|
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:
OAuth
Visit console.cloud.google.com and create or use an existing project, go to APIs & Services -> Credentials and create there an OAuth Client-ID for the application type Webapplicaton. There you get the Client-ID and the ClientSecret for your configuration. It's important, that you set in the Google Cloud Platform YOUR_URL/api/v1/callback as authorized redirect URL.
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 are on /api/v1/protected 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 detailed use.
Why did you built this
Just only because I want to extend my current self hosted URL shorter with some features and learn about new techniques like:
- Golang unit testing
- React
- Makefiles
- Travis CI
- Key / Value databases
Utils
Update Config Documentation
yarn global add jsonschema-md
go run build/schema.go
jsonschema-md.cmd build/schema.json > build/schema.md
After that adjust the title to Configuration and the description to Golang URL Shortener Configuration.
