Shlink là dịch vụ rút ngắn liên kết tự lưu trữ mạnh mẽ dành cho Linux. Nó cung cấp một khuôn khổ đơn giản nhưng hiệu quả, nơi bạn có thể sử dụng tên miền của riêng mình làm gốc cho các liên kết rút gọn của mình. Bài viết này sẽ hướng dẫn bạn cách cài đặt phiên bản Shlink của riêng bạn trên Ubuntu Linux bằng Docker và Nginx.
Tải xuống Docker cho Shlink
Bài viết này giả định rằng bạn đang cài đặt Shlink trên VPS Ubuntu 22.04 và hiện bạn đang sở hữu một tên miền.
Bước đầu tiên trong việc triển khai Shlink trên Linux là tải xuống bản sao Docker. Để thực hiện việc này, hãy lấy khóa ký của dự án Docker từ trang web của họ:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Tạo một tệp kho lưu trữ cho các tệp nhị phân Docker của bạn:
sudo nano /etc/apt/sources.list.d/docker.list
Dán dòng mã sau vào tệp kho lưu trữ mới của bạn:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable
Tải lại danh sách kho lưu trữ hệ thống của bạn bằng cách thực hiện lệnh apt update:
sudo apt update && sudo apt upgrade
Cài đặt phụ thuộc cho Shlink
Sau khi kho lưu trữ Docker hoạt động, giờ đây bạn có thể sử dụng apt để nhận các phần phụ thuộc cho Shlink:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx
Đảm bảo rằng gói snap “lõi” có sẵn trong hệ thống của bạn:
sudo snap install core
Tìm nạp và cài đặt gói snap “certbot” từ Electronic Frontier Foundation:
sudo snap install certbot --classic
Nhận mã bản quyền Geolite2
Một tính năng nổi bật khác của Shlink là nó có thể theo dõi vị trí chung của người dùng đã nhấp vào liên kết của bạn. Để sử dụng tính năng này, hãy mở trang Đăng ký cấp phép Geolite2.
Điền thông tin chi tiết của bạn vào biểu mẫu rồi nhấn tiếp tục.
Mở hộp thư đến email của bạn, sau đó tìm email xác nhận từ MaxMind.
Nhấp vào liên kết từ email, sau đó cung cấp mật khẩu cho tài khoản MaxMind mới của bạn.
Đăng nhập vào tài khoản MaxMind của bạn, sau đó nhấp vào Quản lý khóa cấp phép trên bảng điều khiển.
Nhấp chuột Tạo khóa cấp phép mớisau đó nhấn Xác nhận để tạo khóa Geolite2 của bạn.
Sao chép mã giấy phép Geolite2 vào tệp văn bản trên máy tính của bạn và lưu nó.
Tải xuống và cài đặt Shlink
Để cài đặt Shlink, trước tiên bạn cần tạo mạng Docker ảo. Mạng này sẽ đóng vai trò là mạng riêng của ứng dụng, nơi ứng dụng có thể giao tiếp với các vùng chứa khác mà bạn sẽ triển khai:
sudo docker network create -d bridge \
--subnet=10.0.0.0/24 \
--gateway=10.0.0.1 \
shlink-network
Triển khai cơ sở dữ liệu PostgreSQL và liên kết nó với mạng Docker ảo mới của bạn:
sudo docker run -d \
--name shlink-db \
-e POSTGRES_PASSWORD=!REPLACE_ME! \
-e POSTGRES_USER=postgres \
-e POSTGRES_DB=shlink \
-p 127.0.0.1:5432:5432 \
--restart always \
--network="shlink-network" \
postgres:12.1
Thay đổi giá trị của biến môi trường “POSTGRES_PASSWORD” bằng một chuỗi văn bản ngẫu nhiên.
Ghi chú: Bạn có thể tạo chuỗi văn bản ngẫu nhiên này bằng cách sử dụng “/dev/urandom”:
cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1
Dán lệnh sau vào phiên cuối mới:
sudo docker run -d \
--name shlink-stable \
-p 8081:8080 \
-e DEFAULT_DOMAIN=YOUR-ROOT.DOMAIN \
-e IS_HTTPS_ENABLED=true \
-e GEOLITE_LICENSE_KEY=!REPLACE_ME! \
-e DB_DRIVER=postgres \
-e DB_USER=postgres \
-e DB_PASSWORD=!REPLACE_ME! \
-e DB_HOST=shlink-db \
--network="shlink-network" \
shlinkio/shlink:stable
Thay thế giá trị của biến TÊN MIỀN MẶC ĐỊNH với tên miền của bạn.
Ghi chú: Đảm bảo miền của bạn có bản ghi A trỏ đến địa chỉ IP của máy.
Thay đổi giá trị của biến “GEOLITE_LICENSE_KEY” với mã cấp phép cá nhân của bạn.
Thay thế biến “DB_PASSWORD” bằng mật khẩu cơ sở dữ liệu PostgreSQL của bạn.
Nhấn Đi vào để bắt đầu phiên bản Shlink của bạn.
Cài đặt và liên kết giao diện Shlink của bạn
Lấy khóa API từ vùng chứa Shlink của bạn, sau đó sao chép nó vào bảng nhớ tạm:
sudo docker exec -it shlink-stable shlink api-key:generate
Dán lệnh sau vào phiên cuối mới:
sudo docker run -d \
--name shlink-client \
-p 8080:8080 \
-e SHLINK_SERVER_URL=https://YOUR-ROOT.DOMAIN \
-e SHLINK_SERVER_API_KEY=!REPLACE-ME! \
--network="shlink-network" shlinkio/shlink-web-client
Thay thế “SHLINK_SERVER_URL” bằng giá trị biến “TÊN MIỀN MẶC ĐỊNH” trên vùng chứa phụ trợ.
Dán khóa API của bạn làm giá trị cho “SHLINK_SERVER_API_KEY”.
Nhấn Đi vào để bắt đầu giao diện lối vào Shlink của bạn.
Xác nhận rằng cơ sở dữ liệu, chương trình phụ trợ Shlink và giao diện người dùng Shlink của bạn đang hoạt động bình thường bằng cách liệt kê tất cả các vùng chứa hiện đang hoạt động trong hệ thống:
sudo docker container list
Tạo Proxy ngược SSL bằng Nginx
Tại thời điểm này, bạn nên có bộ phần mềm Shlink hoạt động trên máy chủ của mình. Tuy nhiên, để truy cập nó, bạn vẫn cần tạo proxy web SSL để ủy quyền hai vùng chứa của mình trên các miền khác nhau.
Để bắt đầu, hãy tạo bản ghi A mới cho giao diện người dùng Shlink của bạn. Trong trường hợp này, ví dụ sẽ đặt bản ghi A cho giao diện người dùng của nó thành “quản trị viên”.
Tạo tệp cấu hình trang web cho phiên bản Shlink bằng trình soạn thảo văn bản yêu thích của bạn:
sudo nano /etc/nginx/sites-available/shlink
Dán khối mã sau vào tệp cấu hình của bạn:
server
server_name YOUR-ROOT.DOMAIN;
location /
proxy_pass http://127.0.0.1:8081;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
server
server_name SUBDOMAIN.YOUR-ROOT.DOMAIN;
location /
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
Thay thế biến “ROOT.DOMAIN CỦA BẠN” bằng tên miền gốc của bạn và thay thế “SUBDOMAIN.YOUR-ROOT.DOMAIN” với tên miền phụ cho giao diện lối vào của bạn.
Lưu tệp cấu hình của bạn, sau đó kích hoạt ứng dụng web của bạn trong Nginx:
sudo ln -s /etc/nginx/sites-available/shlink /etc/nginx/sites-enabled/
Tải lại trình nền Nginx của bạn để áp dụng cài đặt mới của bạn:
sudo systemctl reload nginx
Đăng ký máy chủ của bạn với Electronic Frontier Foundation:
sudo certbot register --agree-tos -m YOUR@EMAIL.ADDRESS
Yêu cầu chứng chỉ SSL đa miền mới cho phiên bản Shlink của bạn:
sudo certbot --nginx -d YOUR-ROOT.DOMAIN -d SUBDOMAIN.YOUR-ROOT.DOMAIN
Xác nhận rằng máy chủ Shlink đang hoạt động bình thường bằng cách điều hướng tới bảng điều khiển dành cho quản trị viên phiên bản của bạn. Trong trường hợp này, đó là “https://admin.helloserver.top”.
Tạo liên kết đầu tiên của bạn bằng Shlink
Để sử dụng phiên bản mới của bạn, hãy nhấp vào mục menu Shlink trên trang đích.
Dán URL dài của bạn vào hộp văn bản URL cần rút ngắn trong danh mục Tạo một URL ngắn.
Cung cấp một số siêu dữ liệu cho liên kết ngắn của bạn, sau đó nhấp vào Cứu để tạo liên kết của bạn.
Mở URL ngắn mới của bạn trên tab trình duyệt mới, sau đó nhấp vào nút Lượt truy cập trên bảng điều khiển Shlink của bạn để kiểm tra xem nó có hoạt động bình thường không.
Cài đặt và triển khai dịch vụ rút ngắn liên kết riêng tư chỉ là bước đầu tiên để lấy lại quyền riêng tư trực tuyến của bạn. Tìm hiểu cách Linux có thể giúp bạn lấy lại nhiều quyền riêng tư hơn bằng cách lưu trữ trang web ẩn danh của riêng bạn trong Ubuntu bằng Tor.
- FPT Telecom làm việc cả ngày lễ, thứ 7 và chủ nhật, quý khách có nhu cầu đăng ký hoặc tham khảo các gói cước hay liên hệ thông tin đăng ký dịch vụ quý khách hàng vui lòng liên hệ qua web hoặc các thông tin bên dưới để nhân viên hỗ trợ 24/7.
- FPT Telecom – Công Ty Cổ Phần Viễn Thông FPT
- Mobile : 098.1489.411
- Website: https://fpt8.com
Cảm ơn quý khách đã tin tưởng và sử dụng dịch vụ mà FPT Telecom cung cấp, chúng tôi sẽ luôn cập nhật các chương trình ưu đãi khuyến mãi lắp mạng FPT tại Website: https://fpt8.com