{"id":659200,"date":"2026-04-02T22:16:54","date_gmt":"2026-04-02T14:16:54","guid":{"rendered":"http:\/\/puo.cn\/?p=659200"},"modified":"2026-04-04T00:55:04","modified_gmt":"2026-04-03T16:55:04","slug":"sublink-pro","status":"publish","type":"post","link":"http:\/\/puo.cn\/?p=659200","title":{"rendered":"sublink pro\u4e00\u952e\u5b89\u88c5\u53ca\u4e00\u952e\u5347\u7ea7"},"content":{"rendered":"<p>\u5b89\u88c5\uff1ahttps:\/\/sub.6916\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 admin\u00a0 \u00a0 \u00a0D<\/p>\n<p>\u5b89\u88c5\u6307\u5357\uff1a<a rel=\"nofollow\" href=\"https:\/\/github.com\/ZeroDeng01\/sublinkPro\/blob\/main\/docs\/installation.md\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/ZeroDeng01\/sublinkPro\/blob\/main\/docs\/installation.md<\/a><\/p>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\u00a0Docker Compose \u8fd0\u884c\uff08\u63a8\u8350\uff09<\/h2>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"markdown-alert markdown-alert-tip\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Tip<\/p>\n<p dir=\"auto\"><strong>\u63a8\u8350\u4f7f\u7528 Docker Compose \u90e8\u7f72<\/strong>\uff0c\u4fbf\u4e8e\u7ba1\u7406\u914d\u7f6e\u3001\u5347\u7ea7\u548c\u7ef4\u62a4\u3002<\/p>\n<\/div>\n<div class=\"markdown-alert markdown-alert-important\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Important<\/p>\n<p dir=\"auto\"><code>db\/<\/code>\u3001<code>template\/<\/code>\u3001<code>logs\/<\/code>\u00a0\u5c5e\u4e8e\u8fd0\u884c\u65f6\u6301\u4e45\u5316\u76ee\u5f55\uff0c\u8bf7\u5728\u5347\u7ea7\u548c\u8fc1\u79fb\u65f6\u4fdd\u7559\u3002<\/p>\n<\/div>\n<p dir=\"auto\">\u521b\u5efa\u00a0<code>docker-compose.yml<\/code>\u00a0\u6587\u4ef6\uff1a<\/p>\n<div class=\"highlight highlight-source-yaml notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre><span class=\"pl-ent\">services<\/span>:\r\n  <span class=\"pl-ent\">sublinkpro<\/span>:\r\n    <span class=\"pl-c\"># image: zerodeng\/sublink-pro:dev # \u5f00\u53d1\u7248\uff08\u529f\u80fd\u5c1d\u9c9c\u4f7f\u7528\uff09<\/span>\r\n    <span class=\"pl-ent\">image<\/span>: <span class=\"pl-s\">zerodeng\/sublink-pro <\/span><span class=\"pl-c\"># \u7a33\u5b9a\u7248<\/span>\r\n    <span class=\"pl-ent\">container_name<\/span>: <span class=\"pl-s\">sublinkpro<\/span>\r\n    <span class=\"pl-ent\">ports<\/span>:\r\n      - <span class=\"pl-s\"><span class=\"pl-pds\">\"<\/span>8000:8000<span class=\"pl-pds\">\"<\/span><\/span>\r\n    <span class=\"pl-ent\">volumes<\/span>:\r\n      - <span class=\"pl-s\"><span class=\"pl-pds\">\"<\/span>.\/db:\/app\/db<span class=\"pl-pds\">\"<\/span><\/span>\r\n      - <span class=\"pl-s\"><span class=\"pl-pds\">\"<\/span>.\/template:\/app\/template<span class=\"pl-pds\">\"<\/span><\/span>\r\n      - <span class=\"pl-s\"><span class=\"pl-pds\">\"<\/span>.\/logs:\/app\/logs<span class=\"pl-pds\">\"<\/span><\/span>\r\n    <span class=\"pl-ent\">restart<\/span>: <span class=\"pl-s\">unless-stopped<\/span><\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<p dir=\"auto\">\u542f\u52a8\u670d\u52a1\uff1a<\/p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre>docker-compose up -d<\/pre>\n<div class=\"zeroclipboard-container\">\n<div class=\"logged-in env-production page-responsive\" data-turbo-body=\"\">\n<div class=\"application-main \" data-commit-hovercards-enabled=\"\" data-discussion-hovercards-enabled=\"\" data-issue-and-pr-hovercards-enabled=\"\" data-project-hovercards-enabled=\"\">\n<div class=\"\">\n<p>&nbsp;<\/p>\n<div id=\"repo-content-pjax-container\" class=\"repository-content \">\n<div data-target=\"react-app.reactRoot\">\n<div>\n<div class=\"prc-PageLayout-PageLayoutRoot--KH-d\">\n<div class=\"prc-PageLayout-PageLayoutWrapper-2BhU2\" data-width=\"full\">\n<div class=\"prc-PageLayout-PageLayoutContent-BneH9\">\n<div class=\"prc-PageLayout-ContentWrapper-gR9eG\" data-is-hidden-narrow=\"true\">\n<div class=\"prc-PageLayout-Content-xWL-A\" data-width=\"full\">\n<div class=\"SharedPageLayout-module__content__IwGAp\" tabindex=\"0\" data-selector=\"repos-split-pane-content\">\n<div class=\"CodeView-module__contentWrapper__cG2JH\">\n<div class=\"d-flex flex-row\">\n<div class=\"container BlobViewContent-module__blobContainer__DtH2d\">\n<div class=\"BlobViewContent-module__blobContentWrapper__JS0W6\">\n<section class=\"BlobContent-module__blobContentSection__VOgZq BlobContent-module__blobContentSectionMarkdown__mPLOK\" aria-labelledby=\"file-name-id-wide file-name-id-mobile\">\n<div class=\"js-snippet-clipboard-copy-unpositioned BlobContent-module__markdownBlob__T8jpG\" data-hpc=\"true\">\n<article class=\"markdown-body entry-content container-lg\">\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">Docker \u8fd0\u884c<\/h2>\n<p>&nbsp;<\/p>\n<\/div>\n<details open=\"\">\n<summary><b>\u7a33\u5b9a\u7248<\/b><\/summary>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre>docker run --name sublinkpro -p 8000:8000 \\\r\n  -v <span class=\"pl-smi\">$PWD<\/span>\/db:\/app\/db \\\r\n  -v <span class=\"pl-smi\">$PWD<\/span>\/template:\/app\/template \\\r\n  -v <span class=\"pl-smi\">$PWD<\/span>\/logs:\/app\/logs \\\r\n  -d zerodeng\/sublink-pro<\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<\/details>\n<details>\n<summary><b>\u5f00\u53d1\u7248\uff08\u529f\u80fd\u5c1d\u9c9c\uff09<\/b><\/summary>\n<\/details>\n<hr \/>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83d\udcdd \u4e00\u952e\u5b89\u88c5\/\u66f4\u65b0\u811a\u672c<\/h2>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre>wget https:\/\/raw.githubusercontent.com\/ZeroDeng01\/sublinkPro\/refs\/heads\/main\/install.sh <span class=\"pl-k\">&amp;&amp;<\/span> sh install.sh<\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<div class=\"markdown-alert markdown-alert-note\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Note<\/p>\n<p dir=\"auto\">\u5b89\u88c5\u811a\u672c\u652f\u6301\u4ee5\u4e0b\u529f\u80fd\uff1a<\/p>\n<ul dir=\"auto\">\n<li><strong>\u5168\u65b0\u5b89\u88c5<\/strong>\uff1a\u9996\u6b21\u5b89\u88c5\u65f6\u81ea\u52a8\u5b8c\u6210\u6240\u6709\u914d\u7f6e<\/li>\n<li><strong>\u66f4\u65b0\u7a0b\u5e8f<\/strong>\uff1a\u68c0\u6d4b\u5230\u5df2\u5b89\u88c5\u65f6\uff0c\u53ef\u9009\u62e9\u66f4\u65b0\uff08\u4fdd\u7559\u6240\u6709\u6570\u636e\uff09<\/li>\n<li><strong>\u91cd\u65b0\u5b89\u88c5<\/strong>\uff1a\u53ef\u9009\u62e9\u662f\u5426\u4fdd\u7559\u73b0\u6709\u6570\u636e<\/li>\n<li><strong>\u6062\u590d\u5b89\u88c5<\/strong>\uff1a\u68c0\u6d4b\u5230\u65e7\u6570\u636e\u65f6\uff0c\u53ef\u9009\u62e9\u6062\u590d\u5b89\u88c5<\/li>\n<\/ul>\n<\/div>\n<hr \/>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83d\uddd1\ufe0f \u4e00\u952e\u5378\u8f7d\u811a\u672c<\/h2>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre>wget https:\/\/raw.githubusercontent.com\/ZeroDeng01\/sublinkPro\/refs\/heads\/main\/uninstall.sh <span class=\"pl-k\">&amp;&amp;<\/span> sh uninstall.sh<\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<div class=\"markdown-alert markdown-alert-note\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Note<\/p>\n<p dir=\"auto\">\u5378\u8f7d\u811a\u672c\u4f1a\u8be2\u95ee\u662f\u5426\u4fdd\u7559\u6570\u636e\u76ee\u5f55\uff08db\u3001logs\u3001template\uff09\uff0c\u9009\u62e9\u4fdd\u7559\u53ef\u7528\u4e8e\u540e\u7eed\u91cd\u65b0\u5b89\u88c5\u65f6\u6062\u590d\u6570\u636e\u3002<\/p>\n<\/div>\n<hr \/>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83d\udd04 \u9879\u76ee\u66f4\u65b0<\/h2>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83d\udcdd \u4e00\u952e\u811a\u672c\u66f4\u65b0<\/h3>\n<p>&nbsp;<\/p>\n<\/div>\n<p dir=\"auto\">\u5982\u679c\u60a8\u4f7f\u7528\u4e00\u952e\u811a\u672c\u5b89\u88c5\uff0c\u53ef\u4ee5\u518d\u6b21\u8fd0\u884c\u5b89\u88c5\u811a\u672c\u8fdb\u884c\u66f4\u65b0\uff1a<\/p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre>wget https:\/\/raw.githubusercontent.com\/ZeroDeng01\/sublinkPro\/refs\/heads\/main\/install.sh <span class=\"pl-k\">&amp;&amp;<\/span> sh install.sh<\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<p dir=\"auto\">\u811a\u672c\u4f1a\u81ea\u52a8\u68c0\u6d4b\u5df2\u5b89\u88c5\u7684\u7248\u672c\uff0c\u5e76\u63d0\u4f9b\u4ee5\u4e0b\u9009\u9879\uff1a<\/p>\n<ul dir=\"auto\">\n<li><strong>\u66f4\u65b0\u7a0b\u5e8f<\/strong>\uff1a\u4fdd\u7559\u6240\u6709\u6570\u636e\uff0c\u4ec5\u66f4\u65b0\u7a0b\u5e8f\u6587\u4ef6<\/li>\n<li><strong>\u91cd\u65b0\u5b89\u88c5<\/strong>\uff1a\u53ef\u9009\u62e9\u662f\u5426\u4fdd\u7559\u6570\u636e<\/li>\n<\/ul>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83d\udce6 Docker Compose \u624b\u52a8\u66f4\u65b0<\/h3>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre><span class=\"pl-c\"># \u8fdb\u5165 docker-compose.yml \u6240\u5728\u76ee\u5f55<\/span>\r\n<span class=\"pl-c1\">cd<\/span> \/path\/to\/your\/sublinkpro\r\n\r\n<span class=\"pl-c\"># \u62c9\u53d6\u6700\u65b0\u955c\u50cf<\/span>\r\ndocker-compose pull\r\n\r\n<span class=\"pl-c\"># \u91cd\u65b0\u521b\u5efa\u5e76\u542f\u52a8\u5bb9\u5668<\/span>\r\ndocker-compose up -d\r\n\r\n<span class=\"pl-c\"># \uff08\u53ef\u9009\uff09\u6e05\u7406\u65e7\u955c\u50cf<\/span>\r\ndocker image prune -f<\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83d\udc33 Docker \u624b\u52a8\u66f4\u65b0<\/h3>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre><span class=\"pl-c\"># \u505c\u6b62\u5e76\u5220\u9664\u65e7\u5bb9\u5668<\/span>\r\ndocker stop sublinkpro\r\ndocker rm sublinkpro\r\n\r\n<span class=\"pl-c\"># \u62c9\u53d6\u6700\u65b0\u955c\u50cf<\/span>\r\ndocker pull zerodeng\/sublink-pro\r\n\r\n<span class=\"pl-c\"># \u91cd\u65b0\u542f\u52a8\u5bb9\u5668\uff08\u4f7f\u7528\u4e0e\u5b89\u88c5\u65f6\u76f8\u540c\u7684\u53c2\u6570\uff09<\/span>\r\ndocker run --name sublinkpro -p 8000:8000 \\\r\n  -v <span class=\"pl-smi\">$PWD<\/span>\/db:\/app\/db \\\r\n  -v <span class=\"pl-smi\">$PWD<\/span>\/template:\/app\/template \\\r\n  -v <span class=\"pl-smi\">$PWD<\/span>\/logs:\/app\/logs \\\r\n  -d zerodeng\/sublink-pro\r\n\r\n<span class=\"pl-c\"># \uff08\u53ef\u9009\uff09\u6e05\u7406\u65e7\u955c\u50cf<\/span>\r\ndocker image prune -f<\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<hr \/>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83e\udd16 Watchtower \u81ea\u52a8\u66f4\u65b0<\/h2>\n<p>&nbsp;<\/p>\n<\/div>\n<p dir=\"auto\">Watchtower \u662f\u4e00\u4e2a\u53ef\u4ee5\u81ea\u52a8\u66f4\u65b0 Docker \u5bb9\u5668\u7684\u5de5\u5177\uff0c\u975e\u5e38\u9002\u5408\u5e0c\u671b\u4fdd\u6301\u9879\u76ee\u59cb\u7ec8\u6700\u65b0\u7684\u7528\u6237\u3002<\/p>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\u65b9\u5f0f\u4e00\uff1a\u72ec\u7acb\u8fd0\u884c Watchtower<\/h3>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre>docker run -d \\\r\n  --name watchtower \\\r\n  -v \/var\/run\/docker.sock:\/var\/run\/docker.sock \\\r\n  containrrr\/watchtower \\\r\n  --cleanup \\\r\n  --interval 86400 \\\r\n  sublinkpro<\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<div class=\"markdown-alert markdown-alert-note\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Note<\/p>\n<ul dir=\"auto\">\n<li><code>--cleanup<\/code>\uff1a\u66f4\u65b0\u540e\u81ea\u52a8\u6e05\u7406\u65e7\u955c\u50cf<\/li>\n<li><code>--interval 86400<\/code>\uff1a\u6bcf 24 \u5c0f\u65f6\u68c0\u67e5\u4e00\u6b21\u66f4\u65b0\uff08\u5355\u4f4d\uff1a\u79d2\uff09<\/li>\n<li>\u6700\u540e\u7684\u00a0<code>sublinkpro<\/code>\u00a0\u662f\u8981\u76d1\u63a7\u66f4\u65b0\u7684\u5bb9\u5668\u540d\u79f0\uff0c\u4e0d\u6307\u5b9a\u5219\u76d1\u63a7\u6240\u6709\u5bb9\u5668<\/li>\n<\/ul>\n<\/div>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\u65b9\u5f0f\u4e8c\uff1a\u96c6\u6210\u5230 Docker Compose<\/h3>\n<p>&nbsp;<\/p>\n<\/div>\n<p dir=\"auto\">\u5728\u60a8\u7684\u00a0<code>docker-compose.yml<\/code>\u00a0\u4e2d\u6dfb\u52a0 Watchtower \u670d\u52a1\uff1a<\/p>\n<div class=\"highlight highlight-source-yaml notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre><span class=\"pl-ent\">services<\/span>:\r\n  <span class=\"pl-ent\">sublinkpro<\/span>:\r\n    <span class=\"pl-ent\">image<\/span>: <span class=\"pl-s\">zerodeng\/sublink-pro<\/span>\r\n    <span class=\"pl-ent\">container_name<\/span>: <span class=\"pl-s\">sublinkpro<\/span>\r\n    <span class=\"pl-ent\">ports<\/span>:\r\n      - <span class=\"pl-s\"><span class=\"pl-pds\">\"<\/span>8000:8000<span class=\"pl-pds\">\"<\/span><\/span>\r\n    <span class=\"pl-ent\">volumes<\/span>:\r\n      - <span class=\"pl-s\"><span class=\"pl-pds\">\"<\/span>.\/db:\/app\/db<span class=\"pl-pds\">\"<\/span><\/span>\r\n      - <span class=\"pl-s\"><span class=\"pl-pds\">\"<\/span>.\/template:\/app\/template<span class=\"pl-pds\">\"<\/span><\/span>\r\n      - <span class=\"pl-s\"><span class=\"pl-pds\">\"<\/span>.\/logs:\/app\/logs<span class=\"pl-pds\">\"<\/span><\/span>\r\n    <span class=\"pl-ent\">restart<\/span>: <span class=\"pl-s\">unless-stopped<\/span>\r\n\r\n  <span class=\"pl-ent\">watchtower<\/span>:\r\n    <span class=\"pl-ent\">image<\/span>: <span class=\"pl-s\">containrrr\/watchtower<\/span>\r\n    <span class=\"pl-ent\">container_name<\/span>: <span class=\"pl-s\">watchtower<\/span>\r\n    <span class=\"pl-ent\">volumes<\/span>:\r\n      - <span class=\"pl-s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span>\r\n    <span class=\"pl-ent\">environment<\/span>:\r\n      - <span class=\"pl-s\">TZ=Asia\/Shanghai<\/span>\r\n      - <span class=\"pl-s\">WATCHTOWER_CLEANUP=true<\/span>\r\n      - <span class=\"pl-s\">WATCHTOWER_POLL_INTERVAL=86400<\/span>\r\n    <span class=\"pl-ent\">restart<\/span>: <span class=\"pl-s\">unless-stopped<\/span>\r\n    <span class=\"pl-ent\">command<\/span>: <span class=\"pl-s\">sublinkpro  <\/span><span class=\"pl-c\"># \u53ea\u76d1\u63a7 sublinkpro \u5bb9\u5668<\/span><\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<div class=\"markdown-alert markdown-alert-tip\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Tip<\/p>\n<p dir=\"auto\"><strong>Watchtower \u9ad8\u7ea7\u914d\u7f6e<\/strong>\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u53ef\u4ee5\u8bbe\u7f6e\u00a0<code>WATCHTOWER_NOTIFICATIONS<\/code>\u00a0\u73af\u5883\u53d8\u91cf\u6765\u914d\u7f6e\u66f4\u65b0\u901a\u77e5\uff08\u652f\u6301\u90ae\u4ef6\u3001Slack\u3001Gotify \u7b49\uff09<\/li>\n<li>\u66f4\u591a\u914d\u7f6e\u8bf7\u53c2\u8003\u00a0<a rel=\"nofollow\" href=\"https:\/\/containrrr.dev\/watchtower\/\" rel=\"nofollow\">Watchtower \u5b98\u65b9\u6587\u6863<\/a><\/li>\n<\/ul>\n<\/div>\n<hr \/>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\u2601\ufe0f Zeabur \u90e8\u7f72<\/h3>\n<p>&nbsp;<\/p>\n<\/div>\n<p dir=\"auto\"><a rel=\"nofollow\" href=\"https:\/\/zeabur.com\/projects\" rel=\"nofollow\">https:\/\/zeabur.com\/projects<\/a><\/p>\n<p dir=\"auto\"><strong>\u90e8\u7f72\u6b65\u9aa4\uff1a<\/strong><\/p>\n<ol dir=\"auto\">\n<li>\n<p dir=\"auto\"><strong>\u65b0\u5efa\u9879\u76ee\u4e0e Service<\/strong><\/p>\n<ul dir=\"auto\">\n<li>\u70b9\u51fb &#8220;\u521b\u5efa\u9879\u76ee&#8221; &gt; &#8220;Docker \u5bb9\u5668\u955c\u50cf&#8221;<\/li>\n<li>\u8f93\u5165\u955c\u50cf\u540d\u79f0\uff1a<code>zerodeng\/sublink-pro:latest<\/code>\u00a0(\u63a8\u8350\u7a33\u5b9a\u7248 latest\uff0c\u5f00\u53d1\u7248 dev \u7528\u4e8e\u6d4b\u8bd5\u65b0\u529f\u80fd)<\/li>\n<li>\u914d\u7f6e\u7aef\u53e3\uff1a<code>8000<\/code>\u00a0(HTTP)<\/li>\n<li><strong>\u914d\u7f6e\u5377\uff08\u91cd\u8981\uff09<\/strong>\uff1a\n<ul dir=\"auto\">\n<li>\u70b9\u51fb\u5377<\/li>\n<li>\u70b9\u51fb &#8220;\u6dfb\u52a0\u5377&#8221; \u6dfb\u52a0\u65b0\u5377<\/li>\n<li>\u5377\u540d\u79f0 &gt; \u5bb9\u5668\u8def\u5f84<\/li>\n<\/ul>\n<div class=\"highlight highlight-source-dotenv notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre><span class=\"pl-v\">sublink-db<\/span> <span class=\"pl-k\">=<\/span> <span class=\"pl-s\">\/app\/db<\/span>\r\n<span class=\"pl-v\">sublink-template<\/span> <span class=\"pl-k\">=<\/span> <span class=\"pl-s\">\/app\/template<\/span>\r\n<span class=\"pl-v\">sublink-logs<\/span> <span class=\"pl-k\">=<\/span> <span class=\"pl-s\">\/app\/logs<\/span><\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p dir=\"auto\"><strong>\u914d\u7f6e\u73af\u5883\u53d8\u91cf<\/strong><\/p>\n<p dir=\"auto\">\u73af\u5883\u53d8\u91cf\u4e2d\u6dfb\u52a0\uff1a<\/p>\n<div class=\"highlight highlight-source-dotenv notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre><span class=\"pl-c\"># \u57fa\u7840\u914d\u7f6e<\/span>\r\n<span class=\"pl-v\">SUBLINK_PORT<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-s\">8000<\/span>\r\n<span class=\"pl-c\"># \u53ef\u9009\uff1a\u5207\u6362\u5230 MySQL\/PostgreSQL \u65f6\u8bbe\u7f6e<\/span>\r\n<span class=\"pl-c\"># SUBLINK_DSN=mysql:\/\/user:pass@tcp(mysql:3306)\/sublink?charset=utf8mb4&amp;parseTime=True&amp;loc=Local<\/span>\r\n<span class=\"pl-v\">SUBLINK_LOG_LEVEL<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-s\">error<\/span>\r\n<span class=\"pl-v\">SUBLINK_EXPIRE_DAYS<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-s\">14<\/span>\r\n\r\n<span class=\"pl-c\"># \u767b\u5f55\u5b89\u5168<\/span>\r\n<span class=\"pl-v\">SUBLINK_ADMIN_PASSWORD<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-s\">123456<\/span> <span class=\"pl-c\">#\u9ed8\u8ba4\u7ba1\u7406\u5458\u5bc6\u7801\uff0c\u4ec5\u9996\u6b21\u542f\u52a8\u6709\u6548<\/span>\r\n<span class=\"pl-v\">SUBLINK_LOGIN_FAIL_COUNT<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-s\">5<\/span>\r\n<span class=\"pl-v\">SUBLINK_LOGIN_FAIL_WINDOW<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-s\">1<\/span>\r\n<span class=\"pl-v\">SUBLINK_LOGIN_BAN_DURATION<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-s\">10<\/span>\r\n\r\n<span class=\"pl-c\"># \u5b89\u5168\u5bc6\u94a5 !\u9700\u586b\u5199! \u968f\u673a32\u4f4d\u4ee5\u4e0a\u5b57\u7b26\u4e32<\/span>\r\n<span class=\"pl-v\">SUBLINK_JWT_SECRET<\/span><span class=\"pl-k\">=<\/span>\r\n<span class=\"pl-v\">SUBLINK_API_ENCRYPTION_KEY<\/span><span class=\"pl-k\">=<\/span>\r\n\r\n\r\n<span class=\"pl-c\"># \u9a8c\u8bc1\u7801(1\u4e3a\u5173\u95ed)<\/span>\r\n<span class=\"pl-v\">SUBLINK_CAPTCHA_MODE<\/span><span class=\"pl-k\">=<\/span><span class=\"pl-s\">2<\/span><\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<\/li>\n<li>\n<p dir=\"auto\"><strong>\u90e8\u7f72\u5b8c\u6210<\/strong><\/p>\n<ul dir=\"auto\">\n<li>Zeabur \u4f1a\u81ea\u52a8\u62c9\u53d6\u955c\u50cf\u5e76\u542f\u52a8\u670d\u52a1<\/li>\n<li>\u7b49\u5f85\u670d\u52a1\u5c31\u7eea\u540e\uff0c\u9700\u8981\u624b\u52a8\u8bbe\u7f6e\u8bbf\u95ee\u57df\u540d\uff08\u89c1\u4e0b\u4e00\u6b65\uff09<\/li>\n<\/ul>\n<\/li>\n<li>\n<p dir=\"auto\"><strong>\u8bbe\u7f6e\u8bbf\u95ee\u57df\u540d\uff08\u5fc5\u987b\uff09<\/strong><\/p>\n<ul dir=\"auto\">\n<li>\u5728\u670d\u52a1\u9875\u9762\uff0c\u70b9\u51fb &#8220;Networking&#8221; \u6216 &#8220;\u7f51\u7edc&#8221; \u6807\u7b7e<\/li>\n<li>\u70b9\u51fb &#8220;Generate Domain&#8221; \u751f\u6210 Zeabur \u63d0\u4f9b\u7684\u514d\u8d39\u57df\u540d\uff08\u5982\u00a0<code>xxx.zeabur.app<\/code>\uff09<\/li>\n<li>\u6216\u8005\u7ed1\u5b9a\u81ea\u5b9a\u4e49\u57df\u540d\uff1a\n<ul dir=\"auto\">\n<li>\u70b9\u51fb &#8220;Add Domain&#8221; \u6dfb\u52a0\u4f60\u7684\u57df\u540d<\/li>\n<li>\u6309\u7167\u63d0\u793a\u914d\u7f6e DNS CNAME \u8bb0\u5f55\u6307\u5411 Zeabur \u63d0\u4f9b\u7684\u76ee\u6807\u5730\u5740<\/li>\n<\/ul>\n<\/li>\n<li>\u8bbe\u7f6e\u5b8c\u57df\u540d\u540e\u5373\u53ef\u901a\u8fc7\u57df\u540d\u8bbf\u95ee,\u4f7f\u7528\u9ed8\u8ba4\u8d26\u53f7\u00a0<code>admin<\/code>\u00a0\/\u00a0<code>123456<\/code>\u00a0\u767b\u5f55<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/article>\n<\/div>\n<\/section>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"find-result-marks-container\" class=\"ScrollMarksContainer-module__scrollMarksContainer__Eu7uU\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"js-global-screen-reader-notice\" class=\"sr-only mt-n1\" aria-live=\"polite\" aria-atomic=\"true\"><\/div>\n<div id=\"js-global-screen-reader-notice-assertive\" class=\"sr-only mt-n1\" aria-live=\"assertive\" aria-atomic=\"true\"><\/div>\n<div id=\"screenReaderAnnouncementDiv\" class=\"sr-only mt-n1\" role=\"alert\" data-testid=\"screenReaderAnnouncement\" aria-live=\"assertive\">\n<details open=\"\">\n<summary><b>\u5f00\u53d1\u7248\uff08\u529f\u80fd\u5c1d\u9c9c\uff09<\/b><\/summary>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre>docker run --name sublinkpro -p 8000:8000 \\\r\n  -v <span class=\"pl-smi\">$PWD<\/span>\/db:\/app\/db \\\r\n  -v <span class=\"pl-smi\">$PWD<\/span>\/template:\/app\/template \\\r\n  -v <span class=\"pl-smi\">$PWD<\/span>\/logs:\/app\/logs \\\r\n  -d zerodeng\/sublink-pro:dev<\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<\/details>\n<hr \/>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83d\udcdd \u4e00\u952e\u5b89\u88c5\/\u66f4\u65b0\u811a\u672c<\/h2>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre>wget https:\/\/raw.githubusercontent.com\/ZeroDeng01\/sublinkPro\/refs\/heads\/main\/install.sh <span class=\"pl-k\">&amp;&amp;<\/span> sh install.sh<\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<div class=\"markdown-alert markdown-alert-note\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Note<\/p>\n<p dir=\"auto\">\u5b89\u88c5\u811a\u672c\u652f\u6301\u4ee5\u4e0b\u529f\u80fd\uff1a<\/p>\n<ul dir=\"auto\">\n<li><strong>\u5168\u65b0\u5b89\u88c5<\/strong>\uff1a\u9996\u6b21\u5b89\u88c5\u65f6\u81ea\u52a8\u5b8c\u6210\u6240\u6709\u914d\u7f6e<\/li>\n<li><strong>\u66f4\u65b0\u7a0b\u5e8f<\/strong>\uff1a\u68c0\u6d4b\u5230\u5df2\u5b89\u88c5\u65f6\uff0c\u53ef\u9009\u62e9\u66f4\u65b0\uff08\u4fdd\u7559\u6240\u6709\u6570\u636e\uff09<\/li>\n<li><strong>\u91cd\u65b0\u5b89\u88c5<\/strong>\uff1a\u53ef\u9009\u62e9\u662f\u5426\u4fdd\u7559\u73b0\u6709\u6570\u636e<\/li>\n<li><strong>\u6062\u590d\u5b89\u88c5<\/strong>\uff1a\u68c0\u6d4b\u5230\u65e7\u6570\u636e\u65f6\uff0c\u53ef\u9009\u62e9\u6062\u590d\u5b89\u88c5<\/li>\n<\/ul>\n<\/div>\n<hr \/>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83d\uddd1\ufe0f \u4e00\u952e\u5378\u8f7d\u811a\u672c<\/h2>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre>wget https:\/\/raw.githubusercontent.com\/ZeroDeng01\/sublinkPro\/refs\/heads\/main\/uninstall.sh <span class=\"pl-k\">&amp;&amp;<\/span> sh uninstall.sh<\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<div class=\"markdown-alert markdown-alert-note\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Note<\/p>\n<p dir=\"auto\">\u5378\u8f7d\u811a\u672c\u4f1a\u8be2\u95ee\u662f\u5426\u4fdd\u7559\u6570\u636e\u76ee\u5f55\uff08db\u3001logs\u3001template\uff09\uff0c\u9009\u62e9\u4fdd\u7559\u53ef\u7528\u4e8e\u540e\u7eed\u91cd\u65b0\u5b89\u88c5\u65f6\u6062\u590d\u6570\u636e\u3002<\/p>\n<\/div>\n<hr \/>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83d\udd04 \u9879\u76ee\u66f4\u65b0<\/h2>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83d\udcdd \u4e00\u952e\u811a\u672c\u66f4\u65b0<\/h3>\n<p>&nbsp;<\/p>\n<\/div>\n<p dir=\"auto\">\u5982\u679c\u60a8\u4f7f\u7528\u4e00\u952e\u811a\u672c\u5b89\u88c5\uff0c\u53ef\u4ee5\u518d\u6b21\u8fd0\u884c\u5b89\u88c5\u811a\u672c\u8fdb\u884c\u66f4\u65b0\uff1a<\/p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre>wget https:\/\/raw.githubusercontent.com\/ZeroDeng01\/sublinkPro\/refs\/heads\/main\/install.sh <span class=\"pl-k\">&amp;&amp;<\/span> sh install.sh<\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<p dir=\"auto\">\u811a\u672c\u4f1a\u81ea\u52a8\u68c0\u6d4b\u5df2\u5b89\u88c5\u7684\u7248\u672c\uff0c\u5e76\u63d0\u4f9b\u4ee5\u4e0b\u9009\u9879\uff1a<\/p>\n<ul dir=\"auto\">\n<li><strong>\u66f4\u65b0\u7a0b\u5e8f<\/strong>\uff1a\u4fdd\u7559\u6240\u6709\u6570\u636e\uff0c\u4ec5\u66f4\u65b0\u7a0b\u5e8f\u6587\u4ef6<\/li>\n<li><strong>\u91cd\u65b0\u5b89\u88c5<\/strong>\uff1a\u53ef\u9009\u62e9\u662f\u5426\u4fdd\u7559\u6570\u636e<\/li>\n<\/ul>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83d\udce6 Docker Compose \u624b\u52a8\u66f4\u65b0<\/h3>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre><span class=\"pl-c\"># \u8fdb\u5165 docker-compose.yml \u6240\u5728\u76ee\u5f55<\/span>\r\n<span class=\"pl-c1\">cd<\/span> \/path\/to\/your\/sublinkpro\r\n\r\n<span class=\"pl-c\"># \u62c9\u53d6\u6700\u65b0\u955c\u50cf<\/span>\r\ndocker-compose pull\r\n\r\n<span class=\"pl-c\"># \u91cd\u65b0\u521b\u5efa\u5e76\u542f\u52a8\u5bb9\u5668<\/span>\r\ndocker-compose up -d\r\n\r\n<span class=\"pl-c\"># \uff08\u53ef\u9009\uff09\u6e05\u7406\u65e7\u955c\u50cf<\/span>\r\ndocker image prune -f<\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83d\udc33 Docker \u624b\u52a8\u66f4\u65b0<\/h3>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre><span class=\"pl-c\"># \u505c\u6b62\u5e76\u5220\u9664\u65e7\u5bb9\u5668<\/span>\r\ndocker stop sublinkpro\r\ndocker rm sublinkpro\r\n\r\n<span class=\"pl-c\"># \u62c9\u53d6\u6700\u65b0\u955c\u50cf<\/span>\r\ndocker pull zerodeng\/sublink-pro\r\n\r\n<span class=\"pl-c\"># \u91cd\u65b0\u542f\u52a8\u5bb9\u5668\uff08\u4f7f\u7528\u4e0e\u5b89\u88c5\u65f6\u76f8\u540c\u7684\u53c2\u6570\uff09<\/span>\r\ndocker run --name sublinkpro -p 8000:8000 \\\r\n  -v <span class=\"pl-smi\">$PWD<\/span>\/db:\/app\/db \\\r\n  -v <span class=\"pl-smi\">$PWD<\/span>\/template:\/app\/template \\\r\n  -v <span class=\"pl-smi\">$PWD<\/span>\/logs:\/app\/logs \\\r\n  -d zerodeng\/sublink-pro\r\n\r\n<span class=\"pl-c\"># \uff08\u53ef\u9009\uff09\u6e05\u7406\u65e7\u955c\u50cf<\/span>\r\ndocker image prune -f\r\n\r\n\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\u00a0\u9879\u76ee\u7b80\u4ecb<\/h2>\n<p>&nbsp;<\/p>\n<\/div>\n<p dir=\"auto\"><code>SublinkPro<\/code>\u00a0\u662f\u57fa\u4e8e\u4f18\u79c0\u7684\u5f00\u6e90\u9879\u76ee\u00a0<a rel=\"nofollow\" href=\"https:\/\/github.com\/gooaclok819\/sublinkX\">sublinkX<\/a>\u00a0\/\u00a0<a rel=\"nofollow\" href=\"https:\/\/github.com\/eun1e\/sublinkE\">sublinkE<\/a>\u00a0\u8fdb\u884c\u4e8c\u6b21\u5f00\u53d1\uff0c\u5728\u539f\u9879\u76ee\u57fa\u7840\u4e0a\u505a\u4e86\u90e8\u5206\u5b9a\u5236\u4f18\u5316\u3002\u611f\u8c22\u539f\u4f5c\u8005\u7684\u4ed8\u51fa\u4e0e\u8d21\u732e\u3002<\/p>\n<ul dir=\"auto\">\n<li>\ud83c\udfa8\u00a0<strong>\u524d\u7aef\u6846\u67b6<\/strong>\uff1a\u57fa\u4e8e\u00a0<a rel=\"nofollow\" href=\"https:\/\/github.com\/codedthemes\/berry-free-react-admin-template\">Berry Free React Material UI Admin Template<\/a><\/li>\n<li>\u26a1\u00a0<strong>\u540e\u7aef\u6280\u672f<\/strong>\uff1aGo + Gin + Gorm<\/li>\n<li>\ud83d\udd10\u00a0<strong>\u9ed8\u8ba4\u8d26\u53f7<\/strong>\uff1a<code>admin<\/code>\u00a0\/\u00a0<code>123456<\/code>\uff08\u8bf7\u5b89\u88c5\u540e\u52a1\u5fc5\u4fee\u6539\uff09<\/li>\n<li>\ud83d\udcbb\u00a0<strong>\u6f14\u793a\u7cfb\u7edf<\/strong>:\u00a0<a rel=\"nofollow\" href=\"https:\/\/sublink-pro-demo.zeabur.app\/\" rel=\"nofollow\">https:\/\/sublink-pro-demo.zeabur.app<\/a>\u00a0\u7528\u6237\u540d\uff1aadmin \u5bc6\u7801\uff1a123456<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\ud83d\ude80 \u5feb\u901f\u5f00\u59cb<\/h2>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">Docker Compose\uff08\u63a8\u8350\uff09<\/h3>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"markdown-alert markdown-alert-important\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Important<\/p>\n<p dir=\"auto\">\u8fd0\u884c\u65f6\u6570\u636e\u9ed8\u8ba4\u4fdd\u5b58\u5728\u4ee5\u4e0b\u76ee\u5f55\u4e2d\uff0c\u8bf7\u5728\u5347\u7ea7\u548c\u8fc1\u79fb\u65f6\u4fdd\u7559\uff1a<\/p>\n<ul dir=\"auto\">\n<li><code>.\/db<\/code>\uff1a\u6570\u636e\u5e93\u3001\u914d\u7f6e\u6587\u4ef6\u3001GeoIP \u7b49\u672c\u5730\u6570\u636e<\/li>\n<li><code>.\/template<\/code>\uff1a\u6a21\u677f\u6587\u4ef6<\/li>\n<li><code>.\/logs<\/code>\uff1a\u8fd0\u884c\u65e5\u5fd7<\/li>\n<\/ul>\n<\/div>\n<p dir=\"auto\">\u521b\u5efa\u00a0<code>docker-compose.yml<\/code>\uff1a<\/p>\n<div class=\"highlight highlight-source-yaml notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre><span class=\"pl-ent\">services<\/span>:\r\n  <span class=\"pl-ent\">sublinkpro<\/span>:\r\n    <span class=\"pl-ent\">image<\/span>: <span class=\"pl-s\">zerodeng\/sublink-pro<\/span>\r\n    <span class=\"pl-ent\">container_name<\/span>: <span class=\"pl-s\">sublinkpro<\/span>\r\n    <span class=\"pl-ent\">ports<\/span>:\r\n      - <span class=\"pl-s\"><span class=\"pl-pds\">\"<\/span>8000:8000<span class=\"pl-pds\">\"<\/span><\/span>\r\n    <span class=\"pl-ent\">volumes<\/span>:\r\n      - <span class=\"pl-s\"><span class=\"pl-pds\">\"<\/span>.\/db:\/app\/db<span class=\"pl-pds\">\"<\/span><\/span>\r\n      - <span class=\"pl-s\"><span class=\"pl-pds\">\"<\/span>.\/template:\/app\/template<span class=\"pl-pds\">\"<\/span><\/span>\r\n      - <span class=\"pl-s\"><span class=\"pl-pds\">\"<\/span>.\/logs:\/app\/logs<span class=\"pl-pds\">\"<\/span><\/span>\r\n    <span class=\"pl-ent\">restart<\/span>: <span class=\"pl-s\">unless-stopped<\/span><\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<p dir=\"auto\">\u542f\u52a8\u670d\u52a1\uff1a<\/p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\">\n<pre>docker-compose up -d<\/pre>\n<div class=\"zeroclipboard-container\"><\/div>\n<\/div>\n<p dir=\"auto\">\u8bbf\u95ee\u00a0<code>http:\/\/localhost:8000<\/code>\uff0c\u4f7f\u7528\u9ed8\u8ba4\u8d26\u53f7\u00a0<code>admin<\/code>\u00a0\/\u00a0<code>123456<\/code>\u00a0\u767b\u5f55\u3002<\/p>\n<p dir=\"auto\">\u9ed8\u8ba4\u4f7f\u7528 SQLite\uff1b\u5982\u9700\u5207\u6362\u5230 MySQL \u6216 PostgreSQL\uff0c\u53ef\u901a\u8fc7\u00a0<code>SUBLINK_DSN<\/code>\u3001\u914d\u7f6e\u6587\u4ef6\u00a0<code>dsn:<\/code>\u00a0\u6216\u547d\u4ee4\u884c\u00a0<code>--dsn<\/code>\u00a0\u6307\u5b9a\u6570\u636e\u5e93\u8fde\u63a5\uff0c\u793a\u4f8b\u89c1\u00a0<a rel=\"nofollow\" href=\"https:\/\/github.com\/ZeroDeng01\/sublinkPro\/blob\/main\/docs\/configuration.md\">\u2699\ufe0f \u914d\u7f6e\u8bf4\u660e<\/a>\u3002<\/p>\n<div class=\"markdown-alert markdown-alert-note\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Note<\/p>\n<p dir=\"auto\">\u5373\u4f7f\u914d\u7f6e\u4e86\u00a0<code>SUBLINK_WEB_BASE_PATH<\/code>\u00a0\u9690\u85cf\u7ba1\u7406\u754c\u9762\u5165\u53e3\uff0cAPI (<code>\/api\/*<\/code>) \u4e0e\u8ba2\u9605\/\u5206\u4eab\u8bbf\u95ee\u8def\u5f84 (<code>\/c\/*<\/code>) \u4ecd\u4fdd\u6301\u5728\u6839\u8def\u5f84\u4e0b\uff0c\u8fd9\u662f\u672c\u9879\u76ee\u7279\u6709\u7684\u524d\u540e\u7aef\u96c6\u6210\u884c\u4e3a\u3002<\/p>\n<\/div>\n<div class=\"markdown-alert markdown-alert-tip\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Tip<\/p>\n<p dir=\"auto\">\u66f4\u591a\u5b89\u88c5\u65b9\u5f0f\uff08Docker\u3001\u4e00\u952e\u811a\u672c\u3001\u66f4\u65b0\u5347\u7ea7\u7b49\uff09\u8bf7\u53c2\u9605\u00a0<a rel=\"nofollow\" href=\"https:\/\/github.com\/ZeroDeng01\/sublinkPro\/blob\/main\/docs\/installation.md\">\ud83d\udce6 \u5b89\u88c5\u90e8\u7f72\u6307\u5357<\/a><\/p>\n<\/div>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 class=\"heading-element\" dir=\"auto\" tabindex=\"-1\">\u4ece SQLite \u8fc1\u79fb\u5230 MySQL \/ PostgreSQL<\/h3>\n<p>&nbsp;<\/p>\n<\/div>\n<p dir=\"auto\">\u5982\u679c\u60a8\u65e9\u671f\u4f7f\u7528\u7684\u662f SQLite\uff0c\u73b0\u5728\u5e0c\u671b\u8fc1\u79fb\u5230 MySQL \u6216 PostgreSQL\uff0c\u5efa\u8bae\u6309\u4ee5\u4e0b\u6d41\u7a0b\u64cd\u4f5c\uff1a<\/p>\n<ol dir=\"auto\">\n<li>\u5728\u65e7\u7684 SQLite \u5b9e\u4f8b\u4e2d\u767b\u5f55\u540e\u53f0\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2\u5934\u50cf\u83dc\u5355\u4e2d\u7684\u00a0<strong>\u7cfb\u7edf\u5907\u4efd<\/strong>\uff0c\u5bfc\u51fa\u00a0<code>backup.zip<\/code><\/li>\n<li>\u5728\u65b0\u5b9e\u4f8b\u4e2d\u914d\u7f6e\u597d MySQL \u6216 PostgreSQL \u7684\u00a0<code>DSN<\/code>\uff0c\u5e76\u786e\u4fdd\u76ee\u6807\u5e93\u662f\u4e00\u4e2a\u5168\u65b0\u7684\u7a7a\u5e93<\/li>\n<li>\u542f\u52a8\u65b0\u5b9e\u4f8b\u540e\uff0c\u8fdb\u5165\u00a0<code>\u8bbe\u7f6e -&gt; \u6570\u636e\u8fc1\u79fb<\/code><\/li>\n<li>\u4e0a\u4f20\u65e7\u5b9e\u4f8b\u5bfc\u51fa\u7684\u00a0<code>backup.zip<\/code><\/li>\n<li>\u6839\u636e\u9700\u8981\u9009\u62e9\u662f\u5426\u8fc1\u79fb\u00a0<code>AccessKey<\/code>\u3001\u8ba2\u9605\u8bbf\u95ee\u65e5\u5fd7\uff0c\u7136\u540e\u5f00\u59cb\u8fc1\u79fb<\/li>\n<li>\u8fc1\u79fb\u5b8c\u6210\u540e\uff0c<strong>\u8bf7\u624b\u52a8\u91cd\u542f\u9879\u76ee\u5b9e\u4f8b<\/strong>\uff0c\u518d\u91cd\u65b0\u767b\u5f55\u68c0\u67e5\u6570\u636e<\/li>\n<\/ol>\n<div class=\"markdown-alert markdown-alert-important\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Important<\/p>\n<p dir=\"auto\">\u63a8\u8350\u4f7f\u7528\u00a0<code>backup.zip<\/code>\u00a0\u8fc1\u79fb\u3002\u76f4\u63a5\u4e0a\u4f20\u00a0<code>.db<\/code>\u00a0\u53ea\u4f1a\u8fc1\u79fb\u6570\u636e\u5e93\u8bb0\u5f55\uff0c\u4e0d\u4f1a\u6062\u590d\u6a21\u677f\u76ee\u5f55\u3002<\/p>\n<\/div>\n<div class=\"markdown-alert markdown-alert-note\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Note<\/p>\n<p dir=\"auto\">\u5982\u679c\u8fc1\u79fb\u4e86\u00a0<code>AccessKey<\/code>\uff0c\u8bf7\u786e\u4fdd\u65b0\u65e7\u5b9e\u4f8b\u4f7f\u7528\u76f8\u540c\u7684\u00a0<code>API \u52a0\u5bc6\u5bc6\u94a5<\/code>\uff1b\u5426\u5219\u65e7 API Key \u53ef\u80fd\u65e0\u6cd5\u7ee7\u7eed\u4f7f\u7528\u3002<\/p>\n<\/div>\n<div class=\"markdown-alert markdown-alert-tip\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\">Tip<\/p>\n<p dir=\"auto\">\u5982\u679c\u8fc1\u79fb\u5b8c\u6210\u540e\u63d0\u793a\u201c\u6709 N \u6761\u8b66\u544a\u201d\uff0c\u53ef\u4ee5\u5230\u00a0<code>\u4efb\u52a1\u4e2d\u5fc3<\/code>\u00a0\u6253\u5f00\u5bf9\u5e94\u7684\u201c\u6570\u636e\u5e93\u8fc1\u79fb\u201d\u4efb\u52a1\u67e5\u770b\u8be6\u7ec6\u8b66\u544a\u5185\u5bb9\u3002<\/p>\n<\/div>\n<p dir=\"auto\">\n","protected":false},"excerpt":{"rendered":"<p>\u5b89\u88c5\uff1ahttps:\/\/sub.6916\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 admin\u00a0 \u00a0 \u00a0D \u5b89\u88c5\u6307\u5357\uff1ahttps:\/\/github.com\/ZeroDeng01\/sublinkPro\/blob\/main\/docs\/in&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[136],"tags":[1148,698,887,1147],"topic":[],"class_list":["post-659200","post","type-post","status-publish","format-standard","hentry","category-136","tag-h","tag-698","tag-887","tag-1147"],"_links":{"self":[{"href":"http:\/\/puo.cn\/index.php?rest_route=\/wp\/v2\/posts\/659200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/puo.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/puo.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/puo.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/puo.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=659200"}],"version-history":[{"count":4,"href":"http:\/\/puo.cn\/index.php?rest_route=\/wp\/v2\/posts\/659200\/revisions"}],"predecessor-version":[{"id":659294,"href":"http:\/\/puo.cn\/index.php?rest_route=\/wp\/v2\/posts\/659200\/revisions\/659294"}],"wp:attachment":[{"href":"http:\/\/puo.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=659200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/puo.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=659200"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/puo.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=659200"},{"taxonomy":"topic","embeddable":true,"href":"http:\/\/puo.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftopic&post=659200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}