Linky is an open sourced Go Link service with extremely intuitive UI.
Don't know what a Go Link service is? Maybe a SasS service like Go Links can help you understand.
Consider a dead simple Chrome plugin like URL Alias Rewrite. You don't need a Go Link service, really.
Avoid the hassle and use a hosted SasS service like Go Links. Don't forget to tell them you're referred by Chentai :)
Contact me and I'll set up Linky for you on your infra, for a one-time cost.
Continue reading and learn how to host Linky for your company.
- Go Link service on Chrome browser.
- Allow users to login with Google account.
- Restrict users from a specific email domain (useful for company admin).
- Allow admin to approve/revoke users access manually.
- Display go links usage and highlight top links.
- Access control, where links are only removable by its creator.
- No cumbersome
go/
prefix, just type the alias (e.g.wiki/
) to redirect. - Support dynamic links:
wiki/Cat/
redirects to https://en.wikipedia.org/wiki/Catwiki/Dog/
redirects to https://en.wikipedia.org/wiki/Doggit/123/
redirects to https://github.com/Chentai-Kao/linky/issues/123git/789/
redirects to https://github.com/Chentai-Kao/linky/issues/789
Let's assume you want to introduce go link to your company. Here's how you'd do it.
- Obtain Google API access with your company Google email.
- Download this repo.
- Follow the steps below and deploy this repo to a Docker container (Heroku or something else).
- Visit the website URL you just deployed to and log in. Since you are the first user, you become the admin of Linky.
- Access the admin page by clicking the Menu button on the top-right,
and go to Admin. You can do a few things there:
- approve/reject member requests when your coworker joins Linky.
- set up member email whitelist, so any member requests under that email domain will be auto-approved.
- Share the URL to Linky dashboard to your coworkers.
Assuming someone already set up Linky for your company and you want to use Linky, do the following.
- Ask the admin for the URL to Linky dashboard, and visit that link.
- Log in with your company Google account.
- (first time user) set up the Chrome plugin by clicking the Menu button on the top-right, and go to Set up plugin. Follow the instruction to finish setup.
- You can use existing go links that others set up already.
- Or you can create your own link easily.
-
This service requires users to login with their Google accounts, so you'll need a Google API key.
-
Set up environment variables by copy-pasting the
example.env
file, rename it to.env
, and populate the Google API keys as needed.
This app is ready to deploy to any Docker container.
Regardless of your choice, you need to manually set environment variables
on your Docker container that exist in the example.env
file.
Deploy to Heroku is easy, with the heroku.yml
already prepared for you.
You will need a Heroku Dyno and Heroku Postgres database.
Then follow the Heroku tutorial.
This repo creates a Docker image that can be used to deploy to any container.
You may be interested to look into the Dockerfile
and docker-compose.yml
files.
- Written in Javascript
- Docker (container and portability)
- Next.js (server side rendering and some handy build tools)
- React (frontend)
- Express.js (backend)
- npm (package management)
- Postgres (database and user session)
- Material UI (icon set)
- React Bootstrap (simple CSS components)
- ESlint + Prettier (code linting and style guide)
├── app
│ ├── api // backend server
│ ├── components // frontend re-usable React components
│ ├── docker-compose.yml // docker local development
│ ├── Dockerfile // docker config
│ ├── example.env // sample .env file
│ ├── lib // backend shared utilities
│ ├── next.config.js // Next.js config
│ ├── package.json // npm package config
│ ├── pages // frontend page components (this is a Next.js concept)
│ └── static // image assets
├── heroku.yml // Heroku Docker config
├── plugins
│ ├── chrome // Chrome plugin
│ └── chrome.zip // compressed Chrome plugin package
└── README.md // read-me
$ npm install
$ npm run docker:start
$ npm run docker:psql