Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/needle-project/needle-url
Simple "short" url usage using go-lang
https://github.com/needle-project/needle-url
golang redis shorturl shorturl-services
Last synced: 28 days ago
JSON representation
Simple "short" url usage using go-lang
- Host: GitHub
- URL: https://github.com/needle-project/needle-url
- Owner: needle-project
- License: mit
- Created: 2017-11-22T10:44:00.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-08-08T09:26:43.000Z (over 6 years ago)
- Last Synced: 2024-06-20T03:26:56.342Z (7 months ago)
- Topics: golang, redis, shorturl, shorturl-services
- Language: Go
- Size: 24.6 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NeedleUrl
The current application offers a local "url shortener" application written in GoLang and using Redis as a storage.
## 1. Installation and usage
The packages is prepared to be used either using Docker or as a stand-alone application.### 1.1. Install using Docker
To run without any orchestration, you can run from the project root:
```
docker-compose build
docker-compose up
```To build images, you can run from the specific path (docker/http or docker/redis):
```
docker build .
```### 1.2. Install as a standalone
To use the application as a standalone, you can use one of the builds from `/dist/` directory.## 2. Usage
The application needs a `config.json` file that should be located in the same path as the binary.
```
{
"port": 80,
"redis_hostname": "redis",
"redis_port": 6379,
"redis_db": 0,
"default_redirect_path": "https://www.example.com/",
"admin_path": "/bin/needle-url/admin/",
"basic_auth": {
"username": "test",
"password": "new"
}
}
```
Description:| Parameter | Description |
| --- | --- |
| port | The port on which the server will bind. Usually is 80 |
| redis_hostname | Redis connection hostname/IP |
| redis_port | Redis connection PORT |
| redis_db | Redis database used for storage |
| default_redirect_path | Where the client will be redirected if a short url does not exists or an error occurs. |
| admin_path | Fully qualified path to an HTML that will be used as an admin interface |
| basic_auth | Credentials for BasicAuth to application |## 3. API
For documentation of the API, see docs/swagger/api.yml
## 4. Develop - Setup environment
- Install Go from [here](https://golang.org/)
- Clone this project
- Run `initial_provision.sh`
- Modify code
- Run `containers_up.sh`
- Run `smoke_tests.sh` to validate that all flows are working as it should