Chuyển tới nội dung chính

Sao lưu

Trong HiTechCloud, việc sao lưu có thể được cấu hình trực tiếp bởi người dùng panel, khác với các panel khác nơi sao lưu do quản trị viên quản lý.

Điều này giúp người dùng tự định nghĩa lịch sao lưu, chọn chính xác những gì cần sao lưu và chọn trong nhiều đích được hỗ trợ. Nhờ đó quản trị viên có ít việc phải quản lý hơn, còn người dùng được kiểm soát và linh hoạt hơn.

backups.png

Đích sao lưu​

HiTechCloud hỗ trợ các đích sau:

  • Lưu trữ S3 - AWS S3, Filebase, MinIO, v.v.
  • WebDAV - Sao lưu từ xa bằng WebDAV.
  • SSH - Sao lưu từ xa qua SSH tới một máy chủ khác.
  • Azure - Sao lưu từ xa lên Azure Blob Storage.
  • Dropbox - Sao lưu từ xa lên kho lưu trữ đám mây Dropbox.

Người dùng chọn đích từ trang Backups > Destinations.

destinations.png

Khi đã chọn đích sao lưu, các tuỳ chọn của nó có trên trang Backups > Settings.

SSH/SFTP​

Cài đặtMô tả
SSH_HOST_NAMEFQDN của máy chủ SSH từ xa, ví dụ: server.local
SSH_PORTCổng của máy chủ SSH từ xa
SSH_REMOTE_PATHThư mục đặt các bản sao lưu trên máy chủ SSH. Ví dụ: /home/user/backups
SSH_USERTên người dùng của máy chủ SSH. Ví dụ: user
SSH_PASSWORDMật khẩu của máy chủ SSH. Ví dụ: password
SSH_IDENTITY_FILEĐường dẫn khoá riêng bên trong /var/www/html/ cho máy chủ SSH. Khoá không phải RSA (ví dụ ed25519) cũng dùng được.
SSH_IDENTITY_PASSPHRASECụm mật khẩu của tệp định danh nếu có. Ví dụ: pass

S3​

Cài đặtMô tả
AWS_S3_BUCKET_NAMETên bucket từ xa dùng để lưu các bản sao lưu. Nếu không đặt, sẽ không có bản sao lưu từ xa nào được lưu. Ví dụ: backup-bucket
AWS_S3_PATHNếu bạn muốn lưu bản sao lưu ở một vị trí không phải gốc trong bucket, hãy cung cấp một đường dẫn. Đường dẫn không được bắt đầu bằng dấu gạch chéo. Ví dụ: my/backup/location
AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEYĐịnh nghĩa thông tin xác thực để xác thực với kho lưu trữ sao lưu và tên bucket. Dù tất cả các khoá này đều có tiền tố AWS, cách thiết lập này dùng được với mọi kho lưu trữ tương thích S3.
AWS_IAM_ROLE_ENDPOINTThay vì cung cấp thông tin xác thực tĩnh, bạn cũng có thể dùng IAM instance profile hoặc tương tự để xác thực. Một số tuỳ chọn cấu hình có thể dùng trên AWS: - EC2: http://169.254.169.254 - ECS: http://169.254.170.2
AWS_ENDPOINTĐây là FQDN của máy chủ lưu trữ của bạn, ví dụ storage.example.com. Nếu cần đặt một giao thức cụ thể (không phải https), bạn cần dùng tuỳ chọn AWS_ENDPOINT_PROTO. Giá trị mặc định trỏ tới endpoint AWS S3 tiêu chuẩn. Ví dụ: s3.amazonaws.com
AWS_ENDPOINT_PROTOGiao thức dùng khi giao tiếp với máy chủ lưu trữ S3 của bạn. Mặc định là "https". Bạn có thể đặt thành "http" khi giao tiếp với một kho lưu trữ s3 tự lưu trữ khác.
AWS_ENDPOINT_INSECUREĐặt biến này thành true sẽ tắt việc xác minh chứng chỉ SSL cho AWS_ENDPOINT. Bạn không nên dùng trừ khi dùng chứng chỉ tự ký cho hệ thống lưu trữ từ xa. Chỉ dùng được khi AWS_ENDPOINT_PROTO được đặt là https.
AWS_ENDPOINT_CA_CERTNếu bạn muốn dùng chứng chỉ tự ký cho máy chủ S3 của mình, bạn có thể truyền vị trí của một chứng chỉ CA mã hoá PEM và nó sẽ được dùng để xác minh chứng chỉ của bạn. Hoặc truyền một chuỗi mã hoá PEM chứa chứng chỉ. Ví dụ: /var/www/html/cert.pem
AWS_STORAGE_CLASSĐặt giá trị cho khoá này sẽ đổi tiêu đề lớp lưu trữ S3. Hành vi mặc định là dùng lớp chuẩn khi không có giá trị. Ví dụ: GLACIER
AWS_PART_SIZEĐặt biến này sẽ đổi kích thước phần mặc định của S3 cho bước sao chép. Giá trị này hữu ích khi bạn muốn tải lên các tệp lớn. Lưu ý: khi dùng Scaleway làm nhà cung cấp S3, hãy biết rằng bộ đếm số phần được đặt là 1.000. Trong khi Minio dùng giá trị cố định là 10.000. Để khắc phục, hãy thử đặt một giá trị cao hơn. Mặc định là 16 (MB) nếu không đặt (theo minio), bạn có thể đặt giá trị này tuỳ nhu cầu. Đơn vị là MB và là một số nguyên.

WebDAV​

Cài đặtMô tả
WEBDAV_URLURL của máy chủ WebDAV từ xa. Ví dụ: https://webdav.example.com
WEBDAV_PATHThư mục đặt các bản sao lưu trên máy chủ WebDAV. Nếu đường dẫn chưa có trên máy chủ, nó sẽ được tạo. Ví dụ: /my/directory/
WEBDAV_USERNAMETên người dùng của máy chủ WebDAV. Ví dụ: user
WEBDAV_PASSWORDMật khẩu của máy chủ WebDAV. Ví dụ: password
WEBDAV_URL_INSECUREĐặt biến này thành "true" sẽ tắt việc xác minh chứng chỉ SSL cho WEBDAV_URL. Bạn không nên dùng trừ khi dùng chứng chỉ tự ký cho hệ thống lưu trữ từ xa.

Azure​

Cài đặtMô tả
AZURE_STORAGE_ACCOUNT_NAMETên tài khoản của thông tin xác thực khi dùng Azure Blob Storage. Bắt buộc phải đặt khi dùng Azure Blob Storage. Ví dụ: account-name
AZURE_STORAGE_PRIMARY_ACCOUNT_KEYKhoá tài khoản chính của thông tin xác thực khi dùng Azure Blob Storage. Nếu không có, lệnh thử dùng chuỗi kết nối (nếu có) hoặc một danh tính được quản lý (nếu cả hai đều không được đặt).
AZURE_STORAGE_CONNECTION_STRINGMột chuỗi kết nối để truy cập Azure Blob Storage. Nếu không có, lệnh thử dùng khoá tài khoản chính (nếu có) hoặc một danh tính được quản lý (nếu cả hai đều không được đặt).
AZURE_STORAGE_CONTAINER_NAMETên container khi dùng Azure Blob Storage. Ví dụ: container-name
AZURE_STORAGE_ENDPOINTEndpoint dịch vụ khi dùng Azure Blob Storage. Đây là một mẫu có thể nhận tên tài khoản. Ví dụ: https://{{ .AccountName }}.blob.core.windows.net/
AZURE_STORAGE_ACCESS_TIERTầng truy cập khi dùng Azure Blob Storage. Các giá trị có thể được liệt kê ở đây. Ví dụ: Cold

Dropbox​

Cài đặtMô tả
DROPBOX_REMOTE_PATHĐường dẫn tuyệt đối từ xa trong Dropbox của bạn nơi các bản sao lưu được lưu. Lưu ý: hãy dùng đường dẫn con của ứng dụng trong Dropbox nếu nó không có quyền truy cập toàn cục. Ví dụ: /my/directory
DROPBOX_APP_KEY DROPBOX_APP_SECRETKhoá ứng dụng và bí mật ứng dụng từ ứng dụng bạn đã tạo tại https://www.dropbox.com/developers/apps
DROPBOX_CONCURRENCY_LEVELSố lần tải lên theo khối đồng thời cho Dropbox. Giá trị trên 6 thường không cải thiện thêm.
DROPBOX_REFRESH_TOKENRefresh token để yêu cầu các token ngắn hạn mới (OAuth2)

Thiết lập backend lưu trữ Dropbox:

  1. Tạo một Ứng dụng Dropbox mới trong App Console
  2. Mở Ứng dụng Dropbox mới của bạn và sao chép DROPBOX_APP_KEY và DROPBOX_APP_SECRET
  3. Nhấn Permissions trong ứng dụng và bảo đảm các quyền sau đã được cấp (hoặc nhiều hơn):
    • files.metadata.write
    • files.metadata.read
    • files.content.write
    • files.content.read
  4. Thay APPKEY trong https://www.dropbox.com/oauth2/authorize?client_id=APPKEY&token_access_type=offline&response_type=code bằng khoá ứng dụng ở bước 2
  5. Truy cập URL và xác nhận quyền truy cập của ứng dụng. Việc này cho bạn một auth code -> hãy lưu nó ở đâu đó!
  6. Thay AUTHCODE, APPKEY, APPSECRET tương ứng và thực hiện yêu cầu từ terminal của bạn:
    curl https://api.dropbox.com/oauth2/token \
    -d code=AUTHCODE \
    -d grant_type=authorization_code \
    -d client_id=APPKEY \
    -d client_secret=APPSECRET
  7. Thực hiện yêu cầu. Bạn sẽ nhận một phản hồi định dạng JSON. Dùng giá trị của refresh_token cho thiết lập cuối cùng DROPBOX_REFRESH_TOKEN
  8. Giờ bạn đã đặt DROPBOX_APP_KEY, DROPBOX_APP_SECRET và DROPBOX_REFRESH_TOKEN. Chúng không hết hạn.
INFORMATION

Lưu ý: Dùng "Generated access token" trong app console không được hỗ trợ, vì nó chỉ tồn tại rất ngắn nên không phù hợp cho một giải pháp sao lưu tự động. Refresh token xử lý việc này tự động - quy trình thiết lập ở trên chỉ cần làm một lần.

DANGER

Quan trọng: Nếu bạn chọn quyền truy cập App folder khi tạo ứng dụng Dropbox ở bước 1 ở trên, DROPBOX_REMOTE_PATH sẽ là một đường dẫn tương đối nằm dưới App folder! (Ví dụ DROPBOX_REMOTE_PATH=/somedir nghĩa là tệp sao lưu sẽ được tải lên /Apps/myapp/somedir) Ngược lại, nếu bạn chọn quyền truy cập Full Dropbox, giá trị của DROPBOX_REMOTE_PATH sẽ biểu diễn một đường dẫn tuyệt đối trong vùng lưu trữ Dropbox của bạn. (Vẫn với ví dụ trên, tệp sao lưu sẽ được tải lên /somedir trong thư mục gốc Dropbox của bạn)

Nguồn của phần tham chiếu này

Phần tham chiếu cài đặt từ đây xuống tới Thông báo, và dòng nhật ký dưới Khắc phục sự cố, được phỏng theo tài liệu của docker-volume-backup của offen, được cấp phép theo Mozilla Public License 2.0. Các định dạng URL thông báo và danh sách trường theo từng dịch vụ (Email, Bark, Discord) được phỏng theo tài liệu Shoutrrr, được cấp phép theo Giấy phép MIT.

Native stack

Các biến này cấu hình container sao lưu theo từng tài khoản của stack container (Docker). Trên native stack, HiTechCloud tự chạy sao lưu và không đọc chúng: lịch (tần suất và giờ), những gì được bao gồm, bộ máy (tar hoặc restic) và số bản sao hằng ngày, hằng tuần và hằng tháng cần giữ được đặt thành các trường trên Backups > Settings. Các cài đặt đích ở trên vẫn áp dụng.

Mã hoá​

Mã hoá sao lưu mặc định bị tắt và phải được Quản trị viên bật trước.

Tất cả các tuỳ chọn mã hoá loại trừ lẫn nhau. Hãy cung cấp một tuỳ chọn duy nhất cho sơ đồ mã hoá bạn chọn.

Cài đặtMô tả
GPG_PASSPHRASECác bản sao lưu có thể được mã hoá đối xứng bằng gpg nếu có cụm mật khẩu.
GPG_PUBLIC_KEY_RINGCác bản sao lưu có thể được mã hoá bất đối xứng bằng gpg nếu có khoá công khai. Bạn có thể dùng cú pháp pipe để truyền một giá trị nhiều dòng.
AGE_PASSPHRASECác bản sao lưu có thể được mã hoá đối xứng bằng age nếu có cụm mật khẩu.
AGE_PUBLIC_KEYSCác bản sao lưu có thể được mã hoá bất đối xứng bằng age nếu có khoá công khai. Nhiều khoá cần được cung cấp dưới dạng danh sách phân tách bằng dấu phẩy. Hiện tại hỗ trợ khoá age và ssh.

Xoay vòng​

DANGER

QUAN TRỌNG, HÃY ĐỌC TRƯỚC KHI DÙNG TÍNH NĂNG NÀY: Cơ chế dùng để dọn các bản sao lưu cũ không quá tinh vi và theo mặc định áp dụng quy tắc của nó cho mọi tệp trong thư mục đích, nghĩa là nếu bạn lưu các bản sao lưu cạnh những tệp khác, những tệp đó cũng có thể bị xoá. Khi dùng tuỳ chọn này, hãy bảo đảm các tệp sao lưu được lưu trong một thư mục chỉ dành riêng cho chúng, hoặc cấu hình BACKUP_PRUNING_PREFIX để giới hạn việc xoá ở một số tệp nhất định.

Cài đặtMô tả
BACKUP_RETENTION_DAYSTruyền số không hoặc một số nguyên dương để bật tự động xoay vòng các bản sao lưu cũ. Giá trị cho biết số ngày giữ một bản sao lưu. Mặc định: -1
BACKUP_PRUNING_LEEWAYTrong trường hợp thời gian một bản sao lưu chạy dao động đáng kể trong hệ thống của bạn, bạn có thể chỉnh cài đặt này để bảo đảm không có tranh chấp giữa việc sao lưu hoàn tất và việc xoay vòng không xoá các bản sao lưu nằm sát mép cửa sổ thời gian. Hãy đặt giá trị này thành một khoảng thời gian dự kiến lớn hơn chênh lệch tối đa giữa các bản sao lưu. Giá trị hợp lệ có hậu tố (s) giây, (m) phút hoặc (h) giờ. Mặc định dùng một phút.
BACKUP_PRUNING_PREFIXTrong trường hợp bucket hoặc thư mục đích của bạn chứa các tệp khác ngoài những tệp do container này quản lý, bạn có thể giới hạn phạm vi xoay vòng bằng cách đặt một tiền tố. Thường đó là phần không tham số hoá của BACKUP_FILENAME. Ví dụ nếu BACKUP_FILENAME là db-backup-%Y-%m-%dT%H-%M-%S.tar.gz, bạn có thể đặt BACKUP_PRUNING_PREFIX là db-backup- và bảo đảm các tệp không liên quan không bị ảnh hưởng bởi cơ chế xoay vòng.

Nguồn​

Theo mặc định, mọi thứ đều được sao lưu. Trong trường hợp bạn chỉ cần sao lưu một dữ liệu cụ thể, hãy đặt BACKUP_SOURCES. Trên trang Backups > Settings, mục này được hiển thị dưới dạng danh sách thả xuống với các tuỳ chọn sau:

Cài đặtMô tả
EverythingSao lưu nội dung của mọi volume docker: tệp website, cơ sở dữ liệu mysql/mariadb, cơ sở dữ liệu postgre, tệp vhost, cron job.
Website FilesChỉ sao lưu các tệp website trong thư mục /var/www/html/.
EmailsChỉ sao lưu các tệp email trong thư mục /var/mail/.
VirtualHostsChỉ sao lưu các VirtualHost Apache/Nginx của các tên miền.
MySQL DatabasesChỉ sao lưu các cơ sở dữ liệu MySQL/MariaDB.
PostgreSQL DatabasesChỉ sao lưu các cơ sở dữ liệu PostgreSQL.
Cron JobsChỉ sao lưu tệp crons.ini.

Lịch​

Các bản sao lưu có thể chạy theo lịch cố định được định nghĩa bằng biểu thức cron. BACKUP_CRON_EXPRESSION được dùng để đặt lịch cho tác vụ sao lưu, một biểu thức cron biểu diễn một tập các thời điểm, dùng 5 hoặc 6 trường phân tách bằng dấu cách.

Tên trườngBắt buộc?Giá trị cho phépKý tự đặc biệt cho phép
GiâyKhông0-59* / , -
PhútCó0-59* / , -
GiờCó0-23* / , -
Ngày trong thángCó1-31* / , - ?
ThángCó1-12 hoặc JAN-DEC* / , -
Ngày trong tuầnCó0-6 hoặc SUN-SAT* / , - ?

Giá trị trường Tháng và Ngày trong tuần không phân biệt hoa thường. "SUN", "Sun" và "sun" đều được chấp nhận. Hãy tham khảo các trang như crontab.guru để được trợ giúp.

Nếu không đặt giá trị nào, @daily sẽ được dùng, chạy mỗi ngày vào nửa đêm.

Nén​

Cài đặtMô tả
BACKUP_COMPRESSIONThuật toán nén dùng cùng với tar. Các tuỳ chọn hợp lệ: "gz" (Gzip), "zst" (Zstd) hoặc "none" (chỉ tar). Mặc định là "gz". Lưu ý lựa chọn này ảnh hưởng tới phần mở rộng tệp.
GZIP_PARALLELISMMức song song cho nén "gz" (Gzip). Xác định có bao nhiêu khối dữ liệu được xử lý đồng thời. Giá trị cao hơn cho nén nhanh hơn. Không ảnh hưởng tới giải nén. Mặc định = 1. Đặt thành 0 sẽ dùng mọi luồng sẵn có.

Đặt tên​

Các tuỳ chọn ở đây có sẵn nhưng mặc định bị tắt và phải được Quản trị viên bật thủ công trước.

Cài đặtMô tả
BACKUP_FILENAMETên mong muốn của tệp sao lưu gồm cả phần mở rộng. Các ký hiệu định dạng sẽ được thay như trong strftime. Bỏ hết các ký hiệu sẽ cho cùng một tên tệp cho mọi lần chạy sao lưu, nghĩa là các phiên bản trước sẽ bị ghi đè ở các lần chạy sau. Phần mở rộng có thể được định nghĩa nguyên văn hoặc qua mẫu {{ .Extension }}, khi đó nó sẽ trở thành "tar.gz", "tar.zst" hoặc ".tar" (tuỳ cài đặt BACKUP_COMPRESSION của bạn). Mặc định backup-%Y-%m-%dT%H-%M-%S.{{ .Extension }} cho ra các tên tệp như: backup-2021-08-29T04-00-00.tar.gz.

Loại trừ​

BACKUP_EXCLUDE_REGEXP - Khi có giá trị, mọi tệp trong BACKUP_SOURCES có đường dẫn đầy đủ khớp với biểu thức chính quy sẽ bị loại khỏi kho lưu. Có thể dùng biểu thức chính quy như trong thư viện chuẩn của Go. Ví dụ: \.log$.

Thông báo​

Thông báo (email, Slack, v.v.) có thể được gửi khi một lần chạy sao lưu kết thúc.

NOTIFICATION_URLS​

Cấu hình được cung cấp dưới dạng danh sách URL phân tách bằng dấu phẩy theo cách shoutrrr sử dụng

Dịch vụĐịnh dạng URL
Barkbark://devicekey@host
Discorddiscord://token@id
Emailsmtp://username:password@host:port/?from=fromAddress&to=recipient1[,recipient2,...]
Gotifygotify://gotify-host/token
Google Chatgooglechat://chat.googleapis.com/v1/spaces/FOO/messages?key=bar&token=baz
IFTTTifttt://key/?events=event1[,event2,...]&value1=value1&value2=value2&value3=value3
Joinjoin://shoutrrr:api-key@join/?devices=device1[,device2,...][&icon=icon][&title=title]
Mattermostmattermost://[username@]mattermost-host/token[/channel]
Matrixmatrix://username:password@host:port/[?rooms=!roomID1[,roomAlias2]]
Ntfyntfy://username:password@ntfy.sh/topic
OpsGenieopsgenie://host/token?responders=responder1[,responder2]
Pushbulletpushbullet://api-token[/device/#channel/email]
Pushoverpushover://shoutrrr:apiToken@userKey/?devices=device1[,device2,...]
Rocketchat`rocketchat://[username@]rocketchat-host/token[/channel
Slackslack://[botname@]token-a/token-b/token-c
Teamsteams://group@tenant/altId/groupOwner?host=organization.webhook.office.com
Telegramtelegram://token@telegram?chats=@channel-1[,chat-id-1,...]
Zulip Chatzulip://bot-mail:bot-key@zulip-domain/?stream=name-or-id&topic=name

Email​

Định dạng URL:

smtp://username:password@host:port/?from=fromAddress&to=recipient1[,recipient2,...]

Các trường URL:

  • Username – Tên người dùng máy chủ SMTP
    Mặc định: trống
    Phần URL: smtp://username:password@host:port/

  • Password – Mật khẩu máy chủ SMTP hoặc giá trị băm (cho OAuth2)
    Mặc định: trống
    Phần URL: smtp://username:password@host:port/

  • Host – Tên máy hoặc địa chỉ IP của máy chủ SMTP (Bắt buộc)
    Phần URL: smtp://username:password@host:port/

  • Port – Cổng máy chủ SMTP
    Giá trị thường gặp: 25, 465, 587, 2525
    Mặc định: 25
    Phần URL: smtp://username:password@host:port/

Thuộc tính truy vấn/tham số:

Các thuộc tính có thể được cung cấp qua đối số params hoặc trực tiếp trong URL bằng ?key=value&key=value.

  • FromAddress – Địa chỉ email dùng để gửi thư (Bắt buộc)
    Bí danh: from

  • ToAddresses – Danh sách email người nhận phân tách bằng dấu phẩy (Bắt buộc)
    Bí danh: to

  • Auth – Phương thức xác thực SMTP
    Mặc định: Unknown
    Giá trị có thể: None, Plain, CRAMMD5, Unknown, OAuth2

  • ClientHost – Tên máy gửi tới máy chủ SMTP trong giai đoạn HELO
    Mặc định: localhost
    Đặt thành "auto" để dùng tên máy của hệ điều hành

  • Encryption – Phương thức mã hoá
    Mặc định: Auto
    Giá trị có thể: None, ExplicitTLS, ImplicitTLS, Auto

  • FromName – Tên người gửi
    Mặc định: trống

  • Subject – Dòng tiêu đề của email
    Mặc định: Shoutrrr Notification
    Bí danh: title

  • UseHTML – Thư có ở định dạng HTML hay không
    Mặc định: ❌ Không

  • UseStartTLS – Có dùng mã hoá StartTLS hay không
    Mặc định: ✔ Có
    Bí danh: starttls

Bark​

Các trường URL:

  • DeviceKey – Khoá của từng thiết bị (Bắt buộc)
    Phần URL: bark://:devicekey@host/path

  • Host – Tên máy và cổng của máy chủ (Bắt buộc)
    Phần URL: bark://:devicekey@host/path

  • Path – Đường dẫn máy chủ
    Mặc định: /
    Phần URL: bark://:devicekey@host/path

Thuộc tính truy vấn/tham số:

Các thuộc tính có thể được cung cấp qua đối số params, hoặc qua URL bằng ?key=value&key=value v.v.

  • Badge – Số hiển thị cạnh biểu tượng ứng dụng
    Mặc định: 0

  • Category – Trường dành riêng, chưa dùng
    Mặc định: trống

  • Copy – Giá trị cần sao chép
    Mặc định: trống

  • Group – Nhóm của thông báo
    Mặc định: trống

  • Icon – URL của biểu tượng, chỉ có trên iOS 15 trở lên
    Mặc định: trống

  • Scheme – Giao thức máy chủ, http hoặc https
    Mặc định: https

  • Sound – Giá trị từ Bark Sounds
    Mặc định: trống

  • Title – Tiêu đề thông báo, người gửi có thể đặt tuỳ chọn
    Mặc định: trống

  • URL – URL sẽ mở khi nhấn vào thông báo
    Mặc định: trống

Discord​

Định dạng URL:

discord://token@webhookid

Các trường URL:

  • Token – (Bắt buộc)
    Phần URL: discord://token@webhookid/

  • WebhookID – (Bắt buộc)
    Phần URL: discord://token@webhookid/

Thuộc tính truy vấn/tham số:

Các thuộc tính có thể được cung cấp qua đối số params, hoặc qua URL bằng ?key=value&key=value v.v.

  • Avatar – Ghi đè ảnh đại diện mặc định của webhook bằng URL đã chỉ định
    Mặc định: trống
    Bí danh: avatarurl

  • Color – Màu của viền trái cho tin nhắn thường
    Mặc định: 0x50D9ff

  • ColorDebug – Màu của viền trái cho tin nhắn gỡ lỗi
    Mặc định: 0x7b00ab

  • ColorError – Màu của viền trái cho tin nhắn lỗi
    Mặc định: 0xd60510

  • ColorInfo – Màu của viền trái cho tin nhắn thông tin
    Mặc định: 0x2488ff

  • ColorWarn – Màu của viền trái cho tin nhắn cảnh báo
    Mặc định: 0xffc441

  • JSON – Có gửi toàn bộ tin nhắn dưới dạng payload JSON thay vì dùng làm trường content hay không
    Mặc định: ❌ Không

  • SplitLines – Có gửi mỗi dòng thành một mục nhúng riêng hay không
    Mặc định: ✔ Có

  • Title
    Mặc định: trống

  • Username – Ghi đè tên người dùng mặc định của webhook
    Mặc định: trống

Tạo một Webhook trong Discord:

  1. Mở cài đặt kênh của bạn bằng cách nhấn biểu tượng bánh răng cạnh tên kênh. screenshot 1
  2. Ở menu bên trái, nhấn Integrations.
    screenshot 2
  3. Ở bên phải, nhấn Create Webhook.
    screenshot 3
  4. Đặt tên, kênh và biểu tượng theo ý bạn, rồi nhấn Copy Webhook URL.
    screenshot 4
  5. Nhấn Save Changes. screenshot 5 6 Định dạng URL dịch vụ:
    https://discord.com/api/webhooks/693853386302554172/W3dE2OZz4C13_4z_uHfDOoC7BqTW288s-z1ykqI0iJnY_HjRqMGO8Sc7YDqvf_KVKjhJ
    └────────────────┘ └──────────────────────────────────────────────────────────────────┘
    webhook id token

    discord://W3dE2OZz4C13_4z_uHfDOoC7BqTW288s-z1ykqI0iJnY_HjRqMGO8Sc7YDqvf_KVKjhJ@693853386302554172
    └──────────────────────────────────────────────────────────────────┘ └────────────────┘
    token webhook id

NOTIFICATION_LEVEL​

Theo mặc định, thông báo chỉ được gửi khi một lần chạy sao lưu thất bại. Để nhận thông báo cho mọi lần chạy, hãy đặt NOTIFICATION_LEVEL thành info thay vì giá trị mặc định error.

Kích hoạt một bản sao lưu​

Native stack

Các bước dưới đây cần container Backup theo từng tài khoản, chỉ có trên stack container (Docker). Trên native stack không có container như vậy: các bản sao lưu chạy theo lịch đặt trên Backups > Settings.

Bạn có thể kích hoạt một bản sao lưu thủ công bất cứ lúc nào, bất kể cài đặt lịch. Để làm vậy, hãy bảo đảm tính năng Docker đã được bật. Sau đó:

  1. Vào Containers > Terminal.
  2. Chọn container Backup.
  3. Trong terminal, gõ lệnh sau và nhấn Enter:
backup

Khôi phục & Tải xuống​

Trang Restore & Download (/backups/list) cho phép bạn duyệt các tệp sao lưu đã có trên đích đã cấu hình, khôi phục chúng về tài khoản của bạn, hoặc tải chúng về máy tính. Hiện chỉ hoạt động với đích SSH/SFTP.

  1. Nhấn Reindex Destination để kết nối tới đích từ xa và liệt kê các kho sao lưu có sẵn. Việc lập chỉ mục lại chạy ở chế độ nền và trang tự cập nhật khi hoàn tất.

  2. Mỗi bản sao lưu đã lập chỉ mục hiển thị tên tệp, nội dung phát hiện được (html, vhosts, mail, mysql, postgres, crons) và các cơ sở dữ liệu tìm thấy bên trong.

  3. Nhấn Restore trên một bản sao lưu để mở hộp thoại khôi phục, rồi chọn những gì cần khôi phục:

    • Everything – khôi phục tệp và mọi cơ sở dữ liệu từ kho lưu.
    • Specific database only – khôi phục một cơ sở dữ liệu được chọn từ kho lưu (chỉ hiện khi kho lưu có cơ sở dữ liệu).
    • Files only (no databases) – khôi phục tệp website, vhost, thư và cron job mà không đụng tới cơ sở dữ liệu nào.

    Khôi phục sẽ ghi đè dữ liệu hiện có và không thể hoàn tác.

  4. Nhấn Download trên một bản sao lưu để lấy kho lưu từ đích và tải về trình duyệt của bạn.

Khắc phục sự cố​

Văn bản lỗi dưới đây là đầu ra nhật ký của chính container sao lưu (xem phần ghi nguồn ở trên), nên chỉ xuất hiện trên stack container.

Lỗi *error copying archive: ssh.(sshStorage).Copy: error creating file: file does not exist cho biết thư mục đã cấu hình không tồn tại trên đích:

time=2025-07-22T11:21:05.117Z level=ERROR msg="Fatal error running command: file does not exist" error="main.(*command).runAsCommand: error running script: main.runScript.func4: error running script: main.(*script).copyArchive: error copying archive: ssh.(*sshStorage).Copy: error creating file: file does not exist"
Trang này có hữu ích không?