Halo, kalau kamu merasa tulisan saya ngebantu kamu, kamu bisa ucapkan terima kasih lewat saweria .

Hello, if you find this article helpful, you can express your gratitude through saweria .



Who Needs This

  1. People who want to track their URLs.

  2. Those who don’t want to pay for URL shortener plus features (such as geolocation, user-agent tracking, etc.).


  1. It’s simple.

  2. It has a Docker image.

  3. Shlink uses RoadRunner as the default runtime.

  4. Their documentation is well-documented.


  1. Docker

  2. Geolite license key. Just sign up , and you can get that for free.


How To

  1. Create a docker-compose.yml file:
version: "3.8"
name: shlink-stack
services:
    shlink-be:
        container_name: shlink-be-ctr
        ports:
            - 8080:8080
        environment:
            - DEFAULT_DOMAIN=${DEFAULT_DOMAIN}
            - IS_HTTPS_ENABLED=${IS_HTTPS_ENABLED}
            - GEOLITE_LICENSE_KEY=${GEOLITE_LICENSE_KEY}
            - DB_DRIVER=${DB_DRIVER}
            - DB_USER=${DB_USER}
            - DB_PASSWORD=${DB_PASSWORD}
            - DB_HOST=${DB_HOST}
            - DB_NAME=${DB_NAME}
            - PORT=${PORT}
            - DEFAULT_REGULAR_404_REDIRECT=${DEFAULT_REGULAR_404_REDIRECT}
            - DEFAULT_INVALID_SHORT_URL_REDIRECT=${DEFAULT_INVALID_SHORT_URL_REDIRECT}
            - DEFAULT_BASE_URL_REDIRECT=${DEFAULT_BASE_URL_REDIRECT}
            - TIMEZONE=${TIMEZONE}
        image: shlinkio/shlink:latest
        logging:
          driver: none
        env_file:
            - .env
        networks:
            - shlink-net

    shlink-fe:
        depends_on:
            - shlink-be
        container_name: shlink-fe-ctr
        ports:
            - 88:8080
        environment:
            - SHLINK_SERVER_URL=${SHLINK_SERVER_URL}
            - SHLINK_SERVER_API_KEY=${SHLINK_SERVER_API_KEY}
            - SHLINK_SERVER_NAME=${SHLINK_SERVER_NAME}
        image: shlinkio/shlink-web-client:latest
        logging:
          driver: none
        env_file:
            - .env
        networks:
            - shlink-net

networks:
    shlink-net:
  1. Then create .env file, fill with
GEOLITE_LICENSE_KEY=yourGEOLITEkey
DEFAULT_DOMAIN=yourshortener-url.com
IS_HTTPS_ENABLED="true"
DB_DRIVER=mysql
DB_USER=user_db
DB_NAME=db_name
DB_PASSWORD=db_password
DB_HOST=db_host
SHLINK_SERVER_URL=https://yourshortener-url.com
SHLINK_SERVER_API_KEY=fillThisAfterCreateNewKey
SHLINK_SERVER_NAME="Your URL Shortener"
DEFAULT_REGULAR_404_REDIRECT=https://ipang.my.id
DEFAULT_INVALID_SHORT_URL_REDIRECT=https://ipang.my.id
DEFAULT_BASE_URL_REDIRECT=https://ipang.my.id
PORT=8080
TIMEZONE=Asia/Jakarta
  1. After this, deploy “shlink-be” first using docker-compose up -d shlink-be

  2. Generate an API key with docker exec -it shlink-be-ctr shlink api-key:generate. Put that key in the variable SHLINK_SERVER_API_KEY= in your .env.

    Generate API Key. Put That Key On .env

    Generate API Key. Put That Key On .env

  3. Deploy “shlink-fe” docker-compose up -d shlink-fe

Your Shlink Server Name Will Listed Here

Your Shlink Server Name Will Listed Here

Shlink Feature

Shlink Feature

Shlink Analytics With Geolocation

Shlink Analytics With Geolocation

Notes:

  1. If you don’t want to deploy Shlink web client, Shlink provides their free web client. You just need to enter your URL and API key.