Lemmy là một trình tổng hợp nội dung và nền tảng blog nhỏ giống Reddit nguồn mở dành cho fediverse. Nó cho phép bạn tạo và điều hành cộng đồng và có thể giao tiếp với các dịch vụ ActivityPub khác bao gồm Mastodon, Pleroma và Peertube.
Mặc dù có những phiên bản Lemmy phổ biến mà bạn có thể tham gia và sử dụng, bạn cũng có thể chạy phiên bản Lemmy của riêng mình cho bạn bè và gia đình. Trong hướng dẫn này, bạn sẽ học cách cài đặt Lemmy trên máy chủ Ubuntu 22.04.
[*]
Một số gói mà hệ thống của bạn cần.
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.
Kiểm tra xem tường lửa có đang chạy không.
Bạn sẽ nhận được kết quả sau.
Cho phép cổng SSH để tường lửa không làm gián đoạn kết nối hiện tại khi bật nó.
Cho phép cả cổng HTTP và HTTPS.
Bật Tường lửa
Kiểm tra lại trạng thái của tường lửa.
Bạn sẽ thấy một thông báo tương tự đầu ra.
Tạo tệp kho lưu trữ Docker.
Cập nhật kho lưu trữ hệ thống danh sách.
Cài đặt phiên bản mới nhất của Docker.
Xác minh rằng đó là đang chạy.
Theo mặc định, Docker yêu cầu quyền root. Nếu bạn muốn tránh sử dụng
Bạn sẽ cần phải đăng xuất khỏi máy chủ và đăng nhập lại với cùng một người dùng để kích hoạt thay đổi này hoặc sử dụng lệnh sau lệnh.
Xác nhận rằng người dùng của bạn đã được thêm vào nhóm Docker.
Chuyển sang thư mục.
Lấy tệp Nginx tùy chỉnh để làm việc Docker.
Lấy tệp Docker compose.
Tạo một thư mục cho ứng dụng Pictrs.
Đặt quyền chính xác cho thư mục.
Mở tệp Docker compose để chỉnh sửa.
Thực hiện các thay đổi sau trong tệp:
Khóa
[*]
Thay thế biến
[*]
Thay thế
[*]
Thay thế biến môi trường hiện tại
[*]
Thêm phần sau vào thuộc tính
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất. Tiếp theo, tạo và mở tệp
Dán nội dung sau mã.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.
Bước tiếp theo là tạo tệp cấu hình PostgreSQL tùy chỉnh để tối ưu hóa cơ sở dữ liệu. Truy cập trang web PGTune để tạo các giá trị tùy thuộc vào kích thước máy chủ của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22600%22%3E%3C/svg%3E
Nhập các giá trị máy chủ và nhấp vào nút Tạo và tạo cấu hình tùy chỉnh.
Tạo và mở tệp
Dán mã bạn lấy từ PGTune.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Kiểm tra trạng thái của các container.
Bạn cũng có thể kiểm tra trạng thái bằng Docker Soạn thảo.
Bạn có thể kiểm tra bằng cách mở URL
Nhập khóa ký của Nginx.
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Cập nhật hệ thống kho lưu trữ.
Cài đặt Nginx.
Xác minh cài đặt.
Khởi động Nginx.
Kiểm tra trạng thái của dịch vụ.
Ubuntu 22.04 đi kèm với Snapd được cài đặt theo mặc định. Chạy các lệnh sau để đảm bảo rằng phiên bản Snapd của bạn được cập nhật.
Cài đặt Certbot.
Sử dụng lệnh sau để đảm bảo rằng lệnh Certbot có thể chạy bằng cách tạo liên kết tượng trưng đến
Chạy lệnh sau để tạo SSL Chứng chỉ.
Lệnh trên sẽ tải chứng chỉ xuống thư mục
Tạo nhóm Diffie-Hellman chứng chỉ.
Kiểm tra dịch vụ lập lịch gia hạn Certbot.
Bạn sẽ tìm thấy
Thực hiện chạy thử quy trình để kiểm tra xem việc gia hạn SSL có hoạt động không tốt.
Nếu bạn không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.
Dán mã sau vào nó.
Lưu ý thư mục gốc được sử dụng trong cấu hình Nginx là
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.
Mở tệp
Thêm dòng sau vào trước dòng
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Xác minh cú pháp tệp cấu hình Nginx.
Khởi động lại dịch vụ Nginx.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22436%22%3E%3C/svg%3E
Nhấp vào liên kết Đăng nhập ở trên cùng để mở trang đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22545%22%3E%3C/svg%3E
Nhập thông tin đăng nhập đã sử dụng ở bước 4 và nhấp vào nút Đăng nhập để tiếp tục. Bạn sẽ được đưa trở lại trang chủ Lemmy. Bạn có thể bắt đầu sử dụng Lemmy từ đây.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22526%22%3E%3C/svg%3E
Thay đổi số phiên bản của các ứng dụng Lemmy, Lemmy-UI và Pictrs trong tệp. Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.
Tắt nguồn các thùng chứa Lemmy.
Khởi động lại các thùng chứa bằng cấu hình mới.
Trong lệnh trên
Tiếp theo, sao lưu thư mục volumes bằng lệnh sau lệnh.
Bạn có thể sử dụng tập lệnh sao lưu sau và chạy nó từ hệ thống cục bộ của mình để sao lưu từ xa.
Nếu vô tình bạn đã khởi động Lemmy trước, bạn cần xóa cơ sở dữ liệu hiện có bằng các lệnh sau.
Bây giờ bạn có thể thực hiện các lệnh khôi phục ở trên.
Mặc dù có những phiên bản Lemmy phổ biến mà bạn có thể tham gia và sử dụng, bạn cũng có thể chạy phiên bản Lemmy của riêng mình cho bạn bè và gia đình. Trong hướng dẫn này, bạn sẽ học cách cài đặt Lemmy trên máy chủ Ubuntu 22.04.
Điều kiện tiên quyết
-
Máy chủ chạy Ubuntu 22.04.
-
Người dùng sudo không phải root.
-
Tên miền đủ điều kiện (FQDN) nhưexample.com
.
-
Đảm bảo mọi thứ đều đã cập nhật.
Mã:
$ sudo apt update
$ sudo apt upgrade
Một số gói mà hệ thống của bạn cần.
Mã:
$ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
Bước 1 - Cấu hình Tường lửa
Bước đầu tiên là cấu hình tường lửa. Ubuntu đi kèm với ufw (Uncomplicated Firewall) theo mặc định.Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo ufw status
Mã:
Status: inactive
Mã:
$ sudo ufw allow OpenSSH
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Mã:
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Mã:
$ sudo ufw status
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Bước 2 - Cài đặt Docker và Docker Compose
Ubuntu 22.04 đi kèm với phiên bản Docker cũ hơn. Để cài đặt phiên bản mới nhất, trước tiên, hãy nhập khóa GPG của Docker.
Mã:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
Mã:
$ echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Mã:
$ sudo apt update
Mã:
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Mã:
$ sudo systemctl status docker
? docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2023-08-04 07:48:20 UTC; 4min 29s ago
TriggeredBy: ? docker.socket Docs: https://docs.docker.com Main PID: 2372 (dockerd) Tasks: 8 Memory: 23.9M CPU: 295ms CGroup: /system.slice/docker.service ??2372 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
sudo
mỗi khi bạn chạy lệnh docker
, hãy thêm tên người dùng của bạn vào docker
nhóm.
Mã:
$ sudo usermod -aG docker $(whoami)
Mã:
$ su - ${USER}
Mã:
$ groups
navjot wheel docker
Bước 3 - Tạo và tải xuống các tệp Lemmy
Tạo một thư mục cho Lemmy.
Mã:
$ mkdir ~/lemmy
Mã:
$ cd ~/lemmy
Mã:
$ wget https://raw.githubusercontent.com/LemmyNet/lemmy-ansible/main/templates/nginx_internal.conf
Mã:
$ wget https://raw.githubusercontent.com/LemmyNet/lemmy-ansible/main/templates/docker-compose.yml
Mã:
$ mkdir -p volumes/pict-rs
Mã:
$ sudo chown -R 991:991 volumes/pict-rs
Bước 4 - Cấu hình Lemmy
Trước khi tiến hành cài đặt, chúng ta cần chỉnh sửa các tệp đã tải xuống.Mở tệp Docker compose để chỉnh sửa.
Mã:
$ nano docker-compose.yml
-
Thay thế biến{{ lemmy_port }}
bằng8536
trong tệp.
-
Thay thế biến{{ lemmy_docker_image }}
vớidessalines/lemmy:0.18.3
trong tệp. Bạn có thể tải phiên bản mới nhất của hình ảnh Docker của Lemmy từ trang Docker Hub. Trang này yêu cầu bạn phải có tài khoản Docker. Ngoài ra, bạn có thể lấy phiên bản từ trang phát hành Github.
-
Thay thế biến{{ lemmy_docker_ui_image }}
bằngdessalines/lemmy-ui:0.18.3
trong tệp. Đảm bảo phiên bản khớp với hình ảnh docker của Lemmy, nếu không, nó sẽ không hoạt động.
-
Tạo khóa API cho pict-rs bằng lệnh sau.
Mã:
$ openssl rand -base64 32
lRLcaM5rovxzmztlDvtkGijJyBtg4KlEKC6HRb3dn7s=
PICTRS__API_KEY
trong thuộc tính môi trường bên dưới Dịch vụ pictrs
được cấu hình sai khi nói rằng đó phải là mật khẩu PostgreSQL. Thay thế biến {{ postgres_password }}
trên biến khóa API bằng khóa được tạo trong lệnh trên.[*]
Thay thế biến
{{ domain }}
trong tệp bằng tên miền đủ điều kiện cho phiên bản Lemmy của bạn.[*]
Thay thế
{{ postgres_password }}
bằng mật khẩu mạnh mà bạn chọn cho máy chủ PostgreSQL.[*]
Thay thế biến môi trường hiện tại
RUST_LOG
bằng sau đây.
Mã:
- RUST_LOG="warn,lemmy_server=debug,lemmy_api=debug,lemmy_api_common=debug,lemmy_api_crud=debug,lemmy_apub=debug,lemmy_db_schema=debug,lemmy_db_views=debug,lemmy_db_views_actor=debug,lemmy_db_views_moderator=debug,lemmy_routes=debug,lemmy_utils=debug,lemmy_websocket=debug"
- RUST_BACKTRACE=full
Thêm phần sau vào thuộc tính
hostname
trong PostgreSQL dịch vụ.
Mã:
command: [ "postgres", "-c", "session_preload_libraries=auto_explain", "-c", "auto_explain.log_min_duration=5ms", "-c", "auto_explain.log_analyze=true", "-c", "track_activity_query_size=1048576", ]
ports: # use a different port so it doesnt conflict with potential postgres db running on the host - "5433:5432"
lemmy.hjson
để chỉnh sửa.
Mã:
$ nano lemmy.hjson
Mã:
{ # for more info about the config, check out the documentation # https://join-lemmy.org/docs/en/administration/configuration.html database: { host: "postgres" user: "lemmy" password: "yourpsqlpassword" database: "lemmy" port: 5432 } hostname: "example.com" pictrs: { url: "http://pictrs:8080/" # Set a custom pictrs API key. ( Required for deleting images ) api_key: "lRLcaM5rovxzmztlDvtkGijJyBtg4KlEKC6HRb3dn7s=" } email: { smtp_server: "email-smtp.us-west-2.amazonaws.com:465" smtp_login: "AmazonSESUserID" smtp_password:"AmazonSESPassword" smtp_from_address: "[emailprotected]" # Whether or not smtp connections should use tls. Can be none, tls, or starttls tls_type: "tls" } setup: { # Username for the admin user admin_username: "admin" # Password for the admin user. It must be at least 10 characters. admin_password: "tf6HHDS4RolWfFhk4Rq9" # Name of the site (can be changed later) site_name: "Howtoforge Lemmy" # Email for the admin user (optional, can be omitted and set later through the website) admin_email: "[emailprotected]" }
}
Bước tiếp theo là tạo tệp cấu hình PostgreSQL tùy chỉnh để tối ưu hóa cơ sở dữ liệu. Truy cập trang web PGTune để tạo các giá trị tùy thuộc vào kích thước máy chủ của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22600%22%3E%3C/svg%3E
Nhập các giá trị máy chủ và nhấp vào nút Tạo và tạo cấu hình tùy chỉnh.
Tạo và mở tệp
customPostgresql.conf
cho chỉnh sửa.
Mã:
$ nano customPostgresql.conf
Mã:
# DB Version: 15
# OS Type: linux
# DB Type: web
# Total Memory (RAM): 2 GB
# CPUs num: 2
# Connections num: 100
# Data Storage: ssd
max_connections = 100
shared_buffers = 512MB
effective_cache_size = 1536MB
maintenance_work_mem = 128MB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 2621kB
min_wal_size = 1GB
max_wal_size = 4GB
Bước 5 - Cài đặt Lemmy
Bây giờ tất cả các tệp đã được định cấu hình, đã đến lúc chạy Lemmy. Chạy lệnh sau để khởi chạy các container docker.
Mã:
$ docker compose up -d
Mã:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
75443bb3db3e nginx:1-alpine "/docker-entrypoint.…" 32 seconds ago Up 29 seconds 80/tcp, 0.0.0.0:8536->8536/tcp, :::8536->8536/tcp lemmy-proxy-1
8393c8d625af dessalines/lemmy-ui:0.18.1 "docker-entrypoint.s…" 32 seconds ago Up 30 seconds 1234/tcp lemmy-lemmy-ui-1
ea743c8279f7 dessalines/lemmy:0.18.1 "/app/lemmy" 32 seconds ago Up 26 seconds lemmy-lemmy-1
78855ae7871e postgres:15-alpine "docker-entrypoint.s…" 33 seconds ago Up 31 seconds 5432/tcp lemmy-postgres-1
9556b57afdb9 asonix/pictrs:0.4.0 "/sbin/tini -- /usr/…" 33 seconds ago Up 31 seconds 6669/tcp, 8080/tcp lemmy-pictrs-1
Mã:
$ docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
lemmy-lemmy-1 dessalines/lemmy:0.18.1 "/app/lemmy" lemmy About a minute ago Up About a minute
lemmy-lemmy-ui-1 dessalines/lemmy-ui:0.18.1 "docker-entrypoint.s…" lemmy-ui About a minute ago Up About a minute 1234/tcp
lemmy-pictrs-1 asonix/pictrs:0.4.0 "/sbin/tini -- /usr/…" pictrs About a minute ago Up About a minute 6669/tcp, 8080/tcp
lemmy-postgres-1 postgres:15-alpine "docker-entrypoint.s…" postgres About a minute ago Up About a minute 5432/tcp
lemmy-proxy-1 nginx:1-alpine "/docker-entrypoint.…" proxy About a minute ago Up About a minute 80/tcp, 0.0.0.0:8536->8536/tcp, :::8536->8536/tcp
http://:8536/
và bạn sẽ thấy trang chủ của Lemmy. Điều đó kết luận rằng mọi thứ đều ổn. Bước tiếp theo là cài đặt Nginx và Certbot để phục vụ Lemmy thông qua tên miền.Bước 6 - Cài đặt Nginx
Ubuntu 22.04 được tích hợp phiên bản Nginx cũ hơn. Để cài đặt phiên bản mới nhất, bạn cần tải xuống kho lưu trữ Nginx chính thức.Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install nginx
Mã:
$ nginx -v
nginx version: nginx/1.24.0
Mã:
$ sudo systemctl start nginx
Mã:
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2023-08-04 09:01:56 UTC; 3s ago Docs: https://nginx.org/en/docs/ Process: 5297 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 5298 (nginx) Tasks: 2 (limit: 2308) Memory: 1.9M CPU: 7ms CGroup: /system.slice/nginx.service ??5298 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf" ??5299 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Bước 7 - Cài đặt SSL
Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Ubuntu hoặc tải phiên bản mới nhất bằng công cụ Snapd. Chúng ta sẽ sử dụng phiên bản Snapd.Ubuntu 22.04 đi kèm với Snapd được cài đặt theo mặc định. Chạy các lệnh sau để đảm bảo rằng phiên bản Snapd của bạn được cập nhật.
Mã:
$ sudo snap install core && sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
/usr/bin
thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d example.com
/etc/letsencrypt/live/example.com
trên máy chủ của bạn.Tạo nhóm Diffie-Hellman chứng chỉ.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Mã:
$ sudo systemctl list-timers
snap.certbot.renew.service
là một trong những dịch vụ được lên lịch chạy.
Mã:
NEXT LEFT LAST PASSED UNIT ACTIVATES
Fri 2023-08-04 09:50:30 UTC 46min left Fri 2023-08-04 01:49:37 UTC 7h ago apt-daily.timer apt-daily.service
Sat 2023-08-05 00:00:00 UTC 14h left Wed 2023-06-28 04:41:28 UTC 5h 7min ago dpkg-db-backup.timer dpkg-db-backup.service
Fri 2023-08-04 18:54:00 UTC 9h left n/a n/a snap.certbot.renew.timer snap.certbot.renew.service
Mã:
$ sudo certbot renew --dry-run
Bước 8 - Cấu hình Nginx
Tạo và mở tệp/etc/nginx/conf.d/lemmy.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/lemmy.conf
Mã:
limit_req_zone $binary_remote_addr zone=example.com_ratelimit:10m rate=1r/s;
server { listen 80; listen [::]:80; server_name example.com; # Hide nginx version server_tokens off; location / { return 301 https://$host$request_uri; }
}
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.com; access_log /var/log/nginx/lemmy.access.log; error_log /var/log/nginx/lemmy.error.log; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers off; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; # use https://blog.cloudflare.com/announcing-1111 Cloudfare+Apnic labs, It is free and secure resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] valid=300s; # Hide nginx version server_tokens off; # Enable compression for JS/CSS/HTML bundle, for improved client load times. # It might be nice to compress JSON, but leaving that out to protect against potential # compression+encryption information leak attacks like BREACH. gzip on; gzip_types text/css application/javascript image/svg+xml; gzip_vary on; # Various content security headers add_header Referrer-Policy "same-origin"; add_header X-Content-Type-Options "nosniff"; add_header X-Frame-Options "DENY"; add_header X-XSS-Protection "1; mode=block"; location / { proxy_pass http://localhost:8536; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
}
/var/www/html/Lemmy/public/
.Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.
Mở tệp
/etc/nginx/nginx.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
.
Mã:
server_names_hash_bucket_size 64;
Xác minh cú pháp tệp cấu hình Nginx.
Mã:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Mã:
$ sudo systemctl restart nginx
Bước 9 - Truy cập Lemmy
Mở URLhttps://example.com
và bạn sẽ nhận được trang chủ Lemmy sau.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22436%22%3E%3C/svg%3E
Nhấp vào liên kết Đăng nhập ở trên cùng để mở trang đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22545%22%3E%3C/svg%3E
Nhập thông tin đăng nhập đã sử dụng ở bước 4 và nhấp vào nút Đăng nhập để tiếp tục. Bạn sẽ được đưa trở lại trang chủ Lemmy. Bạn có thể bắt đầu sử dụng Lemmy từ đây.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22526%22%3E%3C/svg%3E
Bước 10 - Nâng cấp Lemmy
Để nâng cấp Lemmy, hãy mở tệpdocker-compose.yml
trong Thư mục ~/lemmy
.
Mã:
$ cd ~/lemmy
$ nano docker-compose.yml
Tắt nguồn các thùng chứa Lemmy.
Mã:
$ docker compose down --remove-orphan
Mã:
$ docker compose up -d
Bước 11 - Sao lưu và khôi phục Lemmy
Để sao lưu Lemmy, chúng ta phải sao lưu cả cơ sở dữ liệu và thư mục ổ đĩa. Chạy các lệnh sau để sao lưu cơ sở dữ liệu.
Mã:
$ cd ~/lemmy
$ docker compose exec postgres pg_dumpall -c -U lemmy | gzip > lemmy_dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.gz
postgres
là tên dịch vụ cho PostgreSQL trong tệp compose.Tiếp theo, sao lưu thư mục volumes bằng lệnh sau lệnh.
Mã:
$ sudo rsync -avP volumes ~/backup/lemmy
Mã:
#!/bin/sh
# DB Backup
ssh USERNAME@SERVER_IP "docker-compose exec postgres pg_dumpall -c -U lemmy" | gzip > ~/BACKUP_LOCATION/INSTANCE_NAME_dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.gz
# Volumes folder Backup
rsync -avP -zz --rsync-path="sudo rsync" USERNAME@SERVER_IP:/LEMMY_LOCATION/volumes ~/BACKUP_LOCATION/FOLDERNAME
Khôi phục cơ sở dữ liệu Lemmy
Để khôi phục cơ sở dữ liệu trên bản cài đặt Lemmy mới, hãy chạy tập lệnh sau lệnh.
Mã:
# Start only the PostgreSQL container first
$ docker compose up -d postgres
# Restore from the .sql.gz backup
$ gunzip < db_dump.sql | docker-compose exec -T postgres psql -U lemmy
# Note: You may need to change the permissions on the postgres directory, depending on your system.
$ chown -R $USER volumes
$ docker compose restart postgres
# Continue with the startup
$ docker compose up -d
Mã:
# Drop the existing DB
docker exec -i FOLDERNAME-postgres-1 psql -U lemmy -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;"
# This also might be necessary when doing a db import with a different password.
docker exec -i FOLDERNAME-postgres-1 psql -U lemmy -c "alter user lemmy with password 'bleh'"