A URL shortener for creating concise, memorable short links, suitable for organization-scoped use, such as in companies or schools.
golink-demo.mp4
Considering other options? Here are some similar platforms:
- GoLinks® | Knowledge Discovery & Link Management Platform
- Trotto - Open-Source Go Links
- tailscale/golink: A private shortlink service for tailnets
Golinks has the following advantages compared to these alternatives:
- Self-hosted: You have full control of Golink backend.
- Fully-managed: Golink can be built on fully-managed infrastructure.
- Easy to deploy: You can complete to deploy Golink in just three simple steps.
- Cost-effective: You can get started with Golink at no cost.
- No DNS configuration: Redirect through the Golink Chrome extension.
- Chrome extension with Manifest V3: Manifest V3 is more secure than V2 and V2 will be end-of-life.
Golink originated from Google's internal short links. If you are curious about history of go/, dive into the stories on these websites:
- Golink: A private shortlink service for tailnets | Hacker News
- The GoLinks® Blog - The History of Go Links
- The Go Links Origin Story: Q&A with Benjamin Staffin · Trotto go links
- Install the Golink Chrome Extension.
- Right-click the extension icon and select Options.
- Input your Golink URL and then click the Save button.
Additionally, you need to execute the following command:
gcloud auth login
Set your project ID:
gcloud config set project <YOUR-PROJECT-ID>
Clone this repository:
git clone https://github.com/nownabe/golink
cd golink
Run the deploy script. Replace <REGION>
with one of App Engine regions.
./deploy.sh <REGION>
For instance:
./deploy.sh us-central1
Begin by accessing the Google Cloud Console to set up the OAuth consent screen.
- Choose User Type.
- Opt for a user type based on your needs.
For exclusive access to members of your organization, select
Internal
. Note: choosingExternal
doesn't mean open access. Users can't access your Golink unless you grant explicit permission.
- Opt for a user type based on your needs.
For exclusive access to members of your organization, select
- Enter App information
- App name:
Golink
- User support email: Your email or a Google Group
- Developer contact information: Your email or alternate contact emails
- Finish by clicking SAVE AND CONTINUE
- App name:
- You don't have to configure scopes.
Proceed to Identity-Aware Proxy. Turn on IAP for the App Engine app. If you encounter an error status before enabling, you can safely disregard it at this time.
To make Golink accessible to all members of your organization, execute:
gcloud iap web add-iam-policy-binding \
--role roles/iap.httpsResourceAccessor \
--member domain:<YOUR-COMPANY-DOMAIN>
If you prefer to grant access on an individual basis:
gcloud iap web add-iam-policy-binding \
--role roles/iap.httpsResourceAccessor \
--member user:<EMAIL>
You have the option to specify Google Groups too:
gcloud iap web add-iam-policy-binding \
--role roles/iap.httpsResourceAccessor \
--member group:<EMAIL>
Examples:
gcloud iap web add-iam-policy-binding \
--role roles/iap.httpsResourceAccessor \
--member domain:your-company.example.com
gcloud iap web add-iam-policy-binding \
--role roles/iap.httpsResourceAccessor \
--member user:user1@your-company.example.com
gcloud iap web add-iam-policy-binding \
--role roles/iap.httpsResourceAccessor \
--member group:group1@your-company.example.com
Determine your Golink URL with:
echo "https://$(gcloud app describe --format "get(defaultHostname)")"
Then notify your team members to enter this URL in Golink Chrome Extension Options. Enjoy using golinks!
You can enforce Golink Chrome extension to be installed in your organization members' browsers.
- Open https://admin.google.com and navigate to Devices > Chrome > Apps & extensions > Users & browsers.
- Click the yellow plus button at the bottom right and then click "add from Chrome Web Store".
- Enter
clecngohjeflemkblbfdfbjkjnigbjok
in the "View app by ID" textbox and click the "Select" button. - Set "Permissions and URL access" to "Allow all permissions".