All Projects → shlinkio → Shlink Web Client

shlinkio / Shlink Web Client

Licence: mit
A React-based client application for Shlink

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects
js
455 projects
ts
41 projects

Projects that are alternatives of or similar to Shlink Web Client

Adyen Php Api Library
Adyen API Library for PHP
Stars: ✭ 93 (+14.81%)
Mutual labels:  api-client, hacktoberfest
Azurlshortener
An simple and easy Url Shortener
Stars: ✭ 247 (+204.94%)
Mutual labels:  url-shortener, hacktoberfest
Fossurl
Your Own Url Shortner Without any fancy server side processing and support for custom url , which can even be hosted on GitHub Pages
Stars: ✭ 131 (+61.73%)
Mutual labels:  url-shortener, hacktoberfest
Pizzly
The simplest, fastest way to integrate your app with an OAuth API 😋
Stars: ✭ 796 (+882.72%)
Mutual labels:  api-client, hacktoberfest
Shlink
The definitive self-hosted URL shortener
Stars: ✭ 727 (+797.53%)
Mutual labels:  url-shortener, hacktoberfest
Bitly
A Ruby wrapper for the bit.ly API
Stars: ✭ 435 (+437.04%)
Mutual labels:  api-client, url-shortener
Urlhub
URL shortener web application based on the Laravel PHP Framework.
Stars: ✭ 217 (+167.9%)
Mutual labels:  url-shortener, hacktoberfest
Mtproto
Full-native go implementation of Telegram API
Stars: ✭ 566 (+598.77%)
Mutual labels:  api-client, hacktoberfest
Zws
Shorten URLs using invisible spaces.
Stars: ✭ 780 (+862.96%)
Mutual labels:  url-shortener, hacktoberfest
Openapi Generator
OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
Stars: ✭ 10,634 (+13028.4%)
Mutual labels:  api-client, hacktoberfest
Kde
[MIRROR] KDE team's testing overlay
Stars: ✭ 80 (-1.23%)
Mutual labels:  hacktoberfest
Node Wolfram
Wolfram|Alpha API wrapper for node.js
Stars: ✭ 80 (-1.23%)
Mutual labels:  api-client
Parse Dashboard For Ios
A beautiful mobile client for managing your Parse apps while you are on the go! Now you can easily view and modify your data in the same way you would on the offical desktop client.
Stars: ✭ 81 (+0%)
Mutual labels:  api-client
Passwd
A beautiful, cross-platform, encrypted password manager 🔐
Stars: ✭ 82 (+1.23%)
Mutual labels:  hacktoberfest
Windows exporter
Prometheus exporter for Windows machines
Stars: ✭ 1,230 (+1418.52%)
Mutual labels:  hacktoberfest
Noredink Ui
UI widgets we use -- https://noredink-ui.netlify.com/
Stars: ✭ 81 (+0%)
Mutual labels:  hacktoberfest
Theodinproject
Main Website for The Odin Project
Stars: ✭ 1,227 (+1414.81%)
Mutual labels:  hacktoberfest
Vpk
📦 Open, Search, Extract and Create VPKs in python
Stars: ✭ 79 (-2.47%)
Mutual labels:  hacktoberfest
Udoit
The Universal Design Online content Inspection Tool, or UDOIT (pronounced, “You Do It”) enables faculty to identify accessibility issues in Canvas by Instructure. It will scan a course, generate a report, and provide resources on how to address common accessibility issues.
Stars: ✭ 80 (-1.23%)
Mutual labels:  hacktoberfest
Vue Leaflet
vue-leaflet compatible with vue3
Stars: ✭ 82 (+1.23%)
Mutual labels:  hacktoberfest

shlink-web-client

Build Status Code Coverage GitHub release Docker pulls GitHub license Paypal Donate

A ReactJS-based progressive web application for Shlink.

shlink-web-client

If you are trying to find out how to run the project in development mode or how to provide contributions, read the CONTRIBUTING doc.

Installation

There are three ways in which you can use this application.

From app.shlink.io

The easiest way to use shlink-web-client is by just going to https://app.shlink.io.

The application runs 100% in the browser, so you can safely access any shlink instance from there.

Docker image

If you want to deploy shlink-web-client in a container-based cluster (kubernetes, docker swarm, etc), just pick the shlinkio/shlink-web-client image and do it.

It's a lightweight nginx:alpine image serving the static app on port 80.

Self-hosted

If you want to self-host it yourself, get the latest release and download the distributable zip file attached to it (shlink-web-client_X.X.X_dist.zip).

The package contains static files only, so just put it in a folder and serve it with the web server of your choice.

Considerations:

  • Provided dist files are configured to be served from the root of your domain. If you need to serve shlink-web-client from a subpath, you will have to build it yourself following these steps.
  • The app has a client-side router that handles dynamic paths. Because of that, you need to configure your web server to fall-back to the index.html file when requested files do not exist.
    • If you use Apache, you are covered, since the project includes an .htaccess file which already does this.
    • If you use nginx, you can see how it's done for the docker image and do the same.

Pre-configuring servers

The first time you access shlink-web-client from a browser, you will have to configure the list of shlink servers you want to manage, and they will be saved in the local storage.

Those servers can be exported and imported in other browsers, but if for some reason you need some servers to be there from the beginning, starting with shlink-web-client 2.1.0, you can provide a servers.json file in the project root folder (the same containing the index.html, favicon.ico, etc) with a structure like this:

[
  {
    "name": "Main server",
    "url": "https://doma.in",
    "apiKey": "09c972b7-506b-49f1-a19a-d729e22e599c"
  },
  {
    "name": "Local",
    "url": "http://localhost:8080",
    "apiKey": "580d0b42-4dea-419a-96bf-6c876b901451"
  }
]

The list can contain as many servers as you need.

If you are using the shlink-web-client docker image, you can mount the servers.json file in a volume inside /usr/share/nginx/html, which is the app's document root inside the container.

docker run --name shlink-web-client -p 8000:80 -v ${PWD}/servers.json:/usr/share/nginx/html/servers.json shlinkio/shlink-web-client

Be extremely careful when using this feature.

Due to shlink-web-client's client-side nature, the file needs to be accessible from the browser.

Because of that, make sure you use this only when you self-host shlink-web-client, and you know only trusted people will have access to it.

Failing to do this could cause your API keys to end up being exposed.

Serve project in subpath

Official distributable files have been built so that they are served from the root of a domain.

If you need to host shlink-web-client yourself and serve it from a subpath, follow these steps:

  • Download shlink-web-client source code for the version you want to build.
  • Decompress the file and cd into the resulting folder.
  • Open the package.json file in the root of the project, locate the homepage property and replace the value (which should be an empty string) by the path from which you want to serve shlink-web-client.
    • For example: "homepage": "/my-projects/shlink-web-client",.
  • Build the project:
    • For classic hosting:
      • Download node 10.15 or later.
      • Install project dependencies by running npm install.
      • Build the project by running npm run build.
      • Once the command finishes, you will have a build folder with all the static assets you need to run shlink-web-client. Just place them wherever you want them to be served from.
    • For docker image:
      • Download docker.
      • Build the docker image by running docker build . -t shlink-web-client.
      • Once the command finishes, you will have an image with the name shlink-web-client.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].