Update Read Me (#150)

* Added Ghost to Docker-Compose

* Updated Readme

* Rm extra dividers

* Updated description

* Added screenshot

* Added Config Heading

* RM configuration

* Added missing links

* Added configuration

* Added emoji

* Rm docs reference

* Small typo

* Updated manylink

* RM littlelink logo

* Updated URL

* Changed fork of to Inspired by

* Linting

* Linting

* Added link emoji for h1
This commit is contained in:
Kieran 2022-06-22 15:44:08 +01:00 committed by GitHub
parent d7ead0c85e
commit a425aec9ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 139 additions and 81 deletions

162
README.md
View File

@ -1,84 +1,35 @@
# 🔗 LittleLink-Server
This project is based on the great work from [littlelink](https://github.com/sethcottle/littlelink)
It takes the same simple approach to a link page and hosts it within a NodeJS server with React Server Side Rendering, containerized for you to use. Now, customizing `LittleLink` with `littlelink-server` is as easy as passing in some environment variables. If you need help configuring this, please see [this video that explains everything](https://www.youtube.com/watch?v=42SqfI_AjXU) and a live example at [technotim.live](https://technotim.live/).
LittleLink is a lightweight DIY alternative to services like [Linktree](https://linktr.ee)
and [many.link](https://many.link/).
Inspired by [littlelink](https://github.com/sethcottle/littlelink).
![image](https://user-images.githubusercontent.com/1322205/174909247-2515ab5c-fd39-475d-b5dc-9c0a1ea20d6e.png)
## 👇 What is LittleLink-Server?
LittleLink-Server is based on the great work from [littlelink](https://github.com/sethcottle/littlelink), a lightweight DIY alternative to services like [Linktree](https://linktr.ee) and [many.link](https://many.link/). LittleLink and LittleLink-Server is built using [Skeleton](http://getskeleton.com/), a dead simple, responsive boilerplate—we just stripped out some additional code you wouldn't need and added in branded styles for popular services. 😊
It takes the same simple approach to a link page and hosts it within a NodeJS server with React Server Side Rendering, containerized for you to use. Now, customizing `LittleLink` with `littlelink-server` is as easy as passing in some environment variables. If you need help configuring this, please see this [video](https://youtu.be/42SqfI_AjXU) at explains everything and a live example at [technotim.live](https://technotim.live/).
## ⭐ Features
- Over 60+ brand buttons with more able to be requested
- Customisable Themes
- Analytics Support
- Health Check Support
- A fully customisable docker-compose
## 🚀 Getting Started
## 📍 Supported Links & Buttons & Config
Check the [config](https://github.com/techno-tim/littlelink-server/blob/master/src/config.js) file for all supported buttons and configuration!
## 📈 Analytics Support
### Google Analytics
See [Getting Started with Analytics](https://support.google.com/analytics/answer/1008015?hl=en). After getting your GA Tracking Id, use your tracking Id as environment variable like `GA_TRACKING_ID=G-XXXXXXXXXX` (See the example below)
All buttons clicked will be tracked automatically if `GA_TRACKING_ID` exists.
Sample event for YouTube button.
```javascript
window.gtag('event', 'youtube-button');
```
### Umami
See [Adding a website & Collecting data](https://umami.is/docs/collect-data) page to add and generate your tracking code.
Generated tracking code should look like:
```javascript
<script async defer data-website-id="00000000-1111-2222-3333-444444444444" src="https://your-umami-app.com/umami.js"></script>
```
Use `data-website-id` as environment variable `UMAMI_WEBSITE_ID` and `src` as `UMAMI_APP_URL`.
Sample event for YouTube button.
```javascript
window.umami('youtube-button');
```
### Matomo
See [Installing Matomo fo how to configure analytics](https://matomo.org/docs/installation/) and [how to find your site id](https://matomo.org/faq/general/faq_19212/)
Use `MATOMO_URL` for your URL and `MATOMO_SITE_ID` for your site id
Sample event for YouTube button.
```javascript
window._paq.push(['trackEvent', 'youtube-button']]);
```
## 🩺 Health Check
A health check endpoint exists on `/healthcheck`. If healthy, it will return with a `200` and the following response:
```json
{
"status": "ok"
}
```
To skip express from logging these calls, add the environment variable:
```bash
SKIP_HEALTH_CHECK_LOGS=true
```
## 🐳 Docker
This container image is published on both [GitHub Container Registry](https://github.com/techno-tim/littlelink-server/pkgs/container/littlelink-server) and [DockerHub](https://hub.docker.com/repository/docker/timothystewart6/littlelink-server) choose whichever one works for you. They will both be updated during CI.
Check the [docker-compose.yml](/docker-compose.yml) file for all supported buttons and configuration!
The example below will generate a site exactly like <https://technotim.live>
`docker-compose.yml`
### Using Docker-Compose
```yml
---
version: "3.0"
services:
littlelink-server:
@ -136,7 +87,7 @@ services:
- no-new-privileges:true
```
Docker command
### Using Docker
```bash
docker run -d \
@ -168,7 +119,7 @@ docker run -d \
ghcr.io/techno-tim/littlelink-server:latest
```
## Kubernetes
### Using Kubernetes
[Unofficial helm chart provided by k8s-at-home](https://github.com/k8s-at-home/charts/tree/master/charts/stable/littlelink-server)
@ -185,17 +136,66 @@ Or use a values.yaml files
`helm install littlelink-server k8s-at-home/littlelink-server -f values.yaml`
## 👇 What is LittleLink?
## 🔧 Configuration
![LittleLink](https://cdn.cottle.cloud/littlelink/social-circle.png)
### Analytics Support
LittleLink is a lightweight DIY alternative to services like [Linktree](https://linktr.ee)
and [many.link](https://www.google.com). LittleLink was built using [Skeleton](http://getskeleton.com/), a dead simple, responsive boilerplate—we just stripped out some additional code you wouldn't need and added in branded styles for popular services. 😊
#### Google Analytics
![Themes](https://cdn.cottle.cloud/littlelink/themes.png)
See [Getting Started with Analytics](https://support.google.com/analytics/answer/1008015?hl=en). After getting your GA Tracking Id, use your tracking Id as environment variable like `GA_TRACKING_ID=G-XXXXXXXXXX` (See the example below)
LittleLink has more than 20 company button styles you can use and we'll be throwing more in soon. You'll also find a light and dark theme ready to go. Not a fan of the colors? Update `skeleton-light.css` or `skeleton-dark.css` to the HEX values of your choosing.
All buttons clicked will be tracked automatically if `GA_TRACKING_ID` exists.
![Performance](https://cdn.cottle.cloud/littlelink/performance.png)
Sample event for YouTube button.
```javascript
window.gtag('event', 'youtube-button');
```
#### Umami
See [Adding a website & Collecting data](https://umami.is/docs/collect-data) page to add and generate your tracking code.
Generated tracking code should look like:
```javascript
<script async defer data-website-id="00000000-1111-2222-3333-444444444444" src="https://your-umami-app.com/umami.js"></script>
```
Use `data-website-id` as environment variable `UMAMI_WEBSITE_ID` and `src` as `UMAMI_APP_URL`.
Sample event for YouTube button.
```javascript
window.umami('youtube-button');
```
#### Matomo
See [Installing Matomo fo how to configure analytics](https://matomo.org/docs/installation/) and [how to find your site id](https://matomo.org/faq/general/faq_19212/)
Use `MATOMO_URL` for your URL and `MATOMO_SITE_ID` for your site id
Sample event for YouTube button.
```javascript
window._paq.push(['trackEvent', 'youtube-button']]);
```
### Health Check
A health check endpoint exists on `/healthcheck`. If healthy, it will return with a `200` and the following response:
```json
{
"status": "ok"
}
```
To skip express from logging these calls, add the environment variable:
```bash
SKIP_HEALTH_CHECK_LOGS=true
```
Using [Skeleton](http://getskeleton.com/) let us build something that loads quickly & doesn't have any of the unnecessary bloat you would get from using a large framework for a page that requires nothing more than simplicity. LittleLink scored a 99/100 in performance when tested with [Google Lighthouse](https://developers.google.com/web/tools/lighthouse).

View File

@ -77,6 +77,7 @@ services:
- UNTAPPD=https://untappd.com/
- BUTTON_TARGET=_blank
- INSTANTGAMING=https://www.instant-gaming.com/
- GHOST=https://ghost.org/
- TRAKT=https://trakt.tv
- CASHAPP=https://cash.app/
- TEESPRING=https://teespring.com/

42
docs/analytics.md Normal file
View File

@ -0,0 +1,42 @@
## 📈 Analytics Support
### Google Analytics
See [Getting Started with Analytics](https://support.google.com/analytics/answer/1008015?hl=en). After getting your GA Tracking Id, use your tracking Id as environment variable like `GA_TRACKING_ID=G-XXXXXXXXXX` (See the example below)
All buttons clicked will be tracked automatically if `GA_TRACKING_ID` exists.
Sample event for YouTube button.
```javascript
window.gtag('event', 'youtube-button');
```
### Umami
See [Adding a website & Collecting data](https://umami.is/docs/collect-data) page to add and generate your tracking code.
Generated tracking code should look like:
```javascript
<script async defer data-website-id="00000000-1111-2222-3333-444444444444" src="https://your-umami-app.com/umami.js"></script>
```
Use `data-website-id` as environment variable `UMAMI_WEBSITE_ID` and `src` as `UMAMI_APP_URL`.
Sample event for YouTube button.
```javascript
window.umami('youtube-button');
```
### Matomo
See [Installing Matomo fo how to configure analytics](https://matomo.org/docs/installation/) and [how to find your site id](https://matomo.org/faq/general/faq_19212/)
Use `MATOMO_URL` for your URL and `MATOMO_SITE_ID` for your site id
Sample event for YouTube button.
```javascript
window._paq.push(['trackEvent', 'youtube-button']]);

15
docs/healthcheck.md Normal file
View File

@ -0,0 +1,15 @@
## 🩺 Health Check
A health check endpoint exists on `/healthcheck`. If healthy, it will return with a `200` and the following response:
```json
{
"status": "ok"
}
```
To skip express from logging these calls, add the environment variable:
```bash
SKIP_HEALTH_CHECK_LOGS=true
```