From 503b1ab4858765d53daa0323ace46f9933acb727 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 27 Sep 2024 20:01:25 +0800 Subject: [PATCH] refactor: merge and remove documents version from 5.0 to 5.2 --- .../{version-4.x.json => version-4.7.1.json} | 4 +- .../version-5.0.json | 90 --- .../version-5.1.json | 90 --- .../version-5.2.json | 90 --- .../{version-5.2.json => version-4.7.1.json} | 4 +- .../contributing-guide/index.md | 0 .../local-development/devcontainer.md | 0 .../local-development/source-code.md | 0 .../developer-guide/api.md | 0 .../developer-guide/api/apps.md | 0 .../developer-guide/api/debug_files.md | 0 .../developer-guide/fastlane.md | 0 .../developer-guide/fastlane/zealot.md | 0 .../fastlane/zealot_debug_file.md | 0 .../fastlane/zealot_sync_devices.md | 2 +- .../fastlane/zealot_version_check.md | 0 .../developer-guide/index.md | 0 .../developer-guide/sdk/android.md | 0 .../developer-guide/sdk/ios.md | 0 .../configuration/environment-variables.md | 0 .../configuration/schedule-jobs.md | 0 .../third-party-authentication.md | 0 .../self-hosted/deployment/architecture.mdx | 0 .../self-hosted/deployment/docker.md | 0 .../deployment/docker/step-by-step.md | 0 .../self-hosted/deployment/fly.md | 0 .../self-hosted/deployment/kubernetes.md | 0 .../self-hosted/deployment/nomad.md | 0 .../self-hosted/deployment/railway.md | 0 .../self-hosted/deployment/render.md | 0 .../self-hosted/deployment/requirements.md | 0 .../self-hosted/deployment/source-code.md | 0 .../self-hosted/index.md | 0 .../self-hosted/reverse-proxies.mdx | 0 .../self-hosted/storage.md | 0 .../user-guide/administrator/apple-team.mdx | 0 .../user-guide/administrator/backup.md | 0 .../monitoring/background-jobs.md | 0 .../monitoring/database-analytics.md | 0 .../administrator/monitoring/logging.md | 0 .../administrator/monitoring/system-info.md | 0 .../user-guide/administrator/permissions.md | 0 .../administrator/project-settings.md | 0 .../user-guide/apps/create.md | 0 .../user-guide/best_practices.md | 0 .../user-guide/changelog.md | 0 .../user-guide/credits.md | 0 .../user-guide/dashboard.md | 0 .../user-guide/debug-files/upload.md | 0 .../user-guide/index.mdx | 0 .../user-guide/qa.md | 0 .../user-guide/toolkits/fetch-udid.mdx | 0 .../user-guide/toolkits/teardown.md | 0 .../user-guide/webhooks.md | 0 .../user-guide/webhooks/dingtalk.md | 0 .../user-guide/webhooks/discord.md | 0 .../user-guide/webhooks/feishu.md | 0 .../user-guide/webhooks/slack.md | 0 .../user-guide/webhooks/wecom.md | 0 .../version-4.x.json | 90 --- .../version-5.0.json | 90 --- .../version-5.0/contributing-guide/index.md | 15 - .../local-development/devcontainer.md | 126 ---- .../local-development/source-code.md | 262 -------- .../version-5.0/developer-guide/api.md | 42 -- .../version-5.0/developer-guide/api/apps.md | 410 ------------ .../developer-guide/api/debug_files.md | 248 ------- .../version-5.0/developer-guide/fastlane.md | 25 - .../developer-guide/fastlane/zealot.md | 84 --- .../fastlane/zealot_debug_file.md | 92 --- .../fastlane/zealot_sync_devices.md | 58 -- .../fastlane/zealot_version_check.md | 40 -- .../version-5.0/developer-guide/index.md | 14 - .../developer-guide/sdk/android.md | 94 --- .../version-5.0/developer-guide/sdk/ios.md | 102 --- .../configuration/environment-variables.md | 134 ---- .../configuration/schedule-jobs.md | 50 -- .../third-party-authentication.md | 108 --- .../self-hosted/deployment/architecture.mdx | 25 - .../self-hosted/deployment/docker.md | 76 --- .../deployment/docker/step-by-step.md | 137 ---- .../version-5.0/self-hosted/deployment/fly.md | 60 -- .../self-hosted/deployment/kubernetes.md | 198 ------ .../self-hosted/deployment/nomad.md | 238 ------- .../self-hosted/deployment/railway.md | 13 - .../self-hosted/deployment/render.md | 17 - .../self-hosted/deployment/requirements.md | 90 --- .../self-hosted/deployment/source-code.md | 7 - .../version-5.0/self-hosted/index.md | 14 - .../self-hosted/reverse-proxies.mdx | 274 -------- .../version-5.0/self-hosted/storage.md | 22 - .../user-guide/administrator/apple-team.mdx | 30 - .../user-guide/administrator/backup.mdx | 34 - .../monitoring/background-jobs.mdx | 12 - .../monitoring/database-analytics.mdx | 12 - .../administrator/monitoring/logging.mdx | 12 - .../administrator/monitoring/system-info.mdx | 12 - .../user-guide/administrator/permissions.md | 39 -- .../user-guide/administrator/settings.mdx | 12 - .../version-5.0/user-guide/apps/create.mdx | 12 - .../version-5.0/user-guide/apps/detail.mdx | 12 - .../version-5.0/user-guide/apps/index.mdx | 54 -- .../version-5.0/user-guide/apps/upload.mdx | 12 - .../version-5.0/user-guide/best_practices.md | 63 -- .../version-5.0/user-guide/changelog.md | 530 --------------- .../version-5.0/user-guide/credits.md | 23 - .../version-5.0/user-guide/dashboard.md | 3 - .../user-guide/debug-files/index.mdx | 14 - .../user-guide/debug-files/review.mdx | 48 -- .../user-guide/debug-files/upload.mdx | 12 - .../version-5.0/user-guide/index.mdx | 49 -- .../version-5.0/user-guide/qa.md | 73 --- .../user-guide/toolkits/fetch-udid.mdx | 64 -- .../user-guide/toolkits/teardown.mdx | 32 - .../version-5.0/user-guide/webhooks.md | 56 -- .../user-guide/webhooks/dingtalk.md | 29 - .../user-guide/webhooks/discord.md | 63 -- .../version-5.0/user-guide/webhooks/feishu.md | 94 --- .../version-5.0/user-guide/webhooks/slack.md | 63 -- .../version-5.0/user-guide/webhooks/wecom.md | 25 - .../version-5.1.json | 90 --- .../version-5.1/contributing-guide/index.md | 15 - .../local-development/devcontainer.md | 126 ---- .../local-development/source-code.md | 262 -------- .../version-5.1/developer-guide/api.md | 42 -- .../version-5.1/developer-guide/api/apps.md | 410 ------------ .../developer-guide/api/debug_files.md | 248 ------- .../version-5.1/developer-guide/fastlane.md | 25 - .../developer-guide/fastlane/zealot.md | 84 --- .../fastlane/zealot_debug_file.md | 92 --- .../fastlane/zealot_sync_devices.md | 58 -- .../fastlane/zealot_version_check.md | 40 -- .../version-5.1/developer-guide/index.md | 14 - .../developer-guide/sdk/android.md | 94 --- .../version-5.1/developer-guide/sdk/ios.md | 102 --- .../configuration/environment-variables.md | 135 ---- .../configuration/schedule-jobs.md | 50 -- .../third-party-authentication.md | 108 --- .../self-hosted/deployment/architecture.mdx | 25 - .../self-hosted/deployment/docker.md | 76 --- .../deployment/docker/step-by-step.md | 242 ------- .../version-5.1/self-hosted/deployment/fly.md | 60 -- .../self-hosted/deployment/kubernetes.md | 198 ------ .../self-hosted/deployment/nomad.md | 238 ------- .../self-hosted/deployment/railway.md | 13 - .../self-hosted/deployment/render.md | 17 - .../self-hosted/deployment/requirements.md | 90 --- .../self-hosted/deployment/source-code.md | 7 - .../version-5.1/self-hosted/index.md | 14 - .../self-hosted/reverse-proxies.mdx | 274 -------- .../version-5.1/self-hosted/storage.md | 22 - .../user-guide/administrator/apple-team.mdx | 30 - .../user-guide/administrator/backup.mdx | 34 - .../monitoring/background-jobs.mdx | 12 - .../monitoring/database-analytics.mdx | 12 - .../administrator/monitoring/logging.mdx | 12 - .../administrator/monitoring/system-info.mdx | 12 - .../user-guide/administrator/permissions.md | 39 -- .../user-guide/administrator/settings.mdx | 12 - .../version-5.1/user-guide/apps/create.mdx | 12 - .../version-5.1/user-guide/apps/detail.mdx | 12 - .../version-5.1/user-guide/apps/index.mdx | 54 -- .../version-5.1/user-guide/apps/upload.mdx | 12 - .../version-5.1/user-guide/best_practices.md | 63 -- .../version-5.1/user-guide/changelog.md | 566 ---------------- .../version-5.1/user-guide/credits.md | 23 - .../version-5.1/user-guide/dashboard.md | 3 - .../user-guide/debug-files/index.mdx | 14 - .../user-guide/debug-files/review.mdx | 48 -- .../user-guide/debug-files/upload.mdx | 12 - .../version-5.1/user-guide/index.mdx | 49 -- .../version-5.1/user-guide/qa.md | 73 --- .../user-guide/toolkits/fetch-udid.mdx | 64 -- .../user-guide/toolkits/teardown.mdx | 32 - .../version-5.1/user-guide/webhooks.md | 56 -- .../user-guide/webhooks/dingtalk.md | 29 - .../user-guide/webhooks/discord.md | 63 -- .../version-5.1/user-guide/webhooks/feishu.md | 94 --- .../version-5.1/user-guide/webhooks/slack.md | 63 -- .../version-5.1/user-guide/webhooks/wecom.md | 25 - .../version-5.2/contributing-guide/index.md | 15 - .../local-development/devcontainer.md | 126 ---- .../local-development/source-code.md | 262 -------- .../version-5.2/developer-guide/api.md | 42 -- .../version-5.2/developer-guide/api/apps.md | 410 ------------ .../developer-guide/api/debug_files.md | 248 ------- .../version-5.2/developer-guide/fastlane.md | 25 - .../developer-guide/fastlane/zealot.md | 84 --- .../fastlane/zealot_debug_file.md | 92 --- .../fastlane/zealot_sync_devices.md | 58 -- .../fastlane/zealot_version_check.md | 40 -- .../version-5.2/developer-guide/index.md | 14 - .../developer-guide/sdk/android.md | 94 --- .../version-5.2/developer-guide/sdk/ios.md | 102 --- .../configuration/environment-variables.md | 143 ---- .../configuration/schedule-jobs.md | 50 -- .../third-party-authentication.md | 116 ---- .../self-hosted/deployment/architecture.mdx | 25 - .../self-hosted/deployment/docker.md | 93 --- .../deployment/docker/step-by-step.md | 243 ------- .../version-5.2/self-hosted/deployment/fly.md | 60 -- .../self-hosted/deployment/kubernetes.md | 198 ------ .../self-hosted/deployment/nomad.md | 238 ------- .../self-hosted/deployment/railway.md | 13 - .../self-hosted/deployment/render.md | 17 - .../self-hosted/deployment/requirements.md | 90 --- .../self-hosted/deployment/source-code.md | 7 - .../version-5.2/self-hosted/index.md | 14 - .../self-hosted/reverse-proxies.mdx | 274 -------- .../version-5.2/self-hosted/storage.md | 22 - .../user-guide/administrator/apple-team.mdx | 30 - .../user-guide/administrator/backup.mdx | 34 - .../monitoring/background-jobs.mdx | 12 - .../monitoring/database-analytics.mdx | 12 - .../administrator/monitoring/logging.mdx | 12 - .../administrator/monitoring/system-info.mdx | 12 - .../user-guide/administrator/permissions.md | 39 -- .../user-guide/administrator/settings.mdx | 12 - .../version-5.2/user-guide/apps/create.mdx | 12 - .../version-5.2/user-guide/apps/detail.mdx | 12 - .../version-5.2/user-guide/apps/index.mdx | 54 -- .../version-5.2/user-guide/apps/upload.mdx | 12 - .../version-5.2/user-guide/best_practices.md | 63 -- .../version-5.2/user-guide/changelog.md | 616 ------------------ .../version-5.2/user-guide/credits.md | 23 - .../version-5.2/user-guide/dashboard.md | 3 - .../user-guide/debug-files/index.mdx | 14 - .../user-guide/debug-files/review.mdx | 48 -- .../user-guide/debug-files/upload.mdx | 12 - .../version-5.2/user-guide/index.mdx | 49 -- .../version-5.2/user-guide/qa.md | 73 --- .../user-guide/toolkits/fetch-udid.mdx | 64 -- .../user-guide/toolkits/teardown.mdx | 32 - .../version-5.2/user-guide/webhooks.md | 56 -- .../user-guide/webhooks/dingtalk.md | 29 - .../user-guide/webhooks/discord.md | 63 -- .../version-5.2/user-guide/webhooks/feishu.md | 94 --- .../version-5.2/user-guide/webhooks/slack.md | 63 -- .../version-5.2/user-guide/webhooks/wecom.md | 25 - .../contributing-guide/index.md | 0 .../local-development/devcontainer.md | 0 .../local-development/source-code.md | 0 .../contributing-guide/sidebars.js | 0 .../developer-guide/api.md | 0 .../developer-guide/api/apps.md | 0 .../developer-guide/api/debug_files.md | 0 .../developer-guide/fastlane.md | 0 .../developer-guide/fastlane/zealot.md | 0 .../fastlane/zealot_debug_file.md | 0 .../fastlane/zealot_sync_devices.md | 2 +- .../fastlane/zealot_version_check.md | 0 .../developer-guide/index.md | 0 .../developer-guide/sdk/android.md | 0 .../developer-guide/sdk/ios.md | 0 .../developer-guide/sidebars.js | 0 .../configuration/environment-variables.md | 0 .../configuration/schedule-jobs.md | 0 .../third-party-authentication.md | 0 .../self-hosted/deployment/architecture.mdx | 0 .../self-hosted/deployment/docker.md | 0 .../deployment/docker/step-by-step.md | 0 .../self-hosted/deployment/fly.md | 0 .../self-hosted/deployment/kubernetes.md | 0 .../self-hosted/deployment/nomad.md | 0 .../self-hosted/deployment/railway.md | 0 .../self-hosted/deployment/render.md | 0 .../self-hosted/deployment/requirements.md | 0 .../self-hosted/deployment/source-code.md | 0 .../self-hosted/index.md | 0 .../self-hosted/reverse-proxies.mdx | 0 .../self-hosted/sidebars.js | 0 .../self-hosted/storage.md | 0 .../user-guide/administrator/apple-team.mdx | 0 .../user-guide/administrator/backup.md | 0 .../monitoring/background-jobs.md | 0 .../monitoring/database-analytics.md | 0 .../administrator/monitoring/logging.md | 0 .../administrator/monitoring/system-info.md | 0 .../user-guide/administrator/permissions.md | 0 .../administrator/project-settings.md | 0 .../user-guide/apps/create.md | 0 .../user-guide/best_practices.md | 0 .../user-guide/changelog.md | 0 .../user-guide/credits.md | 0 .../user-guide/dashboard.md | 0 .../user-guide/debug-files/upload.md | 0 .../user-guide/index.mdx | 2 +- .../user-guide/qa.md | 0 .../user-guide/sidebars.js | 0 .../user-guide/toolkits/fetch-udid.mdx | 0 .../user-guide/toolkits/teardown.md | 0 .../user-guide/webhooks.md | 0 .../user-guide/webhooks/dingtalk.md | 0 .../user-guide/webhooks/discord.md | 0 .../user-guide/webhooks/feishu.md | 0 .../user-guide/webhooks/slack.md | 0 .../user-guide/webhooks/wecom.md | 0 .../version-5.0/contributing-guide/index.md | 22 - .../local-development/devcontainer.md | 127 ---- .../local-development/source-code.md | 232 ------- .../contributing-guide/sidebars.js | 19 - .../version-5.0/developer-guide/api.md | 37 -- .../version-5.0/developer-guide/api/apps.md | 417 ------------ .../developer-guide/api/debug_files.md | 254 -------- .../version-5.0/developer-guide/fastlane.md | 27 - .../developer-guide/fastlane/zealot.md | 84 --- .../fastlane/zealot_debug_file.md | 92 --- .../fastlane/zealot_sync_devices.md | 54 -- .../fastlane/zealot_version_check.md | 40 -- .../version-5.0/developer-guide/index.md | 15 - .../developer-guide/sdk/android.md | 94 --- .../version-5.0/developer-guide/sdk/ios.md | 109 ---- .../version-5.0/developer-guide/sidebars.js | 47 -- .../configuration/environment-variables.md | 150 ----- .../configuration/schedule-jobs.md | 55 -- .../third-party-authentication.md | 109 ---- .../self-hosted/deployment/architecture.mdx | 25 - .../self-hosted/deployment/docker.md | 96 --- .../deployment/docker/step-by-step.md | 140 ---- .../version-5.0/self-hosted/deployment/fly.md | 60 -- .../self-hosted/deployment/kubernetes.md | 197 ------ .../self-hosted/deployment/nomad.md | 240 ------- .../self-hosted/deployment/railway.md | 13 - .../self-hosted/deployment/render.md | 17 - .../self-hosted/deployment/requirements.md | 94 --- .../self-hosted/deployment/source-code.md | 7 - .../version-5.0/self-hosted/index.md | 14 - .../self-hosted/reverse-proxies.mdx | 278 -------- .../version-5.0/self-hosted/sidebars.js | 71 -- .../version-5.0/self-hosted/storage.md | 27 - .../user-guide/administrator/apple-team.mdx | 44 -- .../user-guide/administrator/backup.mdx | 38 -- .../monitoring/background-jobs.mdx | 12 - .../monitoring/database-analytics.mdx | 12 - .../administrator/monitoring/logging.mdx | 12 - .../administrator/monitoring/system-info.mdx | 12 - .../user-guide/administrator/permissions.md | 42 -- .../administrator/project-settings.md | 3 - .../user-guide/administrator/settings.mdx | 12 - .../version-5.0/user-guide/apps/create.mdx | 12 - .../version-5.0/user-guide/apps/detail.mdx | 12 - .../version-5.0/user-guide/apps/index.mdx | 54 -- .../version-5.0/user-guide/apps/upload.mdx | 12 - .../version-5.0/user-guide/best_practices.md | 73 --- .../version-5.0/user-guide/changelog.md | 531 --------------- .../version-5.0/user-guide/credits.md | 23 - .../version-5.0/user-guide/dashboard.md | 3 - .../user-guide/debug-files/index.mdx | 14 - .../user-guide/debug-files/review.mdx | 48 -- .../user-guide/debug-files/upload.mdx | 12 - .../version-5.0/user-guide/index.mdx | 48 -- versioned_docs/version-5.0/user-guide/qa.md | 3 - .../user-guide/toolkits/fetch-udid.mdx | 67 -- .../user-guide/toolkits/teardown.mdx | 32 - .../version-5.0/user-guide/webhooks.md | 50 -- .../user-guide/webhooks/dingtalk.md | 31 - .../user-guide/webhooks/discord.md | 64 -- .../version-5.0/user-guide/webhooks/feishu.md | 96 --- .../version-5.0/user-guide/webhooks/slack.md | 64 -- .../version-5.0/user-guide/webhooks/wecom.md | 26 - .../version-5.1/contributing-guide/index.md | 22 - .../local-development/devcontainer.md | 127 ---- .../local-development/source-code.md | 232 ------- .../contributing-guide/sidebars.js | 19 - .../version-5.1/developer-guide/api.md | 37 -- .../version-5.1/developer-guide/api/apps.md | 417 ------------ .../developer-guide/api/debug_files.md | 254 -------- .../version-5.1/developer-guide/fastlane.md | 27 - .../developer-guide/fastlane/zealot.md | 84 --- .../fastlane/zealot_debug_file.md | 92 --- .../fastlane/zealot_sync_devices.md | 54 -- .../fastlane/zealot_version_check.md | 40 -- .../version-5.1/developer-guide/index.md | 15 - .../developer-guide/sdk/android.md | 94 --- .../version-5.1/developer-guide/sdk/ios.md | 109 ---- .../version-5.1/developer-guide/sidebars.js | 47 -- .../configuration/environment-variables.md | 150 ----- .../configuration/schedule-jobs.md | 55 -- .../third-party-authentication.md | 109 ---- .../self-hosted/deployment/architecture.mdx | 25 - .../self-hosted/deployment/docker.md | 96 --- .../deployment/docker/step-by-step.md | 246 ------- .../version-5.1/self-hosted/deployment/fly.md | 60 -- .../self-hosted/deployment/kubernetes.md | 197 ------ .../self-hosted/deployment/nomad.md | 240 ------- .../self-hosted/deployment/railway.md | 13 - .../self-hosted/deployment/render.md | 17 - .../self-hosted/deployment/requirements.md | 94 --- .../self-hosted/deployment/source-code.md | 7 - .../version-5.1/self-hosted/index.md | 14 - .../self-hosted/reverse-proxies.mdx | 278 -------- .../version-5.1/self-hosted/sidebars.js | 71 -- .../version-5.1/self-hosted/storage.md | 27 - .../user-guide/administrator/apple-team.mdx | 44 -- .../user-guide/administrator/backup.mdx | 38 -- .../monitoring/background-jobs.mdx | 12 - .../monitoring/database-analytics.mdx | 12 - .../administrator/monitoring/logging.mdx | 12 - .../administrator/monitoring/system-info.mdx | 12 - .../user-guide/administrator/permissions.md | 42 -- .../user-guide/administrator/settings.mdx | 12 - .../version-5.1/user-guide/apps/create.mdx | 12 - .../version-5.1/user-guide/apps/detail.mdx | 12 - .../version-5.1/user-guide/apps/index.mdx | 54 -- .../version-5.1/user-guide/apps/upload.mdx | 12 - .../version-5.1/user-guide/best_practices.md | 73 --- .../version-5.1/user-guide/changelog.md | 565 ---------------- .../version-5.1/user-guide/credits.md | 23 - .../version-5.1/user-guide/dashboard.md | 3 - .../user-guide/debug-files/index.mdx | 14 - .../user-guide/debug-files/review.mdx | 48 -- .../user-guide/debug-files/upload.mdx | 12 - .../version-5.1/user-guide/index.mdx | 48 -- versioned_docs/version-5.1/user-guide/qa.md | 3 - .../version-5.1/user-guide/sidebars.js | 99 --- .../user-guide/toolkits/fetch-udid.mdx | 67 -- .../user-guide/toolkits/teardown.mdx | 32 - .../version-5.1/user-guide/webhooks.md | 50 -- .../user-guide/webhooks/dingtalk.md | 31 - .../user-guide/webhooks/discord.md | 64 -- .../version-5.1/user-guide/webhooks/feishu.md | 96 --- .../version-5.1/user-guide/webhooks/slack.md | 64 -- .../version-5.1/user-guide/webhooks/wecom.md | 26 - .../version-5.2/contributing-guide/index.md | 22 - .../local-development/devcontainer.md | 127 ---- .../local-development/source-code.md | 232 ------- .../contributing-guide/sidebars.js | 19 - .../version-5.2/developer-guide/api.md | 37 -- .../version-5.2/developer-guide/api/apps.md | 417 ------------ .../developer-guide/api/debug_files.md | 254 -------- .../version-5.2/developer-guide/fastlane.md | 27 - .../developer-guide/fastlane/zealot.md | 84 --- .../fastlane/zealot_debug_file.md | 92 --- .../fastlane/zealot_sync_devices.md | 54 -- .../fastlane/zealot_version_check.md | 40 -- .../version-5.2/developer-guide/index.md | 15 - .../developer-guide/sdk/android.md | 94 --- .../version-5.2/developer-guide/sdk/ios.md | 109 ---- .../version-5.2/developer-guide/sidebars.js | 47 -- .../configuration/environment-variables.md | 159 ----- .../configuration/schedule-jobs.md | 55 -- .../third-party-authentication.md | 117 ---- .../self-hosted/deployment/architecture.mdx | 25 - .../self-hosted/deployment/docker.md | 101 --- .../deployment/docker/step-by-step.md | 246 ------- .../version-5.2/self-hosted/deployment/fly.md | 60 -- .../self-hosted/deployment/kubernetes.md | 197 ------ .../self-hosted/deployment/nomad.md | 240 ------- .../self-hosted/deployment/railway.md | 13 - .../self-hosted/deployment/render.md | 17 - .../self-hosted/deployment/requirements.md | 94 --- .../self-hosted/deployment/source-code.md | 7 - .../version-5.2/self-hosted/index.md | 14 - .../self-hosted/reverse-proxies.mdx | 278 -------- .../version-5.2/self-hosted/sidebars.js | 71 -- .../version-5.2/self-hosted/storage.md | 27 - .../user-guide/administrator/apple-team.mdx | 44 -- .../user-guide/administrator/backup.mdx | 38 -- .../monitoring/background-jobs.mdx | 12 - .../monitoring/database-analytics.mdx | 12 - .../administrator/monitoring/logging.mdx | 12 - .../administrator/monitoring/system-info.mdx | 12 - .../user-guide/administrator/permissions.md | 42 -- .../user-guide/administrator/settings.mdx | 12 - .../version-5.2/user-guide/apps/create.mdx | 12 - .../version-5.2/user-guide/apps/detail.mdx | 12 - .../version-5.2/user-guide/apps/index.mdx | 54 -- .../version-5.2/user-guide/apps/upload.mdx | 12 - .../version-5.2/user-guide/best_practices.md | 73 --- .../version-5.2/user-guide/changelog.md | 616 ------------------ .../version-5.2/user-guide/credits.md | 23 - .../version-5.2/user-guide/dashboard.md | 3 - .../user-guide/debug-files/index.mdx | 14 - .../user-guide/debug-files/review.mdx | 48 -- .../user-guide/debug-files/upload.mdx | 12 - .../version-5.2/user-guide/index.mdx | 48 -- versioned_docs/version-5.2/user-guide/qa.md | 3 - .../version-5.2/user-guide/sidebars.js | 99 --- .../user-guide/toolkits/fetch-udid.mdx | 67 -- .../user-guide/toolkits/teardown.mdx | 32 - .../version-5.2/user-guide/webhooks.md | 50 -- .../user-guide/webhooks/dingtalk.md | 31 - .../user-guide/webhooks/discord.md | 64 -- .../version-5.2/user-guide/webhooks/feishu.md | 96 --- .../version-5.2/user-guide/webhooks/slack.md | 64 -- .../version-5.2/user-guide/webhooks/wecom.md | 26 - ...ebars.json => version-4.7.1-sidebars.json} | 0 versioned_sidebars/version-5.0-sidebars.json | 237 ------- versioned_sidebars/version-5.1-sidebars.json | 237 ------- versioned_sidebars/version-5.2-sidebars.json | 237 ------- versions.json | 5 +- 491 files changed, 8 insertions(+), 30057 deletions(-) rename i18n/en/docusaurus-plugin-content-docs/{version-4.x.json => version-4.7.1.json} (98%) delete mode 100644 i18n/en/docusaurus-plugin-content-docs/version-5.0.json delete mode 100644 i18n/en/docusaurus-plugin-content-docs/version-5.1.json delete mode 100644 i18n/en/docusaurus-plugin-content-docs/version-5.2.json rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-5.2.json => version-4.7.1.json} (98%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/contributing-guide/index.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/contributing-guide/local-development/devcontainer.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/contributing-guide/local-development/source-code.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/developer-guide/api.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/developer-guide/api/apps.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/developer-guide/api/debug_files.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/developer-guide/fastlane.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/developer-guide/fastlane/zealot.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/developer-guide/fastlane/zealot_debug_file.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/developer-guide/fastlane/zealot_sync_devices.md (98%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/developer-guide/fastlane/zealot_version_check.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/developer-guide/index.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/developer-guide/sdk/android.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/developer-guide/sdk/ios.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/configuration/environment-variables.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/configuration/schedule-jobs.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/configuration/third-party-authentication.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/deployment/architecture.mdx (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/deployment/docker.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/deployment/docker/step-by-step.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/deployment/fly.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/deployment/kubernetes.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/deployment/nomad.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/deployment/railway.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/deployment/render.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/deployment/requirements.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/deployment/source-code.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/index.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/reverse-proxies.mdx (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/self-hosted/storage.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/administrator/apple-team.mdx (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/administrator/backup.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/administrator/monitoring/background-jobs.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/administrator/monitoring/database-analytics.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/administrator/monitoring/logging.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/administrator/monitoring/system-info.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/administrator/permissions.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/administrator/project-settings.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/apps/create.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/best_practices.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/changelog.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/credits.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/dashboard.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/debug-files/upload.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/index.mdx (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/qa.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/toolkits/fetch-udid.mdx (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/toolkits/teardown.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/webhooks.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/webhooks/dingtalk.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/webhooks/discord.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/webhooks/feishu.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/webhooks/slack.md (100%) rename i18n/zh-Hans/docusaurus-plugin-content-docs/{version-4.x => version-4.7.1}/user-guide/webhooks/wecom.md (100%) delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x.json delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0.json delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/contributing-guide/index.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/contributing-guide/local-development/devcontainer.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/contributing-guide/local-development/source-code.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/api.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/api/apps.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/api/debug_files.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot_debug_file.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot_sync_devices.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot_version_check.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/index.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/sdk/android.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/sdk/ios.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/configuration/environment-variables.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/configuration/schedule-jobs.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/configuration/third-party-authentication.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/architecture.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/docker.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/docker/step-by-step.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/fly.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/kubernetes.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/nomad.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/railway.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/render.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/requirements.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/source-code.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/index.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/reverse-proxies.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/storage.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/apple-team.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/backup.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/background-jobs.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/database-analytics.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/logging.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/system-info.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/permissions.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/settings.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/create.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/detail.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/index.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/upload.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/best_practices.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/changelog.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/credits.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/dashboard.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/debug-files/index.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/debug-files/review.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/debug-files/upload.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/index.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/qa.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/toolkits/fetch-udid.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/toolkits/teardown.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/dingtalk.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/discord.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/feishu.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/slack.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/wecom.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1.json delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/contributing-guide/index.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/contributing-guide/local-development/devcontainer.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/contributing-guide/local-development/source-code.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/api.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/api/apps.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/api/debug_files.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot_debug_file.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot_sync_devices.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot_version_check.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/index.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/sdk/android.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/sdk/ios.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/configuration/environment-variables.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/configuration/schedule-jobs.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/configuration/third-party-authentication.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/architecture.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/docker.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/docker/step-by-step.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/fly.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/kubernetes.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/nomad.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/railway.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/render.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/requirements.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/source-code.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/index.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/reverse-proxies.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/storage.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/apple-team.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/backup.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/background-jobs.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/database-analytics.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/logging.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/system-info.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/permissions.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/settings.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/create.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/detail.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/index.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/upload.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/best_practices.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/changelog.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/credits.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/dashboard.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/debug-files/index.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/debug-files/review.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/debug-files/upload.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/index.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/qa.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/toolkits/fetch-udid.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/toolkits/teardown.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/dingtalk.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/discord.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/feishu.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/slack.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/wecom.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/contributing-guide/index.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/contributing-guide/local-development/devcontainer.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/contributing-guide/local-development/source-code.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/api.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/api/apps.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/api/debug_files.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot_debug_file.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot_sync_devices.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot_version_check.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/index.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/sdk/android.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/sdk/ios.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/configuration/environment-variables.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/configuration/schedule-jobs.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/configuration/third-party-authentication.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/architecture.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/docker.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/docker/step-by-step.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/fly.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/kubernetes.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/nomad.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/railway.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/render.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/requirements.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/source-code.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/index.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/reverse-proxies.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/storage.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/apple-team.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/backup.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/background-jobs.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/database-analytics.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/logging.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/system-info.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/permissions.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/settings.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/create.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/detail.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/index.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/upload.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/best_practices.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/changelog.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/credits.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/dashboard.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/debug-files/index.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/debug-files/review.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/debug-files/upload.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/index.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/qa.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/toolkits/fetch-udid.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/toolkits/teardown.mdx delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/dingtalk.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/discord.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/feishu.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/slack.md delete mode 100644 i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/wecom.md rename versioned_docs/{version-4.x => version-4.7.1}/contributing-guide/index.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/contributing-guide/local-development/devcontainer.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/contributing-guide/local-development/source-code.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/contributing-guide/sidebars.js (100%) rename versioned_docs/{version-4.x => version-4.7.1}/developer-guide/api.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/developer-guide/api/apps.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/developer-guide/api/debug_files.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/developer-guide/fastlane.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/developer-guide/fastlane/zealot.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/developer-guide/fastlane/zealot_debug_file.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/developer-guide/fastlane/zealot_sync_devices.md (97%) rename versioned_docs/{version-4.x => version-4.7.1}/developer-guide/fastlane/zealot_version_check.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/developer-guide/index.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/developer-guide/sdk/android.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/developer-guide/sdk/ios.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/developer-guide/sidebars.js (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/configuration/environment-variables.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/configuration/schedule-jobs.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/configuration/third-party-authentication.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/deployment/architecture.mdx (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/deployment/docker.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/deployment/docker/step-by-step.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/deployment/fly.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/deployment/kubernetes.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/deployment/nomad.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/deployment/railway.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/deployment/render.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/deployment/requirements.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/deployment/source-code.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/index.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/reverse-proxies.mdx (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/sidebars.js (100%) rename versioned_docs/{version-4.x => version-4.7.1}/self-hosted/storage.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/administrator/apple-team.mdx (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/administrator/backup.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/administrator/monitoring/background-jobs.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/administrator/monitoring/database-analytics.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/administrator/monitoring/logging.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/administrator/monitoring/system-info.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/administrator/permissions.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/administrator/project-settings.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/apps/create.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/best_practices.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/changelog.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/credits.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/dashboard.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/debug-files/upload.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/index.mdx (97%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/qa.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/sidebars.js (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/toolkits/fetch-udid.mdx (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/toolkits/teardown.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/webhooks.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/webhooks/dingtalk.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/webhooks/discord.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/webhooks/feishu.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/webhooks/slack.md (100%) rename versioned_docs/{version-4.x => version-4.7.1}/user-guide/webhooks/wecom.md (100%) delete mode 100644 versioned_docs/version-5.0/contributing-guide/index.md delete mode 100644 versioned_docs/version-5.0/contributing-guide/local-development/devcontainer.md delete mode 100644 versioned_docs/version-5.0/contributing-guide/local-development/source-code.md delete mode 100644 versioned_docs/version-5.0/contributing-guide/sidebars.js delete mode 100644 versioned_docs/version-5.0/developer-guide/api.md delete mode 100644 versioned_docs/version-5.0/developer-guide/api/apps.md delete mode 100644 versioned_docs/version-5.0/developer-guide/api/debug_files.md delete mode 100644 versioned_docs/version-5.0/developer-guide/fastlane.md delete mode 100644 versioned_docs/version-5.0/developer-guide/fastlane/zealot.md delete mode 100644 versioned_docs/version-5.0/developer-guide/fastlane/zealot_debug_file.md delete mode 100644 versioned_docs/version-5.0/developer-guide/fastlane/zealot_sync_devices.md delete mode 100644 versioned_docs/version-5.0/developer-guide/fastlane/zealot_version_check.md delete mode 100644 versioned_docs/version-5.0/developer-guide/index.md delete mode 100644 versioned_docs/version-5.0/developer-guide/sdk/android.md delete mode 100644 versioned_docs/version-5.0/developer-guide/sdk/ios.md delete mode 100644 versioned_docs/version-5.0/developer-guide/sidebars.js delete mode 100644 versioned_docs/version-5.0/self-hosted/configuration/environment-variables.md delete mode 100644 versioned_docs/version-5.0/self-hosted/configuration/schedule-jobs.md delete mode 100644 versioned_docs/version-5.0/self-hosted/configuration/third-party-authentication.md delete mode 100644 versioned_docs/version-5.0/self-hosted/deployment/architecture.mdx delete mode 100644 versioned_docs/version-5.0/self-hosted/deployment/docker.md delete mode 100644 versioned_docs/version-5.0/self-hosted/deployment/docker/step-by-step.md delete mode 100644 versioned_docs/version-5.0/self-hosted/deployment/fly.md delete mode 100644 versioned_docs/version-5.0/self-hosted/deployment/kubernetes.md delete mode 100644 versioned_docs/version-5.0/self-hosted/deployment/nomad.md delete mode 100644 versioned_docs/version-5.0/self-hosted/deployment/railway.md delete mode 100644 versioned_docs/version-5.0/self-hosted/deployment/render.md delete mode 100644 versioned_docs/version-5.0/self-hosted/deployment/requirements.md delete mode 100644 versioned_docs/version-5.0/self-hosted/deployment/source-code.md delete mode 100644 versioned_docs/version-5.0/self-hosted/index.md delete mode 100644 versioned_docs/version-5.0/self-hosted/reverse-proxies.mdx delete mode 100644 versioned_docs/version-5.0/self-hosted/sidebars.js delete mode 100644 versioned_docs/version-5.0/self-hosted/storage.md delete mode 100644 versioned_docs/version-5.0/user-guide/administrator/apple-team.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/administrator/backup.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/administrator/monitoring/background-jobs.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/administrator/monitoring/database-analytics.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/administrator/monitoring/logging.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/administrator/monitoring/system-info.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/administrator/permissions.md delete mode 100644 versioned_docs/version-5.0/user-guide/administrator/project-settings.md delete mode 100644 versioned_docs/version-5.0/user-guide/administrator/settings.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/apps/create.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/apps/detail.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/apps/index.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/apps/upload.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/best_practices.md delete mode 100644 versioned_docs/version-5.0/user-guide/changelog.md delete mode 100644 versioned_docs/version-5.0/user-guide/credits.md delete mode 100644 versioned_docs/version-5.0/user-guide/dashboard.md delete mode 100644 versioned_docs/version-5.0/user-guide/debug-files/index.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/debug-files/review.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/debug-files/upload.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/index.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/qa.md delete mode 100644 versioned_docs/version-5.0/user-guide/toolkits/fetch-udid.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/toolkits/teardown.mdx delete mode 100644 versioned_docs/version-5.0/user-guide/webhooks.md delete mode 100644 versioned_docs/version-5.0/user-guide/webhooks/dingtalk.md delete mode 100644 versioned_docs/version-5.0/user-guide/webhooks/discord.md delete mode 100644 versioned_docs/version-5.0/user-guide/webhooks/feishu.md delete mode 100644 versioned_docs/version-5.0/user-guide/webhooks/slack.md delete mode 100644 versioned_docs/version-5.0/user-guide/webhooks/wecom.md delete mode 100644 versioned_docs/version-5.1/contributing-guide/index.md delete mode 100644 versioned_docs/version-5.1/contributing-guide/local-development/devcontainer.md delete mode 100644 versioned_docs/version-5.1/contributing-guide/local-development/source-code.md delete mode 100644 versioned_docs/version-5.1/contributing-guide/sidebars.js delete mode 100644 versioned_docs/version-5.1/developer-guide/api.md delete mode 100644 versioned_docs/version-5.1/developer-guide/api/apps.md delete mode 100644 versioned_docs/version-5.1/developer-guide/api/debug_files.md delete mode 100644 versioned_docs/version-5.1/developer-guide/fastlane.md delete mode 100644 versioned_docs/version-5.1/developer-guide/fastlane/zealot.md delete mode 100644 versioned_docs/version-5.1/developer-guide/fastlane/zealot_debug_file.md delete mode 100644 versioned_docs/version-5.1/developer-guide/fastlane/zealot_sync_devices.md delete mode 100644 versioned_docs/version-5.1/developer-guide/fastlane/zealot_version_check.md delete mode 100644 versioned_docs/version-5.1/developer-guide/index.md delete mode 100644 versioned_docs/version-5.1/developer-guide/sdk/android.md delete mode 100644 versioned_docs/version-5.1/developer-guide/sdk/ios.md delete mode 100644 versioned_docs/version-5.1/developer-guide/sidebars.js delete mode 100644 versioned_docs/version-5.1/self-hosted/configuration/environment-variables.md delete mode 100644 versioned_docs/version-5.1/self-hosted/configuration/schedule-jobs.md delete mode 100644 versioned_docs/version-5.1/self-hosted/configuration/third-party-authentication.md delete mode 100644 versioned_docs/version-5.1/self-hosted/deployment/architecture.mdx delete mode 100644 versioned_docs/version-5.1/self-hosted/deployment/docker.md delete mode 100644 versioned_docs/version-5.1/self-hosted/deployment/docker/step-by-step.md delete mode 100644 versioned_docs/version-5.1/self-hosted/deployment/fly.md delete mode 100644 versioned_docs/version-5.1/self-hosted/deployment/kubernetes.md delete mode 100644 versioned_docs/version-5.1/self-hosted/deployment/nomad.md delete mode 100644 versioned_docs/version-5.1/self-hosted/deployment/railway.md delete mode 100644 versioned_docs/version-5.1/self-hosted/deployment/render.md delete mode 100644 versioned_docs/version-5.1/self-hosted/deployment/requirements.md delete mode 100644 versioned_docs/version-5.1/self-hosted/deployment/source-code.md delete mode 100644 versioned_docs/version-5.1/self-hosted/index.md delete mode 100644 versioned_docs/version-5.1/self-hosted/reverse-proxies.mdx delete mode 100644 versioned_docs/version-5.1/self-hosted/sidebars.js delete mode 100644 versioned_docs/version-5.1/self-hosted/storage.md delete mode 100644 versioned_docs/version-5.1/user-guide/administrator/apple-team.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/administrator/backup.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/administrator/monitoring/background-jobs.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/administrator/monitoring/database-analytics.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/administrator/monitoring/logging.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/administrator/monitoring/system-info.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/administrator/permissions.md delete mode 100644 versioned_docs/version-5.1/user-guide/administrator/settings.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/apps/create.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/apps/detail.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/apps/index.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/apps/upload.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/best_practices.md delete mode 100644 versioned_docs/version-5.1/user-guide/changelog.md delete mode 100644 versioned_docs/version-5.1/user-guide/credits.md delete mode 100644 versioned_docs/version-5.1/user-guide/dashboard.md delete mode 100644 versioned_docs/version-5.1/user-guide/debug-files/index.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/debug-files/review.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/debug-files/upload.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/index.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/qa.md delete mode 100644 versioned_docs/version-5.1/user-guide/sidebars.js delete mode 100644 versioned_docs/version-5.1/user-guide/toolkits/fetch-udid.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/toolkits/teardown.mdx delete mode 100644 versioned_docs/version-5.1/user-guide/webhooks.md delete mode 100644 versioned_docs/version-5.1/user-guide/webhooks/dingtalk.md delete mode 100644 versioned_docs/version-5.1/user-guide/webhooks/discord.md delete mode 100644 versioned_docs/version-5.1/user-guide/webhooks/feishu.md delete mode 100644 versioned_docs/version-5.1/user-guide/webhooks/slack.md delete mode 100644 versioned_docs/version-5.1/user-guide/webhooks/wecom.md delete mode 100644 versioned_docs/version-5.2/contributing-guide/index.md delete mode 100644 versioned_docs/version-5.2/contributing-guide/local-development/devcontainer.md delete mode 100644 versioned_docs/version-5.2/contributing-guide/local-development/source-code.md delete mode 100644 versioned_docs/version-5.2/contributing-guide/sidebars.js delete mode 100644 versioned_docs/version-5.2/developer-guide/api.md delete mode 100644 versioned_docs/version-5.2/developer-guide/api/apps.md delete mode 100644 versioned_docs/version-5.2/developer-guide/api/debug_files.md delete mode 100644 versioned_docs/version-5.2/developer-guide/fastlane.md delete mode 100644 versioned_docs/version-5.2/developer-guide/fastlane/zealot.md delete mode 100644 versioned_docs/version-5.2/developer-guide/fastlane/zealot_debug_file.md delete mode 100644 versioned_docs/version-5.2/developer-guide/fastlane/zealot_sync_devices.md delete mode 100644 versioned_docs/version-5.2/developer-guide/fastlane/zealot_version_check.md delete mode 100644 versioned_docs/version-5.2/developer-guide/index.md delete mode 100644 versioned_docs/version-5.2/developer-guide/sdk/android.md delete mode 100644 versioned_docs/version-5.2/developer-guide/sdk/ios.md delete mode 100644 versioned_docs/version-5.2/developer-guide/sidebars.js delete mode 100644 versioned_docs/version-5.2/self-hosted/configuration/environment-variables.md delete mode 100644 versioned_docs/version-5.2/self-hosted/configuration/schedule-jobs.md delete mode 100644 versioned_docs/version-5.2/self-hosted/configuration/third-party-authentication.md delete mode 100644 versioned_docs/version-5.2/self-hosted/deployment/architecture.mdx delete mode 100644 versioned_docs/version-5.2/self-hosted/deployment/docker.md delete mode 100644 versioned_docs/version-5.2/self-hosted/deployment/docker/step-by-step.md delete mode 100644 versioned_docs/version-5.2/self-hosted/deployment/fly.md delete mode 100644 versioned_docs/version-5.2/self-hosted/deployment/kubernetes.md delete mode 100644 versioned_docs/version-5.2/self-hosted/deployment/nomad.md delete mode 100644 versioned_docs/version-5.2/self-hosted/deployment/railway.md delete mode 100644 versioned_docs/version-5.2/self-hosted/deployment/render.md delete mode 100644 versioned_docs/version-5.2/self-hosted/deployment/requirements.md delete mode 100644 versioned_docs/version-5.2/self-hosted/deployment/source-code.md delete mode 100644 versioned_docs/version-5.2/self-hosted/index.md delete mode 100644 versioned_docs/version-5.2/self-hosted/reverse-proxies.mdx delete mode 100644 versioned_docs/version-5.2/self-hosted/sidebars.js delete mode 100644 versioned_docs/version-5.2/self-hosted/storage.md delete mode 100644 versioned_docs/version-5.2/user-guide/administrator/apple-team.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/administrator/backup.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/administrator/monitoring/background-jobs.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/administrator/monitoring/database-analytics.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/administrator/monitoring/logging.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/administrator/monitoring/system-info.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/administrator/permissions.md delete mode 100644 versioned_docs/version-5.2/user-guide/administrator/settings.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/apps/create.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/apps/detail.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/apps/index.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/apps/upload.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/best_practices.md delete mode 100644 versioned_docs/version-5.2/user-guide/changelog.md delete mode 100644 versioned_docs/version-5.2/user-guide/credits.md delete mode 100644 versioned_docs/version-5.2/user-guide/dashboard.md delete mode 100644 versioned_docs/version-5.2/user-guide/debug-files/index.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/debug-files/review.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/debug-files/upload.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/index.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/qa.md delete mode 100644 versioned_docs/version-5.2/user-guide/sidebars.js delete mode 100644 versioned_docs/version-5.2/user-guide/toolkits/fetch-udid.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/toolkits/teardown.mdx delete mode 100644 versioned_docs/version-5.2/user-guide/webhooks.md delete mode 100644 versioned_docs/version-5.2/user-guide/webhooks/dingtalk.md delete mode 100644 versioned_docs/version-5.2/user-guide/webhooks/discord.md delete mode 100644 versioned_docs/version-5.2/user-guide/webhooks/feishu.md delete mode 100644 versioned_docs/version-5.2/user-guide/webhooks/slack.md delete mode 100644 versioned_docs/version-5.2/user-guide/webhooks/wecom.md rename versioned_sidebars/{version-4.x-sidebars.json => version-4.7.1-sidebars.json} (100%) delete mode 100644 versioned_sidebars/version-5.0-sidebars.json delete mode 100644 versioned_sidebars/version-5.1-sidebars.json delete mode 100644 versioned_sidebars/version-5.2-sidebars.json diff --git a/i18n/en/docusaurus-plugin-content-docs/version-4.x.json b/i18n/en/docusaurus-plugin-content-docs/version-4.7.1.json similarity index 98% rename from i18n/en/docusaurus-plugin-content-docs/version-4.x.json rename to i18n/en/docusaurus-plugin-content-docs/version-4.7.1.json index f965d3cc3..54766081e 100644 --- a/i18n/en/docusaurus-plugin-content-docs/version-4.x.json +++ b/i18n/en/docusaurus-plugin-content-docs/version-4.7.1.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "4.x", - "description": "The label for version 4.x" + "message": "4.7.1", + "description": "The label for version 4.7.1" }, "sidebar.selfHosted.category.Deployment": { "message": "Deployment", diff --git a/i18n/en/docusaurus-plugin-content-docs/version-5.0.json b/i18n/en/docusaurus-plugin-content-docs/version-5.0.json deleted file mode 100644 index 03c0acd6b..000000000 --- a/i18n/en/docusaurus-plugin-content-docs/version-5.0.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "version.label": { - "message": "5.0.0", - "description": "The label for version 5.0" - }, - "sidebar.selfHosted.category.Deployment": { - "message": "Deployment", - "description": "The label for category Deployment in sidebar selfHosted" - }, - "sidebar.selfHosted.category.Docker": { - "message": "Docker", - "description": "The label for category Docker in sidebar selfHosted" - }, - "sidebar.selfHosted.category.Cloud Provider Guides": { - "message": "Cloud Provider Guides", - "description": "The label for category Cloud Provider Guides in sidebar selfHosted" - }, - "sidebar.selfHosted.category.Configuration": { - "message": "Configuration", - "description": "The label for category Configuration in sidebar selfHosted" - }, - "sidebar.selfHosted.doc.Getting Started": { - "message": "Getting Started", - "description": "The label for the doc item Getting Started in sidebar selfHosted, linking to the doc self-hosted/index" - }, - "sidebar.selfHosted.doc.Reverse Proxies": { - "message": "Reverse Proxies", - "description": "The label for the doc item Reverse Proxies in sidebar selfHosted, linking to the doc self-hosted/reverse-proxies" - }, - "sidebar.selfHosted.doc.Storage": { - "message": "Storage", - "description": "The label for the doc item Storage in sidebar selfHosted, linking to the doc self-hosted/storage" - }, - "sidebar.userGuide.category.Apps": { - "message": "Apps", - "description": "The label for category Apps in sidebar userGuide" - }, - "sidebar.userGuide.category.Debug Files": { - "message": "Debug Files", - "description": "The label for category Debug Files in sidebar userGuide" - }, - "sidebar.userGuide.category.Toolkits": { - "message": "Toolkits", - "description": "The label for category Toolkits in sidebar userGuide" - }, - "sidebar.userGuide.category.Webhooks": { - "message": "Webhooks", - "description": "The label for category Webhooks in sidebar userGuide" - }, - "sidebar.userGuide.category.Administrator": { - "message": "Administrator", - "description": "The label for category Administrator in sidebar userGuide" - }, - "sidebar.userGuide.category.Monitoring": { - "message": "Monitoring", - "description": "The label for category Monitoring in sidebar userGuide" - }, - "sidebar.userGuide.doc.Getting Started": { - "message": "Getting Started", - "description": "The label for the doc item Getting Started in sidebar userGuide, linking to the doc user-guide/index" - }, - "sidebar.userGuide.doc.Dashboard": { - "message": "Dashboard", - "description": "The label for the doc item Dashboard in sidebar userGuide, linking to the doc user-guide/dashboard" - }, - "sidebar.developerGuide.category.SDKs": { - "message": "SDKs", - "description": "The label for category SDKs in sidebar developerGuide" - }, - "sidebar.developerGuide.category.fastlane plugins": { - "message": "fastlane plugins", - "description": "The label for category fastlane plugins in sidebar developerGuide" - }, - "sidebar.developerGuide.category.APIs": { - "message": "APIs", - "description": "The label for category APIs in sidebar developerGuide" - }, - "sidebar.developerGuide.doc.Getting Started": { - "message": "Getting Started", - "description": "The label for the doc item Getting Started in sidebar developerGuide, linking to the doc developer-guide/index" - }, - "sidebar.contributingGuide.category.Local development": { - "message": "Local development", - "description": "The label for category Local development in sidebar contributingGuide" - }, - "sidebar.contributingGuide.doc.Getting Started": { - "message": "Getting Started", - "description": "The label for the doc item Getting Started in sidebar contributingGuide, linking to the doc contributing-guide/index" - } -} diff --git a/i18n/en/docusaurus-plugin-content-docs/version-5.1.json b/i18n/en/docusaurus-plugin-content-docs/version-5.1.json deleted file mode 100644 index 89dc0615c..000000000 --- a/i18n/en/docusaurus-plugin-content-docs/version-5.1.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "version.label": { - "message": "5.1.0", - "description": "The label for version 5.1" - }, - "sidebar.selfHosted.category.Deployment": { - "message": "Deployment", - "description": "The label for category Deployment in sidebar selfHosted" - }, - "sidebar.selfHosted.category.Docker": { - "message": "Docker", - "description": "The label for category Docker in sidebar selfHosted" - }, - "sidebar.selfHosted.category.Cloud Provider Guides": { - "message": "Cloud Provider Guides", - "description": "The label for category Cloud Provider Guides in sidebar selfHosted" - }, - "sidebar.selfHosted.category.Configuration": { - "message": "Configuration", - "description": "The label for category Configuration in sidebar selfHosted" - }, - "sidebar.selfHosted.doc.Getting Started": { - "message": "Getting Started", - "description": "The label for the doc item Getting Started in sidebar selfHosted, linking to the doc self-hosted/index" - }, - "sidebar.selfHosted.doc.Reverse Proxies": { - "message": "Reverse Proxies", - "description": "The label for the doc item Reverse Proxies in sidebar selfHosted, linking to the doc self-hosted/reverse-proxies" - }, - "sidebar.selfHosted.doc.Storage": { - "message": "Storage", - "description": "The label for the doc item Storage in sidebar selfHosted, linking to the doc self-hosted/storage" - }, - "sidebar.userGuide.category.Apps": { - "message": "Apps", - "description": "The label for category Apps in sidebar userGuide" - }, - "sidebar.userGuide.category.Debug Files": { - "message": "Debug Files", - "description": "The label for category Debug Files in sidebar userGuide" - }, - "sidebar.userGuide.category.Toolkits": { - "message": "Toolkits", - "description": "The label for category Toolkits in sidebar userGuide" - }, - "sidebar.userGuide.category.Webhooks": { - "message": "Webhooks", - "description": "The label for category Webhooks in sidebar userGuide" - }, - "sidebar.userGuide.category.Administrator": { - "message": "Administrator", - "description": "The label for category Administrator in sidebar userGuide" - }, - "sidebar.userGuide.category.Monitoring": { - "message": "Monitoring", - "description": "The label for category Monitoring in sidebar userGuide" - }, - "sidebar.userGuide.doc.Getting Started": { - "message": "Getting Started", - "description": "The label for the doc item Getting Started in sidebar userGuide, linking to the doc user-guide/index" - }, - "sidebar.userGuide.doc.Dashboard": { - "message": "Dashboard", - "description": "The label for the doc item Dashboard in sidebar userGuide, linking to the doc user-guide/dashboard" - }, - "sidebar.developerGuide.category.SDKs": { - "message": "SDKs", - "description": "The label for category SDKs in sidebar developerGuide" - }, - "sidebar.developerGuide.category.fastlane plugins": { - "message": "fastlane plugins", - "description": "The label for category fastlane plugins in sidebar developerGuide" - }, - "sidebar.developerGuide.category.APIs": { - "message": "APIs", - "description": "The label for category APIs in sidebar developerGuide" - }, - "sidebar.developerGuide.doc.Getting Started": { - "message": "Getting Started", - "description": "The label for the doc item Getting Started in sidebar developerGuide, linking to the doc developer-guide/index" - }, - "sidebar.contributingGuide.category.Local development": { - "message": "Local development", - "description": "The label for category Local development in sidebar contributingGuide" - }, - "sidebar.contributingGuide.doc.Getting Started": { - "message": "Getting Started", - "description": "The label for the doc item Getting Started in sidebar contributingGuide, linking to the doc contributing-guide/index" - } -} diff --git a/i18n/en/docusaurus-plugin-content-docs/version-5.2.json b/i18n/en/docusaurus-plugin-content-docs/version-5.2.json deleted file mode 100644 index 0e12721a8..000000000 --- a/i18n/en/docusaurus-plugin-content-docs/version-5.2.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "version.label": { - "message": "5.2.3", - "description": "The label for version 5.2" - }, - "sidebar.selfHosted.category.Deployment": { - "message": "Deployment", - "description": "The label for category Deployment in sidebar selfHosted" - }, - "sidebar.selfHosted.category.Docker": { - "message": "Docker", - "description": "The label for category Docker in sidebar selfHosted" - }, - "sidebar.selfHosted.category.Cloud Provider Guides": { - "message": "Cloud Provider Guides", - "description": "The label for category Cloud Provider Guides in sidebar selfHosted" - }, - "sidebar.selfHosted.category.Configuration": { - "message": "Configuration", - "description": "The label for category Configuration in sidebar selfHosted" - }, - "sidebar.selfHosted.doc.Getting Started": { - "message": "Getting Started", - "description": "The label for the doc item Getting Started in sidebar selfHosted, linking to the doc self-hosted/index" - }, - "sidebar.selfHosted.doc.Reverse Proxies": { - "message": "Reverse Proxies", - "description": "The label for the doc item Reverse Proxies in sidebar selfHosted, linking to the doc self-hosted/reverse-proxies" - }, - "sidebar.selfHosted.doc.Storage": { - "message": "Storage", - "description": "The label for the doc item Storage in sidebar selfHosted, linking to the doc self-hosted/storage" - }, - "sidebar.userGuide.category.Apps": { - "message": "Apps", - "description": "The label for category Apps in sidebar userGuide" - }, - "sidebar.userGuide.category.Debug Files": { - "message": "Debug Files", - "description": "The label for category Debug Files in sidebar userGuide" - }, - "sidebar.userGuide.category.Toolkits": { - "message": "Toolkits", - "description": "The label for category Toolkits in sidebar userGuide" - }, - "sidebar.userGuide.category.Webhooks": { - "message": "Webhooks", - "description": "The label for category Webhooks in sidebar userGuide" - }, - "sidebar.userGuide.category.Administrator": { - "message": "Administrator", - "description": "The label for category Administrator in sidebar userGuide" - }, - "sidebar.userGuide.category.Monitoring": { - "message": "Monitoring", - "description": "The label for category Monitoring in sidebar userGuide" - }, - "sidebar.userGuide.doc.Getting Started": { - "message": "Getting Started", - "description": "The label for the doc item Getting Started in sidebar userGuide, linking to the doc user-guide/index" - }, - "sidebar.userGuide.doc.Dashboard": { - "message": "Dashboard", - "description": "The label for the doc item Dashboard in sidebar userGuide, linking to the doc user-guide/dashboard" - }, - "sidebar.developerGuide.category.SDKs": { - "message": "SDKs", - "description": "The label for category SDKs in sidebar developerGuide" - }, - "sidebar.developerGuide.category.fastlane plugins": { - "message": "fastlane plugins", - "description": "The label for category fastlane plugins in sidebar developerGuide" - }, - "sidebar.developerGuide.category.APIs": { - "message": "APIs", - "description": "The label for category APIs in sidebar developerGuide" - }, - "sidebar.developerGuide.doc.Getting Started": { - "message": "Getting Started", - "description": "The label for the doc item Getting Started in sidebar developerGuide, linking to the doc developer-guide/index" - }, - "sidebar.contributingGuide.category.Local development": { - "message": "Local development", - "description": "The label for category Local development in sidebar contributingGuide" - }, - "sidebar.contributingGuide.doc.Getting Started": { - "message": "Getting Started", - "description": "The label for the doc item Getting Started in sidebar contributingGuide, linking to the doc contributing-guide/index" - } -} diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2.json b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1.json similarity index 98% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2.json rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1.json index 72b911b5b..a3c4f2b37 100644 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2.json +++ b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1.json @@ -1,7 +1,7 @@ { "version.label": { - "message": "5.2.3", - "description": "The label for version 5.2" + "message": "4.7.1", + "description": "The label for version 4.7.1" }, "sidebar.selfHosted.category.Deployment": { "message": "部署", diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/contributing-guide/index.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/contributing-guide/index.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/contributing-guide/index.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/contributing-guide/index.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/contributing-guide/local-development/devcontainer.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/contributing-guide/local-development/devcontainer.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/contributing-guide/local-development/devcontainer.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/contributing-guide/local-development/devcontainer.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/contributing-guide/local-development/source-code.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/contributing-guide/local-development/source-code.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/contributing-guide/local-development/source-code.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/contributing-guide/local-development/source-code.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/api.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/api.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/api.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/api.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/api/apps.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/api/apps.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/api/apps.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/api/apps.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/api/debug_files.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/api/debug_files.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/api/debug_files.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/api/debug_files.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/fastlane.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/fastlane.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/fastlane.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/fastlane.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/fastlane/zealot.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/fastlane/zealot.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/fastlane/zealot.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/fastlane/zealot.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/fastlane/zealot_debug_file.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/fastlane/zealot_debug_file.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/fastlane/zealot_debug_file.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/fastlane/zealot_debug_file.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/fastlane/zealot_sync_devices.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/fastlane/zealot_sync_devices.md similarity index 98% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/fastlane/zealot_sync_devices.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/fastlane/zealot_sync_devices.md index acaac9aef..fc5f45fa2 100644 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/fastlane/zealot_sync_devices.md +++ b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/fastlane/zealot_sync_devices.md @@ -8,7 +8,7 @@ sidebar_label: "zealot_sync_devices" :bell: Zealot 4.5.0 版本已经支持使用 [Apple API Key](https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) -苹果开发者管理并可自动同步测试设备展示,[查看详情](/docs/4.x/user-guide/administrator/apple-team) +苹果开发者管理并可自动同步测试设备展示,[查看详情](/docs/4.7.1/user-guide/administrator/apple-team) ::: 同步并关联苹果开发者中心(Apple Developer Portal)的测试设备名称到 Zealot 服务。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/fastlane/zealot_version_check.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/fastlane/zealot_version_check.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/fastlane/zealot_version_check.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/fastlane/zealot_version_check.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/index.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/index.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/index.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/index.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/sdk/android.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/sdk/android.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/sdk/android.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/sdk/android.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/sdk/ios.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/sdk/ios.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/developer-guide/sdk/ios.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/developer-guide/sdk/ios.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/configuration/environment-variables.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/configuration/environment-variables.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/configuration/environment-variables.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/configuration/environment-variables.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/configuration/schedule-jobs.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/configuration/schedule-jobs.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/configuration/schedule-jobs.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/configuration/schedule-jobs.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/configuration/third-party-authentication.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/configuration/third-party-authentication.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/configuration/third-party-authentication.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/configuration/third-party-authentication.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/architecture.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/architecture.mdx similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/architecture.mdx rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/architecture.mdx diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/docker.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/docker.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/docker.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/docker.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/docker/step-by-step.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/docker/step-by-step.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/docker/step-by-step.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/docker/step-by-step.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/fly.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/fly.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/fly.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/fly.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/kubernetes.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/kubernetes.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/kubernetes.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/kubernetes.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/nomad.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/nomad.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/nomad.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/nomad.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/railway.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/railway.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/railway.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/railway.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/render.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/render.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/render.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/render.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/requirements.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/requirements.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/requirements.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/requirements.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/source-code.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/source-code.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/deployment/source-code.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/deployment/source-code.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/index.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/index.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/index.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/index.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/reverse-proxies.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/reverse-proxies.mdx similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/reverse-proxies.mdx rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/reverse-proxies.mdx diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/storage.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/storage.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/self-hosted/storage.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/self-hosted/storage.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/apple-team.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/apple-team.mdx similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/apple-team.mdx rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/apple-team.mdx diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/backup.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/backup.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/backup.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/backup.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/monitoring/background-jobs.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/monitoring/background-jobs.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/monitoring/background-jobs.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/monitoring/background-jobs.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/monitoring/database-analytics.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/monitoring/database-analytics.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/monitoring/database-analytics.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/monitoring/database-analytics.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/monitoring/logging.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/monitoring/logging.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/monitoring/logging.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/monitoring/logging.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/monitoring/system-info.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/monitoring/system-info.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/monitoring/system-info.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/monitoring/system-info.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/permissions.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/permissions.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/permissions.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/permissions.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/project-settings.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/project-settings.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/administrator/project-settings.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/administrator/project-settings.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/apps/create.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/apps/create.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/apps/create.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/apps/create.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/best_practices.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/best_practices.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/best_practices.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/best_practices.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/changelog.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/changelog.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/changelog.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/changelog.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/credits.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/credits.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/credits.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/credits.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/dashboard.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/dashboard.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/dashboard.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/dashboard.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/debug-files/upload.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/debug-files/upload.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/debug-files/upload.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/debug-files/upload.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/index.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/index.mdx similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/index.mdx rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/index.mdx diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/qa.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/qa.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/qa.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/qa.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/toolkits/fetch-udid.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/toolkits/fetch-udid.mdx similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/toolkits/fetch-udid.mdx rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/toolkits/fetch-udid.mdx diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/toolkits/teardown.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/toolkits/teardown.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/toolkits/teardown.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/toolkits/teardown.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/webhooks.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/webhooks.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/webhooks.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/webhooks.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/webhooks/dingtalk.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/webhooks/dingtalk.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/webhooks/dingtalk.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/webhooks/dingtalk.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/webhooks/discord.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/webhooks/discord.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/webhooks/discord.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/webhooks/discord.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/webhooks/feishu.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/webhooks/feishu.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/webhooks/feishu.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/webhooks/feishu.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/webhooks/slack.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/webhooks/slack.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/webhooks/slack.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/webhooks/slack.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/webhooks/wecom.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/webhooks/wecom.md similarity index 100% rename from i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x/user-guide/webhooks/wecom.md rename to i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.7.1/user-guide/webhooks/wecom.md diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x.json b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x.json deleted file mode 100644 index b3debf01f..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-4.x.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "version.label": { - "message": "4.x", - "description": "The label for version 4.x" - }, - "sidebar.selfHosted.category.Deployment": { - "message": "部署", - "description": "The label for category Deployment in sidebar selfHosted" - }, - "sidebar.selfHosted.category.Configuration": { - "message": "配置", - "description": "The label for category Configuration in sidebar selfHosted" - }, - "sidebar.selfHosted.doc.Storage": { - "message": "存储", - "description": "The label for the doc item Storage in sidebar selfHosted, linking to the doc self-hosted/storage" - }, - "sidebar.developerGuide.category.SDKs": { - "message": "移动 SDK", - "description": "The label for category SDKs in sidebar developerGuide" - }, - "sidebar.developerGuide.category.fastlane plugins": { - "message": "Fastlane 插件", - "description": "The label for category fastlane plugins in sidebar developerGuide" - }, - "sidebar.developerGuide.category.APIs": { - "message": "API 接口", - "description": "The label for category APIs in sidebar developerGuide" - }, - "sidebar.selfHosted.doc.Getting Started": { - "message": "准备开始", - "description": "The label for the doc item Getting Started in sidebar selfHosted, linking to the doc self-hosted/index" - }, - "sidebar.userGuide.doc.Getting Started": { - "message": "准备开始", - "description": "The label for the doc item Getting Started in sidebar userGuide, linking to the doc user-guide/index" - }, - "sidebar.developerGuide.doc.Getting Started": { - "message": "准备开始", - "description": "The label for the doc item Getting Started in sidebar developerGuide, linking to the doc developer-guide/index" - }, - "sidebar.selfHosted.category.Docker": { - "message": "Docker", - "description": "The label for category Docker in sidebar selfHosted" - }, - "sidebar.userGuide.category.Apps": { - "message": "应用", - "description": "The label for category Apps in sidebar userGuide" - }, - "sidebar.userGuide.category.Debug Files": { - "message": "调试文件", - "description": "The label for category Debug Files in sidebar userGuide" - }, - "sidebar.userGuide.category.Toolkits": { - "message": "工具箱", - "description": "The label for category Toolkits in sidebar userGuide" - }, - "sidebar.userGuide.category.Webhooks": { - "message": "网络钩子", - "description": "The label for category Webhooks in sidebar userGuide" - }, - "sidebar.userGuide.category.Administrator": { - "message": "管理面板", - "description": "The label for category Administrator in sidebar userGuide" - }, - "sidebar.userGuide.category.Monitoring": { - "message": "监控", - "description": "The label for category Monitoring in sidebar userGuide" - }, - "sidebar.userGuide.doc.Dashboard": { - "message": "控制面板", - "description": "The label for the doc item Dashboard in sidebar userGuide, linking to the doc user-guide/dashboard" - }, - "sidebar.selfHosted.category.Cloud Provider Guides": { - "message": "云服务商", - "description": "The label for category Cloud Provider Guides in sidebar selfHosted" - }, - "sidebar.contributingGuide.category.Local development": { - "message": "本地开发", - "description": "The label for category Local development in sidebar contributingGuide" - }, - "sidebar.contributingGuide.doc.Getting Started": { - "message": "准备开始", - "description": "The label for the doc item Getting Started in sidebar contributingGuide, linking to the doc contributing-guide/index" - }, - "sidebar.selfHosted.doc.Reverse Proxies": { - "message": "反向代理", - "description": "The label for the doc item Reverse Proxies in sidebar selfHosted, linking to the doc self-hosted/reverse-proxies" - } -} diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0.json b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0.json deleted file mode 100644 index 70ad44687..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "version.label": { - "message": "5.0.0", - "description": "The label for version 5.0" - }, - "sidebar.selfHosted.category.Deployment": { - "message": "部署", - "description": "The label for category Deployment in sidebar selfHosted" - }, - "sidebar.selfHosted.category.Configuration": { - "message": "配置", - "description": "The label for category Configuration in sidebar selfHosted" - }, - "sidebar.selfHosted.doc.Storage": { - "message": "存储", - "description": "The label for the doc item Storage in sidebar selfHosted, linking to the doc self-hosted/storage" - }, - "sidebar.developerGuide.category.SDKs": { - "message": "移动 SDK", - "description": "The label for category SDKs in sidebar developerGuide" - }, - "sidebar.developerGuide.category.fastlane plugins": { - "message": "Fastlane 插件", - "description": "The label for category fastlane plugins in sidebar developerGuide" - }, - "sidebar.developerGuide.category.APIs": { - "message": "API 接口", - "description": "The label for category APIs in sidebar developerGuide" - }, - "sidebar.selfHosted.doc.Getting Started": { - "message": "准备开始", - "description": "The label for the doc item Getting Started in sidebar selfHosted, linking to the doc self-hosted/index" - }, - "sidebar.userGuide.doc.Getting Started": { - "message": "准备开始", - "description": "The label for the doc item Getting Started in sidebar userGuide, linking to the doc user-guide/index" - }, - "sidebar.developerGuide.doc.Getting Started": { - "message": "准备开始", - "description": "The label for the doc item Getting Started in sidebar developerGuide, linking to the doc developer-guide/index" - }, - "sidebar.selfHosted.category.Docker": { - "message": "Docker", - "description": "The label for category Docker in sidebar selfHosted" - }, - "sidebar.userGuide.category.Apps": { - "message": "应用", - "description": "The label for category Apps in sidebar userGuide" - }, - "sidebar.userGuide.category.Debug Files": { - "message": "调试文件", - "description": "The label for category Debug Files in sidebar userGuide" - }, - "sidebar.userGuide.category.Toolkits": { - "message": "工具箱", - "description": "The label for category Toolkits in sidebar userGuide" - }, - "sidebar.userGuide.category.Webhooks": { - "message": "网络钩子", - "description": "The label for category Webhooks in sidebar userGuide" - }, - "sidebar.userGuide.category.Administrator": { - "message": "管理面板", - "description": "The label for category Administrator in sidebar userGuide" - }, - "sidebar.userGuide.category.Monitoring": { - "message": "监控", - "description": "The label for category Monitoring in sidebar userGuide" - }, - "sidebar.userGuide.doc.Dashboard": { - "message": "控制面板", - "description": "The label for the doc item Dashboard in sidebar userGuide, linking to the doc user-guide/dashboard" - }, - "sidebar.selfHosted.category.Cloud Provider Guides": { - "message": "云服务商", - "description": "The label for category Cloud Provider Guides in sidebar selfHosted" - }, - "sidebar.contributingGuide.category.Local development": { - "message": "本地开发", - "description": "The label for category Local development in sidebar contributingGuide" - }, - "sidebar.contributingGuide.doc.Getting Started": { - "message": "准备开始", - "description": "The label for the doc item Getting Started in sidebar contributingGuide, linking to the doc contributing-guide/index" - }, - "sidebar.selfHosted.doc.Reverse Proxies": { - "message": "反向代理", - "description": "The label for the doc item Reverse Proxies in sidebar selfHosted, linking to the doc self-hosted/reverse-proxies" - } -} diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/contributing-guide/index.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/contributing-guide/index.md deleted file mode 100644 index 94bf00e37..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/contributing-guide/index.md +++ /dev/null @@ -1,15 +0,0 @@ -# 贡献者指南 - -本指南将会帮助你更好的上手 Zealot!感谢您对本项目感兴趣。在提交你的贡献之前请仔细认真阅读如下指南。 - -## 准备工作 - -贡献代码前请在 Issues 确认是否存在,没有发现的话欢迎动动小手创建新 Issue,创建之后你会收到一个自动回复请勿担心我会在看到后尽快整理并回应。 -如果解决方案非常的复杂,建议极可能完整描述背景、解决目的和方案以方便核心开发者审核。 - -## 本地开发环境 - -我们将会从如下指南帮助准备和部署本地 Zealot 开发环境: - -- [VSCode devcontainer 开发部署](/docs/contributing-guide/local-development/devcontainer) (**简单便捷,强烈推荐**) -- [源代码部署](/docs/contributing-guide/local-development/source-code) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/contributing-guide/local-development/devcontainer.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/contributing-guide/local-development/devcontainer.md deleted file mode 100644 index 7595244a2..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/contributing-guide/local-development/devcontainer.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -sidebar_label: "Dev Container (Docker)" ---- - -# Visual Studio Code Dev Container 开发部署指南 - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -``` - -[Dev Container](https://code.visualstudio.com/docs/devcontainers/containers) (Developing inside a Container) 是 Visual Studio Code 使用 Docker 作为开发环境能够实现在本地无需配置开发环境在容器开发有近乎本地体验的解决方案。 - -![VSCode devcontainer](https://code.visualstudio.com/assets/docs/devcontainers/containers/architecture-containers.png) - -## 系统依赖 - -在开发之前,你需要安装最新版本的 Git,Virsual Studio Code,Docker 和 docker-compose。 - -### 安装 Git - -因操作系统不同,建议按照官方[安装教程](https://github.com/git-guides/install-git)操作。 - -### 安装 Docker & docker-compose - -- Windows: 10 Pro/Enterprise 需要 [Docker Desktop](https://www.docker.com/products/docker-desktop) / Windows 10 Home (2004+) 需要 Docker Desktop 2.3+ 和 [WSL 2 back-end](https://aka.ms/vscode-remote/containers/docker-wsl2)。(不支持 Docker Toolbox 和 Windows container images) -- macOS: [Docker Desktop](https://www.docker.com/products/docker-desktop) 2.0+。 -- Linux: [Docker CE/EE](https://docs.docker.com/install/#supported-platforms) 18.06+ 和 [Docker Compose](https://docs.docker.com/compose/install) 1.21+。(不支持 Ubuntu snap 包) - -### 安装 Visual Studio Code - -Visual Studio Code 是一个跨平台运行的免费的代码编辑器,根据操作系统选择你的安装方式: - -```mdx-code-block - - -``` - -1. 下载 [Visual Studio Code](https://go.microsoft.com/fwlink/?LinkID=534106) macOS 版。 -1. 打开浏览器下载界面找到已下载的应用文件或压缩文件。 -1. 如果是压缩文件先进行解压缩操作,如果使用 Safari 下载通常会帮你自动解压缩。 -1. 拖拽 `Visual Studio Code.app` 到系统应用文件夹。 -1. 双击 VS Code 应用即可打开应用。 - -```mdx-code-block - - -``` - -1. 下载 [Visual Studio Code installer](https://go.microsoft.com/fwlink/?LinkID=534107) Windows 版。 -1. 下载完成后执行安装程序(VSCodeUserSetup-\{version\}.exe)等待安装成功。 -1. 默认情况下 VS Code 会安装到 `C:\Users\\{Username\}\AppData\Local\Programs\Microsoft VS Code` 路径。 - -```mdx-code-block - - -``` - -因操作系统不同,建议按照官方[安装教程](https://code.visualstudio.com/docs/setup/linux)操作。 - -```mdx-code-block - - -``` - -### 安装 Remote container 扩展 - -按照官方教程安装 [Remote Container extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)。 - -![VSCode extension](/img/vscode-install-remote-containers.png) - -## 获取 Zealot Codespace - -Zealot Codespace 同样存放在 Zealot 项目 [.devcontailer](https://github.com/tryzealot/zealot/tree/develop/.devcontainer) 目录,你需要先克隆项目源代码。 - -```bash -git clone https://github.com/tryzealot/zealot.git -``` - -Codespace 包含了一系列文件: - -文件名 | 说明 ----|--- -`devcontainer.json` | VSCode devcontainer 配置文件 -`Dockerfile.base` | 镜像核心,变更会自动推送到不同 registry 仓库 -`Dockerfile` | 间接镜像,主要是节省编译时间 -`docker-compose.yml` | 项目服务依赖 -`create-db-user.sql` | 用于初始化 Postgres 默认用户及权限 - -## 在容器内打开项目 - -打开 Visual Studio Code 应用后在 [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) 输入 `Dev Containers: Open Folder in Container...` 回车选择刚克隆下来的 Zealot 项目目录。 - -![VSCode Command Palette](/img/vscode-command-palette.png) - -首次执行会拉取 Zealot Codespace 镜像并开始构建,过程会持续一段时间期间可点击 **Starting Dev Container (show log)** 查看构建实时日志。 - -![VSCode Command Palette](/img/vscode-devcontainer-log.png) - -构建完成并启动完毕会加载项目文件和 zsh 终端,通过日志可以看到如下信息: - -``` -[7293 ms] Start: Run in container: cat /proc/344/environ -[9836 ms] Port forwarding connection from 53148 > 43379 > 43379 in the container. -[9836 ms] Start: Run in container: /home/vscode/.vscode-server/bin/5235c6bb189b60b01b1f49062f4ffa42384f8c91/node -e -[9981 ms] Port forwarding 53148 > 43379 > 43379 stderr: Connection established -[14988 ms] Port forwarding 53148 > 43379 > 43379 stderr: Remote close -[14999 ms] Port forwarding 53148 > 43379 > 43379 terminated with code 0 and signal null. -[29221 ms] Port forwarding 53148 > 43379 > 43379: Local close -``` - -在宿主机也能看到 Docker 启动了 docker-compose 在运行: - -![Docker-Compose containers](/img/vscode-devcontainer-docker-containers.png) - -## 启动项目 - -如果没有打开 VSCode 内置终端可以通过快捷键 `` Ctrl + ` `` 打开,新打开一个终端运行 `bin/dev` 可运行 Zealot 依赖的所有服务。 - -![VSCode Zealot in Container](/img/vscode-devcontainer-zealot.png) - -## 浏览器访问服务 - -在运行 `bin/dev` 一会后你会在右下角窗口看到 **Open in Browser** 窗口点击可打开 Zealot 网页服务。同样也可以通过终端区域顶部 **Ports** 选项查看可转发端口的服务,点击浏览器图标会把容器的端口转发并绑定到本地随机断开后上面访问。 - -![VSCode forwarded ports](/img/vscode-devcontainer-forwarded-ports.png) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/contributing-guide/local-development/source-code.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/contributing-guide/local-development/source-code.md deleted file mode 100644 index cc11bf73e..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/contributing-guide/local-development/source-code.md +++ /dev/null @@ -1,262 +0,0 @@ ---- -sidebar_label: "源代码" ---- - -# 源码部署 Zealot 指南 - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -``` - -如下整理了不同操作系统的本地部署开发教程。 - -## 准备部署环境 - -### macOS - -#### 安装 homebrew - -首先需要安装 Xcode Command tools: - -```bash -$ xcode-select --install -``` - -如果提示安装失败,需要从 https://developer.apple.com/downloads 下载安装。 - -之后安装 macOS 的包管理工具 Homebrew - -```bash -$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" -``` - -#### 安装依赖 - -之后开始安装环境依赖 - -```bash -$ brew install redis postgresql webp imagemagick node git -``` - -M1 用户需要设置依赖编译路径到 SHELL 的配置文件中: - -```bash -export CPATH=/opt/homebrew/include/ -export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/lib/ -``` - -#### 配置 Postgres 和 Redis - -运行 postgresql 和 redis 服务 - -```bash -$ brew services start postgresql -$ brew services start redis -``` - -Postgresql 还需要创建默认用户名: - -```bash -$ createuser --superuser zealot - -# 如果担心权限过高可以只开启创建数据库权限 -$ createuser --createdb zealot -``` - -#### yarn - -```bash -$ npm install -g yarn -``` - -运行起来后使用浏览器访问 `http://localhost:3000` - -#### 疑难杂症 - -##### M1 芯片 MacOS 问题 - -``` -aarch64-darwin/libwebp_ffi.bundle => aarch64-darwin/jpegdec.o -``` - -使用 `bundle install` 会遇到如上问题这个是因为 homebrew 安装 webp 依赖之后编译路径无法被找到,上面有解决办法。 - -### Debian (Ubuntu) - -#### 安装环境依赖 - -```bash -$ apt update -$ apt install -y libssl-dev tar tzdata git imagemagick libjpeg-dev libpng-dev libtiff-dev libwebp-dev -``` - -#### 安装依赖 - -```bash -$ apt install -y redis postgresql-client node -``` - -#### 配置 Postgres 和 Redis - -运行 postgresql 和 redis 服务 - -```bash -$ systemctl postgres start -$ systemctl redis start -``` - -Postgresql 还需要创建默认用户名: - -```bash -$ initdb -D /var/lib/postgresql/data -$ createuser --superuser zealot - -# If you are worried about the high privilege, you can only enable the create database privilege -$ createuser --createdb zealot -``` - -#### node - -```bash -$ npm install -g yarn -``` - -### Alpine Linux - -#### 安装环境依赖 - -```bash -$ apk --update --no-cache add build-base libxml2 libxslt git \ - libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev \ - tzdata -``` - -如果是在 `arm` 架构安装还需要额外安装 `gcompat` glib 兼容层,否则会报 "[Error loading shared library](https://nokogiri.org/tutorials/installing_nokogiri.html#linux-musl-error-loading-shared-library)" 异常错误。 - -#### 安装依赖 - -```bash -$ apk --update --no-cache redis postgresql node -``` - -#### 配置 Postgres 和 Redis - -运行 postgresql 和 redis 服务 - -```bash -$ rc-service postgres start -$ rc-service redis start -``` - -Postgresql 还需要创建默认用户名: - -```bash -$ initdb -D /var/lib/postgresql/data -$ createuser --superuser zealot - -# 如果担心数据库用户权限,可仅开启创建数据库权限 -$ createuser --createdb zealot -``` - -#### yarn - -```bash -$ npm install -g yarn -``` - -## 安装 Ruby - -可以通过 asdf、rvm 任意一种方式安装。 - -```mdx-code-block - - -``` - -一个支持主流开发语言版本切换的工具,请按照[官方安装教程](http://asdf-vm.com/guide/getting-started.html)好之后安装 ruby: - -```bash -# 开启 Ruby 3.2.0 YJIT 新特性需要安装 Rust 1.58+ -# 可选安装: -asdf plugin add rust -asdf install rust latest -asdf global rust latest -export RUBY_CONFIGURE_OPTS=--enable-yjit - -# 必须安装 -asdf plugin add ruby -asdf install ruby 3.2.0 -asdf global ruby 3.2.0 -``` - -```mdx-code-block - - -``` - -如下命令是先安装 rvm 到当前系统的用户后安装 Ruby 3.0 版本: - -```bash -$ curl -sSL https://get.rvm.io | bash -s stable -$ rvm install 3.2.0 --disable-binary -``` - -```mdx-code-block - - -``` - -## 克隆源代码 - -```bash -git clone https://github.com/tryzealot/zealot.git -``` - -## 初始化 - -以下步骤均需要在 zealot 根目录执行。 - -### bundler - -安装 Ruby gems 第三方类库 - -```bash -$ [sudo] gem install bundler -$ bundle install -``` - -### yarn - -安装前端第三方类库 - -```bash -$ yarn install -``` - -### 初始化数据库 - -确保连接数据库信息没有问题,后将会创建数据库表并创建表结构 - -```bash -$ rails db:create -$ rails db:migrate -``` - -配置数据库连接参数可通过[环境变量](/docs/self-hosted/configuration/environment-variables)或更改 `config/database.yml` 文件。 - -### 初始化预制数据 - -初始化管理员账号和应用样例 - -```bash -$ rails db:seed -``` - -### 运行 Zealot 服务 - -```bash -$ bin/dev -``` - -打开浏览器访问 `http://localhost:3000` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/api.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/api.md deleted file mode 100644 index fdc0d6eb5..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/api.md +++ /dev/null @@ -1,42 +0,0 @@ -# APIs - -Zealot 提供提供 REST APIs 接口服务可用于自定义的查看 App 信息或者上传、下载 App。 - -## 接口认证 {#authentication} - -接口请求目前仅支持 User Token 的 query 认证,在登录用户的详情页面最下面 `API - 密钥` 找到。 -> example : `https://YOUR_ZEALOT_URL/api?token=YOUR_TOKEN` - -## 接口版本 - -当前是 `v1` 版本,接口无需显性传递版本参数,另外 GraphGL 接口也在逐步开发中后续会考虑两个版本同时存在。 - -## 接口列表 - -目前可用的 API 接口基本满足打包和下载流程的范围: - -- [应用](#应用接口) -- [调试文件](#调试文件接口) - -### 应用接口 - -定义 | 地址 ----|--- -上传应用 | `/api/apps/upload` -应用列表 | `/api/apps` -应用详情 | `/api/apps/:id` -应用版本列表 | `/api/apps/versions` -应用最新版本 | `/api/apps/latest` -检查当前版本 | `/api/apps/version_exist` - -### 调试文件接口 - -定义 | 地址 ----|--- -上传调试文件 | `/api/debug_files/upload` -下载调试文件 | `/api/debug_files/download` -调试文件列表 | `/api/debug_files` -调试文件详情 | `/api/debug_files/:id` -检查调试文件是否存在 | `/api/debug_files/version_exist` -更新调试文件 | `/api/debug_files/:id` -删除调试文件 | `/api/debug_files/:id` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/api/apps.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/api/apps.md deleted file mode 100644 index 5e1a0957c..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/api/apps.md +++ /dev/null @@ -1,410 +0,0 @@ ---- -sidebar_label: "应用" ---- - -# 应用接口 - -## 上传应用 - -上传应用,仅支持 iOS, Android 和 macOS 类型。 - -``` -POST /api/apps/upload -``` - -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| file | `File` | true | 应用本地路径的内容 | -| channel_key | `String` | false | 应用具体渠道的 Key,没有传此参数会字段创建对于的应用、类型和渠道 | -| name | `String` | false | 应用名称,为空时取 App 的信息 | -| release_type | `String` | false | 应用类型,比如 debug, beta, adhoc, release, enterprise 等 | -| source | `String` | false | 上传渠道名称,默认是 api | -| changelog | `String` | false | 变更日志,接受纯文本或 JSON 格式化的数据 | -| branch | `String` |false|上传应用时的git branch名称| -| git_commit | `String` | false | 上传应用时的 git commit hash | -| ci_url | `String` | false | CI 项目构建地址 | -| custom_fields | `String` | false | 这是一个用 JSON 字符串定义的自定义字段,
可配置名称,值以及 fontawesome 图标用于在页面详情展示 | - -For `changelog` attribute which it accepts both `plain text` and `JSON` formatted contents: - -**plain text**: - -``` -message 1\nmessage 2 -``` - -**JSON**: - -``` -[ - { - "message": "message 1", - "author": "admin", - "email": "admin@zealot.com", - "date": "2021-11-11 11:11:11" - }, - { - "message": "message 1", - "author": "developer", - "email": "developer@zealot.com", - "date": "2021-11-11 11:11:11" - } -] -``` - -对于 `custom_fields` 的用法,它是一个使用 JSON 格式的以键值对为单位的数组,比如需要自定义国家 country=China 并配置图标为 fontawesome 的 [flag](https://fontawesome.com/v5.15/icons/flag?style=solid) - -```diff -curl -X POST \ - 'https://YOUR_ZEALOT_URL/api/apps/upload' \ - --form 'token="token"' \ - --form 'channel_key="channel_key"' \ -+ --form 'custom_fields="[{"name":"country","value":"China","icon":"fas fa-flag"}]"' \ - --form 'file=@/path/to/your/app' -``` - -#### 返回样例 - -```json -{ - "id": 50, - "version": 7, - "app_name": "Test Android", - "bundle_id": "com.test.app", - "release_version": "1.0", - "build_version": "1", - "source": "SOURCE", - "branch": "master", - "git_commit": "e9de48513dbb6abfbxxxxxxxxxxxxxxxxxxxxxxxx", - "ci_url": "", - "size": 1565486, - "icon_url": "/uploads/apps/a1/r1/icons/app_icon.png", - "release_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1", - "install_url": "https://YOUR_ZEALOT_URL/download/releases/1", - "qrcode_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1/qrcode?size=thumb", - "changelog": [ - { - "message": "Changelog message 1" - }, - { - "message": "Changelog message 2" - } - ], - "text_changelog": "- Changelog message 1\n- Changelog message 2", - "custom_fields": [], - "created_at": "2021-09-01T11:43:33.977+08:00", - "app": { - "id": 1, - "name": "App name" - }, - "scheme": { - "id": 8, - "name": "Test" - }, - "channel": { - "slug": "1XmpC", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - } -} -``` - -## 应用列表 - -获取创建的应用列表,支持分页 - -``` -GET /api/apps -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| page | `Integer` | false | 页数| -| per_page | `Integer` | false | 每页返回最大数目 | - -### 返回样例 - -```json -[ - { - "id": 1, - "name": "Zealot", - "schemes": [ - { - "id": 1, - "name": "测试版", - "channels": [ - { - "slug": "X1IXN", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "O1qHk", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - }, - { - "id": 2, - "name": "内测版", - "channels": [ - { - "slug": "l19Tl", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "8selv", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - } - ] - } -] -``` - -## 应用详情 - -查看应用的明细:应用类型、渠道等信息 - -``` -GET /api/apps/:id -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| id | `Integer` | true | 应用 ID | - -### 返回样例 - -```json -{ - "id": 1, - "name": "Zealot", - "schemes": [ - { - "id": 5, - "name": "测试版", - "channels": [ - { - "slug": "X1IXN", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "O1qHk", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - } - ] -} -``` - -## 应用版本列表 - -获取应用已上传的版本列表,按照上传时间倒序排列 - -``` -GET /api/apps/versions -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| page | `Integer` | false | 页数| -| per_page | `Integer` | false | 每页返回最大数目 | - -### 返回样例 - -```json -{ - "app_name": "Zealot iOS 测试版", - "bundle_id": "*", - "git_url": null, - "app": { - "id": 3, - "name": "Zealot" - }, - "scheme": { - "id": 5, - "name": "测试版" - }, - "releases": [ - { - "version": 2, - "app_name": "Zealot iOS 测试版", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10292024", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - }, - { - "version": 1, - "app_name": "Zealot iOS 测试版", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - }, - ] -} -``` - -## 应用最新版本 - -获取指定应用的最新版本信息 - -``` -GET /api/apps/latest -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| release_version | `String` | true | 应用的发布版本 | -| build_version | `String` | true | 应用的构建版本 | - -### 返回样例 - -```json -{ - "app_name": "Zealot iOS 测试版", - "bundle_id": "*", - "git_url": null, - "app": { - "id": 3, - "name": "Zealot" - }, - "scheme": { - "id": 5, - "name": "测试版" - }, - "releases": { - "version": 1, - "app_name": "Zealot iOS 测试版", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - } -} -``` - -## 检查当前版本是否存在 - -使用 bundle_id、release_version、build_verion 或 bundle_id、git_commit 组合检查当前版本是否存在 - -``` -GET /api/apps/version_exist -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| bundle_id | `String` | true | 应用的包名,iOS 取 bundle_id,Android 取 package_name | -| release_version | `String` | false | 应用的发布版本 | -| build_version | `String` | false | 应用的构建版本 | -| git_commit | `String` | false | 上传应用时的 git commit hash | - -### 返回样例 - -- 版本存在返回 200 状态码并返回版本的信息 -- 版本不存在返回 404 状态码和错误信息 - -版本存在的返回信息 - -```json -{ - "version": 1, - "app_name": "好好住 iOS 测试版", - "bundle_id": "com.haohaozhu.hhz", - "release_version": "4.1.1", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" -} -``` - -版本不存在的返回信息: - -```json -{ - "error": "应用版本不存在" -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/api/debug_files.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/api/debug_files.md deleted file mode 100644 index 317c395b2..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/api/debug_files.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -sidebar_label: "调试文件" ---- - -# 调试文件接口 - -## 上传调试文件 - -上传 iOS 和 Android 的调试文件: - -- iOS: 使用 Zip 压缩后的 dSYM 文件 -- Android: 使用 Zip 压缩后包含 mapping.txt、R.txt 和 AndroidManifest.xml 的文件 - -``` -POST /api/debug_files/upload -``` - -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| file | `File` | true | Zip 压缩文件后的调试文件 | -| release_version | `String` | true | 发布版本号,iOS 类型可忽略该参数 | -| build_version | `String` | true | 内部版本号,iOS 类型可忽略该参数 | - -### 返回样例 - -```json -{ - "id": 1, - "app_name": "演示应用", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## 下载调试文件 - -下载 iOS 和 Android 的调试文件 - -``` -GET /api/debug_files/download -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| release_version | `String` | true | 发布版本号,iOS 类型可忽略该参数 | -| build_version | `String` | false | 内部版本号,iOS 类型可忽略该参数 | -| order | `String` | false | 获取最新的方式,可选值有:
`version` = 最新版本 和 `upload_date` = 最新上传时间
**仅限接受 release_version 值为 `latest` 有效** | - -### 返回样例 - -- 版本存在返回 200 状态码并返回 302 重定向到下载地址 -- 版本不存在返回 404 状态码和错误信息 - -## 调试文件列表 - -获取创建的应用列表,支持分页 - -``` -GET /api/debug_files -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| page | `Integer` | false | 页数 | -| per_page | `Integer` | false | 每页返回最大数目 | - -### 返回样例 - -```json -[ - { - "id": 1, - "app_name": "演示应用", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] - } -] -``` - -## 调试文件详情 - -查看调试文件的明细,包含上传调试文件的具体解析。 - -``` -GET /api/debug_files/:id -``` - -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| id | `Integer` | true | 调试文件 ID | - -### 返回样例 - -```json -{ - "id": 1, - "app_name": "演示应用", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## 更新调试文件 - -更新调试文件 - -``` -PUT /api/debug_files/:id -``` - -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| id | `Integer` | true | 调试文件 ID | -| file | `File` | true | Zip 压缩文件后的调试文件 | -| release_version | `String` | true | 发布版本号,iOS 类型可忽略该参数 | -| build_version | `String` | true | 内部版本号,iOS 类型可忽略该参数 | - -### 返回样例 - -```json -{ - "id": 1, - "app_name": "演示应用", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## 删除调试文件 - -删除指定调试文件 - -``` -DELETE /api/debug_files/:id -``` -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| id | `Integer` | true | 调试文件 ID | - -### 返回样例 - -```json -{ - "mesage": "OK" -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane.md deleted file mode 100644 index 75c380513..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane.md +++ /dev/null @@ -1,25 +0,0 @@ -# Fastlane 插件 - -:::info - -第一次听说 fastlane,那你得多 out 了?!快看看[开发者准备的 Fastlane 系列教程](https://icyleaf.com/series/fastlane)补补课吧。 - -::: - -## 添加 Zealot 插件 - -[fastlane-plugin-zealot](https://github.com/tryzealot/fastlane-plugin-zealot) 是专门为 Zealot 提供 -的上传 iOS、Andorid 应用和调试文件的 fastlane 插件。 - -通过下面方法添加到 fastlane 体系中: - -```bash -$ fastlane add_plugin zealot -``` - -插件包含多个 action: - -- `zealot`: 上传 iOS 或 Android 应用 -- `zealot_debug_file`: 上传调试文件(iOS 是 dSYM,Android 是 Proguard) -- `zealot_version_check`: 检查当前版本是否已存在 -- `zealot_sync_devices`: 同步 Apple 开发者账号的设备列表信息到 Zealot 用于关联 AdHoc 证书应用的设备名称 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot.md deleted file mode 100644 index 6ed857f37..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -sidebar_label: "zealot" ---- - -# Fastlane action: zealot - -上传 iOS 或 Android 应用,传入如下参数插件会在成功打包后自动获取 app 的路径并进行上传: - -```ruby -zealot( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', -) -``` - -## 参数 - -``` -+-----------------+---------------------------------+------------------------+----------+ -| zealot Options | -+-----------------+---------------------------------+------------------------+----------+ -| Key | Description | Env Var | Default | -+-----------------+---------------------------------+------------------------+----------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | The key of app's channel | ZEALOT_CHANNEL_KEY | | -| file | The path of app file. Optional | ZEALOT_FILE | | -| | if you use the `gym`, `ipa`, | | | -| | `xcodebuild` or `gradle` | | | -| | action. | | | -| name | The name of app to display on | ZEALOT_NAME | | -| | zealot | | | -| changelog | The changelog of app | ZEALOT_CHANGELOG | | -| slug | The slug of app | ZEALOT_SLUG | | -| release_type | The release type of app | ZEALOT_RELEASE_TYPE | | -| branch | The name of git branch | ZEALOT_BRANCH | | -| git_commit | The hash of git commit | ZEALOT_GIT_COMMIT | | -| custom_fields | The key-value hash of custom | ZEALOT_CUSTOM_FIELDS | | -| | fields | | | -| password | The password of app to download | ZEALOT_PASSWORD | | -| source | The name of upload source | ZEALOT_SOURCE | fastlane | -| ci_url | The name of upload source | ZEALOT_CI_CURL | | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| hide_user_token | replase user token to *** to | ZEALOT_HIDE_USER_TOKEN | true | -| | keep secret | | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error uploading app | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure | | | -+-----------------+---------------------------------+------------------------+----------+ -* = default value is dependent on the user's system - -+-----------------------+---------------------------------------------+ -| zealot Output Variables | -+-----------------------+---------------------------------------------+ -| Key | Description | -+-----------------------+---------------------------------------------+ -| ZEALOT_APP_ID | The id of app | -| ZEALOT_RELEASE_ID | The id of app's release | -| ZEALOT_RELEASE_URL | The release URL of the newly uploaded build | -| ZEALOT_INSTALL_URL | The install URL of the newly uploaded build | -| ZEALOT_QRCODE_URL | The QRCode URL of the newly uploaded build | -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+---------------------------------------------+ -``` - -## 环境变量 - -``` -+-----------------------+---------------------------------------------+ -| zealot Output Variables | -+-----------------------+---------------------------------------------+ -| Key | Description | -+-----------------------+---------------------------------------------+ -| ZEALOT_APP_ID | The id of app | -| ZEALOT_RELEASE_ID | The id of app's release | -| ZEALOT_RELEASE_URL | The release URL of the newly uploaded build | -| ZEALOT_INSTALL_URL | The install URL of the newly uploaded build | -| ZEALOT_QRCODE_URL | The QRCode URL of the newly uploaded build | -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+---------------------------------------------+ -Access the output values using `lane_context[SharedValues::VARIABLE_NAME]` -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot_debug_file.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot_debug_file.md deleted file mode 100644 index 083f64aad..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot_debug_file.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -sidebar_label: "zealot_debug_file" ---- - -# Fastlane action: zealot_debug_file - -上传 iOS 的 dSYM 或 Android 的 Proguard 调试文件到 Zealot - -```ruby - # 上传 iOS dSYM 调试文件 - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - platform: :ios, - xcode_scheme: 'AppName', - verify_ssl: false - ) - - # 上传 Android Proguard 调试文件 - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - platform: :android, - android_build_type: 'release', - android_flavor: 'store', - release_version: '1.1.0', - build_version: '1', - overwrite: true - ) - - # 上传指定 zip file 调试文件 - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - zip_file: 'path/to/your/zip_file', - release_version: '1.1.0', - build_version: '1', - verify_ssl: false - ) -``` - -## 参数 - -``` -+--------------------+-----------------------------------+---------------------------+---------+ -| zealot_debug_file Options | -+--------------------+-----------------------------------+---------------------------+---------+ -| Key | Description | Env Var | Default | -+--------------------+-----------------------------------+---------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | Any channel key of app | ZEALOT_CHANNEL_KEY | | -| zip_file | Using given the path of zip file | DF_DSYM_ZIP_FILE | | -| | to direct upload | | | -| platform | The name of platfrom, avaiable | ZEALOT_PLATFORM | | -| | value are | | | -| | ios,mac,macos,osx,android | | | -| path | The path of debug file | ZEALOT_PATH | | -| | (iOS/macOS is archive path for | | | -| | Xcode, Android is path for app | | | -| | project) | | | -| xcode_scheme | The scheme name of app | ZEALOT_XCODE_SCHEME | | -| android_build_type | The build type of app | ZEALOT_ANDROID_BUILD_TYPE | release | -| android_flavor | The product flavor of app | ZEALOT_ANDROID_FLAVOR | | -| extra_files | A set file names | ZEALOT_EXTRA_FILES | [] | -| output_path | The output path of compressed | DF_DSYM_OUTPUT_PATH | . | -| | dSYM file | | | -| release_version | The release version of app | ZEALOT_RELEASE_VERSION | | -| | (Android needs) | | | -| build_version | The build version of app | ZEALOT_BUILD_VERSION | | -| | (Android needs) | | | -| overwrite | Overwrite output compressed file | DF_DSYM_OVERWRITE | false | -| | if it existed | | | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error uploading app | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure? (true/false) | | | -+--------------------+-----------------------------------+---------------------------+---------+ -* = default value is dependent on the user's system - -+-----------------------+-----------------------------------------+ -| zealot_debug_file Output Variables | -+-----------------------+-----------------------------------------+ -| Key | Description | -+-----------------------+-----------------------------------------+ -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+-----------------------------------------+ -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot_sync_devices.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot_sync_devices.md deleted file mode 100644 index f3e1cee59..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot_sync_devices.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -sidebar_label: "zealot_sync_devices" ---- - -# Fastlane action: zealot_sync_devices - -:::info - -:bell: Zealot 4.5.0 版本已经支持使用 [Apple API Key](https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) - -苹果开发者管理并可自动同步测试设备展示,[查看详情](/docs/user-guide/administrator/apple-team) -::: - -同步并关联苹果开发者中心(Apple Developer Portal)的测试设备名称到 Zealot 服务。 - -```ruby -# 使用 Apple API Key 授权 -zealot_sync_devices( - endpoint: 'https://zealot.example.com', - token: '...', - api_key_path: '/path/to/your/api_key_json_file', - team_id: '...' -) - -# 使用密码授权(需要二步认证) -zealot_sync_devices( - endpoint: 'https://zealot.example.com', - token: '...', - username: 'user@example.com', - team_id: '...' -) -``` - -## 参数 - -``` -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| zealot_sync_devices Options | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| Key | Description | Env Var(s) | Default | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| username | The apple id (username) of Apple Developer Portal | ZEALOT_USERNAME | * | -| api_key_path | Path to your App Store Connect API Key JSON file | ZEALOT_API_PATH | | -| | (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key | | | -| | -json-file) | | | -| api_key | Your App Store Connect API Key information | ZEALOT_API_KEY | * | -| | (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key | | | -| | -hash-option) | | | -| team_id | The ID of your Developer Portal team if you're in multiple teams | ZEALOT_APPLE_TEAM_ID | * | -| team_name | The name of your Developer Portal team if you're in multiple teams | ZEALOT_APPLE_TEAM_NAME | * | -| platform | The platform to use (optional) | ZEALOT_APPLE_PLATFORM | ios | -| verify_ssl | Should verify SSL of zealot service | ZEALOT_VERIFY_SSL | true | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| fail_on_error | Should an error http request cause a failure? (true/false) | ZEALOT_FAIL_ON_ERROR | false | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot_version_check.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot_version_check.md deleted file mode 100644 index 59418736e..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/fastlane/zealot_version_check.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -sidebar_label: "zealot_version_check" ---- - -# Fastlane action: zealot_version_check - -检查当前版本是否已经上传,减少重复打包和上传。 - -```ruby -zealot_version_check( - endpoint: 'https://zealot.example.com', - token: '...', - bundle_id: 'com.example.app.name', - release_version: '1.0.0', - build_version: '1' -) -``` - -## 参数 - -``` -+-----------------+---------------------------------+------------------------+---------+ -| zealot_version_check Options | -+-----------------+---------------------------------+------------------------+---------+ -| Key | Description | Env Var | Default | -+-----------------+---------------------------------+------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | The key of app's channel | ZEALOT_CHANNEL_KEY | | -| bundle_id | The bundle id(package name) of | ZEALOT_BUNDLE_ID | | -| | app | | | -| release_version | The release version of app | ZEALOT_RELEASE_VERSION | | -| build_version | The build version of app | ZEALOT_BUILD_VERSION | | -| git_commit | The latest git commit of app | ZEALOT_GIT_COMMIT | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error http request | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure? (true/false) | | | -+-----------------+---------------------------------+------------------------+---------+ -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/index.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/index.md deleted file mode 100644 index 30cdd23db..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/index.md +++ /dev/null @@ -1,14 +0,0 @@ -# 开发者资源 - -Zealot 为开发者提供了丰富的组件,包括 iOS 和 Android 使用的 SDK,用于持久化构建自动化脚本 fastlane 插件等。 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/sdk/android.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/sdk/android.md deleted file mode 100644 index 2fd29bee5..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/sdk/android.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -sidebar_label: "Android" ---- - -# Zealot Android SDK - -Android 组件提供为 Zealot 检查新版本和安装的服务,支持 Kotlin 和 Java。 - -## 安装 - -### JitPack - -使用 [jitpack](https://jitpack.io) 安装,先需要添加 maven 仓库: - -```groovy -allprojects { - repositories { - ... - maven { url 'https://jitpack.io' } - } -} -``` - -之后在主 app 项目的 `build.gradle` 添加 zealot: - -```groovy -dependencies { - implementation 'com.github.tryzealot:zealot-android:master-SNAPSHOT' -} -``` - -## 用户权限 - -使用 Zealot SDK 需要开启网络权限 - -```xml - -``` - -## 初始化 - -在你的 `Application` 文件的 `onCreate` 方法添加启动代码: - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -``` - -```kotlin -// 单个渠道 -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("...") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch() - -// 多个渠道,比如测试版本,内测版本 -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("xxxxxxx", "beta") - .setCHannelKey("yyyyyyy", "test") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch() -``` - -```mdx-code-block - - -``` - -```kotlin -// 单个渠道 -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("...") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch(); - -// 多个渠道,比如测试版本,内测版本 -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("xxxxxxx", "beta") - .setCHannelKey("yyyyyyy", "test") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch(); -``` - -```mdx-code-block - - -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/sdk/ios.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/sdk/ios.md deleted file mode 100644 index 706e25a58..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/developer-guide/sdk/ios.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -sidebar_label: "iOS" ---- - -# Zealot iOS SDK -iOS 组件提供为 Zealot 检查新版本和安装的服务,支持 Swift 和 Objective-C。 - -## 安装 - -### Cocoapods - -使用 [Cocoapods](https://cocoapods.org) 安装 Zealot 需要把它加到 `Podfile`: - -```ruby -pod 'Zealot', :git => 'https://github.com/tryzealot/zealot-ios.git', :branch => 'master' -``` - -保存后开始安装: - -```bash -pod install -``` - -## 初始化 - -1. 在 AppDelegate 文件引入 Zealot 框架头: - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -``` - -```swift -import Zealot -``` - -```mdx-code-block - - -``` - -```objectivec -#import -``` - -```mdx-code-block - - -``` - -2. 接着在上面文件的 `application:didFinishLaunchingWithOptions:` 方法追加启动代码: - -```mdx-code-block - - -``` - -```swift -// 单个渠道 -let zealot = Zealot(endpoint: "https://zealot.example.com", channelKey: "...") -zealot.checkVersion() - -// 多个渠道,比如测试版本,内测版本 -let zealot = Zealot(endpoint: "https://zealot.example.com", - channelKeys: [ - "beta": "xxxxxxx", - "test": "yyyyyyy"], - default_enviroment: "beta") - -// 最后触发监测方法 -zealot.checkVersion() -``` - -```mdx-code-block - - -``` - -```objectivec -// 单个渠道 -Zealot *zealot = [[Zealot alloc] initWithEndpoint:@"https://zealot.example.com" - channelKey:@"..."]; - -// 多个渠道,比如测试版本,内测版本 -Zealot *zealot = [[Zealot alloc] initWithEndpoint:@"https://zealot.example.com" - channelKeys:@{ - @"beta": @"xxxxxxx", - @"gray": @"yyyyyyy" - } - default_enviroment:@"beta"]; - -// 最后触发监测方法 -[zealot checkVersion]; -``` - -```mdx-code-block - - -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/configuration/environment-variables.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/configuration/environment-variables.md deleted file mode 100644 index 8eb437e34..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/configuration/environment-variables.md +++ /dev/null @@ -1,134 +0,0 @@ -# 环境变量 - -## .env 文件 - -Zealot 可通过如下环境变量或使用项目根目录的 `.env` 文件配置系统参数,通过上述方式更改后需要重启服务才可生效。 - -## HTTPS 证书 - -**因苹果的硬性要求线上部署和下载服务强制 HTTPS**,因此再部署的时候下载应用会强制走 HTTPS 协议。 - -如果部署是单台机器的独立服务,建议开启 Let's Encrypt 免费 SSL 证书,只需要设置 - -```bash -ZEALOT_CERT_EMAIL=zealot@example.com -``` - -> 和下面自签名证书文件名二选一,不能同时设置 - -如果部署的机器只能使用自签名证书,则需要配置,但需要注意的是 iOS 的下载需要在 iOS 设备授权自签名的证书后才允许下载安装。(不推荐) - -```bash -ZEALOT_CERT=zealot.example.com.pem -ZEALOT_CERT_KEY=zealot.example.com-key.pem -``` - -> 和 Let's Encrypt 注册电子邮箱名二选一,不能同时设置 - -## 配置域名 (URL) - -必须配置否则下载应用和一些静态资源会无法正确访问到 - -```bash -# 域名配置,无需配置 http:// 或 https:// -ZEALOT_DOMAIN=zealot.example.com -``` - -## 配置数据库和缓存 - -假如你有可以复用的 postgresql 和 redis 服务也可以自定义配置使用,而无需使用 docker-compose 默认配置的服务。 - -### Postgresql - -```bash -ZEALOT_POSTGRES_HOST=127.0.0.1 -ZEALOT_POSTGRES_PORT=5432 -ZEALOT_POSTGRES_USERNAME=postgres -ZEALOT_POSTGRES_PASSWORD=ze@l0t -ZEALOT_POSTGRES_DB_NAME=zealot -``` - -### Redis - -兼容大多数云服务部署采用的 URL 连接方式 - -```bash -REDIS_URL=redis://user:pass@127.0.0.1:6379/0 - -# 基于 SSL 的 Redis -``` - -## 配置网站默认语言 - -语言包 | 值 ----|--- -zh-CN | 简体中文 (默认) -en | 英文 - -```bash -DEFAULT_LOCALE=en -``` - -## 配置网站默认外观 - -外观 | 值 ----|--- -light | 浅色 (默认) -dark | 深色(黑暗模式) -auto | 随系统自动 - -```bash -ZEALOT_APPEARANCE=dark -``` - -## 配置管理员账户和密码 - -默认不配置如下也会生成下面的账户和密码作为管理员权限的账户,建议配置后重新修改密码。 - -```bash -ZEALOT_ADMIN_EMAIL=admin@zealot.com -ZEALOT_ADMIN_PASSWORD=ze@l0t -``` - -### 开启用户注册 - -关闭注册之后,管理员可以通过管理面板的用户管理手动添加用户。 - -```bash -# 开启注册 -ZEALOT_REGISTER_ENABLED=true - -# 关闭注册 -ZEALOT_REGISTER_ENABLED=false -``` - -### 开启游客模式 - -开启游客模式后允许应用的查看、下载和安装,建议公司内部对权限依赖不高的状况使用,具体权限对比可以[看这里查看详情](/docs/user-guide/administrator/permissions) - -```bash -# 开启游客模式 -ZEALOT_GUEST_MODE=true - -# 关闭游客模式 -ZEALOT_GUEST_MODE=false -``` - -## 邮件服务 - -目前仅支持 smtp 的方式配置邮件通知服务,邮件通知主要影响用户注册、发送激活邮件、更改密码服务,如果不开启也不影响使用,账户激活的链接也会在用户管理那边找到。 - -```bash -# 发送邮件配置 -SMTP_ADDRESS=smtp.gmail.com -SMTP_PORT=587 -SMTP_DOMAIN=gmail.com -SMTP_USERNAME=you@gmail.com -SMTP_PASSWORD=yourpassword -SMTP_AUTH_METHOD=plain -SMTP_ENABLE_STARTTLS_AUTO=true - -# 邮件默认收发人配置 -ACTION_MAILER_DEFAULT_FROM=you@gmail.com -ACTION_MAILER_DEFAULT_TO=you@gmail.com -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/configuration/schedule-jobs.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/configuration/schedule-jobs.md deleted file mode 100644 index 188a45ec8..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/configuration/schedule-jobs.md +++ /dev/null @@ -1,50 +0,0 @@ -# 定时任务 - -## 清理老版本 - -按照项目维护者长期的使用观察一个可靠的清理老版本的逻辑是时刻关注当前主版本的所有上传版本, -之前上传的历史版本只需要保留最后一个上传构建版本基本上就满足绝大数情况,举个例子: - -> 额外补充:当前逻辑相对省事但缺乏灵活度,其实有想过支持多种处理逻辑,具体参见 https://github.com/tryzealot/zealot/issues/376 - -``` -- 2.0 - - 3 - - 2 - - 1 -- 1.0.1 - - 10 - - 9 - - 8 - ... -- 1.0 - - 5 - - 4 - - 3 - ... -``` - -任务执行时会清理掉 1.0.1 版本包含 9 以下和 1.0 版本包含 4 以下所有版本,最终保留的版本文件是: - -``` -- 2.0 - - 3 - - 2 - - 1 -- 1.0.1 - - 10 -- 1.0 - - 5 -``` - -如果磁盘空间有限,可以通过设置环境变量 `ZEALOT_KEEP_UPLOADS=false` 来开启定时任务的清理。 - -:::info - -默认情况下 `ZEALOT_KEEP_UPLOADS` 是开启状态(`ture` ) 。 - -::: - -## 备份 - -当你通过管理员面板创建任何的备份计划都会加入到定时任务队列中。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/configuration/third-party-authentication.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/configuration/third-party-authentication.md deleted file mode 100644 index 561e05764..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/configuration/third-party-authentication.md +++ /dev/null @@ -1,108 +0,0 @@ -# 第三方登录 - -Zealot 支持使用已经支持的第三方服务授权登录,当前可以通过如下的环境变量或者在管理员面板的设置页面配置。 - -第三方服务 | 标识符 ----|--- -飞书 | `feishu` -Gitlab | `gitlab` -Google | `google_oauth2` -LDAP | `ldap` -OpenID Connect | `openid_connect` - -如果以上服务需要设置回调地址的话请统一设置为: - -``` -https://zealot.example.com/users/auth/:provider/callback -``` - -其中 `:provider` 是上面支持第三方服务的标识符,例如开启飞书那就把 `:provider` 替换成 `feishu`。 - -## 飞书 - -1. 去注册一个飞书账号并下载手机 App -1. 注册[飞书开发平台](https://open.feishu.cn/app/)并创建企业自建应用获得 app_id, app_secret -1. 填写 callback url 为 `https://zealot.example.com/users/auth/feishu/callback` (域名根据实际情况修改) -1. 添加用户字段信息授权:`email 地址` (可选) -1. 至少勾选一个应用方式并创建新版本后发布 - -```bash -FEISHU_ENABLED=true -FEISHU_APP_ID= -FEISHU_APP_SECRET= -``` - -## Gitlab - -1. 注册 Gitlab [官方](http://gitlab.com)账户或自部署 Gitlab 服务 -1. 在用户设置(Preferences) -> 应用(Applications) 创建一个新应用 -1. 回调地址(Redirect URI) 配置为 `https://zealot.example.com/users/auth/gitlab/callback` (域名根据实际情况修改) -1. 添加用户字段信息授权(scope):`read_user`,默认 zealot 仅用此授权,如果你的授权范围是 `api` 也没问题 - -```bash -GITLAB_ENABLED=true -GITLAB_SITE=https://gitlab.com/api/v4 -GITLAB_SCOPE=read_user -GITLAB_APP_ID= -GITLAB_SECRET= -``` - -## Google - -1. 注册 Google 账号 -1. 开通 [Google Cloud Platform](https://console.cloud.google.com/apis/dashboard) 服务 -1. 选择或创建 Project 并前往 Credentials -1. 创建 OAuth Client ID 选择 Web Application 后添加回调地址(Authorized redirect URI) 配置为 `https://zealot.example.com/users/auth/google_oauth2/callback` (域名根据实际情况修改) -1. 创建成功后获得 Client ID 和 Client Secret - -```bash -GOOGLE_OAUTH_ENABLED=true -GOOGLE_CLIENT_ID= -GOOGLE_SECRET= -``` - -## LDAP - -1. 自部署或使用现有的 LDAP 服务 -1. 自配置或查找如下参数的值 - -```bash -LDAP_ENABLED=true -LDAP_HOST=10.0.0.1 -LDAP_PORT=389 -LDAP_METHOD=plain -LDAP_BIND_DN="cn=Manager,dc=example,dc=com" -LDAP_PASSWORD=password -LDAP_BASE="ou=People,dc=example,dc=com" -LDAP_UID=uid -``` - -## OpenID Connect - -支持开启自动发现模式和手动设置两种方式 - -### 自动发现 - -开启自动发现模式会自动获取 `[OIDC_ISSUER_URL]/.well-known/openid-configuration` 配置。 - -```bash -OIDC_ENABLED=true -OIDC_CLIENT_ID= -OIDC_CLIENT_SECRET= -OIDC_ISSUER_URL=https://oidc.example.com -OIDC_DISCOVERY=true -``` - -### 手动配置 - -``` -OIDC_ENABLED=true -OIDC_CLIENT_ID= -OIDC_CLIENT_SECRET= -OIDC_ISSUER_URL=https://oidc.example.com -OIDC_AUTH_URI=/authorize -OIDC_TOKEN_URI=/token -OIDC_USERINFO_URI=/userinfo -``` - -以上 `OIDC_AUTH_URI`,`OIDC_TOKEN_URI`,`OIDC_USERINFO_URI` 未设置时会使用如上的默认路径。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/architecture.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/architecture.mdx deleted file mode 100644 index 90c3339ef..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/architecture.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_label: "服务架构" ---- - -# Zealot 服务架构 - -运行 Zealot 依赖如下服务才能保证正常运行 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - - - -- 使用 amd86/arm64/armv7 运行的主流 Linux 系统 -- Ruby on Rails 提供核心网页和 API 服务 -- Sidekiq 提供后台的异步任务管理服务 -- PostgreSQL 数据库服务 -- Redis 缓存服务 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/docker.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/docker.md deleted file mode 100644 index f91734c9c..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/docker.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -sidebar_label: "Docker" ---- - -# Docker 部署 Zealot 指南 - -> :bell: 强烈建议安装首选使用 [Docker](https://www.docker.io/) 容器方式安装部署 Zealot。 -> 鉴于 iOS 使用下载服务依赖开启 SSL/TLS 证书,建议使用经过授权的证书服务,比如 [Let's Encrypt](https://letsencrypt.org/), -> 如果使用自签名证书需要每个 iOS 设备在下载安装应用前[必须安装自签名证书](https://support.apple.com/zh-cn/HT204477)才行。 - -## 一键安装脚本 - -> 对于一键安装部署脚本感兴趣的可以查看 [Docker 手把手部署文档](/docs/self-hosted/deployment/docker/step-by-step)。 - -本着一键安装的原则,可是现实往往是残酷的,Zealot 配置都是依托于 ENV 环境变量,需要配置好之后再执行一键部署生成脚本。 -首先需要克隆[官方 Zealot 部署工具](https://github.com/tryzealot/zealot-docker.git),进入 `zealot-docker` -目录后需要打开 `example.env` 文件配置必要的参数后可直接执行 `./deploy.sh` 脚本: - -:::tip - -默认会生成管理员账号:`admin@zealot.com` 和密码 `ze@l0t` 和一些演示应用。 - -::: - -```bash -$ git clone https://github.com/tryzealot/zealot-docker.git -$ cd zealot-docker -$ ./deploy -``` - -一键部署生成脚本默认内置了下面三种模板配置 SSL 证书: - -## 配置 SSL 证书 - -### Let's Encrypt - -:::info - -**免费且自动续签 SSL 证书,新手使用的最佳选择** - -::: - -**第一步**:执行部署脚本: - -```bash -$ ./deploy -``` - -**第二步**:检查和配置 `.env` 文件,主要是 `ZEALOT_DOMAIN` 和 `ZEALOT_CERT_EMAIL` 是否填写正确, -其他部分可根据实际情况做对应的配置调整 - -**第三步**:运行 Zealot 服务: - -```bash -$ docker-compose up -d -``` - -### 反向代理托管 SSL 证书 - -配置说明迁移值[反向代理指南](/docs/self-hosted/reverse-proxies),里面包含了更多的服务配置。 - -### 自签名 SSL 证书 - -:::caution - -在条件满足其他情况下绝对不推荐此方案,iOS 设备对使用自签名证书的任何 Web 服务**必须在其设备上手动安装自签名证书后才能正常安装应用**。 - -::: - -如果域名是非注册域名则需要绑 host 才可以访问,通常是修改系统的 `/etc/hosts` 文件。 - -```bash -$ sudo vim /etc/hosts - -127.0.0.1 zealot.example.com -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/docker/step-by-step.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/docker/step-by-step.md deleted file mode 100644 index 53a2adae9..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/docker/step-by-step.md +++ /dev/null @@ -1,137 +0,0 @@ ---- -sidebar_label: "详细步骤" ---- - -# Docker 手把手部署文档 - -这是一篇手把手来指导使用 Docker 部署文档,同时也是解释[Docker 部署 Zealot 指南](/docs/self-hosted/deployment/docker)的分解 - -## 版本列表 - -- 稳定版本 - 5.2.3/latest - `ghcr.io/tryzealot/zealot:latest` -- 测试版本 - develop - `ghcr.io/tryzealot/zealot:nightly` - 基于 develop 分支每次提交构建的版本 - -## 镜像仓库 - -- Docker Container Registry: https://hub.docker.com/r/tryzealot/zealot/ -- Github Container Registry: https://github.com/tryzealot/zealot/pkgs/container/zealot (**推荐**) - -## 步骤解析 - -### 安装 Docker - -按照[官方教程](https://get.docker.com/)安装 - -### 安装 Docker-Compose - -按照[官方教程](https://docs.docker.com/compose/install/)安装 - -### 生成 .env 配置文件 - -从预先 `config.env` 配置文件复制一份部署使用的配置文件 - -### 配置域名 - -二次校验如果没有配置会再提醒 - -### 配置证书 - -部署脚本提供三种方式,就算使用最后一种生成的也是 https 的协议头 - -- 使用 Let's Encrypt 证书 -- 使用自签名证书 -- 纯 Zealot 服务(需反代网关或负载均衡生成 SSL 证书) - -### 生成 docker-compose.yml - -配置文件会生成至少四个服务(service),使用上面前两个证书方式会额外增加一个服务: - -- `zealot-zealot`: 核心 Web 和 API 服务 -- `zealot-worker`: 核心异步任务服务 -- `zealot-postgres`: 数据库服务 -- `zealot-redis`: 缓存服务 -- `zealot-web`: 提供(服务和证书)反代的网关服务,非必需 - -### 创建持久化存储的 docker volumes - -存储持久化数据 - -- `zealot-data`: 静态资源,JS、CSS、图片以及上传的应用、应用图标和调试文件 -- `zealot-postgres`: 数据库数据 -- `zealot-redis`: 缓存数据 - -### 拉取(更新)镜像 - -第一次使用会自动从容器镜像服务网站下载镜像,后续是更新操作,通常只会更新 zealot 镜像。其他几个依赖服务镜像都是固定版本号 - -```bash -docker-compose pull -``` - -### 设置数据库数据 - -第一次使用会初始化数据库、加载范例应用数据和设置管理员账号,后续这是因 zealot 更新需要的操作 - -```bash -docker-compose run --rm zealot run_upgrade -``` - -### 运行 docker-compose - -为了安全期间和用户的自定义操作需要手动执行来运行服务: - -```bash -docker-compose up -d -``` - -## 高级配置 - -### 自定义 volume 路径 - -自定义路径有两种方法: (假设自定义的路径是 `/data/zealot`) - -#### 1. 创建 volume 自定义路径 - -```sh -docker volume create --name zealot-data \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/zealot-data - -docker volume create --name zealot-redis \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/redis - -docker volume create --name zealot-postgres \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/postgres -``` - -#### 2. 修改 docker-compose 的 volumes 部分 - -打开 `docker-compose.yml` 拉到最底部找到 `volumes:` 开头的部分,修改为如下内容: - -```yaml -volumes: - zealot-data: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/data - zealot-redis: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/redis - - zealot-postgres: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/postgres -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/fly.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/fly.md deleted file mode 100644 index 8413f6b5a..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/fly.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -sidebar_label: "Fly" ---- - -# 部署 Zealot 到 Fly 指南 - -Zealot 支持 [fly.io](https://fly.io) 官方的应用配置格式(fly.toml)。 - -## 部署步骤 - -- 预先安装 [flyctl](https://fly.io/docs/flyctl/) 命令行工具。 -- 复制下面[配置文件](#配置文件) 保存为 `fly.toml` 文件放在项目根目录,根据创建的 fly app 项目修改 app 的值。 -- 运行 `flyctl deploy` 开始构建和部署工作。 -- 运行 `fly scale vm shared-cpu-1x --memory 512` 来达到 Zealot 可允许的内存环境,默认免费的 256M 内存实际只有 205M,Zealot 运行起来闲置状态会 190M 到会提示 OOM 内存溢出。 - -### 配置文件 - -```toml -app = "[app-name:changeme]" -kill_signal = "SIGINT" -kill_timeout = 120 -processes = [] - -[build] - image = "ghcr.io/tryzealot/zealot:nightly" - -[experimental] - allowed_public_ports = [] - auto_rollback = true - -[[services]] - http_checks = [] - internal_port = 80 - processes = ["app"] - protocol = "tcp" - script_checks = [] - [services.concurrency] - hard_limit = 25 - soft_limit = 20 - type = "connections" - - [[services.ports]] - force_https = true - handlers = ["http"] - port = 80 - - [[services.ports]] - handlers = ["tls", "http"] - port = 443 - - [[services.tcp_checks]] - grace_period = "1s" - interval = "15s" - restart_limit = 0 - timeout = "2s" - -[[statics]] - guest_path = "/app/public" - url_prefix = "/" -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/kubernetes.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/kubernetes.md deleted file mode 100644 index 71a558d7a..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/kubernetes.md +++ /dev/null @@ -1,198 +0,0 @@ ---- -sidebar_label: "Kubernetes" ---- - -# Kubernetes 部署 Zealot 指南 - -Zealot 原生支持使用 Kubernetes 部署,不过一直还没有梳理 `.yaml` 配置文件用于安装。 - -## 部署清单 - -- 生成 `Secret`/`Configmap` 存储环境变量。 -- 生成 `PersistentVolumeClaim` 用于 `public/uploads`, `public/bakcup` 的持久化存储。 -- 生成 `Deployment` 来管理 `zealot` Pod。 -- 生成 `Ingress` 配置 Zealot 路由访问。 - -## 详细步骤 - -### 10-zealot-namespace.yml - -创建 Zealot 命名空间。 - -```yaml title="10-zealot-namespace.yml" -api Version: v1 -kind: Namespace -metadata: -name: zealot -``` - -### 20-zealot-secrets.yml - -配置 Zealot 涉及隐私数据的[环境变量](/docs/self-hosted/configuration/environment-variables),值是需要经过 base64 加密。 - -```yaml title="20-zealot-secrets.yml" -apiVersion: v1 -kind: Secret -metadata: - namespace: zealot - name: zealot-secrets -data: - ZEALOT_ADMIN_EMAIL: V1ZkU2RHRlhOVUZsYlZab1lrYzVNRXh0VG5aaVVUMDk= - ZEALOT_ADMIN_PASSWORD: emVAbDB0 - ZEALOT_POSTGRES_HOST: cG9zdGdyZXM= - ZEALOT_POSTGRES_PORT: NTQzMg== - ZEALOT_POSTGRES_USERNAME: emVhbG90 - ZEALOT_POSTGRES_PASSWORD: emVAbDB0 - ZEALOT_POSTGRES_DB_NAME: emVhbG90 - REDIS_URL: cmVkaXM6Ly9yZWRpczo2Mzc5LzE= - - # echo -n 'secret-key' | sha256sum | awk '{ printf $1 }' | base64 - SECRET_TOKEN: ODVkYmUxNWQ3NWVmOTMwOGM3YWUwZjMzYzdhMzI0Y2M2ZjRiZjUxOWEyZWQyZjMwMjdiZDMzYzE0MGE0ZjlhYQ== -``` - -### 21-zealot-configmap.yml - -配置 Zealot 正常数据的[环境变量](/docs/self-hosted/configuration/environment-variables)。 - -```yaml title="21-zealot-configmap.yml" -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: zealot - name: zealot-config -data: - ZEALOT_DOMAIN: zealot.example.com - DEFAULT_LOCALE: en - ZEALOT_REGISTER_ENABLED: "true" -``` - -### 30-zealot-storage.yml - -为上传文件(应用包和调试文件)以及备份文件创建持久化存储卷。你可能需要根据实际情况修改存储大小。 - -```yaml title="30-zealot-storage.yml" -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: zealot-uploads - namespace: zealot - labels: - app: zealot -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: zealot-backup - namespace: zealot - labels: - app: zealot -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi -``` - -### 40-zealot-deployment.yml - -创建 Zealot 部署,根据实际情况修改 `replicas` 扩容值和 `image` 镜像 tag。 - -```yaml title="40-zealot-deployment.yml" -apiVersion: apps/v1 -kind: Deployment -metadata: - name: zealot - namespace: zealot -spec: - restartPolicy: Always - replicas: 1 - selector: - matchLabels: - app: zealot - template: - metadata: - labels: - app: zealot - spec: - containers: - - name: zealot - image: ghcr.io/tryzealot/zealot:nightly - # imagePullPolicy: Always - ports: - - containerPort: 80 - protocol: TCP - name: http - envFrom: - - configMapRef: - name: zealot-env - - secretRef: - name: zealot-secrets - volumeMounts: - - mountPath: /app/public/uploads - name: uploads - - mountPath: /app/public/backup - name: backup - volumes: - - name: uploads - persistentVolumeClaim: - claimName: zealot-uploads - - name: backup - persistentVolumeClaim: - claimName: zealot-backup -``` - -### 50-zealot-service.yml - -创建 zealot 服务。 - -```yaml title="50-zealot-service.yml" -apiVersion: v1 -kind: Service -metadata: - name: zealot - namespace: zealot - labels: - app: zealot -spec: - selector: - app: zealot - ports: - - port: 80 - targetPort: http - name: http - protocol: TCP -``` - -### 60-zealot-ingress.yml - -为 Zealot 服务设置 ingress。 - -```yaml title="50-zealot-ingress.yml" -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: zealot - namespace: zealot - annotations: - #cert-manager.io/cluster-issuer: letsencrypt-prod - #kubernetes.io/ingress.class: nginx -spec: - rules: - - host: zealot.example.com - http: - paths: - - web: - service: - name: zealot - port: - number: 80 - path: / - pathType: Prefix -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/nomad.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/nomad.md deleted file mode 100644 index 509547fad..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/nomad.md +++ /dev/null @@ -1,238 +0,0 @@ ---- -sidebar_label: "Nomad" ---- - -# Nomad 部署 Zealot 指南 - -Zealot 原生支持使用 [Nomad](https://www.nomadproject.io/) 部署。这得益于 Nomad 有很不错的插件机制,官方默认支持 Docker 插件。 -在配置上接近于 docker compose 的配置,只不过它的配置语言是 [HCL](https://developer.hashicorp.com/nomad/docs/job-specification/hcl2) 而不是 YAML。 - -## 基本部署 - -### 使用 Nomad 部署 - -先按照官方教程依次安装好 [nomad](https://developer.hashicorp.com/nomad/docs/install),这个二进制文件是包含了客户端和服务端。 -不了解的建议跟着[官方教程](https://developer.hashicorp.com/nomad/tutorials/get-started)演练一遍。 - -下面文件将会创建 postgres、redis 和 zealot 三个服务,对于已有的外部数据库和缓存服务,可以删除掉对应的 `port`, `service` 和 `task` 后编辑 `zealot` task 里面的模板变量。 - -```hcl title="zealot.nomad" -job "zealot" { - type = "service" - datacenters = "dc1" // 根据实际情况修改 - - update { - max_parallel = 1 - min_healthy_time = "30s" - auto_revert = true - } - - group "zealot" { - network { - port "zealot" { - to = 80 - } - - port "postgres" { - to = 5678 - } - - port "redis" { - to = 6379 - } - } - - service { - name = "zealot" - port = "zealot" - provider = "nomad" - - // 注册服务到 traefik - // tags = [ - // "traefik.enable=true", - // "traefik.http.routers.zealot.entrypoints=web, websecure", - // "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)", - // ] - } - - service { - name = "postgres" - port = "postgres" - provider = "nomad" - - // 注册服务到 traefik - // tags = [ - // "traefik.enable=true", - // "traefik.tcp.routers.postgres.rule=HostSNI(`*`)", - // "traefik.tcp.routers.postgres.entrypoints=postgres", - // ] - } - - service { - name = "redis" - port = "redis" - provider = "nomad" - - // 注册服务到 traefik - // tags = [ - // "traefik.enable=true", - // "traefik.tcp.routers.redis.rule=HostSNI(`*`)", - // "traefik.tcp.routers.redis.entrypoints=redis", - // ] - } - - task "zealot" { - driver = "docker" - - config { - image = "ghcr.io/tryzealot/zealot:latest" - ports = ["zealot"] - - // 根据实际情况修改,或采用 CSI 协议的外部存储 - volumes = [ - "/tmp/zealot/uploads:/app/public/uploads", - "/tmp/zealot/backups:/app/public/backups", - ] - - // 添加服务到 homepage dashboard 面板 - // labels = { - // "homepage.group" = "Dev" - // "homepage.name" = "Zealot" - // "homepage.icon" = "mdi-progress-download" - // "homepage.href" = "https://zealot.example.com" - // "homepage.description" = "Beta App Distribution" - // } - } - - // Zealot example config - // https://github.com/tryzealot/zealot-docker/blob/master/config.env - template { - destination = "local/config.env" - change_mode = "restart" - env = true - data = <<-EOF - ZEALOT_APPEARANCE = dark - ZEALOT_DOMAIN = zealot.example.com - - ZEALOT_GUEST_MODE = false - ZEALOT_REGISTER_ENABLED = true - EOF - } - - template { - destination = "secrets/secret.env" - change_mode = "restart" - env = true - data = <<-EOF - # admin account - ZEALOT_ADMIN_EMAIL = admin@zealot.com - ZEALOT_ADMIN_PASSWORD = ze@l0t - - # datbase - ZEALOT_POSTGRES_HOST = {{ env "NOMAD_IP_postgres" }} - ZEALOT_POSTGRES_PORT = {{ env "NOMAD_PORT_postgres" }} - ZEALOT_POSTGRES_USERNAME = "zealot" - ZEALOT_POSTGRES_PASSWORD = "zealot" - ZEALOT_POSTGRES_DB_NAME = "zealot" - - # cache - REDIS_URL = redis://{{ env "NOMAD_ARRR_redis" }}/0 - - # secret token - SECRET_TOKEN = $${ sha256(uuidv5("url", "zealot.ews.im")) } - EOF - } - - resources { - cpu = 500 - memory = 500 - memory_max = 1000 - } - } - - task "postgres" { - driver = "docker" - - lifecycle { - hook = "prestart" - sidecar = true - } - - config { - image = "postgres:15-alpine" - ports = ["postgres"] - volumes = [ - "secrets/init-role.sql:/init-role.sql", - "secrets/init-db.sql:/init-db.sql" - ] - } - - env { - POSTGRES_INITDB_ARGS = "--data-checksums" - POSTGRES_USER = "zealot" - POSTGRES_PASSWORD = "zealot" - POSTGRES_DB = "zealot" - } - - resources{ - cpu = 512 - memory = 200 - memory_max = 512 - } - } - - task "redis" { - driver = "docker" - - lifecycle { - hook = "prestart" - sidecar = true - } - - config { - image = "redis:7-alpine" - ports = ["redis"] - } - - resources { - cpu = 200 - memory = 200 - } - } - } -} -``` - -确认无误后执行 `nomad job run zealot.nomad` - -### 使用 Terraform 部署 - -> Terraform 和 Nomad 是同家公司的产品。 - -先按照官方教程依次安装好 [terraform](https://www.terraform.io/)、[nomad 插件](https://registry.terraform.io/providers/hashicorp/nomad/)后,复用上面的 `zealot.nomad` 文件再额外加一个 `main.tf` 文件即可。 - -```hcl -resource "nomad_job" "jobs" { - jobspec = file("${path.module}/zealot.nomad") -} -``` - -执行 `terraform plan` 确认无误后在通过 `terraform apply` 应用。 - -## 外部文件存储 - -Nomad 支持多集群管理,很多情况下服务部署的存储不可能直接挂载到对应的文件系统中,更多的是放在一个共享文件存储协议上面,比如 SMB、NFS、S3 等等。 - -### CSI 协议 - -Nomad [支持 CSI 协议](https://developer.hashicorp.com/nomad/tutorials/stateful-workloads/stateful-workloads-csi-volumes),理论上[实现 CSI 接口的服务](https://kubernetes-csi.github.io/docs/drivers.html)都可以满足。 - -> 截止 Nomad 1.5 版本为止,Nomad 可以使用 CSI 卷,但它不能自身控制创建、销毁或管理。卷必须在外部创建,然后向 Nomad 注册后才能使用。 - -插件 | 支持协议 | 兼容情况 | terraform nomad 资源 ----|---|---|--- -[kubernetes-csi-driver-smb](https://github.com/kubernetes-csi/csi-driver-smb) | smb | 未测试 | 未测试 -[kubernetes-csi-driver-nfs](https://github.com/kubernetes-csi/csi-driver-nfs) | nfs | 支持 | [nomad_csi_volume_registration](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume_registration) -[kubernetes-csi-driver-iscsi](https://github.com/kubernetes-csi/csi-driver-iscsi) | iscsi | 未测试 | 未测试 -[democraticcsi/democratic-csi](https://github.com/democratic-csi/democratic-csi) | smb/nfs/iscsi | 支持 | [nomad_csi_volume](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume) -[rocketduck/csi-plugin-nfs](https://gitlab.com/rocketduck/csi-plugin-nfs) | nfs | 支持 | [nomad_csi_volume](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/railway.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/railway.md deleted file mode 100644 index 042c03473..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/railway.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -sidebar_label: "Railway" ---- - -# 部署 Zealot 到 Railway 指南 - -Zealot 支持使用 Docker 部署服务到 [Railway](https://railway.app/)。 - -## 部署步骤 - -- Fork [Zealot](https://github.com/tryzealot/zealot/fork) 项目到你自己的 Github 账户。 -- 使用 "deploy from Github repo" [新建项目](https://railway.app/new)。 -- 新增你需要的[环境变量](/docs/self-hosted/configuration/environment-variables)到 Variables 页面。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/render.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/render.md deleted file mode 100644 index 2d26c465d..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/render.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_label: "Render" ---- - -# 部署 Zealot 到 Render 指南 - -Zealot 提供 [render.com](https://render.com/) 官方 blueprint 模板 `render.yaml` 用于一键部署本服务。 - -## 模板 - -* 使用 [Zealot Docker 镜像](https://ghcr.io/tryzealot/zealot)。 -* 使用 [Render Disks](https://render.com/docs/disks) 作为上传应用和调试文件的持久化存储。 -* 使用 [PostgreSQL](https://render.com/docs/databases) 作为数据库以及 [Redis](https://render.com/docs/redis) 作为数据缓存。 - -## 一键部署 - -[![部署按钮](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/tryzealot/zealot) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/requirements.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/requirements.md deleted file mode 100644 index c7ce34d8b..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/requirements.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -sidebar_label: "依赖" ---- - -# Zealot 自部署依赖 - -如果想要顺利并发挥 Zealot 最佳状态运行,本页面提供了安装所需的各自软硬环境的依赖安装信息。 - -## 操作系统 - -Zealot 可以安装在绝大多数 Linux 操作系统,但目前并没有测试和统计具体有哪些。 - -## 硬件依赖 - -### 系统架构 - -支持使用 amd86/arm64/armv7 运行的主流 Linux 系统,比如 Debian,Ubuntu、CentOS、Arch Linux、Armbian 等。 - -### CPU - -CPU 数量取决于 Zealot 使用的资源和任务量,工作量受(包括但不仅限于)以下因素影响:有多少应用和调试文件被上传和解析;有多少应用被下载;有多少网络钩子被触发;苹果开发者同步测试设备的频率以及备份计划作业的数量和频率。 - -下面是最小硬件条件推荐的 CPU 硬件规格,请不要低于这个标准否则服务运行会收到一定的影响造成服务无法正常工作: - -- **1 核**是**必须**的最小核心数。 - -### 内存 - -内存大小取决于 Zealot 使用的资源和任务量,工作量受(包括但不仅限于)以下因素影响:有多少应用和调试文件被上传和解析;有多少应用被下载;有多少网络钩子被触发;苹果开发者同步测试设备的频率以及备份计划作业的数量和频率。 - -下面是最小硬件条件推荐的内存大小规格,请不要低于这个标准否则服务运行会收到一定的影响造成服务无法正常工作: - -- **512MB**是**必须**的最少的内存大小。 - -### 存储 - -存储容量的大小取决于有多少应用和调试文件版本上传,当然也包含生成的备份文件。 - -## 软件依赖 - -### Ruby 版本 - -- Ruby 3.0+ - -必须使用标准的 MRI 实现的 Ruby 版本。Zealot 内部依赖的 Gems 需要原生扩展。 - -### Node.js 版本 - -Zealot 使用 [esbuild](https://esbuild.github.io/) 和 [sass](https://sass-lang.com/) 编译前端资源。 - -推荐使用 Node 14.x 以上版本。 - -可以在终端应用通过运行 `node -v` 命令查看 node 的版本。如果运行的版本低于 `v8.0` 你需要更新到推荐的版本。你可在[官方网站](https://nodejs.org/en/download/)查看更多安装或升级教程。 - -## 数据库 - -数据库仅支持 PostgreSQL 且目前没有计划支持更多其他数据库。 - -### PostgreSQL 依赖 - -PostgreSQL 预留_至少_ 5-10 GB 空间,更多的空间意味着可以存储更多的数据。 - -我们强烈推荐使用且保持 PostgreSQL 永远是最新的稳定版本作为开发和测试使用。 - -### Redis - -Zealot 后台异步任务和定时任务依赖于 Redis 做数据的存储和统计使用,存储空间依赖很小,50MB 足矣。 - -Redis 最低支持版本 6.2+,推荐 7.x 版本 - -## Sidekiq - -Sidekiq 是 Zealot 后台异步任务和定时任务使用的服务,它支持多线程操作且运行时依托于 Rails (也就是 Zealot 使用的框架)。 -它可能会随着时间的推移而增长内存的占用,如果 Zealot 运行的时间很长造成的服务不稳定请适当调整内存的大小,建议是 1GB+。 - -## 已支持 Web 浏览器 - -:::tip - -Zealot 运行部分页面依赖于 Javascript,请不要设置浏览器禁止它。 - -::: - -Zealot 支持如下 Web 浏览器: - -- [x] [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/) -- [x] [Google Chrome](https://www.google.com/chrome/) -- [x] [Chromium](https://www.chromium.org/getting-involved/dev-channel) -- [x] [Apple Safari](https://www.apple.com/safari/) -- [x] [Microsoft Edge](https://www.microsoft.com/en-us/edge) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/source-code.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/source-code.md deleted file mode 100644 index 6d594d252..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/deployment/source-code.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar_label: "源代码" ---- - -# 源码部署 Zealot 指南 (遗弃) - -新指南已迁移到[贡献者指南](/docs/contributing-guide)。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/index.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/index.md deleted file mode 100644 index 060f9bc95..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/index.md +++ /dev/null @@ -1,14 +0,0 @@ -# 自建服务指南 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -本指南将会帮助你安装和部署 Zealot 到产品环境。 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/reverse-proxies.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/reverse-proxies.mdx deleted file mode 100644 index 923d0af6b..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/reverse-proxies.mdx +++ /dev/null @@ -1,274 +0,0 @@ - -# 反向代理 - -方便 SSL 证书的统一管理和分发、服务的扩容及接入现成的网关服务,文档提供几种给网关配置反向代理服务的配置。 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -## 准备工作 - -配置反向代理需要准备好如下数据: - -名称 | 范例值 | 备注 ----|---|--- -域名 | zealot.example.com | -反向代理 IP 地址 | 172.16.56.1 | -Zealot IP 地址 | 172.16.56.100 | 反向代理服务可访问
同一台服务可改为 127.0.0.1 -Zealot 外部映射端口号 | 8901 | 反向代理服务可访问 -Zealot 内部端口号 | 80 | 无需修改 -Let's Encrypt 邮箱 | your-email@example.com - -## Traefik - -[Traefik](https://doc.traefik.io/traefik/) 是一款开源的反向代理与负载均衡工具,它自身提供多种 Providers 可以实现接入反向代理并配置 SSL 的方式。 - -### 配置解释 - -无论使用那种 Provider 核心的配置项是相同的,构成反向代理服务配置主要有三部分组成:发现端口号、路由规则(包含访问端口号、域名绑定和SSL) - -### Traefik 服务 - -```mdx-code-block - - -``` - -```yaml -entryPoints: - web: - address: ":80" - - websecure: - address: ":443" - -certificatesResolvers: - letsencrypt: - acme: - email: your-email@example.com - storage: acme.json - httpChallenge: - entryPoint: web -``` - -```mdx-code-block - - -``` - -```toml -[entryPoints] - [entryPoints.web] - address = ":80" - - [entryPoints.websecure] - address = ":443" - -[certificatesResolvers.letsencrypt.acme] - email = "your-email@example.com" - storage = "acme.json" - [certificatesResolvers.letsencrypt.acme.httpChallenge] - # used during the challenge - entryPoint = "web" -``` - -```mdx-code-block - - -``` - -```bash ---entrypoints.web.address=:80 ---entrypoints.websecure.address=:443 - ---certificatesresolvers.letsencrypt.acme.email=your-email@example.com ---certificatesresolvers.letsencrypt.acme.storage=acme.json ---certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web -``` - -```mdx-code-block - - -``` - -### Docker - -首先需要开启 [Docker provider](https://doc.traefik.io/traefik/providers/docker/#configuration-examples) 后在修改 zealot 的 Docker Compose 配置: - -```yaml title="docker-compose.yml" -version: '3' -services: - zealot: - <<: *defaults - labels: - - "traefik.enable=true" - - "traefik.http.services.zealot.loadbalancer.server.port=80" - - "traefik.http.routers.zealot.service=zealot" - - "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)" - - "traefik.http.routers.zealot.tls=true" - - "traefik.http.routers.zealot.tls.certresolver=letsencrypt" - - "traefik.http.routers.zealot.tls.domains[0].main=icyleaf.dev" - - "traefik.http.routers.zealot.tls.domains[0].sans=zealot.example.com" - # 由 Treafik 接管无需在对外暴露端口号 - # ports: - # - "8901:80" - network: - # 根据 traefik 服务的 network 按需调整 - - traefik-services - -networks: - # 根据 traefik 服务的 network 按需调整 - traefik-services: - external: true -``` - -Docker 部署的局限于 Traefik 和 Zealot 服务通常在同一个机器的同一个 OS 系统中,跨机器就没法实现通讯,对于跨机器就需要参考下面两种配置方案: - -### Consul - -首先需要开启 [Consul provider](https://doc.traefik.io/traefik/providers/consul/) 或 [Consul Catalog provider](https://doc.traefik.io/traefik/providers/consul-catalog/),我们只需要利用它的 Key-Value 存储: - -```shell -consul kv put traefik/http/services/zealot/loadbalancer/server/port 5 -consul kv put traefik/http/routers/zealot/service zealot -consul kv put traefik/http/routers/zealot/rule 'Host(`zealot.example.com`)' -consul kv put traefik/http/routers/zealot/tls/certresolver letsencrypt -consul kv put traefik/http/routers/zealot/tls/domains/0/main icyleaf.dev -consul kv put traefik/http/routers/zealot/tls/domains/0/sans zealot.example.com -``` - -### Nomad - -首先需要开启 [Nomad provider](https://doc.traefik.io/traefik/providers/nomad/) 且 Nomad 版本要大于等于 1.3 才可以哟: - -```hcl title="zealot.nomad" -job "zealot" { - datacenters = ["dc1"] - type = "service" - - group "zealot" { - count = 1 - - network { - port "http"{ - static = 80 - } - } - - service { - name = "zealot-http" - provider = "nomad" - port = "http" - } - - task "server" { - driver = "docker" - config { - image = "ghcr.io/tryzealot/zealot:nightly" - ports = ["http"] - args = [ - - "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)", - - "traefik.http.routers.zealot.tls=true", - - "traefik.http.routers.zealot.tls.certresolver=letsencrypt", - - "traefik.http.routers.zealot.tls.domains[0].main=icyleaf.dev", - - "traefik.http.routers.zealot.tls.domains[0].sans=zealot.example.com" - ] - } - } - } -} -``` - -## Caddy 2 配置 - -```nginx title="Caddyfile" -:443 - -log - -# 使用 Let's Encrypt 服务 -tls your-email@example.com - -reverse_proxy 172.16.56.100:8901 -``` - -配置只需配置 `tls` 和 `proxy` 后面 IP 地址和端口部分即可。 - -## Nginx - -> 如下是通用配置,如果不可用欢迎[提问题](https://github.com/tryzealot/docs/issues/new)。 - -```nginx title="conf.d/zealot.conf" -upstream zealot { - zone upstreams 64K; - server 172.16.56.100:8901; - keepalive 32; -} - -map $http_upgrade $connection_upgrade { - default upgrade; - '' close; -} - -server { - listen 80; - listen [::]:80; - server_name zealot.example.com; - location /.well-known/acme-challenge/ { allow all; } - location / { return 301 https://$host$request_uri; } -} - -server { - listen 443 ssl http2; # 可选:http2 可能需要安装额外扩展,不需要可移除 - listen [::]:443 ssl http2; # 可选:http2 可能需要安装额外扩展,不需要可移除 - server_name zealot.example.com; - - ssl_certificate /etc/certs/zealot-cert.pem; - ssl_certificate_key /etc/certs/zealot.pem; - - # Optional - # ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA; - # ssl_session_timeout 5m; - # ssl_session_cache shared:SSL:1m; - # ssl_prefer_server_ciphers on; - - location / { - proxy_pass http://zealot; - proxy_redirect off; - - proxy_pass_header Authorization; - proxy_set_header Host $host; - # proxy_set_header X-Forwarded-Ssl on; # 可选 - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - - client_max_body_size 0; - proxy_read_timeout 36000s; - } -} -``` - -Nginx 还需要在 `http` 中配置最大上传文件上传大小,普通应用建议是在 200MB 左右,如果是游戏可根据实际文件大小再多出 50% 打出富余。 - -```nginx title="nginx.conf" -http { - [...] - - client_max_body_size 200M; -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/storage.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/storage.md deleted file mode 100644 index cde9201ab..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/self-hosted/storage.md +++ /dev/null @@ -1,22 +0,0 @@ -# 数据存储 - -这里罗列了 Zealot 服务所需的所有数据存储,在还没有提供更好的备份管理工具之前,方便有能力的用户能够手动备份和恢复数据使用。 - -## Postgres - -用于存储和管理一切和 Zealot 有关数据,这个就不用多说了。 - -## Redis - -目前只有 sidekiq 异步任务服务在使用它做一些任务状态、统计数据的存储。 - -## 文件存储 - -Zealot 服务除了依赖 postgresql、redis 之外还有一部分的磁盘存储是上传的应用、调试文件且仅提供存储在文件系统之中,目录位于 `public/uploads`。 - -- apps 上传应用的目录 -- debugs_files 上传调试文件的目录 - -## 备份存储 - -Zealot 服务目前支持通过管理员面板管理和生成备份数据,备份数据可配置范围包括数据库和上传应用,目录位于 `public/backup`。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/apple-team.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/apple-team.mdx deleted file mode 100644 index 42ded5648..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/apple-team.mdx +++ /dev/null @@ -1,30 +0,0 @@ -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -# 苹果开发者 - -iOS Ad-Hoc 签发的应用分发最大的困难是需要给大量不懂这些概念的人传递什么是 UDID、学习如何获取、获取后再提供给开发者,再通过重新签发证书、打包、上传才能安装。 - -Zealot 可以自动获取 Ad-Hoc 应用的 UDID,面对一串串的 UDID 没人能够看懂这都是谁的设备,明明这些设备在注册的时候都已经备注或自动获取了设备名,但它有不能够自动同步过来。 - -为了解决以上两个重大难题,Zealot 分别尝试了几种方案来解决这个困难,早期使用 fastlane 插件 [zealot_sync_device](/docs/developer-guide/fastlane/zealot_sync_devices) 调用时会同步测试设备的名称和机型,直到苹果开发者推出 [AppStoreConnect API](https://developer.apple.com/documentation/appstoreconnectapi) 后完全可以托管到 Zealot 来自动化处理,通过常规流程大大简化注册流程的同时,也能过让测试应用能够显示可识别且友好的测试设备名称。 - - - -虽然提供的设备 UDID 功能确认哪些应用可以安装,假如设备没有注册到任何一个应用这个时候提供一个测试设备注册的功能岂不是大大提升团队的效率?这也就是苹果开发者的作用。 - - - -最初功能介绍:https://github.com/tryzealot/zealot/issues/723 后续在做更全面的不全 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/backup.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/backup.mdx deleted file mode 100644 index ff3cbe7a9..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/backup.mdx +++ /dev/null @@ -1,34 +0,0 @@ -# 备份计划 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## 备份计划列表 - - - -## 备份文件 - - - -## 创建备份计划 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/background-jobs.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/background-jobs.mdx deleted file mode 100644 index 19eb38d08..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/background-jobs.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 后台任务 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/database-analytics.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/database-analytics.mdx deleted file mode 100644 index 4caf2dd3b..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/database-analytics.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 数据库分析 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/logging.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/logging.mdx deleted file mode 100644 index 938ffd38d..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/logging.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 系统日志 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/system-info.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/system-info.mdx deleted file mode 100644 index cb8571390..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/monitoring/system-info.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 系统信息 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/permissions.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/permissions.md deleted file mode 100644 index c7a2342fa..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/permissions.md +++ /dev/null @@ -1,39 +0,0 @@ -# 用户权限 - -Zealot 提供四种用户权限: - -- 游客 -- 用户 -- 开发者 -- 管理员 - -## 权限明细 - -功能 | 游客[开/关] | 用户 | 开发者 | 管理员 ----|---|---|---|--- -`控制面板`
浏览所有的数据 | ✓/✕ | ✓ | ✓ | ✓ -`应用`
浏览应用列表 | ✓/✕ | ✓ | ✓ | ✓ -`应用`
浏览应用类型和渠道详情 | ✓/✕ | ✓ | ✓ | ✓ -`应用`
浏览应用版本详情 | ✓/✓
支持密码访问 | ✓ | ✓ | ✓ -`应用`
浏览应用内的网络钩子 | ✓/✕ | ✓ | ✓ | ✓ -`应用`
上传/安装/下载应用 | ✓ | ✓ | ✓ | ✓ -`应用`
创建/编辑/删除应用 | | | ✓ | ✓ -`应用`
创建/编辑/删除应用的类型或渠道 | | | ✓ | ✓ -`应用`
删除指定的应用版本和上传的应用文件 | | | ✓ | ✓ -`应用`
测试应用的网络钩子 | | | ✓ | ✓ -`应用`
启用或禁用网络钩子 | | | ✓ | ✓ -`应用`
删除应用 | | | ✓ | ✓ -`调试文件`
浏览调试文件列表 | ✓/✕ | ✓ | ✓ | ✓ -`调试文件`
浏览上传调试文件的解析详情 | ✓ | ✓ | ✓ | ✓ -`调试文件`
下载调试文件 | ✓ | ✓ | ✓ | ✓ -`调试文件`
上传/删除调试文件 | | | ✓ | ✓ -`应用解包`
浏览应用解包列表 | ✓/✕ | ✓ | ✓ | ✓ -`应用解包`
浏览应用解包的详情数据 | ✓/✕ | ✓ | ✓ | ✓ -`应用解包`
删除应用解包 | | | ✓ | ✓ -`管理面板`
浏览和管理用户 | | | | ✓ -`管理面板`
浏览和管理全部的网络钩子 | | | | ✓ -`管理面板`
浏览和管理全部的苹果开发者 | | | | ✓ -`管理面板`
浏览和管理系统设置 | | | | ✓ -`管理面板`
浏览系统环境的数据 | | | | ✓ -`管理面板`
浏览和管理后台任务 | | | | ✓ -`管理面板`
浏览页面访问统计 | | | | ✓ diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/settings.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/settings.mdx deleted file mode 100644 index edbbf05f2..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/administrator/settings.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 系统设置 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/create.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/create.mdx deleted file mode 100644 index b8008d8ac..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/create.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 创建应用 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/detail.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/detail.mdx deleted file mode 100644 index 3a2d32768..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/detail.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 已上传应用 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/index.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/index.mdx deleted file mode 100644 index 2cc79d423..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/index.mdx +++ /dev/null @@ -1,54 +0,0 @@ -# 管理应用 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## 应用列表 - - - -## 编辑应用 - - - -## 创新新类型 - - - -## 创建新渠道 - - - -## 编辑渠道 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/upload.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/upload.mdx deleted file mode 100644 index 4854c8bbb..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/apps/upload.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 上传应用包 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/best_practices.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/best_practices.md deleted file mode 100644 index 6cbb945ab..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/best_practices.md +++ /dev/null @@ -1,63 +0,0 @@ -# 最佳实践 - -## iOS 和 Android 应用 - -### 集成 Zealot SDK - -集成 Zealot SDK 可以让非客户端研发自动触发新版本检查、查看变更日志和安装功能。 - -### 安装 fastlane - -通过官方文档安装 fastlane. - -### 配置 Fastfile - -```ruby -# 构建 iOS 的 ipa 文件并上传 zealot 服务器 -lane :upload_app do - # 打包,比如 iOS 的 gym 或 Android 的 gradle - gym - - # 上传应用到 Zealot - zealot( - endpoint: '...', - token: '...', - channel_key: '...' - ) - - # 上传 iOS 的 dSYM - zealot_debug_file( - scheme: 'AppName' - ) -end - -# 构建 android 的 apk 文件并生成 progguard 包后上传 zealot 服务器 -lane :upload_debug_file do - # 打包,比如 iOS 的 gym 或 Android 的 gradle - gradle - - # 自动化搜索 Android Proguard(混淆)并打包 Zip 文件 - debug_file - - # 上传应用到 Zealot - zealot( - endpoint: '...', - token: '...', - channel_key: '...' - ) - - # 上传 Android 的 Proguard - zealot_debug_file( - build_type: 'release', - flavor: 'googleplay' - ) -end -``` - -## CI 打包构建服务 - -自行选择使用 Jenkins、Gitlab CI 等任何可构建 iOS 或 Android 的构建服务完成项目构建的配置。这部分不同的 CI 服务配置都有所不同,暂时无法展开,大家可根据自己熟悉情况或借助运维部门的协助搭建。 - -## Zealot 服务 - -除了管理每次上传的应用和调试文件,在每次接收到上传的应用会触发已配置的网络钩子用来给第三方服务发送通知有新版本收到,同时对于集成 Zealot SDK 的手机客户端每次第一次打开 App 都会收到新版本的安装提醒。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/changelog.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/changelog.md deleted file mode 100644 index abfbff0d4..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/changelog.md +++ /dev/null @@ -1,530 +0,0 @@ -# 变更日志 - -## 5.0.0 (2023-09-06) - -支持泛应用托管,支持解析会自动解析比如 Windows,不支持解析会跳过。详细[代码变更记录][5.0.0] - -#### 新增 - -- `Web/API` 支持泛应用托管(支持解析会自动解析,不支持解析会跳过),默认新增 Windows 和 Linux 平台 [#1121](https://github.com/tryzealot/zealot/pull/1121) -- `Web/API` 新增 Windows 应用托管(上传和元信息解析展示) [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` 全新调试文件页面并新增多 dSYM 调试文件解析和托管 [#1127](https://github.com/tryzealot/zealot/pull/1127) [#1124](https://github.com/tryzealot/zealot/pull/1124) [#961](https://github.com/tryzealot/zealot/issues/961) -- `Web` 支持 Android 应用解包 v1, v2, v3 签名信息 [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` 强化 Android 和 iOS 应用解包的 X509 证书信息 [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` 新增 “重新解析” 功能更新老结构的调试文件元信息 -- `Web` 上传应用版本的变更日志支持 markdown 格式 -- `Web` 设置页可配置全局 “每页返回最小” 和 “最大条目数” -- `Web` 应用版本详情页面针对 iOS 应用展示签名证书过期时间信息和签名证书过期无法安装(可以下载)的逻辑限制 -- `Web` 网络钩子及设置页添加或更新增加 JSON 格式校验 -- `Web` 注册测试设备到苹果开发者支持自定义设备名称和创建后编辑更新设备名称 -- `Web` 苹果开发者的私钥证书支持下载 - -#### 修复 - -- `Web` 修复解包应用无法删除问题 -- `Web` 部分页面的样式优化 -- `Web` 纠正英语语言包错误(en language i18n) -- `Web` 修复应用类型创建为空时错误的报错页面 -- `Web` 修复找不到文件报 404 错误页面 -- `API` 修复应用获取最新版本 build_version 版本比较逻辑优化 -- `Web` 优化上传应用自定义字段格式错误处理 -- `Web` 优化 url 注入、应用历史版本为空、没有注册设备等正确跳转 -- `Web` 优化展示备份任务错误信息 -- `Web` 上传应用对应用类型、调试文件增加类型检测 -- `Web` 修复创建苹果开发者没有预选创建 Distribution Certificate 的错误信息 - -## 4.7.1 (2023-03-10) - -支持最新 Android aapt2 构建工具生成的 aab 应用解析,详细[代码变更记录][4.7.1] - -#### 修复 - -- `Web` 升级最新 appt2 模型避免 aab 解析异常 -- `Web` 解析异常的重复处理 - -#### 新增 - -- `Web` Android 应用解包详情页增加应用类型 -- `Web` 应用渠道编辑后调整原先的页面 - -## 4.7.0 (2023-03-03) - -#### 变更 - -- `Docker` **重大变更** Redis 最低版本依赖从原来的 5.x 升级至 6.2+,建议使用 7.x 主版本,升级时请手动修改。详细[代码变更记录][4.7.0] - -#### 新增 - -- `Web` 应用类型新增 “新上传版本提示窗” 控制开关 [#1058](https://github.com/tryzealot/zealot/pull/1058) 感谢 [softwind0214](https://github.com/softwind0214) -- `Web` 应用列表页面图标可点击跳转应用详情页 -- `Web` 环境信息新增依赖服务的版本号显示 -- `Web` 版本号增加对 nightly 构建的版本的显示 - -#### 修复 - -- `Web` Ruby 版本降级至 3.0 暂时解决高版本带来的 iOS 应用解析崩溃,具体情况看 [#1070](https://github.com/tryzealot/zealot/issues/1070) -- `Web` 应用/类型/渠道展示顺序固定为按照创建时间正序排列 -- `Web` 修复用户注销时没有弹出二次确认提示 -- `Web` 修复应用版本在主历史版本无法删除 -- `Web` 改善多个页面的样式问题 -- `Web` 产品环境不再展示 Javascript 调试器日志输出 - -## 4.6.0 (2023-01-17) - -运行环境升级至 Ruby 3.2 并支持 arm64 平台。详细[代码变更记录][4.6.0] - -#### 修复 - -- `Web` 捕获创建应用渠道名称为空问题 [#968](https://github.com/tryzealot/zealot/issues/968) 感谢 [congpeijun](https://github.com/congpeijun) -- `Web` 备份文件在磁盘不存在的逻辑完善 [#995](https://github.com/tryzealot/zealot/issues/995) - -#### 新增 - -- `Docker` 支持 arm64/v8 及 armv7 镜像 [#970](https://github.com/tryzealot/zealot/pull/970) -- `Web` 采用新 50x 错误页面 - -#### 变更 - -- `Web` 开发环境 Ruby 升级至 3.2 版本,devcontainer 及容器默认开启 YJIT 特性 [#1011](https://github.com/tryzealot/zealot/pull/1011) -- `API` 更新调试文件返回数据结构并修改状态码从 204 改为 200 - -## 4.5.3 (2022-11-22) - -详细[代码变更记录][4.5.3] - -#### 修复 - -- `Web` 修复第三方登录无法跳转 [#949](https://github.com/tryzealot/zealot/issues/949) 感谢 [softwind0214](https://github.com/softwind0214) - -#### 新增 - -- `Docker` 新增环境变量来关闭 WebSocket (ActionCable) 的请求保护 (实验性质) [#950](https://github.com/tryzealot/zealot/pull/950) - -## 4.5.2 (2022-11-01) - -详细[代码变更记录][4.5.2] - -#### 修复 - -- `Web` 修复注册测试设备异常 [#935](https://github.com/tryzealot/zealot/issues/935) 感谢 [ycy0430](https://github.com/ycy0430) -- `Web` 适配二维码支持黑暗模式 -- `Web` 修正 `en` 英文语言包 - -#### 新增 - -- `WebHook` 变量结构体新增 `username` 和 `email` 字段 [#934](https://github.com/tryzealot/zealot/issues/934) 感谢 [rkonfj](https://github.com/rkonfj) -- `Docker` 支持 `SIDEKIQ_CONCURRENCY` 环境变量设置后台任务的并发量,默认 5 - -#### 变更 - -- `Docker` 减少安全隐患,Web 服务包含 puma 和 puma_control_server 监听更换成 `127.0.0.1` -- `Web` 优化 iOS 设备 UDID 描述文件的文案 -- `Web` 更新页面底部的文案,感谢 Rails 和 AdminLTE 开源项目! - -## 4.5.1 (2022-09-14) - -详细[代码变更记录][4.5.1] - -#### 修复 - -- `Web` 修复应用解包解析报错 - -## 4.5.0 (2022-08-19) - -详细[代码变更记录][4.5.0] - -支持 👨🏻‍🔧 苹果开发者托管测试设备顺手把 🌑 黑暗模式搞来了! - -#### 新增 - -- `Web` 支持黑暗模式 [#816](https://github.com/tryzealot/zealot/pull/816) -- `Web` 新增苹果开发者管理用于注册测试设备 [#817](https://github.com/tryzealot/zealot/pull/817) -- `Web` 新增数据备份管理 [#835](https://github.com/tryzealot/zealot/pull/835) -- `Web` 管理面板完成依赖服务的监控 [#586](https://github.com/tryzealot/zealot/issues/586) -- `API` 涉及 `release` 字典的地方新增三个字段 `platform`, `device_type` 和 `custom_fields` - -#### 变更 - -- `Web` **不兼容变更** Google 统计强制升级 v4 版本,之前设置的需要重新配置才可以生效 [#815](https://github.com/tryzealot/zealot/pull/815) -- `CLI` **不兼容变更** 数据备份和还原功能因结构发生变更不再提供,请使用管理员面板的数据备份功能 -- `Web` 针对获取设备 UDID 及 iOS 版本安装和下载变更根据设备展示对应的功能界面,不再全部展示 -- `Web` 移除管理员面板的页面统计功能 [#814](https://github.com/tryzealot/zealot/pull/814) -- `Web` 前端技术栈从 webpacker 迁移至 esbuild + sass, Turbolinks 迁移至 Stimulus 带来更好的前端交互体验 [#829](https://github.com/tryzealot/zealot/pull/829) -- `Web` 鉴于编辑应用的类型和渠道逻辑较复杂,变更只能修改应用名 - -#### 修复 - -- `Web` 处理应用类型下没有存在渠道的选择错误 [#795](https://github.com/tryzealot/zealot/issues/795) 感谢 [tasselsd](https://github.com/tasselsd) -- `API` 修复 Android 地址返回错误 [#813](https://github.com/tryzealot/zealot/issues/813) 感谢 [denymz](https://github.com/denymz) -- `Web`/`API` 修正 aab 解析部分参数为空引发的异常 [tryzealot/fastlane-plugin-zealot#9](https://github.com/tryzealot/fastlane-plugin-zealot/issues/9) 感谢 [tasselsd](https://github.com/tasselsd) -- `Web` 修复第一次初始化项目生成演示数据异常 [#821](https://github.com/tryzealot/zealot/issues/821) -- `API` 修复检查应用最新版本数据异常 [#856](https://github.com/tryzealot/zealot/issues/856) 感谢 [denymz](https://github.com/denymz) -- `Web` 修复应用渠道详情因关联网络钩子数据异常报错 -- `Web` 修正英文语言包很多拼写错误 - -## 4.4.1 (2022-06-20) - -详细[代码变更记录][4.4.1] - -#### 修复 - -- `WebHook` 修复网络钩子触发成功后报错 [#792](https://github.com/tryzealot/zealot/issues/792) 感谢 [tasselsd](https://github.com/tasselsd) -- `Docker` 兼容 Caddy 2.5.0 反代 https 到 http [#790](https://github.com/tryzealot/zealot/pull/790) 感谢 [VisionBao](https://github.com/VisionBao) [songge1209](https://github.com/songge1209) - -## 4.4.0 (2022-06-09) - -详细[代码变更记录][4.4.0] - -#### 变更 - -- `Web` 对于未登录且未开启游客模式的用户权限新增查看应用版本详情之外还提供按照版本、分支、打包类型方式的筛选显示列表 -- `Web` 运行时环境升级至 Ruby 3.0,服务框架升级至 Rails 7.0 -- `Web` 兼容 macOS M1 芯片组 - -#### 新增 - -- `Web` 便于分享简化和统一部分应用链接 [#666](https://github.com/tryzealot/zealot/pull/666) -- `Web` 补全一些遗漏的权限检查页面 - -#### 修复 - -- `Job` 修复 iOS 文件解析 URL Schemes 异常 -- `Web` 修复服务日志没有输出到终端控制台 -- `Web` 增加处理上传调试文件在解析时它被删除掉或其他原因没有找到本地文件的异常捕获 -- `Web` 适配超宽屏幕的 UI -- `Web` 修复第三方登录依赖库的安全隐患 -- `API` 修复上传 Android 再不传 channel_key 异常 [#779](https://github.com/tryzealot/zealot/issues/779) 感谢 [likfe](https://github.com/likfe) - -## 4.3.1 (2021-12-22) - -详细[代码变更记录][4.3.1] - -#### 新增 - -- `Web` 设置项更新后可恢复原始默认值 -- `Web` 应用解包支持 Android 对 app links (区分 deep links 和 url schemes) 的解析显示 -- `Web` 设置页面强化设置开启、关闭状态的视觉效果 - -#### 修复 - -- `Web` 修复演示模式异步任务方法错误 -- `Web` 修复创建和编辑应用无法勾选选中的应用类型和渠道 -- `Web` 修复在环境页面无法 -- `Web` 修复解析 aab 没有 intent filters 无法解析 -- `Web` 增加取消勾选任何类型和渠道更新应用的报错 -- `Web` 修复加载策略造成第三方登录全部不可用 - -## 4.3.0 (2021-12-08) - -支持 aab 格式解析、多语言支持!详细[代码变更记录][4.3.0] - -#### 变更 - -- `Web` 使用默认提示的结构体作为网络钩子的数据结构,不再是一个奇怪的结构 -- `Web` 设置页面不再提供第三方登录授权的参数变更(依赖服务重启) -- `API` 上传应用接口和版本详情返回主体新增 `text_changelog` [650f1ffd](https://github.com/tryzealot/zealot/commit/650f1ffd3731f6a1f4cc703430be1b1b6f5d1cee) -- `API` 上传应用接口返回主体 `changelog_list` 改名 `changelog` [719f0b1e](https://github.com/tryzealot/zealot/commit/719f0b1eff92f358d246ededd6c1e6f9863f7f85) -- `Web` 变更日志输出的内容不再是一个数组内容,而是改为兼容 markdown list 格式的文本内容 [719f0b1e](https://github.com/tryzealot/zealot/commit/719f0b1eff92f358d246ededd6c1e6f9863f7f85) -- `Web` 一些隐私的配置 key 或 token 仅在管理员权限下明文显示;其他权限不可见;演示只读且会做部分加密处理 [#644](https://github.com/tryzealot/zealot/pull/644) -- `Web` 构建日期和哈希值无法获取不显示 - -#### 新增 - -- `Web` 支持 Android App Bundle (aab) 文件格式和 webp 图标的解析 -- `Web` 支持语言国际化,可选语言包:简体中文,英文 (支持页面配置) -- `Web` 支持配置更多的系统设置项 [#643](https://github.com/tryzealot/zealot/pull/643) -- `Web` 管理面板支持网络钩子的编辑功能 -- `Web` 重写并优化应用列表的样式布局 -- `Web` 优化基础的邮件模板 -- `Web` 调整登录窗口的样式和错误逻辑 -- `Web` 管理面板的环境变量页面新增文件权限检查 [#608](https://github.com/tryzealot/zealot/pull/608) -- `Web` 管理面板的新增错误异步任务的详情展示,最大错误数量为 5000 -- `Web` 使用更好的日志输出格式 [#646](https://github.com/tryzealot/zealot/pull/646) - -#### 修复 - -- `Web` 修复设置页面默认情况下 boolean 值类型的参数勾选状态错误 -- `Web` 修复在钉钉 App 点击安装或下载出现异常问题(改为微信逻辑处理) -- `Web` 修复在环境页面无法显示构建日期(构建 docker 镜像时的时间戳) -- `Web` 修复异步通知域名作用域无法生效 -- `Web` 修复获取 gems 异常 -- `Web` 修复 iOS 证书过期时间判断异常 -- `Web` 修复使用虚拟机开发挂载磁盘空间无法获取 -- `Web` 修复演示模式下的一些已知错误 - -## 4.2.2 (2021-10-15) - -详细[代码变更记录][4.2.2] - -#### 修复 - -- `API` 解决因批量替换造成的参数不匹配没有正确输出错误信息 [#615](https://github.com/tryzealot/zealot/issues/615) 感谢 [gin7758258](https://github.com/gin7758258) -- `Web` 解决了针对部分 apk Android 文件解析异常问题 [#587](https://github.com/tryzealot/zealot/pull/529) - -## 4.2.1 (2021-09-14) - -详细[代码变更记录][4.2.1] - -#### 变更 - -- `Web` 应用的图标不再按照预设尺寸裁切并移除图片处理依赖减少将近 200MB 镜像体积 -- `Docker` 反代服务 Caddy 不再输出日志到 STDOUT 而是直接到文件 - -#### 修复 - -- `Web` 修复上传应用后图标没有正常处理和显示 -- `Web` 兼容上传 dSYM 不同的 zip 解压缩逻辑 -- `Web` 修复安装 iOS 无法显示应用图标 -- `Web` 安全隐患:禁止编辑设置只读的系统设置 -- `Web` 修复 macOS 下载文件后缀不正确 -- `Web` 修复个别情况下不显示弹出无法安装的窗口 - -## 4.2.0 (2021-09-01) - -详细[代码变更记录][4.2.0] - -#### 变更 - -- `Web` 清理老版本逻辑默认改为关闭,如需开启请设置环境变量 `ZEALOT_KEEP_UPLOADS=false` [#570](https://github.com/tryzealot/zealot/pull/570) -- `Web` `文件解析`改名为`应用解包` [#529](https://github.com/tryzealot/zealot/pull/529) -- `Web` 下线应用解包中对已上传应用的解包支持(现在上传的应用都会自动触发额外的应用解包) -- `API` 上传应用的自定义字段图标支持 fontawesome css 的值,比如 [flag](https://fontawesome.com/v5.15/icons/flag?style=solid) 的值是 `fas fa-flag` -- `Docker` 镜像由 caddy 作为反代提供服务并对 volume 持久化做了变更,涉及迁移,具体看 [#540](https://github.com/tryzealot/zealot/pull/540) - -#### 新功能 - -- `Web` 支持 macOS 应用的上传、解析和下载 [#562](https://github.com/tryzealot/zealot/pull/562) -- `Web` 新增手机设备在渠道详情页对应用类型和渠道快速筛选项 [#510](https://github.com/tryzealot/zealot/issues/510) 感谢 [huacnlee](https://github.com/huacnlee) -- `Web` 管理员面板可配置应用的类型模板和默认注册用户的权限 [#562](https://github.com/tryzealot/zealot/pull/562) [#568](https://github.com/tryzealot/zealot/pull/568) -- `Web` 环境变量涉及隐私的做部分加密处理 -- `Web` 内存和磁盘使用率增加图形展示 -- `Docker` 新增支持 [Github Container Registry](https://github.com/tryzealot/zealot/pkgs/container/zealot) 镜像同步更新 -- `Docker` 新增支持环境变量配置 postgres 端口号 - -#### 修复 - -- `Web` 修复在 iPad 和 M1 芯片的 macOS 无法显示 iOS 安装按钮 [#519](https://github.com/tryzealot/zealot/issues/519) 感谢 [ohdarling](https://github.com/ohdarling) -- `Web` 修复注册但未验证邮件的同时使用第三方登录失败 [#517](https://github.com/tryzealot/zealot/issues/517) 感谢 [huacnlee](https://github.com/huacnlee) -- `Web` 修复使用网页上传没有触发应用解包 -- `Web` 修复 tubrolink 开启下左侧导航样式错位 -- `Web` Android 上传应用也显示解包链接 -- `Web` 优化解包文件列表判断为空的显示提示 -- `Web` 修复 LDAP 参数获取错误 [#541](https://github.com/tryzealot/zealot/pull/542) 感谢 [Martwu](https://github.com/Martwu) -- `Web` 优化捕获页面上传应用错误改为可读的错误信息 -- `Web` 修复创建应用类型出错判断异常 -- `Web` 补充在应用删除全部渠道后点击详情报错的一个异常情况的判断 -- `Web` 修复上传应用因解析过程变量释放错误 -- `Web` 修复应用设置密码保护校验时报错 [#564](https://github.com/tryzealot/zealot/issues/564) 感谢 [EasierLu](https://github.com/EasierLu) -- `Web` 修复管理员面板编辑用户资料报错 [#564](https://github.com/tryzealot/zealot/issues/564) 感谢 [EasierLu](https://github.com/EasierLu) -- `Web` 修复应用详情页面 "安装" 按钮会在错误的系统和设备上异常显示(正常只有 iOS 应用在 iOS 及 macOS 设备才会显示) -- `Web` 优化应用解包对于开发者证书因包含特殊字符集(目前已知的是中文编码)解析失败及 UI 样式的重新布局 -- `Web` 修复无法编辑当前用户 -- `Web` 改正调试文件的标题重复 -- `Docker` 修复镜像初始化 logrotate 错误 -- `Docker` 修复使用 Caddy 部署需要确认 [#551](https://github.com/tryzealot/zealot/issues/551) 感谢 [ReverseScale](https://github.com/ReverseScale) - -## 4.1.0 (2021-07-17) - -详细[代码变更记录][4.1.0] - -#### 变更 - -- `Web` 因 iPad 的 User-Agent 和 Desktop 一样更改获取设备 UDID 的显示逻辑 -- `Docker` 设置 Gihub Container Registry (gcr.io) 作为默认 Docker 镜像源 - -#### 新功能 - -- `Web` 支持飞书、Gitlab 第三方一键登录认证 -- `Web` 优化找不到应用版本详情页面并可以手动跳转到最新版本 -- `Web` 系统配置新增部分配置项的查看和部分不通过重启的参数修改 -- `Web` 管理面板新增页面统计报表 - -#### 修复 - -- `Web` 修复网络钩子无法获取 title 变量的值 -- `Web` 修复解析应用过程中异常报错 -- `Web` 修复创建应用过程中会有异常报错 -- `Web` 修复系统配置保存时为空造成无法编辑 -- `Job` 处理移除老版本的逻辑造成删除的版本逻辑和文档逻辑是反的 - -## 4.0.0 (2020-12-31) - -详细[代码变更记录][4.0.0] - -#### 修复 - -- `Web` 修正文件解析 iOS 证书对失效时间判断异常造成的页面错误显示 -- `Web` 忽略默认开发版本号检查新版本 - -## 4.0.0.rc2 (2020-12-25) - -详细[代码变更记录][4.0.0.rc2] - -#### 新功能 - -- `Web` 新的文件解析会保存到列表,上传的应用也会同步一份文件解析(异步任务) [#346](https://github.com/tryzealot/zealot/pull/346) -- `Web` 控制面板新增文件解析数据统计 -- `Web` 控制面板针对管理员新增网络钩子、后台任务和磁盘使用的数据统计 -- `Web` 版本详情提示文件缺失增加有权限者快速删除功能 - -#### 变更 - -- `API` 调试文件版本检查接口改名并新增按照文件指纹和 dSYM uuid 检查是否存在 [#349](https://github.com/tryzealot/zealot/pull/346) - -#### 修复 - -- `Web` 修复禁用 LDAP 登录认证报错( IP 白名单设置错误) -- `Web` 修正 Android 微信打开版本详情提示的文案 - -## 4.0.0.rc1 (2020-10-29) - -详细[代码变更记录][4.0.0.rc1] - -#### 变更 - -- `Docker` **重大变更** 合并 rails 和 worker 到同一镜像部署需要同步更新 zealot-docker 库 [#235](https://github.com/tryzealot/zealot/pull/235) -- `Docker` Ruby 升级 2.7 部署 -- `Web` font-awesome 从 4.7.0 升级至 5.13.0,可能会有遗漏的 Icon 显示不正常 -- `Web` 调整邀请邮件的文案 -- `Web` 应用和调试文件下载路径统一到 `/download` 路径 -- `Web` 在线解析应用需要登录权限 -- `Web` 优化已经删除的或不存在的版本详情地址会自动跳转最新版本 -- `Web` 应用安装和下载逻辑做了调整(主要 iPadOS UserAgent 和 Desktop 一样无法判断) - -#### 新功能 - -- `Web` 涉及下载文件不存在会提示无法下载 -- `Web` 在线解析支持 .mobileprovision 格式文件以及解析 .ipa 新增开启功能等 -- `Web` 部分系统设置可以使用管理员面板在线修改 [#245](https://github.com/tryzealot/zealot/pull/245) -- `Web` 新增游客模式 [#243](https://github.com/tryzealot/zealot/pull/243) -- `Web` 支持显示 iOS AdHoc 版本测试设备的名称 [#211](https://github.com/tryzealot/zealot/pull/211) -- `Web` 支持解析已上传版本安装包的内容 [#210](https://github.com/tryzealot/zealot/pull/210) -- `Web` 支持获取 iOS 设备 UDID 功能 [#203](https://github.com/tryzealot/zealot/pull/203) -- `Web` 支持定期数据初始化且有功能限制的演示模式 [#198](https://github.com/tryzealot/zealot/pull/198) -- `Web` 上传 App 后在版本详情显示原本应用的名称 -- `Web` 可通过版本、Git 分支、打包类型筛选过滤应用列表 -- `Web` 版本详情最近上传关联 git commit 链接(如果在渠道设置了 git url) -- `Web` LDAP 登录融合到现有登录界面,不再使用第三方依赖提供的简陋界面 -- `Job` 支持通过 rails 命令管理生成恢复数据备份功能(数据库、上传文件数据)[#207](https://github.com/tryzealot/zealot/pull/207) -- `API` 新增检查调试文件是否存在接口 `/api/debug_files/version_exist` - -#### 修复 - -- `Web` 修复上传 App 填写变更日志解析报错 -- `Web` 解决版本详情中二维码在中等分辨率会超出父视图 -- `Web` 解决应用渠道一些值为空确没有不显示默认值 -- `Web` 优化在线解析 iOS 包的内容展示(和永远展示假数据的问题) -- `Web` 解决版本详情在使用 [fastlane-plugin-ci_changelog](https://github.com/icyleaf/fastlane-plugin-ci_changelog) 生成的变更日志没有展示提交者信息 -- `Web` 修复并优化检查新版本逻辑 -- `Web` 修复删除调试文件确认弹窗信息获取为空 -- `Web` 优化版本详情设备列表在一些手机的显示方式 -- `Web` 修复解析应用在不传参数提交的报错 -- `Web` 优化版本列表在手机查看 -- `Web` 渠道版本的最近上传动态仅显示底部分页,上部改为版本总数 -- `Web` 修复管理员编辑用户留空密码提示不能为空 -- `Web`/`API` 修复在线下载和安装版本不存在时会采用最新版本 -- `Web` 修复游客模式登录界面会显示边栏菜单 -- `Web` 修复上传同一应用同一平台调试文件总是会被覆盖的问题 -- `Web` 系统设置页面优化对布尔类型、字典类型的显示 -- `Job` 修复定时任务来清理老版本时因版本判断错误发生的误删版本 -- `Docker` 修复因为 volume 存储 public 文件夹造成内部静态资源不会更新 -- `Docker` 容器内的版本和外部不一致 - -## 4.0.0.beta4 (2020-05-07) - -详细[代码变更记录][4.0.0.beta4] - -#### 新功能 - -- `Docker` 支持 Heroku 部署 -- `Web` 游客模式允许查看 App 详情、列表和上传 App 详情 -- `API` 上传 App 支持自定义字段 [#178](https://github.com/tryzealot/zealot/issues/178) -- `Web`/`API` 上传 App 传递了 `branch` 值开头包含 `origin/` 开头会自动清理掉 -- `Web` 登录、注册、找回密码、重设密码等用户认证界面增加项目简介 - -#### 修复 - -- `Web` 修正用户密码描述文案 -- `Web` 修复网络钩子(WebHook)包含 url 字段的地址错误 -- `Web`/`API` 修复上传 iOS dSYM 文件上传报错 -- `API` 修复获取 App 接口 has_password 参数异常 -- `API` 修复上传 App 记录的 source 来源都是 Web -- `API` 修复并支持上传 App 传递字符串类型的 json 格式的 changelog -- `Web` 修复系统信息没有正常获取 CPU 和内存信息 -- `Web` 修复在线解析 Android 应用偶尔报错 -- `Web` 修复使用微信扫描二维码页面报错 - -#### 变更 - -- `API` 应用最新版本接口(`apps/latest`)增加 bundle_id 纬度的验证 -- `Web` 游客模式可以访问应用版本详情和下载操作 -- `Web` 应用版本详情对于 iOS AdHoc 右侧的设备列表左移并默认收起状态 -- `Web` 开发环境移除 GraphQL 控制台功能,推荐使用 [graphql-playground](https://github.com/prisma-labs/graphql-playground) -- `Web` 页面底部移除 footbar,版本信息可以在系统信息查看 - -## 4.0.0.beta3 (2020-01-16) - -详细[代码变更记录][4.0.0.beta3] - -#### 新功能 - -- `Web` 管理员添加的用户在邮箱未激活会提示并显示确认邮箱的链接 -- `Web` 默认开启 Sentry 匿名上报机制(可关闭) - -#### 修复 - -- `API` 修复上传应用总会创建新渠道 -- `Web`/`API` 修复上传 Android 应用无法显示图标 - -#### 变更 - -- `Docker` 初始化数据从镜像移出到 [zealot-docker](https://github.com/tryzealot/zealot-docker) 操作 [#120](https://github.com/tryzealot/zealot/pull/120) -- `Docker` 精简镜像的体积大小从 1.18G 降到 308M [#114](https://github.com/tryzealot/zealot/issues/114) -- `Job` 使用异步任务代替传统 cron job 来实现定时清理老版本历史包文件(可关闭) -- `Job` 对异步任务进行分组和设置优先级 -- `API` 所有报错信息改成中文显示,因数据库写操作会返回具体错误信息 -- `Web` 使用 Rubocop Lint 规范化代码 - -## 4.0.0.beta2 (2020-01-10) - -详细[代码变更记录][4.0.0.beta2] - -#### 新功能 - -- `Web` 新增上传到具体应用渠道的全部版本列表同时支持删除操作 - -#### 修复 - -- `Web` 对于上传应用不是有效 ipa 或 apk 的会给予错误提示而不是报错 -- `API` 修复获取应用最新版本列表因查询版本号不存在数据库无法返回最新版本列表 -- `API` 只针对写操作的接口才会要求 token 验证(之前是绝大部分都需要) - -## 4.0.0.beta1 - -🌈 第一个公测版本发布啦 - -## 更早的版本 - -之前多年一直是公司内部开发和运营并没有开源,曾经承担过很多的功能到现在脱离出来专注提供应用托管和分发的服务。 - -[5.0.0]: https://github.com/tryzealot/zealot/compare/4.7.1...5.0.0 -[4.7.0]: https://github.com/tryzealot/zealot/compare/4.6.0...4.7.0 -[4.6.0]: https://github.com/tryzealot/zealot/compare/4.5.3...4.6.0 -[4.5.3]: https://github.com/tryzealot/zealot/compare/4.5.2...4.5.3 -[4.5.2]: https://github.com/tryzealot/zealot/compare/4.5.1...4.5.2 -[4.5.1]: https://github.com/tryzealot/zealot/compare/4.5.0...4.5.1 -[4.5.0]: https://github.com/tryzealot/zealot/compare/4.4.1...4.5.0 -[4.4.1]: https://github.com/tryzealot/zealot/compare/4.4.0...4.4.1 -[4.4.0]: https://github.com/tryzealot/zealot/compare/4.3.1...4.4.0 -[4.3.1]: https://github.com/tryzealot/zealot/compare/4.3.0...4.3.1 -[4.3.0]: https://github.com/tryzealot/zealot/compare/4.2.2...4.3.0 -[4.2.2]: https://github.com/tryzealot/zealot/compare/4.2.1...4.2.2 -[4.2.1]: https://github.com/tryzealot/zealot/compare/4.2.0...4.2.1 -[4.2.0]: https://github.com/tryzealot/zealot/compare/4.1.0...4.2.0 -[4.1.0]: https://github.com/tryzealot/zealot/compare/4.0.0...4.1.0 -[4.0.0]: https://github.com/tryzealot/zealot/compare/4.0.0.rc2...4.0.0 -[4.0.0.rc2]: https://github.com/tryzealot/zealot/compare/4.0.0.rc1...4.0.0.rc2 -[4.0.0.rc1]: https://github.com/tryzealot/zealot/compare/4.0.0.beta4...4.0.0.rc1 -[4.0.0.beta4]: https://github.com/tryzealot/zealot/compare/4.0.0.beta3...4.0.0.beta4 -[4.0.0.beta3]: https://github.com/tryzealot/zealot/compare/4.0.0.beta2...4.0.0.beta3 -[4.0.0.beta2]: https://github.com/tryzealot/zealot/compare/4.0.0.beta1...4.0.0.beta2 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/credits.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/credits.md deleted file mode 100644 index 68285af48..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/credits.md +++ /dev/null @@ -1,23 +0,0 @@ -# Credits - -实在不知道怎么翻译 `Credits`,就这么招吧。 - -## 贡献成员 - -感谢你们让 Zealot 变得更有用! - - - - - -## 项目名 - -Zealot 来自星际争霸种神族基础兵种。 - -## 图标 - -最初项目历史提交资源图标版权归属[暴雪](https://www.blizzard.com),后期改为自己设计的图标,如果有热心设计师能够帮助设计更好的图标,本人代表本项目表示衷心的感谢。 - -## 发布协议 - -Zealot 是一个基于 MIT 发布协议 (MIT) 发布的开源项目,协议内容请参见[协议文件](https://github.com/tryzealot/zealot/blob/develop/LICENSE)。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/dashboard.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/dashboard.md deleted file mode 100644 index 8ade0c0ca..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/dashboard.md +++ /dev/null @@ -1,3 +0,0 @@ -# 控制面板 - -![screenshot](/img/screenshot/product-1.png) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/debug-files/index.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/debug-files/index.mdx deleted file mode 100644 index 20cd25fad..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/debug-files/index.mdx +++ /dev/null @@ -1,14 +0,0 @@ -# 应用列表 - -按照归属的应用划分显示所有调试文件的数量和详情入口。 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/debug-files/review.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/debug-files/review.mdx deleted file mode 100644 index c63ba4e12..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/debug-files/review.mdx +++ /dev/null @@ -1,48 +0,0 @@ -# 查看调试文件详情 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Android - -### 版本列表 - - - -### 详情信息 - - - -## iOS - -### 版本列表 - - - -### 详情信息 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/debug-files/upload.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/debug-files/upload.mdx deleted file mode 100644 index 39ceb5cf8..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/debug-files/upload.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 上传调试文件 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/index.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/index.mdx deleted file mode 100644 index 8eeb6ca8d..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/index.mdx +++ /dev/null @@ -1,49 +0,0 @@ -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -# 用户手册 - -[![GitHub release](https://img.shields.io/github/v/release/tryzealot/zealot?include_prereleases)](https://github.com/tryzealot/zealot/releases) -[![Docker Pulls](https://img.shields.io/docker/pulls/tryzealot/zealot.svg)](https://hub.docker.com/r/tryzealot/zealot/) -[![Chat on Telegram](https://img.shields.io/badge/chat-on%20telegram-important.svg)](https://img.shields.io/badge/chat-on%20telegram-important.svg) -[![Maintainability](https://codeclimate.com/github/tryzealot/zealot/badges/gpa.svg)](https://codeclimate.com/github/tryzealot/zealot) -[![License](https://img.shields.io/github/license/tryzealot/zealot)](https://github.com/tryzealot/zealot/blob/develop/LICENSE) - -开源自部署持续集成一切跟应用有关事情,接入任意 CI 系统一切自动化处理,企业多年实战经验,独立部署提供企业打包分发流程、上传应用全套流程方案 En Taro Adun! 🖖 - - - -## 特性 - -- 🌏 **多平台应用托管**: macOS、iOS、Android(apk/aab)、Windows、Linux 泛平台 -- 📱 **测试设备一网打进**: 自动同步 iOS 测试设备信息,允许一键注册新设备到苹果开发者 -- 🧑‍💻 **丰富开发者套件**: 提供 REST API、[iOS][zealot-ios-sdk]、[Android][android-android-sdk] SDK 以及 [fastlane][fastlane-plugin-zealot] 自动化构建插件 -- 💥 **剖析应用内部的秘密**: 解读 iOS、Android 应用或 iOS 描述文件的元信息 -- 🚨 **内置多种事件通知**: 数据可自定义 Income WebHook 到任意通知服务 -- 🗄 **多渠道分类管理**: 自由划分不同场景不同产品形态的应用渠道管理 -- 🎳 **多架构部署**: amd86/arm64/armv7 及各种部署方案应有尽有 -- 🔑 **第三方登录**: 飞书、Gitlab、Google、LDAP 和 OIDC 一键授权 -- 🌑 **黑暗模式**: 黑夜白昼自由切换 - -## 在线演示 - -- 演示地址:https://tryzealot.ews.im/ -- 电子邮箱: `admin@zealot.com` -- 登录密码:`ze@l0t` - -> **注意**: 演示服务中的数据每日都会重新初始化,不对用户上传的应用承担任何法律风险,后果自负! - -## 发布协议 - -[MIT][mit-link] - -[zealot-ios-sdk]: https://github.com/tryzealot/zealot-ios -[android-android-sdk]: https://github.com/tryzealot/zealot-android -[fastlane-plugin-zealot]: https://github.com/tryzealot/fastlane-plugin-zealot -[mit-link]: https://github.com/tryzealot/zealot/blob/develop/LICENSE diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/qa.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/qa.md deleted file mode 100644 index b678dfeb4..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/qa.md +++ /dev/null @@ -1,73 +0,0 @@ -# 疑惑解答 - -下面会列出来一些遇到的问题并汇总提供给大家。 - -## 为什么不能使用 HTTP 部署服务 - -鉴于 iOS 使用下载服务依赖开启 SSL/TLS 证书,建议使用经过授权的证书服务,如果服务不需要提供 iOS、macOS 的安装服务可以考虑使用 HTTPS 部署服务, -这里推荐使用免费 [Let's Encrypt](https://letsencrypt.org/) 提供 SSL 证书服务。 - -## 使用自签名的证书无法安装 iOS 应用 - -如果使用自签名证书需要每个 iOS 设备在下载安装应用前必须安装自签名证书才行,每个设备都需要进行安装,操作比较复杂在有免费 SSL 证书服务的情况下不到逼不得已不建议使用自签名证书。 - -## 使用负载均衡部署服务,下载总会从 https 变成 http - -负载均衡在提供服务的时候会在最前端部署 https 服务,内部的分发实际上还是走的 http,解决办法在负载均衡上把转发的协议头从 http 改成 https,这样服务再转发的时候就会继承最前端的协议头(`X-Forwarded-Proto`)。 - -## 是否支持外部 redis、postgresql 链接 - -支持的,如果有公用的 redis、postgresql 服务器那就可以单独部署 zealot 服务,在 `.env` 配置或 Docker、K8s 的环境变量手动指定如下配置: - -```bash -# Redis -REDIS_URL=redis://127.0.0.1:6379/0 - -# Postgresl -ZEALOT_POSTGRES_HOST=127.0.0.1 -ZEALOT_POSTGRES_PORT=5432 -ZEALOT_POSTGRES_USERNAME=postgres -ZEALOT_POSTGRES_PASSWORD=ze@l0t -ZEALOT_POSTGRES_DB_NAME=zealot -``` - -## 是否支持 Kubernetes(k8s)部署 - -服务是支持 K8S 的单机部署但不支持伸缩特性,具体原因是因为应用上传使用的是容器内的本地存储没有支持亚马逊 S3 或阿里云第三方云存储的支持。 - -## 是否提供类似 FIR、蒲公英服务的应用的分享页面 - -服务提供两种页面地址: - -**1 应用渠道详情页** - -`https://YOUR_ZEALOT_URL/channels/SLUG` - -其实 `YOUR_ZEALOT_URL` 是 zealot 服务地址,`SLUG` 是你对应应用渠道的唯一地址。 - -**2 上传的版本详情页** - -`https://YOUR_ZEALOT_URL/channels/SLUG/releases/ID` - -其实 `YOUR_ZEALOT_URL` 是 zealot 服务地址,`SLUG` 是你对应应用渠道的唯一地址,`ID` 是上传的版本 ID,为空的时候会自动调整到最新版本,所以可以直接分享 - -`https://YOUR_ZEALOT_URL/channels/SLUG/releases` - - -## 服务运行一段时间 CPU 或内存资源暴涨不下,如何解决? - -根据用户 [Cleam](https://github.com/Cleam) 的[反馈](https://github.com/tryzealot/zealot/issues/768#issuecomment-1161097162)部署服务之后,托管的应用很少,上传频率不高,服务器硬件规格也完全达标的情况下还是会引发 CPU 或内存资源暴涨造成服务器卡死, -当前的情况属于还属于个人情况,目前情况未知,但可以通过限制 CPU 和内存来规避这个问题,编辑 `docker-compose.yml` 文件: - -```diff -zealot: - <<: *defaults -+ deploy: -+ resources: -+ limits: -+ cpus: 2.0 -+ memory: 2G -+ reservations: -+ cpus: 0.5 -+ memory: 256M -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/toolkits/fetch-udid.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/toolkits/fetch-udid.mdx deleted file mode 100644 index 3e2f4e804..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/toolkits/fetch-udid.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -sidebar_label: "获取 iOS 设备 UDID" ---- - -# 获取 iOS 设备 UDID - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -Zealot 提供的获取 iOS 设备 UDID 除了市面上最最最基础的功能之外,内置了强大扩展功能: - -1. 通过 UDID 罗列可以安装的应用列表 -1. 开启[苹果开发者](../administrator/apple-team)功能允许把未注册测试设备添加到对于的开发者账号 - -## 安装描述文件 - -:::info -此功能仅对 iOS 设备有效,如果是电脑打开会提示用手机扫描二维码打开。 -::: - -无论使用什么用户登录模式(包括游客模式)都可以通过左侧菜单栏的 "获取设备 UDID" 安装描述文件后获取当前 iOS 设备的 UDID。 - -不要在意安装的描述文件展示"未签名",这个不影响安装,且此描述文件是一次性的获取之后会被系统销毁绝对不会存在安全隐患。 - - - -描述文件安装后会返回浏览器打开一个新的页面展示设备 UDID,这个时候会出现如下两种情况: - -- [未注册设备](#未注册设备) -- [已注册设备](#已注册设备) - -## 未注册设备 - -未注册设备提供最基本的设备信息,包含 UDID、内部型号和序列化号之外,服务管理员如果添加了[苹果开发者](../administrator/apple-team)还会显示注册测试设备到对于的开发者账号中。 - -:::tip -注册到苹果开发者账号仅仅意味着设备更新到苹果开发者账号的 Devices 下面,对于 iOS 开发者还需要手动或脚本自动化把该测试设备添加到对应的 Ad-Hoc 证书,再进行安装并重新打包上传才允许该设备安装。 -::: - - - -## 已注册设备 - -已注册的测试设备就会展示可以安装的应用列表。服务管理员如果添加了[苹果开发者](../administrator/apple-team)还会显示注册测试设备到对于的开发者账号中。 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/toolkits/teardown.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/toolkits/teardown.mdx deleted file mode 100644 index 310add762..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/toolkits/teardown.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -sidebar_label: "解析应用" ---- - -# 解析应用分析内部元信息 (Metadata) - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Android - -获取 `AndroidManifest.xml` 元数据,解析 v1 至 v3 签名信息。 - - - -## iOS - -获取 `Info.plist` 元信息、Frameworks 和描述文件及证书信息。 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks.md deleted file mode 100644 index e7250bda0..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -sidebar_label: "网络钩子" ---- - -# 网络钩子(WebHook) - -Zealot 为每个应用渠道都提供一个消息通知的网络钩子,网络钩子完全可自定义结构体可适用于绝大多数的通知服务, -比如企业微信、钉钉、Slack 等等。 - -## 默认结构体 - -默认结构体每个参数都已变量的方式提供它的值,每个变量都以 `@` 开头,在创建网络钩子如果留空自定义结构体就会使用默认结构体, -如下全部提供的变量: - -```ruby -{ - event: @event, - username: @username, - email: @email, - title: @title, - name: @app_name, - app_name: @app_name, - device_type: @device_type, - release_version: @release_version, - build_version: @build_version, - size: @file_size, - changelog: @changelog, - release_url: @release_url, - install_url: @install_url, - icon_url: @icon_url, - qrcode_url: @qrcode_url, - uploaded_at: @uploaded_at -} -``` - -输出的结果如下: - -```json -{ - "event": "upload_events", - "username": "foobar", - "email": "foobar@example.com", - "title": "Zealot 样例 iOS 内测版上传了 1.0.0 版本", - "app_name": "Zealot 样例 iOS 内测版", - "device_type": "iOS", - "release_version": "1.0.0", - "build_version": "1", - "size": "30 MB", - "changelog": "- 新增了 A 功能\n- 修复了 B 问题\n- 发布 1.0.0 版本", - "release_url": "https://zealot.example.com/apps/x3gd/100", - "install_url": "https://zealot.example.com/api/apps/download/12354", - "icon_url": "https://zealot.example.com/api/apps/icon.png", - "qrcode_url": "https://zealot.example.com/api/apps/354/qrcode", - "uploaded_at": "2019-12-30 11:33:00" -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/dingtalk.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/dingtalk.md deleted file mode 100644 index dc0b358be..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/dingtalk.md +++ /dev/null @@ -1,29 +0,0 @@ -# 钉钉 - -[钉钉](https://developers.dingtalk.com/document/robots/custom-robot-access#section-e4x-4y8-9k0)的网络钩子结构体通常支持文本和 markdown 两种方式, -由于系统限制尽量使用关键词或 IP 地址白名单机制来接受消息。可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "msgtype": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\n上传时间: #{@uploaded_at}" - } -} -``` - -## Markdown 格式 - -title 字段仅在对话列表展示,进入对话框的聊天内容则展示 text 字段 - -```ruby -{ - "msgtype": "markdown", - "markdown": { - "title": @title, - "text": "## #{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}\n安装二维码:\n![qrcode](#{@qrcode_url})" - } -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/discord.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/discord.md deleted file mode 100644 index d60148202..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/discord.md +++ /dev/null @@ -1,63 +0,0 @@ -# Discord - -[Discord](https://support.discord.com/hc/zh-tw/articles/228383668) 支持 Slack 兼容的网络钩子因此其结构体通常支持文本和 block 富文本两种方式,可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "text": "#{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}" -} -``` - -## Block 富文本格式 - -一个简单的支持 markdown 的 block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "## #{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}\n安装二维码:\n![qrcode](#{@qrcode_url})" - } - } - ] -} -``` - -稍微好看点有些结构展示的 block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": @title, - } - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*平台:*\n#{@device_type}" - }, - { - "type": "mrkdwn", - "text": "*上传时间:*\n#{@uploaded_at}" - } - ] - }, - "accessory": { - "type": "image", - "image_url": @qrcode_url, - "alt_text": "install qrcode" - } - ] -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/feishu.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/feishu.md deleted file mode 100644 index 59484a2ac..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/feishu.md +++ /dev/null @@ -1,94 +0,0 @@ -# 飞书 - -[飞书](https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN)的网络钩子结构体通常支持文本和卡片两种方式, -由于系统限制尽量使用关键词或 IP 地址白名单机制来接受消息。可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "msg_type": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\n上传时间: #{@uploaded_at}" - } -} -``` - -## Interactive 卡片格式 - -通过这种格式可以实现支持 markdown 的部分语法(不支持外链图片展示): - -```ruby -{ - "msg_type": "interactive", - "card": { - "config": { - "wide_screen_mode": true, - "enable_forward": true - }, - "elements": [ - { - "tag": "div", - "fields": [ - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**平台**\n#{@device_type}" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**版本**\n#{@release_version} (#{@build_version})" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**最后提交者**\n#{@username}" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**上传时间**\n#{@uploaded_at}" - } - }, - ] - }, - { - "tag": "div", - "text": { - "content": "**变更历史**\n#{@changelog}", - "tag": "lark_md" - } - }, - { - "actions": [ - { - "tag": "button", - "text": { - "content": "🐞 版本详情", - "tag": "lark_md" - }, - "url": "#{@release_url}", - "type": "primary", - "value": {} - } - ], - "tag": "action" - } - ], - "header": { - "title": { - "content": "#{@title}", - "tag": "plain_text" - } - } - } -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/slack.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/slack.md deleted file mode 100644 index d0dbe1a8b..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/slack.md +++ /dev/null @@ -1,63 +0,0 @@ -# Slack - -[Slack](https://api.slack.com/messaging/webhooks) 的网络钩子使用 Incoming Webhooks 其结构体通常支持文本和 block 富文本两种方式,可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "text": "#{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}" -} -``` - -## Block 富文本格式 - -一个简单的支持 markdown 的 block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "## #{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}\n安装二维码:\n![qrcode](#{@qrcode_url})" - } - } - ] -} -``` - -稍微好看点有些结构展示的 block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": @title, - } - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*平台:*\n#{@device_type}" - }, - { - "type": "mrkdwn", - "text": "*上传时间:*\n#{@uploaded_at}" - } - ] - }, - "accessory": { - "type": "image", - "image_url": @qrcode_url, - "alt_text": "install qrcode" - } - ] -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/wecom.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/wecom.md deleted file mode 100644 index 74d646487..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.0/user-guide/webhooks/wecom.md +++ /dev/null @@ -1,25 +0,0 @@ -# 企业微信 - -[企业微信](https://work.weixin.qq.com/api/doc/90000/90136/91770)的网络钩子结构体通常支持文本和 markdown 两种方式,可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "msgtype": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\n上传时间: #{@uploaded_at}" - } -} -``` - -## Markdown 格式 - -```ruby -{ - "msgtype": "markdown", - "markdown": { - "content": "## #{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}\n安装二维码:\n![qrcode](#{@qrcode_url})" - } -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1.json b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1.json deleted file mode 100644 index 54e1eb1cb..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "version.label": { - "message": "5.1.0", - "description": "The label for version 5.1" - }, - "sidebar.selfHosted.category.Deployment": { - "message": "部署", - "description": "The label for category Deployment in sidebar selfHosted" - }, - "sidebar.selfHosted.category.Configuration": { - "message": "配置", - "description": "The label for category Configuration in sidebar selfHosted" - }, - "sidebar.selfHosted.doc.Storage": { - "message": "存储", - "description": "The label for the doc item Storage in sidebar selfHosted, linking to the doc self-hosted/storage" - }, - "sidebar.developerGuide.category.SDKs": { - "message": "移动 SDK", - "description": "The label for category SDKs in sidebar developerGuide" - }, - "sidebar.developerGuide.category.fastlane plugins": { - "message": "Fastlane 插件", - "description": "The label for category fastlane plugins in sidebar developerGuide" - }, - "sidebar.developerGuide.category.APIs": { - "message": "API 接口", - "description": "The label for category APIs in sidebar developerGuide" - }, - "sidebar.selfHosted.doc.Getting Started": { - "message": "准备开始", - "description": "The label for the doc item Getting Started in sidebar selfHosted, linking to the doc self-hosted/index" - }, - "sidebar.userGuide.doc.Getting Started": { - "message": "准备开始", - "description": "The label for the doc item Getting Started in sidebar userGuide, linking to the doc user-guide/index" - }, - "sidebar.developerGuide.doc.Getting Started": { - "message": "准备开始", - "description": "The label for the doc item Getting Started in sidebar developerGuide, linking to the doc developer-guide/index" - }, - "sidebar.selfHosted.category.Docker": { - "message": "Docker", - "description": "The label for category Docker in sidebar selfHosted" - }, - "sidebar.userGuide.category.Apps": { - "message": "应用", - "description": "The label for category Apps in sidebar userGuide" - }, - "sidebar.userGuide.category.Debug Files": { - "message": "调试文件", - "description": "The label for category Debug Files in sidebar userGuide" - }, - "sidebar.userGuide.category.Toolkits": { - "message": "工具箱", - "description": "The label for category Toolkits in sidebar userGuide" - }, - "sidebar.userGuide.category.Webhooks": { - "message": "网络钩子", - "description": "The label for category Webhooks in sidebar userGuide" - }, - "sidebar.userGuide.category.Administrator": { - "message": "管理面板", - "description": "The label for category Administrator in sidebar userGuide" - }, - "sidebar.userGuide.category.Monitoring": { - "message": "监控", - "description": "The label for category Monitoring in sidebar userGuide" - }, - "sidebar.userGuide.doc.Dashboard": { - "message": "控制面板", - "description": "The label for the doc item Dashboard in sidebar userGuide, linking to the doc user-guide/dashboard" - }, - "sidebar.selfHosted.category.Cloud Provider Guides": { - "message": "云服务商", - "description": "The label for category Cloud Provider Guides in sidebar selfHosted" - }, - "sidebar.contributingGuide.category.Local development": { - "message": "本地开发", - "description": "The label for category Local development in sidebar contributingGuide" - }, - "sidebar.contributingGuide.doc.Getting Started": { - "message": "准备开始", - "description": "The label for the doc item Getting Started in sidebar contributingGuide, linking to the doc contributing-guide/index" - }, - "sidebar.selfHosted.doc.Reverse Proxies": { - "message": "反向代理", - "description": "The label for the doc item Reverse Proxies in sidebar selfHosted, linking to the doc self-hosted/reverse-proxies" - } -} diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/contributing-guide/index.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/contributing-guide/index.md deleted file mode 100644 index 94bf00e37..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/contributing-guide/index.md +++ /dev/null @@ -1,15 +0,0 @@ -# 贡献者指南 - -本指南将会帮助你更好的上手 Zealot!感谢您对本项目感兴趣。在提交你的贡献之前请仔细认真阅读如下指南。 - -## 准备工作 - -贡献代码前请在 Issues 确认是否存在,没有发现的话欢迎动动小手创建新 Issue,创建之后你会收到一个自动回复请勿担心我会在看到后尽快整理并回应。 -如果解决方案非常的复杂,建议极可能完整描述背景、解决目的和方案以方便核心开发者审核。 - -## 本地开发环境 - -我们将会从如下指南帮助准备和部署本地 Zealot 开发环境: - -- [VSCode devcontainer 开发部署](/docs/contributing-guide/local-development/devcontainer) (**简单便捷,强烈推荐**) -- [源代码部署](/docs/contributing-guide/local-development/source-code) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/contributing-guide/local-development/devcontainer.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/contributing-guide/local-development/devcontainer.md deleted file mode 100644 index 7595244a2..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/contributing-guide/local-development/devcontainer.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -sidebar_label: "Dev Container (Docker)" ---- - -# Visual Studio Code Dev Container 开发部署指南 - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -``` - -[Dev Container](https://code.visualstudio.com/docs/devcontainers/containers) (Developing inside a Container) 是 Visual Studio Code 使用 Docker 作为开发环境能够实现在本地无需配置开发环境在容器开发有近乎本地体验的解决方案。 - -![VSCode devcontainer](https://code.visualstudio.com/assets/docs/devcontainers/containers/architecture-containers.png) - -## 系统依赖 - -在开发之前,你需要安装最新版本的 Git,Virsual Studio Code,Docker 和 docker-compose。 - -### 安装 Git - -因操作系统不同,建议按照官方[安装教程](https://github.com/git-guides/install-git)操作。 - -### 安装 Docker & docker-compose - -- Windows: 10 Pro/Enterprise 需要 [Docker Desktop](https://www.docker.com/products/docker-desktop) / Windows 10 Home (2004+) 需要 Docker Desktop 2.3+ 和 [WSL 2 back-end](https://aka.ms/vscode-remote/containers/docker-wsl2)。(不支持 Docker Toolbox 和 Windows container images) -- macOS: [Docker Desktop](https://www.docker.com/products/docker-desktop) 2.0+。 -- Linux: [Docker CE/EE](https://docs.docker.com/install/#supported-platforms) 18.06+ 和 [Docker Compose](https://docs.docker.com/compose/install) 1.21+。(不支持 Ubuntu snap 包) - -### 安装 Visual Studio Code - -Visual Studio Code 是一个跨平台运行的免费的代码编辑器,根据操作系统选择你的安装方式: - -```mdx-code-block - - -``` - -1. 下载 [Visual Studio Code](https://go.microsoft.com/fwlink/?LinkID=534106) macOS 版。 -1. 打开浏览器下载界面找到已下载的应用文件或压缩文件。 -1. 如果是压缩文件先进行解压缩操作,如果使用 Safari 下载通常会帮你自动解压缩。 -1. 拖拽 `Visual Studio Code.app` 到系统应用文件夹。 -1. 双击 VS Code 应用即可打开应用。 - -```mdx-code-block - - -``` - -1. 下载 [Visual Studio Code installer](https://go.microsoft.com/fwlink/?LinkID=534107) Windows 版。 -1. 下载完成后执行安装程序(VSCodeUserSetup-\{version\}.exe)等待安装成功。 -1. 默认情况下 VS Code 会安装到 `C:\Users\\{Username\}\AppData\Local\Programs\Microsoft VS Code` 路径。 - -```mdx-code-block - - -``` - -因操作系统不同,建议按照官方[安装教程](https://code.visualstudio.com/docs/setup/linux)操作。 - -```mdx-code-block - - -``` - -### 安装 Remote container 扩展 - -按照官方教程安装 [Remote Container extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)。 - -![VSCode extension](/img/vscode-install-remote-containers.png) - -## 获取 Zealot Codespace - -Zealot Codespace 同样存放在 Zealot 项目 [.devcontailer](https://github.com/tryzealot/zealot/tree/develop/.devcontainer) 目录,你需要先克隆项目源代码。 - -```bash -git clone https://github.com/tryzealot/zealot.git -``` - -Codespace 包含了一系列文件: - -文件名 | 说明 ----|--- -`devcontainer.json` | VSCode devcontainer 配置文件 -`Dockerfile.base` | 镜像核心,变更会自动推送到不同 registry 仓库 -`Dockerfile` | 间接镜像,主要是节省编译时间 -`docker-compose.yml` | 项目服务依赖 -`create-db-user.sql` | 用于初始化 Postgres 默认用户及权限 - -## 在容器内打开项目 - -打开 Visual Studio Code 应用后在 [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) 输入 `Dev Containers: Open Folder in Container...` 回车选择刚克隆下来的 Zealot 项目目录。 - -![VSCode Command Palette](/img/vscode-command-palette.png) - -首次执行会拉取 Zealot Codespace 镜像并开始构建,过程会持续一段时间期间可点击 **Starting Dev Container (show log)** 查看构建实时日志。 - -![VSCode Command Palette](/img/vscode-devcontainer-log.png) - -构建完成并启动完毕会加载项目文件和 zsh 终端,通过日志可以看到如下信息: - -``` -[7293 ms] Start: Run in container: cat /proc/344/environ -[9836 ms] Port forwarding connection from 53148 > 43379 > 43379 in the container. -[9836 ms] Start: Run in container: /home/vscode/.vscode-server/bin/5235c6bb189b60b01b1f49062f4ffa42384f8c91/node -e -[9981 ms] Port forwarding 53148 > 43379 > 43379 stderr: Connection established -[14988 ms] Port forwarding 53148 > 43379 > 43379 stderr: Remote close -[14999 ms] Port forwarding 53148 > 43379 > 43379 terminated with code 0 and signal null. -[29221 ms] Port forwarding 53148 > 43379 > 43379: Local close -``` - -在宿主机也能看到 Docker 启动了 docker-compose 在运行: - -![Docker-Compose containers](/img/vscode-devcontainer-docker-containers.png) - -## 启动项目 - -如果没有打开 VSCode 内置终端可以通过快捷键 `` Ctrl + ` `` 打开,新打开一个终端运行 `bin/dev` 可运行 Zealot 依赖的所有服务。 - -![VSCode Zealot in Container](/img/vscode-devcontainer-zealot.png) - -## 浏览器访问服务 - -在运行 `bin/dev` 一会后你会在右下角窗口看到 **Open in Browser** 窗口点击可打开 Zealot 网页服务。同样也可以通过终端区域顶部 **Ports** 选项查看可转发端口的服务,点击浏览器图标会把容器的端口转发并绑定到本地随机断开后上面访问。 - -![VSCode forwarded ports](/img/vscode-devcontainer-forwarded-ports.png) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/contributing-guide/local-development/source-code.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/contributing-guide/local-development/source-code.md deleted file mode 100644 index cc11bf73e..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/contributing-guide/local-development/source-code.md +++ /dev/null @@ -1,262 +0,0 @@ ---- -sidebar_label: "源代码" ---- - -# 源码部署 Zealot 指南 - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -``` - -如下整理了不同操作系统的本地部署开发教程。 - -## 准备部署环境 - -### macOS - -#### 安装 homebrew - -首先需要安装 Xcode Command tools: - -```bash -$ xcode-select --install -``` - -如果提示安装失败,需要从 https://developer.apple.com/downloads 下载安装。 - -之后安装 macOS 的包管理工具 Homebrew - -```bash -$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" -``` - -#### 安装依赖 - -之后开始安装环境依赖 - -```bash -$ brew install redis postgresql webp imagemagick node git -``` - -M1 用户需要设置依赖编译路径到 SHELL 的配置文件中: - -```bash -export CPATH=/opt/homebrew/include/ -export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/lib/ -``` - -#### 配置 Postgres 和 Redis - -运行 postgresql 和 redis 服务 - -```bash -$ brew services start postgresql -$ brew services start redis -``` - -Postgresql 还需要创建默认用户名: - -```bash -$ createuser --superuser zealot - -# 如果担心权限过高可以只开启创建数据库权限 -$ createuser --createdb zealot -``` - -#### yarn - -```bash -$ npm install -g yarn -``` - -运行起来后使用浏览器访问 `http://localhost:3000` - -#### 疑难杂症 - -##### M1 芯片 MacOS 问题 - -``` -aarch64-darwin/libwebp_ffi.bundle => aarch64-darwin/jpegdec.o -``` - -使用 `bundle install` 会遇到如上问题这个是因为 homebrew 安装 webp 依赖之后编译路径无法被找到,上面有解决办法。 - -### Debian (Ubuntu) - -#### 安装环境依赖 - -```bash -$ apt update -$ apt install -y libssl-dev tar tzdata git imagemagick libjpeg-dev libpng-dev libtiff-dev libwebp-dev -``` - -#### 安装依赖 - -```bash -$ apt install -y redis postgresql-client node -``` - -#### 配置 Postgres 和 Redis - -运行 postgresql 和 redis 服务 - -```bash -$ systemctl postgres start -$ systemctl redis start -``` - -Postgresql 还需要创建默认用户名: - -```bash -$ initdb -D /var/lib/postgresql/data -$ createuser --superuser zealot - -# If you are worried about the high privilege, you can only enable the create database privilege -$ createuser --createdb zealot -``` - -#### node - -```bash -$ npm install -g yarn -``` - -### Alpine Linux - -#### 安装环境依赖 - -```bash -$ apk --update --no-cache add build-base libxml2 libxslt git \ - libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev \ - tzdata -``` - -如果是在 `arm` 架构安装还需要额外安装 `gcompat` glib 兼容层,否则会报 "[Error loading shared library](https://nokogiri.org/tutorials/installing_nokogiri.html#linux-musl-error-loading-shared-library)" 异常错误。 - -#### 安装依赖 - -```bash -$ apk --update --no-cache redis postgresql node -``` - -#### 配置 Postgres 和 Redis - -运行 postgresql 和 redis 服务 - -```bash -$ rc-service postgres start -$ rc-service redis start -``` - -Postgresql 还需要创建默认用户名: - -```bash -$ initdb -D /var/lib/postgresql/data -$ createuser --superuser zealot - -# 如果担心数据库用户权限,可仅开启创建数据库权限 -$ createuser --createdb zealot -``` - -#### yarn - -```bash -$ npm install -g yarn -``` - -## 安装 Ruby - -可以通过 asdf、rvm 任意一种方式安装。 - -```mdx-code-block - - -``` - -一个支持主流开发语言版本切换的工具,请按照[官方安装教程](http://asdf-vm.com/guide/getting-started.html)好之后安装 ruby: - -```bash -# 开启 Ruby 3.2.0 YJIT 新特性需要安装 Rust 1.58+ -# 可选安装: -asdf plugin add rust -asdf install rust latest -asdf global rust latest -export RUBY_CONFIGURE_OPTS=--enable-yjit - -# 必须安装 -asdf plugin add ruby -asdf install ruby 3.2.0 -asdf global ruby 3.2.0 -``` - -```mdx-code-block - - -``` - -如下命令是先安装 rvm 到当前系统的用户后安装 Ruby 3.0 版本: - -```bash -$ curl -sSL https://get.rvm.io | bash -s stable -$ rvm install 3.2.0 --disable-binary -``` - -```mdx-code-block - - -``` - -## 克隆源代码 - -```bash -git clone https://github.com/tryzealot/zealot.git -``` - -## 初始化 - -以下步骤均需要在 zealot 根目录执行。 - -### bundler - -安装 Ruby gems 第三方类库 - -```bash -$ [sudo] gem install bundler -$ bundle install -``` - -### yarn - -安装前端第三方类库 - -```bash -$ yarn install -``` - -### 初始化数据库 - -确保连接数据库信息没有问题,后将会创建数据库表并创建表结构 - -```bash -$ rails db:create -$ rails db:migrate -``` - -配置数据库连接参数可通过[环境变量](/docs/self-hosted/configuration/environment-variables)或更改 `config/database.yml` 文件。 - -### 初始化预制数据 - -初始化管理员账号和应用样例 - -```bash -$ rails db:seed -``` - -### 运行 Zealot 服务 - -```bash -$ bin/dev -``` - -打开浏览器访问 `http://localhost:3000` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/api.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/api.md deleted file mode 100644 index fdc0d6eb5..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/api.md +++ /dev/null @@ -1,42 +0,0 @@ -# APIs - -Zealot 提供提供 REST APIs 接口服务可用于自定义的查看 App 信息或者上传、下载 App。 - -## 接口认证 {#authentication} - -接口请求目前仅支持 User Token 的 query 认证,在登录用户的详情页面最下面 `API - 密钥` 找到。 -> example : `https://YOUR_ZEALOT_URL/api?token=YOUR_TOKEN` - -## 接口版本 - -当前是 `v1` 版本,接口无需显性传递版本参数,另外 GraphGL 接口也在逐步开发中后续会考虑两个版本同时存在。 - -## 接口列表 - -目前可用的 API 接口基本满足打包和下载流程的范围: - -- [应用](#应用接口) -- [调试文件](#调试文件接口) - -### 应用接口 - -定义 | 地址 ----|--- -上传应用 | `/api/apps/upload` -应用列表 | `/api/apps` -应用详情 | `/api/apps/:id` -应用版本列表 | `/api/apps/versions` -应用最新版本 | `/api/apps/latest` -检查当前版本 | `/api/apps/version_exist` - -### 调试文件接口 - -定义 | 地址 ----|--- -上传调试文件 | `/api/debug_files/upload` -下载调试文件 | `/api/debug_files/download` -调试文件列表 | `/api/debug_files` -调试文件详情 | `/api/debug_files/:id` -检查调试文件是否存在 | `/api/debug_files/version_exist` -更新调试文件 | `/api/debug_files/:id` -删除调试文件 | `/api/debug_files/:id` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/api/apps.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/api/apps.md deleted file mode 100644 index 5e1a0957c..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/api/apps.md +++ /dev/null @@ -1,410 +0,0 @@ ---- -sidebar_label: "应用" ---- - -# 应用接口 - -## 上传应用 - -上传应用,仅支持 iOS, Android 和 macOS 类型。 - -``` -POST /api/apps/upload -``` - -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| file | `File` | true | 应用本地路径的内容 | -| channel_key | `String` | false | 应用具体渠道的 Key,没有传此参数会字段创建对于的应用、类型和渠道 | -| name | `String` | false | 应用名称,为空时取 App 的信息 | -| release_type | `String` | false | 应用类型,比如 debug, beta, adhoc, release, enterprise 等 | -| source | `String` | false | 上传渠道名称,默认是 api | -| changelog | `String` | false | 变更日志,接受纯文本或 JSON 格式化的数据 | -| branch | `String` |false|上传应用时的git branch名称| -| git_commit | `String` | false | 上传应用时的 git commit hash | -| ci_url | `String` | false | CI 项目构建地址 | -| custom_fields | `String` | false | 这是一个用 JSON 字符串定义的自定义字段,
可配置名称,值以及 fontawesome 图标用于在页面详情展示 | - -For `changelog` attribute which it accepts both `plain text` and `JSON` formatted contents: - -**plain text**: - -``` -message 1\nmessage 2 -``` - -**JSON**: - -``` -[ - { - "message": "message 1", - "author": "admin", - "email": "admin@zealot.com", - "date": "2021-11-11 11:11:11" - }, - { - "message": "message 1", - "author": "developer", - "email": "developer@zealot.com", - "date": "2021-11-11 11:11:11" - } -] -``` - -对于 `custom_fields` 的用法,它是一个使用 JSON 格式的以键值对为单位的数组,比如需要自定义国家 country=China 并配置图标为 fontawesome 的 [flag](https://fontawesome.com/v5.15/icons/flag?style=solid) - -```diff -curl -X POST \ - 'https://YOUR_ZEALOT_URL/api/apps/upload' \ - --form 'token="token"' \ - --form 'channel_key="channel_key"' \ -+ --form 'custom_fields="[{"name":"country","value":"China","icon":"fas fa-flag"}]"' \ - --form 'file=@/path/to/your/app' -``` - -#### 返回样例 - -```json -{ - "id": 50, - "version": 7, - "app_name": "Test Android", - "bundle_id": "com.test.app", - "release_version": "1.0", - "build_version": "1", - "source": "SOURCE", - "branch": "master", - "git_commit": "e9de48513dbb6abfbxxxxxxxxxxxxxxxxxxxxxxxx", - "ci_url": "", - "size": 1565486, - "icon_url": "/uploads/apps/a1/r1/icons/app_icon.png", - "release_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1", - "install_url": "https://YOUR_ZEALOT_URL/download/releases/1", - "qrcode_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1/qrcode?size=thumb", - "changelog": [ - { - "message": "Changelog message 1" - }, - { - "message": "Changelog message 2" - } - ], - "text_changelog": "- Changelog message 1\n- Changelog message 2", - "custom_fields": [], - "created_at": "2021-09-01T11:43:33.977+08:00", - "app": { - "id": 1, - "name": "App name" - }, - "scheme": { - "id": 8, - "name": "Test" - }, - "channel": { - "slug": "1XmpC", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - } -} -``` - -## 应用列表 - -获取创建的应用列表,支持分页 - -``` -GET /api/apps -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| page | `Integer` | false | 页数| -| per_page | `Integer` | false | 每页返回最大数目 | - -### 返回样例 - -```json -[ - { - "id": 1, - "name": "Zealot", - "schemes": [ - { - "id": 1, - "name": "测试版", - "channels": [ - { - "slug": "X1IXN", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "O1qHk", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - }, - { - "id": 2, - "name": "内测版", - "channels": [ - { - "slug": "l19Tl", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "8selv", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - } - ] - } -] -``` - -## 应用详情 - -查看应用的明细:应用类型、渠道等信息 - -``` -GET /api/apps/:id -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| id | `Integer` | true | 应用 ID | - -### 返回样例 - -```json -{ - "id": 1, - "name": "Zealot", - "schemes": [ - { - "id": 5, - "name": "测试版", - "channels": [ - { - "slug": "X1IXN", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "O1qHk", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - } - ] -} -``` - -## 应用版本列表 - -获取应用已上传的版本列表,按照上传时间倒序排列 - -``` -GET /api/apps/versions -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| page | `Integer` | false | 页数| -| per_page | `Integer` | false | 每页返回最大数目 | - -### 返回样例 - -```json -{ - "app_name": "Zealot iOS 测试版", - "bundle_id": "*", - "git_url": null, - "app": { - "id": 3, - "name": "Zealot" - }, - "scheme": { - "id": 5, - "name": "测试版" - }, - "releases": [ - { - "version": 2, - "app_name": "Zealot iOS 测试版", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10292024", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - }, - { - "version": 1, - "app_name": "Zealot iOS 测试版", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - }, - ] -} -``` - -## 应用最新版本 - -获取指定应用的最新版本信息 - -``` -GET /api/apps/latest -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| release_version | `String` | true | 应用的发布版本 | -| build_version | `String` | true | 应用的构建版本 | - -### 返回样例 - -```json -{ - "app_name": "Zealot iOS 测试版", - "bundle_id": "*", - "git_url": null, - "app": { - "id": 3, - "name": "Zealot" - }, - "scheme": { - "id": 5, - "name": "测试版" - }, - "releases": { - "version": 1, - "app_name": "Zealot iOS 测试版", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - } -} -``` - -## 检查当前版本是否存在 - -使用 bundle_id、release_version、build_verion 或 bundle_id、git_commit 组合检查当前版本是否存在 - -``` -GET /api/apps/version_exist -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| bundle_id | `String` | true | 应用的包名,iOS 取 bundle_id,Android 取 package_name | -| release_version | `String` | false | 应用的发布版本 | -| build_version | `String` | false | 应用的构建版本 | -| git_commit | `String` | false | 上传应用时的 git commit hash | - -### 返回样例 - -- 版本存在返回 200 状态码并返回版本的信息 -- 版本不存在返回 404 状态码和错误信息 - -版本存在的返回信息 - -```json -{ - "version": 1, - "app_name": "好好住 iOS 测试版", - "bundle_id": "com.haohaozhu.hhz", - "release_version": "4.1.1", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" -} -``` - -版本不存在的返回信息: - -```json -{ - "error": "应用版本不存在" -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/api/debug_files.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/api/debug_files.md deleted file mode 100644 index 317c395b2..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/api/debug_files.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -sidebar_label: "调试文件" ---- - -# 调试文件接口 - -## 上传调试文件 - -上传 iOS 和 Android 的调试文件: - -- iOS: 使用 Zip 压缩后的 dSYM 文件 -- Android: 使用 Zip 压缩后包含 mapping.txt、R.txt 和 AndroidManifest.xml 的文件 - -``` -POST /api/debug_files/upload -``` - -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| file | `File` | true | Zip 压缩文件后的调试文件 | -| release_version | `String` | true | 发布版本号,iOS 类型可忽略该参数 | -| build_version | `String` | true | 内部版本号,iOS 类型可忽略该参数 | - -### 返回样例 - -```json -{ - "id": 1, - "app_name": "演示应用", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## 下载调试文件 - -下载 iOS 和 Android 的调试文件 - -``` -GET /api/debug_files/download -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| release_version | `String` | true | 发布版本号,iOS 类型可忽略该参数 | -| build_version | `String` | false | 内部版本号,iOS 类型可忽略该参数 | -| order | `String` | false | 获取最新的方式,可选值有:
`version` = 最新版本 和 `upload_date` = 最新上传时间
**仅限接受 release_version 值为 `latest` 有效** | - -### 返回样例 - -- 版本存在返回 200 状态码并返回 302 重定向到下载地址 -- 版本不存在返回 404 状态码和错误信息 - -## 调试文件列表 - -获取创建的应用列表,支持分页 - -``` -GET /api/debug_files -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| page | `Integer` | false | 页数 | -| per_page | `Integer` | false | 每页返回最大数目 | - -### 返回样例 - -```json -[ - { - "id": 1, - "app_name": "演示应用", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] - } -] -``` - -## 调试文件详情 - -查看调试文件的明细,包含上传调试文件的具体解析。 - -``` -GET /api/debug_files/:id -``` - -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| id | `Integer` | true | 调试文件 ID | - -### 返回样例 - -```json -{ - "id": 1, - "app_name": "演示应用", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## 更新调试文件 - -更新调试文件 - -``` -PUT /api/debug_files/:id -``` - -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| id | `Integer` | true | 调试文件 ID | -| file | `File` | true | Zip 压缩文件后的调试文件 | -| release_version | `String` | true | 发布版本号,iOS 类型可忽略该参数 | -| build_version | `String` | true | 内部版本号,iOS 类型可忽略该参数 | - -### 返回样例 - -```json -{ - "id": 1, - "app_name": "演示应用", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## 删除调试文件 - -删除指定调试文件 - -``` -DELETE /api/debug_files/:id -``` -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| id | `Integer` | true | 调试文件 ID | - -### 返回样例 - -```json -{ - "mesage": "OK" -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane.md deleted file mode 100644 index 75c380513..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane.md +++ /dev/null @@ -1,25 +0,0 @@ -# Fastlane 插件 - -:::info - -第一次听说 fastlane,那你得多 out 了?!快看看[开发者准备的 Fastlane 系列教程](https://icyleaf.com/series/fastlane)补补课吧。 - -::: - -## 添加 Zealot 插件 - -[fastlane-plugin-zealot](https://github.com/tryzealot/fastlane-plugin-zealot) 是专门为 Zealot 提供 -的上传 iOS、Andorid 应用和调试文件的 fastlane 插件。 - -通过下面方法添加到 fastlane 体系中: - -```bash -$ fastlane add_plugin zealot -``` - -插件包含多个 action: - -- `zealot`: 上传 iOS 或 Android 应用 -- `zealot_debug_file`: 上传调试文件(iOS 是 dSYM,Android 是 Proguard) -- `zealot_version_check`: 检查当前版本是否已存在 -- `zealot_sync_devices`: 同步 Apple 开发者账号的设备列表信息到 Zealot 用于关联 AdHoc 证书应用的设备名称 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot.md deleted file mode 100644 index 6ed857f37..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -sidebar_label: "zealot" ---- - -# Fastlane action: zealot - -上传 iOS 或 Android 应用,传入如下参数插件会在成功打包后自动获取 app 的路径并进行上传: - -```ruby -zealot( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', -) -``` - -## 参数 - -``` -+-----------------+---------------------------------+------------------------+----------+ -| zealot Options | -+-----------------+---------------------------------+------------------------+----------+ -| Key | Description | Env Var | Default | -+-----------------+---------------------------------+------------------------+----------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | The key of app's channel | ZEALOT_CHANNEL_KEY | | -| file | The path of app file. Optional | ZEALOT_FILE | | -| | if you use the `gym`, `ipa`, | | | -| | `xcodebuild` or `gradle` | | | -| | action. | | | -| name | The name of app to display on | ZEALOT_NAME | | -| | zealot | | | -| changelog | The changelog of app | ZEALOT_CHANGELOG | | -| slug | The slug of app | ZEALOT_SLUG | | -| release_type | The release type of app | ZEALOT_RELEASE_TYPE | | -| branch | The name of git branch | ZEALOT_BRANCH | | -| git_commit | The hash of git commit | ZEALOT_GIT_COMMIT | | -| custom_fields | The key-value hash of custom | ZEALOT_CUSTOM_FIELDS | | -| | fields | | | -| password | The password of app to download | ZEALOT_PASSWORD | | -| source | The name of upload source | ZEALOT_SOURCE | fastlane | -| ci_url | The name of upload source | ZEALOT_CI_CURL | | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| hide_user_token | replase user token to *** to | ZEALOT_HIDE_USER_TOKEN | true | -| | keep secret | | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error uploading app | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure | | | -+-----------------+---------------------------------+------------------------+----------+ -* = default value is dependent on the user's system - -+-----------------------+---------------------------------------------+ -| zealot Output Variables | -+-----------------------+---------------------------------------------+ -| Key | Description | -+-----------------------+---------------------------------------------+ -| ZEALOT_APP_ID | The id of app | -| ZEALOT_RELEASE_ID | The id of app's release | -| ZEALOT_RELEASE_URL | The release URL of the newly uploaded build | -| ZEALOT_INSTALL_URL | The install URL of the newly uploaded build | -| ZEALOT_QRCODE_URL | The QRCode URL of the newly uploaded build | -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+---------------------------------------------+ -``` - -## 环境变量 - -``` -+-----------------------+---------------------------------------------+ -| zealot Output Variables | -+-----------------------+---------------------------------------------+ -| Key | Description | -+-----------------------+---------------------------------------------+ -| ZEALOT_APP_ID | The id of app | -| ZEALOT_RELEASE_ID | The id of app's release | -| ZEALOT_RELEASE_URL | The release URL of the newly uploaded build | -| ZEALOT_INSTALL_URL | The install URL of the newly uploaded build | -| ZEALOT_QRCODE_URL | The QRCode URL of the newly uploaded build | -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+---------------------------------------------+ -Access the output values using `lane_context[SharedValues::VARIABLE_NAME]` -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot_debug_file.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot_debug_file.md deleted file mode 100644 index 083f64aad..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot_debug_file.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -sidebar_label: "zealot_debug_file" ---- - -# Fastlane action: zealot_debug_file - -上传 iOS 的 dSYM 或 Android 的 Proguard 调试文件到 Zealot - -```ruby - # 上传 iOS dSYM 调试文件 - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - platform: :ios, - xcode_scheme: 'AppName', - verify_ssl: false - ) - - # 上传 Android Proguard 调试文件 - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - platform: :android, - android_build_type: 'release', - android_flavor: 'store', - release_version: '1.1.0', - build_version: '1', - overwrite: true - ) - - # 上传指定 zip file 调试文件 - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - zip_file: 'path/to/your/zip_file', - release_version: '1.1.0', - build_version: '1', - verify_ssl: false - ) -``` - -## 参数 - -``` -+--------------------+-----------------------------------+---------------------------+---------+ -| zealot_debug_file Options | -+--------------------+-----------------------------------+---------------------------+---------+ -| Key | Description | Env Var | Default | -+--------------------+-----------------------------------+---------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | Any channel key of app | ZEALOT_CHANNEL_KEY | | -| zip_file | Using given the path of zip file | DF_DSYM_ZIP_FILE | | -| | to direct upload | | | -| platform | The name of platfrom, avaiable | ZEALOT_PLATFORM | | -| | value are | | | -| | ios,mac,macos,osx,android | | | -| path | The path of debug file | ZEALOT_PATH | | -| | (iOS/macOS is archive path for | | | -| | Xcode, Android is path for app | | | -| | project) | | | -| xcode_scheme | The scheme name of app | ZEALOT_XCODE_SCHEME | | -| android_build_type | The build type of app | ZEALOT_ANDROID_BUILD_TYPE | release | -| android_flavor | The product flavor of app | ZEALOT_ANDROID_FLAVOR | | -| extra_files | A set file names | ZEALOT_EXTRA_FILES | [] | -| output_path | The output path of compressed | DF_DSYM_OUTPUT_PATH | . | -| | dSYM file | | | -| release_version | The release version of app | ZEALOT_RELEASE_VERSION | | -| | (Android needs) | | | -| build_version | The build version of app | ZEALOT_BUILD_VERSION | | -| | (Android needs) | | | -| overwrite | Overwrite output compressed file | DF_DSYM_OVERWRITE | false | -| | if it existed | | | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error uploading app | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure? (true/false) | | | -+--------------------+-----------------------------------+---------------------------+---------+ -* = default value is dependent on the user's system - -+-----------------------+-----------------------------------------+ -| zealot_debug_file Output Variables | -+-----------------------+-----------------------------------------+ -| Key | Description | -+-----------------------+-----------------------------------------+ -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+-----------------------------------------+ -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot_sync_devices.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot_sync_devices.md deleted file mode 100644 index f3e1cee59..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot_sync_devices.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -sidebar_label: "zealot_sync_devices" ---- - -# Fastlane action: zealot_sync_devices - -:::info - -:bell: Zealot 4.5.0 版本已经支持使用 [Apple API Key](https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) - -苹果开发者管理并可自动同步测试设备展示,[查看详情](/docs/user-guide/administrator/apple-team) -::: - -同步并关联苹果开发者中心(Apple Developer Portal)的测试设备名称到 Zealot 服务。 - -```ruby -# 使用 Apple API Key 授权 -zealot_sync_devices( - endpoint: 'https://zealot.example.com', - token: '...', - api_key_path: '/path/to/your/api_key_json_file', - team_id: '...' -) - -# 使用密码授权(需要二步认证) -zealot_sync_devices( - endpoint: 'https://zealot.example.com', - token: '...', - username: 'user@example.com', - team_id: '...' -) -``` - -## 参数 - -``` -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| zealot_sync_devices Options | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| Key | Description | Env Var(s) | Default | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| username | The apple id (username) of Apple Developer Portal | ZEALOT_USERNAME | * | -| api_key_path | Path to your App Store Connect API Key JSON file | ZEALOT_API_PATH | | -| | (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key | | | -| | -json-file) | | | -| api_key | Your App Store Connect API Key information | ZEALOT_API_KEY | * | -| | (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key | | | -| | -hash-option) | | | -| team_id | The ID of your Developer Portal team if you're in multiple teams | ZEALOT_APPLE_TEAM_ID | * | -| team_name | The name of your Developer Portal team if you're in multiple teams | ZEALOT_APPLE_TEAM_NAME | * | -| platform | The platform to use (optional) | ZEALOT_APPLE_PLATFORM | ios | -| verify_ssl | Should verify SSL of zealot service | ZEALOT_VERIFY_SSL | true | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| fail_on_error | Should an error http request cause a failure? (true/false) | ZEALOT_FAIL_ON_ERROR | false | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot_version_check.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot_version_check.md deleted file mode 100644 index 59418736e..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/fastlane/zealot_version_check.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -sidebar_label: "zealot_version_check" ---- - -# Fastlane action: zealot_version_check - -检查当前版本是否已经上传,减少重复打包和上传。 - -```ruby -zealot_version_check( - endpoint: 'https://zealot.example.com', - token: '...', - bundle_id: 'com.example.app.name', - release_version: '1.0.0', - build_version: '1' -) -``` - -## 参数 - -``` -+-----------------+---------------------------------+------------------------+---------+ -| zealot_version_check Options | -+-----------------+---------------------------------+------------------------+---------+ -| Key | Description | Env Var | Default | -+-----------------+---------------------------------+------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | The key of app's channel | ZEALOT_CHANNEL_KEY | | -| bundle_id | The bundle id(package name) of | ZEALOT_BUNDLE_ID | | -| | app | | | -| release_version | The release version of app | ZEALOT_RELEASE_VERSION | | -| build_version | The build version of app | ZEALOT_BUILD_VERSION | | -| git_commit | The latest git commit of app | ZEALOT_GIT_COMMIT | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error http request | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure? (true/false) | | | -+-----------------+---------------------------------+------------------------+---------+ -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/index.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/index.md deleted file mode 100644 index 30cdd23db..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/index.md +++ /dev/null @@ -1,14 +0,0 @@ -# 开发者资源 - -Zealot 为开发者提供了丰富的组件,包括 iOS 和 Android 使用的 SDK,用于持久化构建自动化脚本 fastlane 插件等。 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/sdk/android.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/sdk/android.md deleted file mode 100644 index 2fd29bee5..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/sdk/android.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -sidebar_label: "Android" ---- - -# Zealot Android SDK - -Android 组件提供为 Zealot 检查新版本和安装的服务,支持 Kotlin 和 Java。 - -## 安装 - -### JitPack - -使用 [jitpack](https://jitpack.io) 安装,先需要添加 maven 仓库: - -```groovy -allprojects { - repositories { - ... - maven { url 'https://jitpack.io' } - } -} -``` - -之后在主 app 项目的 `build.gradle` 添加 zealot: - -```groovy -dependencies { - implementation 'com.github.tryzealot:zealot-android:master-SNAPSHOT' -} -``` - -## 用户权限 - -使用 Zealot SDK 需要开启网络权限 - -```xml - -``` - -## 初始化 - -在你的 `Application` 文件的 `onCreate` 方法添加启动代码: - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -``` - -```kotlin -// 单个渠道 -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("...") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch() - -// 多个渠道,比如测试版本,内测版本 -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("xxxxxxx", "beta") - .setCHannelKey("yyyyyyy", "test") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch() -``` - -```mdx-code-block - - -``` - -```kotlin -// 单个渠道 -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("...") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch(); - -// 多个渠道,比如测试版本,内测版本 -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("xxxxxxx", "beta") - .setCHannelKey("yyyyyyy", "test") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch(); -``` - -```mdx-code-block - - -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/sdk/ios.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/sdk/ios.md deleted file mode 100644 index 706e25a58..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/developer-guide/sdk/ios.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -sidebar_label: "iOS" ---- - -# Zealot iOS SDK -iOS 组件提供为 Zealot 检查新版本和安装的服务,支持 Swift 和 Objective-C。 - -## 安装 - -### Cocoapods - -使用 [Cocoapods](https://cocoapods.org) 安装 Zealot 需要把它加到 `Podfile`: - -```ruby -pod 'Zealot', :git => 'https://github.com/tryzealot/zealot-ios.git', :branch => 'master' -``` - -保存后开始安装: - -```bash -pod install -``` - -## 初始化 - -1. 在 AppDelegate 文件引入 Zealot 框架头: - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -``` - -```swift -import Zealot -``` - -```mdx-code-block - - -``` - -```objectivec -#import -``` - -```mdx-code-block - - -``` - -2. 接着在上面文件的 `application:didFinishLaunchingWithOptions:` 方法追加启动代码: - -```mdx-code-block - - -``` - -```swift -// 单个渠道 -let zealot = Zealot(endpoint: "https://zealot.example.com", channelKey: "...") -zealot.checkVersion() - -// 多个渠道,比如测试版本,内测版本 -let zealot = Zealot(endpoint: "https://zealot.example.com", - channelKeys: [ - "beta": "xxxxxxx", - "test": "yyyyyyy"], - default_enviroment: "beta") - -// 最后触发监测方法 -zealot.checkVersion() -``` - -```mdx-code-block - - -``` - -```objectivec -// 单个渠道 -Zealot *zealot = [[Zealot alloc] initWithEndpoint:@"https://zealot.example.com" - channelKey:@"..."]; - -// 多个渠道,比如测试版本,内测版本 -Zealot *zealot = [[Zealot alloc] initWithEndpoint:@"https://zealot.example.com" - channelKeys:@{ - @"beta": @"xxxxxxx", - @"gray": @"yyyyyyy" - } - default_enviroment:@"beta"]; - -// 最后触发监测方法 -[zealot checkVersion]; -``` - -```mdx-code-block - - -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/configuration/environment-variables.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/configuration/environment-variables.md deleted file mode 100644 index 79b4c8b0c..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/configuration/environment-variables.md +++ /dev/null @@ -1,135 +0,0 @@ -# 环境变量 - -## .env 文件 - -Zealot 可通过如下环境变量或使用项目根目录的 `.env` 文件配置系统参数,通过上述方式更改后需要重启服务才可生效。 - -## HTTPS 证书 - -**因苹果的硬性要求线上部署和下载服务强制 HTTPS**,因此再部署的时候下载应用会强制走 HTTPS 协议。 - -如果部署是单台机器的独立服务,建议开启 Let's Encrypt 免费 SSL 证书,只需要设置 - -```bash -ZEALOT_CERT_EMAIL=zealot@example.com -``` - -> 和下面自签名证书文件名二选一,不能同时设置 - -如果部署的机器只能使用自签名证书,则需要配置,但需要注意的是 iOS 的下载需要在 iOS 设备授权自签名的证书后才允许下载安装。(不推荐) - -```bash -ZEALOT_CERT=zealot.example.com.pem -ZEALOT_CERT_KEY=zealot.example.com-key.pem -``` - -> 和 Let's Encrypt 注册电子邮箱名二选一,不能同时设置 - -## 配置域名 (URL) - -必须配置否则下载应用和一些静态资源会无法正确访问到 - -```bash -# 域名配置,无需配置 http:// 或 https:// -ZEALOT_DOMAIN=zealot.example.com -``` - -## 配置数据库和缓存 - -假如你有可以复用的 postgresql 和 redis 服务也可以自定义配置使用,而无需使用 docker-compose 默认配置的服务。 - -### Postgresql - -```bash -ZEALOT_POSTGRES_HOST=127.0.0.1 -ZEALOT_POSTGRES_PORT=5432 -ZEALOT_POSTGRES_USERNAME=postgres -ZEALOT_POSTGRES_PASSWORD=ze@l0t -ZEALOT_POSTGRES_DB_NAME=zealot -``` - -### Redis - -兼容大多数云服务部署采用的 URL 连接方式 - -```bash -REDIS_URL=redis://user:pass@127.0.0.1:6379/0 - -# 基于 SSL 的 Redis -REDIS_URL=rediss://user:pass@127.0.0.1:6379/0 -``` - -## 配置网站默认语言 - -语言包 | 值 ----|--- -zh-CN | 简体中文 (默认) -en | 英文 - -```bash -DEFAULT_LOCALE=en -``` - -## 配置网站默认外观 - -外观 | 值 ----|--- -light | 浅色 (默认) -dark | 深色(黑暗模式) -auto | 随系统自动 - -```bash -ZEALOT_APPEARANCE=dark -``` - -## 配置管理员账户和密码 - -默认不配置如下也会生成下面的账户和密码作为管理员权限的账户,建议配置后重新修改密码。 - -```bash -ZEALOT_ADMIN_EMAIL=admin@zealot.com -ZEALOT_ADMIN_PASSWORD=ze@l0t -``` - -### 开启用户注册 - -关闭注册之后,管理员可以通过管理面板的用户管理手动添加用户。 - -```bash -# 开启注册 -ZEALOT_REGISTER_ENABLED=true - -# 关闭注册 -ZEALOT_REGISTER_ENABLED=false -``` - -### 开启游客模式 - -开启游客模式后允许应用的查看、下载和安装,建议公司内部对权限依赖不高的状况使用,具体权限对比可以[看这里查看详情](/docs/user-guide/administrator/permissions) - -```bash -# 开启游客模式 -ZEALOT_GUEST_MODE=true - -# 关闭游客模式 -ZEALOT_GUEST_MODE=false -``` - -## 邮件服务 - -目前仅支持 smtp 的方式配置邮件通知服务,邮件通知主要影响用户注册、发送激活邮件、更改密码服务,如果不开启也不影响使用,账户激活的链接也会在用户管理那边找到。 - -```bash -# 发送邮件配置 -SMTP_ADDRESS=smtp.gmail.com -SMTP_PORT=587 -SMTP_DOMAIN=gmail.com -SMTP_USERNAME=you@gmail.com -SMTP_PASSWORD=yourpassword -SMTP_AUTH_METHOD=plain -SMTP_ENABLE_STARTTLS_AUTO=true - -# 邮件默认收发人配置 -ACTION_MAILER_DEFAULT_FROM=you@gmail.com -ACTION_MAILER_DEFAULT_TO=you@gmail.com -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/configuration/schedule-jobs.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/configuration/schedule-jobs.md deleted file mode 100644 index 188a45ec8..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/configuration/schedule-jobs.md +++ /dev/null @@ -1,50 +0,0 @@ -# 定时任务 - -## 清理老版本 - -按照项目维护者长期的使用观察一个可靠的清理老版本的逻辑是时刻关注当前主版本的所有上传版本, -之前上传的历史版本只需要保留最后一个上传构建版本基本上就满足绝大数情况,举个例子: - -> 额外补充:当前逻辑相对省事但缺乏灵活度,其实有想过支持多种处理逻辑,具体参见 https://github.com/tryzealot/zealot/issues/376 - -``` -- 2.0 - - 3 - - 2 - - 1 -- 1.0.1 - - 10 - - 9 - - 8 - ... -- 1.0 - - 5 - - 4 - - 3 - ... -``` - -任务执行时会清理掉 1.0.1 版本包含 9 以下和 1.0 版本包含 4 以下所有版本,最终保留的版本文件是: - -``` -- 2.0 - - 3 - - 2 - - 1 -- 1.0.1 - - 10 -- 1.0 - - 5 -``` - -如果磁盘空间有限,可以通过设置环境变量 `ZEALOT_KEEP_UPLOADS=false` 来开启定时任务的清理。 - -:::info - -默认情况下 `ZEALOT_KEEP_UPLOADS` 是开启状态(`ture` ) 。 - -::: - -## 备份 - -当你通过管理员面板创建任何的备份计划都会加入到定时任务队列中。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/configuration/third-party-authentication.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/configuration/third-party-authentication.md deleted file mode 100644 index 561e05764..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/configuration/third-party-authentication.md +++ /dev/null @@ -1,108 +0,0 @@ -# 第三方登录 - -Zealot 支持使用已经支持的第三方服务授权登录,当前可以通过如下的环境变量或者在管理员面板的设置页面配置。 - -第三方服务 | 标识符 ----|--- -飞书 | `feishu` -Gitlab | `gitlab` -Google | `google_oauth2` -LDAP | `ldap` -OpenID Connect | `openid_connect` - -如果以上服务需要设置回调地址的话请统一设置为: - -``` -https://zealot.example.com/users/auth/:provider/callback -``` - -其中 `:provider` 是上面支持第三方服务的标识符,例如开启飞书那就把 `:provider` 替换成 `feishu`。 - -## 飞书 - -1. 去注册一个飞书账号并下载手机 App -1. 注册[飞书开发平台](https://open.feishu.cn/app/)并创建企业自建应用获得 app_id, app_secret -1. 填写 callback url 为 `https://zealot.example.com/users/auth/feishu/callback` (域名根据实际情况修改) -1. 添加用户字段信息授权:`email 地址` (可选) -1. 至少勾选一个应用方式并创建新版本后发布 - -```bash -FEISHU_ENABLED=true -FEISHU_APP_ID= -FEISHU_APP_SECRET= -``` - -## Gitlab - -1. 注册 Gitlab [官方](http://gitlab.com)账户或自部署 Gitlab 服务 -1. 在用户设置(Preferences) -> 应用(Applications) 创建一个新应用 -1. 回调地址(Redirect URI) 配置为 `https://zealot.example.com/users/auth/gitlab/callback` (域名根据实际情况修改) -1. 添加用户字段信息授权(scope):`read_user`,默认 zealot 仅用此授权,如果你的授权范围是 `api` 也没问题 - -```bash -GITLAB_ENABLED=true -GITLAB_SITE=https://gitlab.com/api/v4 -GITLAB_SCOPE=read_user -GITLAB_APP_ID= -GITLAB_SECRET= -``` - -## Google - -1. 注册 Google 账号 -1. 开通 [Google Cloud Platform](https://console.cloud.google.com/apis/dashboard) 服务 -1. 选择或创建 Project 并前往 Credentials -1. 创建 OAuth Client ID 选择 Web Application 后添加回调地址(Authorized redirect URI) 配置为 `https://zealot.example.com/users/auth/google_oauth2/callback` (域名根据实际情况修改) -1. 创建成功后获得 Client ID 和 Client Secret - -```bash -GOOGLE_OAUTH_ENABLED=true -GOOGLE_CLIENT_ID= -GOOGLE_SECRET= -``` - -## LDAP - -1. 自部署或使用现有的 LDAP 服务 -1. 自配置或查找如下参数的值 - -```bash -LDAP_ENABLED=true -LDAP_HOST=10.0.0.1 -LDAP_PORT=389 -LDAP_METHOD=plain -LDAP_BIND_DN="cn=Manager,dc=example,dc=com" -LDAP_PASSWORD=password -LDAP_BASE="ou=People,dc=example,dc=com" -LDAP_UID=uid -``` - -## OpenID Connect - -支持开启自动发现模式和手动设置两种方式 - -### 自动发现 - -开启自动发现模式会自动获取 `[OIDC_ISSUER_URL]/.well-known/openid-configuration` 配置。 - -```bash -OIDC_ENABLED=true -OIDC_CLIENT_ID= -OIDC_CLIENT_SECRET= -OIDC_ISSUER_URL=https://oidc.example.com -OIDC_DISCOVERY=true -``` - -### 手动配置 - -``` -OIDC_ENABLED=true -OIDC_CLIENT_ID= -OIDC_CLIENT_SECRET= -OIDC_ISSUER_URL=https://oidc.example.com -OIDC_AUTH_URI=/authorize -OIDC_TOKEN_URI=/token -OIDC_USERINFO_URI=/userinfo -``` - -以上 `OIDC_AUTH_URI`,`OIDC_TOKEN_URI`,`OIDC_USERINFO_URI` 未设置时会使用如上的默认路径。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/architecture.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/architecture.mdx deleted file mode 100644 index 90c3339ef..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/architecture.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_label: "服务架构" ---- - -# Zealot 服务架构 - -运行 Zealot 依赖如下服务才能保证正常运行 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - - - -- 使用 amd86/arm64/armv7 运行的主流 Linux 系统 -- Ruby on Rails 提供核心网页和 API 服务 -- Sidekiq 提供后台的异步任务管理服务 -- PostgreSQL 数据库服务 -- Redis 缓存服务 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/docker.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/docker.md deleted file mode 100644 index f91734c9c..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/docker.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -sidebar_label: "Docker" ---- - -# Docker 部署 Zealot 指南 - -> :bell: 强烈建议安装首选使用 [Docker](https://www.docker.io/) 容器方式安装部署 Zealot。 -> 鉴于 iOS 使用下载服务依赖开启 SSL/TLS 证书,建议使用经过授权的证书服务,比如 [Let's Encrypt](https://letsencrypt.org/), -> 如果使用自签名证书需要每个 iOS 设备在下载安装应用前[必须安装自签名证书](https://support.apple.com/zh-cn/HT204477)才行。 - -## 一键安装脚本 - -> 对于一键安装部署脚本感兴趣的可以查看 [Docker 手把手部署文档](/docs/self-hosted/deployment/docker/step-by-step)。 - -本着一键安装的原则,可是现实往往是残酷的,Zealot 配置都是依托于 ENV 环境变量,需要配置好之后再执行一键部署生成脚本。 -首先需要克隆[官方 Zealot 部署工具](https://github.com/tryzealot/zealot-docker.git),进入 `zealot-docker` -目录后需要打开 `example.env` 文件配置必要的参数后可直接执行 `./deploy.sh` 脚本: - -:::tip - -默认会生成管理员账号:`admin@zealot.com` 和密码 `ze@l0t` 和一些演示应用。 - -::: - -```bash -$ git clone https://github.com/tryzealot/zealot-docker.git -$ cd zealot-docker -$ ./deploy -``` - -一键部署生成脚本默认内置了下面三种模板配置 SSL 证书: - -## 配置 SSL 证书 - -### Let's Encrypt - -:::info - -**免费且自动续签 SSL 证书,新手使用的最佳选择** - -::: - -**第一步**:执行部署脚本: - -```bash -$ ./deploy -``` - -**第二步**:检查和配置 `.env` 文件,主要是 `ZEALOT_DOMAIN` 和 `ZEALOT_CERT_EMAIL` 是否填写正确, -其他部分可根据实际情况做对应的配置调整 - -**第三步**:运行 Zealot 服务: - -```bash -$ docker-compose up -d -``` - -### 反向代理托管 SSL 证书 - -配置说明迁移值[反向代理指南](/docs/self-hosted/reverse-proxies),里面包含了更多的服务配置。 - -### 自签名 SSL 证书 - -:::caution - -在条件满足其他情况下绝对不推荐此方案,iOS 设备对使用自签名证书的任何 Web 服务**必须在其设备上手动安装自签名证书后才能正常安装应用**。 - -::: - -如果域名是非注册域名则需要绑 host 才可以访问,通常是修改系统的 `/etc/hosts` 文件。 - -```bash -$ sudo vim /etc/hosts - -127.0.0.1 zealot.example.com -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/docker/step-by-step.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/docker/step-by-step.md deleted file mode 100644 index 318daa3a3..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/docker/step-by-step.md +++ /dev/null @@ -1,242 +0,0 @@ ---- -sidebar_label: "详细步骤" ---- - -# Docker 手把手部署文档 - -这是一篇手把手来指导使用 Docker 部署文档,同时也是解释[Docker 部署 Zealot 指南](/docs/self-hosted/deployment/docker)的分解 - -## 版本列表 - -- 稳定版本 - 5.2.3/latest - `ghcr.io/tryzealot/zealot:latest` -- 测试版本 - develop - `ghcr.io/tryzealot/zealot:nightly` - 基于 develop 分支每次提交构建的版本 - -## 镜像仓库 - -- Docker Container Registry: https://hub.docker.com/r/tryzealot/zealot/ -- Github Container Registry: https://github.com/tryzealot/zealot/pkgs/container/zealot (**推荐**) - -## 步骤解析 - -### 安装 Docker - -按照[官方教程](https://get.docker.com/)安装 - -### 安装 Docker-Compose - -按照[官方教程](https://docs.docker.com/compose/install/)安装 - -### 生成 .env 配置文件 - -从预先 `config.env` 配置文件复制一份部署使用的配置文件 - -### 配置域名 - -二次校验如果没有配置会再提醒 - -### 配置证书 - -部署脚本提供三种方式,就算使用最后一种生成的也是 https 的协议头 - -- 使用 Let's Encrypt 证书 -- 使用自签名证书 -- 纯 Zealot 服务(需反代网关或负载均衡生成 SSL 证书) - -### 生成 docker-compose.yml - -配置文件会生成至少三个服务(service),使用上面前两个证书方式会额外增加一个服务: - -- `zealot-zealot`: 核心 Web 和 API 服务 -- `zealot-postgres`: 数据库服务 -- `zealot-redis`: 缓存服务 -- `zealot-web`: 提供(服务和证书)反代的网关服务,非必需 - -### 创建持久化存储的 docker volumes - -存储持久化数据 - -- `zealot-uploads`: 上传应用和解析后的应用图标、上传的调试文件 -- `zealot-backup`: 备份计划生成备份文件 -- `zealot-postgres`: 数据库数据 -- `zealot-redis`: 缓存数据 - -### 拉取(更新)镜像 - -第一次使用会自动从容器镜像服务网站下载镜像,后续是更新操作,通常只会更新 zealot 镜像。其他几个依赖服务镜像都是固定版本号 - -```bash -docker-compose pull -``` - -### 设置数据库数据 - -第一次使用会初始化数据库、加载范例应用数据和设置管理员账号,后续这是因 zealot 更新需要的操作 - -```bash -docker-compose run --rm zealot run_upgrade -``` - -### 运行 docker-compose - -为了安全期间和用户的自定义操作需要手动执行来运行服务: - -```bash -docker-compose up -d -``` - -## 高级配置 - -### 自定义 volume 路径 - -自定义路径有两种方法: (假设自定义的路径是 `/data/zealot`) - -#### 1. 创建 volume 自定义路径 - -```sh -docker volume create --name zealot-data \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/zealot-data - -docker volume create --name zealot-redis \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/redis - -docker volume create --name zealot-postgres \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/postgres -``` - -#### 2. 修改 docker-compose 的 volumes 部分 - -打开 `docker-compose.yml` 拉到最底部找到 `volumes:` 开头的部分,修改为如下内容: - -```yaml -volumes: - zealot-data: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/data - zealot-redis: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/redis - - zealot-postgres: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/postgres -``` - -## 完整范例 - -```yaml -version: "3.8" - -x-restart-policy: &restart_policy - restart: unless-stopped - -x-defaults: &defaults - <<: *restart_policy - image: ghcr.io/tryzealot/zealot:nightly - depends_on: - - redis - - postgres - env_file: .env - volumes: - - zealot-uploads:/app/public/uploads - - zealot-backup:/app/public/backup - - ./log:/app/log # 持久化日志文件,可选 - healthcheck: - test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost/health || exit 1"] - -services: - redis: - <<: *restart_policy - image: redis:7-alpine - command: redis-server - volumes: - - zealot-redis:/data - healthcheck: - test: ["CMD", "redis-cli", "ping"] - postgres: - <<: *restart_policy - image: postgres:14-alpine - volumes: - - zealot-postgres:/var/lib/postgresql/data - environment: - POSTGRES_PASSWORD: ze@l0t - healthcheck: - test: ["CMD", "pg_isready", "-U", "postgres"] - zealot: - <<: *defaults - # 无需反代可开启端口映射,与下面 web 反代服务互斥 - ports: - - "80:80" - # 可选:使用反代托管 SSL 证书和服务 - web: - image: caddy:2-alpine - ports: - - "80:80" - - "443:443" - volumes: - - ./caddy/etc/caddy/Caddyfile:/etc/caddy/Caddyfile:ro - - ./caddy/etc/caddy/certs:/etc/caddy/certs:ro - env_file: .env - environment: - ACME_AGREE: "true" - - -# 持久化有三种方式: -volumes: - # 1. docker compose 内部自动生成 volumes - - zealot-uploads - - zealot-backup - - zealot-redis - - zealot-postgres - - # 2. docker compose 外部创建的 volumes - zealot-uploads: - external: true - zealot-backup: - external: true - zealot-redis: - external: true - zealot-postgres: - external: true - - - # 3. 挂载自定义本地路径 - zealot-uploads: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/zealot/uploads - zealot-backup: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/zealot/backup - zealot-redis: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/redis - zealot-postgres: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/postgres -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/fly.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/fly.md deleted file mode 100644 index 8413f6b5a..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/fly.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -sidebar_label: "Fly" ---- - -# 部署 Zealot 到 Fly 指南 - -Zealot 支持 [fly.io](https://fly.io) 官方的应用配置格式(fly.toml)。 - -## 部署步骤 - -- 预先安装 [flyctl](https://fly.io/docs/flyctl/) 命令行工具。 -- 复制下面[配置文件](#配置文件) 保存为 `fly.toml` 文件放在项目根目录,根据创建的 fly app 项目修改 app 的值。 -- 运行 `flyctl deploy` 开始构建和部署工作。 -- 运行 `fly scale vm shared-cpu-1x --memory 512` 来达到 Zealot 可允许的内存环境,默认免费的 256M 内存实际只有 205M,Zealot 运行起来闲置状态会 190M 到会提示 OOM 内存溢出。 - -### 配置文件 - -```toml -app = "[app-name:changeme]" -kill_signal = "SIGINT" -kill_timeout = 120 -processes = [] - -[build] - image = "ghcr.io/tryzealot/zealot:nightly" - -[experimental] - allowed_public_ports = [] - auto_rollback = true - -[[services]] - http_checks = [] - internal_port = 80 - processes = ["app"] - protocol = "tcp" - script_checks = [] - [services.concurrency] - hard_limit = 25 - soft_limit = 20 - type = "connections" - - [[services.ports]] - force_https = true - handlers = ["http"] - port = 80 - - [[services.ports]] - handlers = ["tls", "http"] - port = 443 - - [[services.tcp_checks]] - grace_period = "1s" - interval = "15s" - restart_limit = 0 - timeout = "2s" - -[[statics]] - guest_path = "/app/public" - url_prefix = "/" -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/kubernetes.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/kubernetes.md deleted file mode 100644 index 71a558d7a..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/kubernetes.md +++ /dev/null @@ -1,198 +0,0 @@ ---- -sidebar_label: "Kubernetes" ---- - -# Kubernetes 部署 Zealot 指南 - -Zealot 原生支持使用 Kubernetes 部署,不过一直还没有梳理 `.yaml` 配置文件用于安装。 - -## 部署清单 - -- 生成 `Secret`/`Configmap` 存储环境变量。 -- 生成 `PersistentVolumeClaim` 用于 `public/uploads`, `public/bakcup` 的持久化存储。 -- 生成 `Deployment` 来管理 `zealot` Pod。 -- 生成 `Ingress` 配置 Zealot 路由访问。 - -## 详细步骤 - -### 10-zealot-namespace.yml - -创建 Zealot 命名空间。 - -```yaml title="10-zealot-namespace.yml" -api Version: v1 -kind: Namespace -metadata: -name: zealot -``` - -### 20-zealot-secrets.yml - -配置 Zealot 涉及隐私数据的[环境变量](/docs/self-hosted/configuration/environment-variables),值是需要经过 base64 加密。 - -```yaml title="20-zealot-secrets.yml" -apiVersion: v1 -kind: Secret -metadata: - namespace: zealot - name: zealot-secrets -data: - ZEALOT_ADMIN_EMAIL: V1ZkU2RHRlhOVUZsYlZab1lrYzVNRXh0VG5aaVVUMDk= - ZEALOT_ADMIN_PASSWORD: emVAbDB0 - ZEALOT_POSTGRES_HOST: cG9zdGdyZXM= - ZEALOT_POSTGRES_PORT: NTQzMg== - ZEALOT_POSTGRES_USERNAME: emVhbG90 - ZEALOT_POSTGRES_PASSWORD: emVAbDB0 - ZEALOT_POSTGRES_DB_NAME: emVhbG90 - REDIS_URL: cmVkaXM6Ly9yZWRpczo2Mzc5LzE= - - # echo -n 'secret-key' | sha256sum | awk '{ printf $1 }' | base64 - SECRET_TOKEN: ODVkYmUxNWQ3NWVmOTMwOGM3YWUwZjMzYzdhMzI0Y2M2ZjRiZjUxOWEyZWQyZjMwMjdiZDMzYzE0MGE0ZjlhYQ== -``` - -### 21-zealot-configmap.yml - -配置 Zealot 正常数据的[环境变量](/docs/self-hosted/configuration/environment-variables)。 - -```yaml title="21-zealot-configmap.yml" -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: zealot - name: zealot-config -data: - ZEALOT_DOMAIN: zealot.example.com - DEFAULT_LOCALE: en - ZEALOT_REGISTER_ENABLED: "true" -``` - -### 30-zealot-storage.yml - -为上传文件(应用包和调试文件)以及备份文件创建持久化存储卷。你可能需要根据实际情况修改存储大小。 - -```yaml title="30-zealot-storage.yml" -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: zealot-uploads - namespace: zealot - labels: - app: zealot -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: zealot-backup - namespace: zealot - labels: - app: zealot -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi -``` - -### 40-zealot-deployment.yml - -创建 Zealot 部署,根据实际情况修改 `replicas` 扩容值和 `image` 镜像 tag。 - -```yaml title="40-zealot-deployment.yml" -apiVersion: apps/v1 -kind: Deployment -metadata: - name: zealot - namespace: zealot -spec: - restartPolicy: Always - replicas: 1 - selector: - matchLabels: - app: zealot - template: - metadata: - labels: - app: zealot - spec: - containers: - - name: zealot - image: ghcr.io/tryzealot/zealot:nightly - # imagePullPolicy: Always - ports: - - containerPort: 80 - protocol: TCP - name: http - envFrom: - - configMapRef: - name: zealot-env - - secretRef: - name: zealot-secrets - volumeMounts: - - mountPath: /app/public/uploads - name: uploads - - mountPath: /app/public/backup - name: backup - volumes: - - name: uploads - persistentVolumeClaim: - claimName: zealot-uploads - - name: backup - persistentVolumeClaim: - claimName: zealot-backup -``` - -### 50-zealot-service.yml - -创建 zealot 服务。 - -```yaml title="50-zealot-service.yml" -apiVersion: v1 -kind: Service -metadata: - name: zealot - namespace: zealot - labels: - app: zealot -spec: - selector: - app: zealot - ports: - - port: 80 - targetPort: http - name: http - protocol: TCP -``` - -### 60-zealot-ingress.yml - -为 Zealot 服务设置 ingress。 - -```yaml title="50-zealot-ingress.yml" -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: zealot - namespace: zealot - annotations: - #cert-manager.io/cluster-issuer: letsencrypt-prod - #kubernetes.io/ingress.class: nginx -spec: - rules: - - host: zealot.example.com - http: - paths: - - web: - service: - name: zealot - port: - number: 80 - path: / - pathType: Prefix -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/nomad.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/nomad.md deleted file mode 100644 index 509547fad..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/nomad.md +++ /dev/null @@ -1,238 +0,0 @@ ---- -sidebar_label: "Nomad" ---- - -# Nomad 部署 Zealot 指南 - -Zealot 原生支持使用 [Nomad](https://www.nomadproject.io/) 部署。这得益于 Nomad 有很不错的插件机制,官方默认支持 Docker 插件。 -在配置上接近于 docker compose 的配置,只不过它的配置语言是 [HCL](https://developer.hashicorp.com/nomad/docs/job-specification/hcl2) 而不是 YAML。 - -## 基本部署 - -### 使用 Nomad 部署 - -先按照官方教程依次安装好 [nomad](https://developer.hashicorp.com/nomad/docs/install),这个二进制文件是包含了客户端和服务端。 -不了解的建议跟着[官方教程](https://developer.hashicorp.com/nomad/tutorials/get-started)演练一遍。 - -下面文件将会创建 postgres、redis 和 zealot 三个服务,对于已有的外部数据库和缓存服务,可以删除掉对应的 `port`, `service` 和 `task` 后编辑 `zealot` task 里面的模板变量。 - -```hcl title="zealot.nomad" -job "zealot" { - type = "service" - datacenters = "dc1" // 根据实际情况修改 - - update { - max_parallel = 1 - min_healthy_time = "30s" - auto_revert = true - } - - group "zealot" { - network { - port "zealot" { - to = 80 - } - - port "postgres" { - to = 5678 - } - - port "redis" { - to = 6379 - } - } - - service { - name = "zealot" - port = "zealot" - provider = "nomad" - - // 注册服务到 traefik - // tags = [ - // "traefik.enable=true", - // "traefik.http.routers.zealot.entrypoints=web, websecure", - // "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)", - // ] - } - - service { - name = "postgres" - port = "postgres" - provider = "nomad" - - // 注册服务到 traefik - // tags = [ - // "traefik.enable=true", - // "traefik.tcp.routers.postgres.rule=HostSNI(`*`)", - // "traefik.tcp.routers.postgres.entrypoints=postgres", - // ] - } - - service { - name = "redis" - port = "redis" - provider = "nomad" - - // 注册服务到 traefik - // tags = [ - // "traefik.enable=true", - // "traefik.tcp.routers.redis.rule=HostSNI(`*`)", - // "traefik.tcp.routers.redis.entrypoints=redis", - // ] - } - - task "zealot" { - driver = "docker" - - config { - image = "ghcr.io/tryzealot/zealot:latest" - ports = ["zealot"] - - // 根据实际情况修改,或采用 CSI 协议的外部存储 - volumes = [ - "/tmp/zealot/uploads:/app/public/uploads", - "/tmp/zealot/backups:/app/public/backups", - ] - - // 添加服务到 homepage dashboard 面板 - // labels = { - // "homepage.group" = "Dev" - // "homepage.name" = "Zealot" - // "homepage.icon" = "mdi-progress-download" - // "homepage.href" = "https://zealot.example.com" - // "homepage.description" = "Beta App Distribution" - // } - } - - // Zealot example config - // https://github.com/tryzealot/zealot-docker/blob/master/config.env - template { - destination = "local/config.env" - change_mode = "restart" - env = true - data = <<-EOF - ZEALOT_APPEARANCE = dark - ZEALOT_DOMAIN = zealot.example.com - - ZEALOT_GUEST_MODE = false - ZEALOT_REGISTER_ENABLED = true - EOF - } - - template { - destination = "secrets/secret.env" - change_mode = "restart" - env = true - data = <<-EOF - # admin account - ZEALOT_ADMIN_EMAIL = admin@zealot.com - ZEALOT_ADMIN_PASSWORD = ze@l0t - - # datbase - ZEALOT_POSTGRES_HOST = {{ env "NOMAD_IP_postgres" }} - ZEALOT_POSTGRES_PORT = {{ env "NOMAD_PORT_postgres" }} - ZEALOT_POSTGRES_USERNAME = "zealot" - ZEALOT_POSTGRES_PASSWORD = "zealot" - ZEALOT_POSTGRES_DB_NAME = "zealot" - - # cache - REDIS_URL = redis://{{ env "NOMAD_ARRR_redis" }}/0 - - # secret token - SECRET_TOKEN = $${ sha256(uuidv5("url", "zealot.ews.im")) } - EOF - } - - resources { - cpu = 500 - memory = 500 - memory_max = 1000 - } - } - - task "postgres" { - driver = "docker" - - lifecycle { - hook = "prestart" - sidecar = true - } - - config { - image = "postgres:15-alpine" - ports = ["postgres"] - volumes = [ - "secrets/init-role.sql:/init-role.sql", - "secrets/init-db.sql:/init-db.sql" - ] - } - - env { - POSTGRES_INITDB_ARGS = "--data-checksums" - POSTGRES_USER = "zealot" - POSTGRES_PASSWORD = "zealot" - POSTGRES_DB = "zealot" - } - - resources{ - cpu = 512 - memory = 200 - memory_max = 512 - } - } - - task "redis" { - driver = "docker" - - lifecycle { - hook = "prestart" - sidecar = true - } - - config { - image = "redis:7-alpine" - ports = ["redis"] - } - - resources { - cpu = 200 - memory = 200 - } - } - } -} -``` - -确认无误后执行 `nomad job run zealot.nomad` - -### 使用 Terraform 部署 - -> Terraform 和 Nomad 是同家公司的产品。 - -先按照官方教程依次安装好 [terraform](https://www.terraform.io/)、[nomad 插件](https://registry.terraform.io/providers/hashicorp/nomad/)后,复用上面的 `zealot.nomad` 文件再额外加一个 `main.tf` 文件即可。 - -```hcl -resource "nomad_job" "jobs" { - jobspec = file("${path.module}/zealot.nomad") -} -``` - -执行 `terraform plan` 确认无误后在通过 `terraform apply` 应用。 - -## 外部文件存储 - -Nomad 支持多集群管理,很多情况下服务部署的存储不可能直接挂载到对应的文件系统中,更多的是放在一个共享文件存储协议上面,比如 SMB、NFS、S3 等等。 - -### CSI 协议 - -Nomad [支持 CSI 协议](https://developer.hashicorp.com/nomad/tutorials/stateful-workloads/stateful-workloads-csi-volumes),理论上[实现 CSI 接口的服务](https://kubernetes-csi.github.io/docs/drivers.html)都可以满足。 - -> 截止 Nomad 1.5 版本为止,Nomad 可以使用 CSI 卷,但它不能自身控制创建、销毁或管理。卷必须在外部创建,然后向 Nomad 注册后才能使用。 - -插件 | 支持协议 | 兼容情况 | terraform nomad 资源 ----|---|---|--- -[kubernetes-csi-driver-smb](https://github.com/kubernetes-csi/csi-driver-smb) | smb | 未测试 | 未测试 -[kubernetes-csi-driver-nfs](https://github.com/kubernetes-csi/csi-driver-nfs) | nfs | 支持 | [nomad_csi_volume_registration](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume_registration) -[kubernetes-csi-driver-iscsi](https://github.com/kubernetes-csi/csi-driver-iscsi) | iscsi | 未测试 | 未测试 -[democraticcsi/democratic-csi](https://github.com/democratic-csi/democratic-csi) | smb/nfs/iscsi | 支持 | [nomad_csi_volume](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume) -[rocketduck/csi-plugin-nfs](https://gitlab.com/rocketduck/csi-plugin-nfs) | nfs | 支持 | [nomad_csi_volume](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/railway.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/railway.md deleted file mode 100644 index 042c03473..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/railway.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -sidebar_label: "Railway" ---- - -# 部署 Zealot 到 Railway 指南 - -Zealot 支持使用 Docker 部署服务到 [Railway](https://railway.app/)。 - -## 部署步骤 - -- Fork [Zealot](https://github.com/tryzealot/zealot/fork) 项目到你自己的 Github 账户。 -- 使用 "deploy from Github repo" [新建项目](https://railway.app/new)。 -- 新增你需要的[环境变量](/docs/self-hosted/configuration/environment-variables)到 Variables 页面。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/render.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/render.md deleted file mode 100644 index 2d26c465d..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/render.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_label: "Render" ---- - -# 部署 Zealot 到 Render 指南 - -Zealot 提供 [render.com](https://render.com/) 官方 blueprint 模板 `render.yaml` 用于一键部署本服务。 - -## 模板 - -* 使用 [Zealot Docker 镜像](https://ghcr.io/tryzealot/zealot)。 -* 使用 [Render Disks](https://render.com/docs/disks) 作为上传应用和调试文件的持久化存储。 -* 使用 [PostgreSQL](https://render.com/docs/databases) 作为数据库以及 [Redis](https://render.com/docs/redis) 作为数据缓存。 - -## 一键部署 - -[![部署按钮](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/tryzealot/zealot) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/requirements.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/requirements.md deleted file mode 100644 index c7ce34d8b..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/requirements.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -sidebar_label: "依赖" ---- - -# Zealot 自部署依赖 - -如果想要顺利并发挥 Zealot 最佳状态运行,本页面提供了安装所需的各自软硬环境的依赖安装信息。 - -## 操作系统 - -Zealot 可以安装在绝大多数 Linux 操作系统,但目前并没有测试和统计具体有哪些。 - -## 硬件依赖 - -### 系统架构 - -支持使用 amd86/arm64/armv7 运行的主流 Linux 系统,比如 Debian,Ubuntu、CentOS、Arch Linux、Armbian 等。 - -### CPU - -CPU 数量取决于 Zealot 使用的资源和任务量,工作量受(包括但不仅限于)以下因素影响:有多少应用和调试文件被上传和解析;有多少应用被下载;有多少网络钩子被触发;苹果开发者同步测试设备的频率以及备份计划作业的数量和频率。 - -下面是最小硬件条件推荐的 CPU 硬件规格,请不要低于这个标准否则服务运行会收到一定的影响造成服务无法正常工作: - -- **1 核**是**必须**的最小核心数。 - -### 内存 - -内存大小取决于 Zealot 使用的资源和任务量,工作量受(包括但不仅限于)以下因素影响:有多少应用和调试文件被上传和解析;有多少应用被下载;有多少网络钩子被触发;苹果开发者同步测试设备的频率以及备份计划作业的数量和频率。 - -下面是最小硬件条件推荐的内存大小规格,请不要低于这个标准否则服务运行会收到一定的影响造成服务无法正常工作: - -- **512MB**是**必须**的最少的内存大小。 - -### 存储 - -存储容量的大小取决于有多少应用和调试文件版本上传,当然也包含生成的备份文件。 - -## 软件依赖 - -### Ruby 版本 - -- Ruby 3.0+ - -必须使用标准的 MRI 实现的 Ruby 版本。Zealot 内部依赖的 Gems 需要原生扩展。 - -### Node.js 版本 - -Zealot 使用 [esbuild](https://esbuild.github.io/) 和 [sass](https://sass-lang.com/) 编译前端资源。 - -推荐使用 Node 14.x 以上版本。 - -可以在终端应用通过运行 `node -v` 命令查看 node 的版本。如果运行的版本低于 `v8.0` 你需要更新到推荐的版本。你可在[官方网站](https://nodejs.org/en/download/)查看更多安装或升级教程。 - -## 数据库 - -数据库仅支持 PostgreSQL 且目前没有计划支持更多其他数据库。 - -### PostgreSQL 依赖 - -PostgreSQL 预留_至少_ 5-10 GB 空间,更多的空间意味着可以存储更多的数据。 - -我们强烈推荐使用且保持 PostgreSQL 永远是最新的稳定版本作为开发和测试使用。 - -### Redis - -Zealot 后台异步任务和定时任务依赖于 Redis 做数据的存储和统计使用,存储空间依赖很小,50MB 足矣。 - -Redis 最低支持版本 6.2+,推荐 7.x 版本 - -## Sidekiq - -Sidekiq 是 Zealot 后台异步任务和定时任务使用的服务,它支持多线程操作且运行时依托于 Rails (也就是 Zealot 使用的框架)。 -它可能会随着时间的推移而增长内存的占用,如果 Zealot 运行的时间很长造成的服务不稳定请适当调整内存的大小,建议是 1GB+。 - -## 已支持 Web 浏览器 - -:::tip - -Zealot 运行部分页面依赖于 Javascript,请不要设置浏览器禁止它。 - -::: - -Zealot 支持如下 Web 浏览器: - -- [x] [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/) -- [x] [Google Chrome](https://www.google.com/chrome/) -- [x] [Chromium](https://www.chromium.org/getting-involved/dev-channel) -- [x] [Apple Safari](https://www.apple.com/safari/) -- [x] [Microsoft Edge](https://www.microsoft.com/en-us/edge) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/source-code.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/source-code.md deleted file mode 100644 index 6d594d252..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/deployment/source-code.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar_label: "源代码" ---- - -# 源码部署 Zealot 指南 (遗弃) - -新指南已迁移到[贡献者指南](/docs/contributing-guide)。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/index.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/index.md deleted file mode 100644 index 060f9bc95..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/index.md +++ /dev/null @@ -1,14 +0,0 @@ -# 自建服务指南 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -本指南将会帮助你安装和部署 Zealot 到产品环境。 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/reverse-proxies.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/reverse-proxies.mdx deleted file mode 100644 index 923d0af6b..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/reverse-proxies.mdx +++ /dev/null @@ -1,274 +0,0 @@ - -# 反向代理 - -方便 SSL 证书的统一管理和分发、服务的扩容及接入现成的网关服务,文档提供几种给网关配置反向代理服务的配置。 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -## 准备工作 - -配置反向代理需要准备好如下数据: - -名称 | 范例值 | 备注 ----|---|--- -域名 | zealot.example.com | -反向代理 IP 地址 | 172.16.56.1 | -Zealot IP 地址 | 172.16.56.100 | 反向代理服务可访问
同一台服务可改为 127.0.0.1 -Zealot 外部映射端口号 | 8901 | 反向代理服务可访问 -Zealot 内部端口号 | 80 | 无需修改 -Let's Encrypt 邮箱 | your-email@example.com - -## Traefik - -[Traefik](https://doc.traefik.io/traefik/) 是一款开源的反向代理与负载均衡工具,它自身提供多种 Providers 可以实现接入反向代理并配置 SSL 的方式。 - -### 配置解释 - -无论使用那种 Provider 核心的配置项是相同的,构成反向代理服务配置主要有三部分组成:发现端口号、路由规则(包含访问端口号、域名绑定和SSL) - -### Traefik 服务 - -```mdx-code-block - - -``` - -```yaml -entryPoints: - web: - address: ":80" - - websecure: - address: ":443" - -certificatesResolvers: - letsencrypt: - acme: - email: your-email@example.com - storage: acme.json - httpChallenge: - entryPoint: web -``` - -```mdx-code-block - - -``` - -```toml -[entryPoints] - [entryPoints.web] - address = ":80" - - [entryPoints.websecure] - address = ":443" - -[certificatesResolvers.letsencrypt.acme] - email = "your-email@example.com" - storage = "acme.json" - [certificatesResolvers.letsencrypt.acme.httpChallenge] - # used during the challenge - entryPoint = "web" -``` - -```mdx-code-block - - -``` - -```bash ---entrypoints.web.address=:80 ---entrypoints.websecure.address=:443 - ---certificatesresolvers.letsencrypt.acme.email=your-email@example.com ---certificatesresolvers.letsencrypt.acme.storage=acme.json ---certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web -``` - -```mdx-code-block - - -``` - -### Docker - -首先需要开启 [Docker provider](https://doc.traefik.io/traefik/providers/docker/#configuration-examples) 后在修改 zealot 的 Docker Compose 配置: - -```yaml title="docker-compose.yml" -version: '3' -services: - zealot: - <<: *defaults - labels: - - "traefik.enable=true" - - "traefik.http.services.zealot.loadbalancer.server.port=80" - - "traefik.http.routers.zealot.service=zealot" - - "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)" - - "traefik.http.routers.zealot.tls=true" - - "traefik.http.routers.zealot.tls.certresolver=letsencrypt" - - "traefik.http.routers.zealot.tls.domains[0].main=icyleaf.dev" - - "traefik.http.routers.zealot.tls.domains[0].sans=zealot.example.com" - # 由 Treafik 接管无需在对外暴露端口号 - # ports: - # - "8901:80" - network: - # 根据 traefik 服务的 network 按需调整 - - traefik-services - -networks: - # 根据 traefik 服务的 network 按需调整 - traefik-services: - external: true -``` - -Docker 部署的局限于 Traefik 和 Zealot 服务通常在同一个机器的同一个 OS 系统中,跨机器就没法实现通讯,对于跨机器就需要参考下面两种配置方案: - -### Consul - -首先需要开启 [Consul provider](https://doc.traefik.io/traefik/providers/consul/) 或 [Consul Catalog provider](https://doc.traefik.io/traefik/providers/consul-catalog/),我们只需要利用它的 Key-Value 存储: - -```shell -consul kv put traefik/http/services/zealot/loadbalancer/server/port 5 -consul kv put traefik/http/routers/zealot/service zealot -consul kv put traefik/http/routers/zealot/rule 'Host(`zealot.example.com`)' -consul kv put traefik/http/routers/zealot/tls/certresolver letsencrypt -consul kv put traefik/http/routers/zealot/tls/domains/0/main icyleaf.dev -consul kv put traefik/http/routers/zealot/tls/domains/0/sans zealot.example.com -``` - -### Nomad - -首先需要开启 [Nomad provider](https://doc.traefik.io/traefik/providers/nomad/) 且 Nomad 版本要大于等于 1.3 才可以哟: - -```hcl title="zealot.nomad" -job "zealot" { - datacenters = ["dc1"] - type = "service" - - group "zealot" { - count = 1 - - network { - port "http"{ - static = 80 - } - } - - service { - name = "zealot-http" - provider = "nomad" - port = "http" - } - - task "server" { - driver = "docker" - config { - image = "ghcr.io/tryzealot/zealot:nightly" - ports = ["http"] - args = [ - - "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)", - - "traefik.http.routers.zealot.tls=true", - - "traefik.http.routers.zealot.tls.certresolver=letsencrypt", - - "traefik.http.routers.zealot.tls.domains[0].main=icyleaf.dev", - - "traefik.http.routers.zealot.tls.domains[0].sans=zealot.example.com" - ] - } - } - } -} -``` - -## Caddy 2 配置 - -```nginx title="Caddyfile" -:443 - -log - -# 使用 Let's Encrypt 服务 -tls your-email@example.com - -reverse_proxy 172.16.56.100:8901 -``` - -配置只需配置 `tls` 和 `proxy` 后面 IP 地址和端口部分即可。 - -## Nginx - -> 如下是通用配置,如果不可用欢迎[提问题](https://github.com/tryzealot/docs/issues/new)。 - -```nginx title="conf.d/zealot.conf" -upstream zealot { - zone upstreams 64K; - server 172.16.56.100:8901; - keepalive 32; -} - -map $http_upgrade $connection_upgrade { - default upgrade; - '' close; -} - -server { - listen 80; - listen [::]:80; - server_name zealot.example.com; - location /.well-known/acme-challenge/ { allow all; } - location / { return 301 https://$host$request_uri; } -} - -server { - listen 443 ssl http2; # 可选:http2 可能需要安装额外扩展,不需要可移除 - listen [::]:443 ssl http2; # 可选:http2 可能需要安装额外扩展,不需要可移除 - server_name zealot.example.com; - - ssl_certificate /etc/certs/zealot-cert.pem; - ssl_certificate_key /etc/certs/zealot.pem; - - # Optional - # ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA; - # ssl_session_timeout 5m; - # ssl_session_cache shared:SSL:1m; - # ssl_prefer_server_ciphers on; - - location / { - proxy_pass http://zealot; - proxy_redirect off; - - proxy_pass_header Authorization; - proxy_set_header Host $host; - # proxy_set_header X-Forwarded-Ssl on; # 可选 - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - - client_max_body_size 0; - proxy_read_timeout 36000s; - } -} -``` - -Nginx 还需要在 `http` 中配置最大上传文件上传大小,普通应用建议是在 200MB 左右,如果是游戏可根据实际文件大小再多出 50% 打出富余。 - -```nginx title="nginx.conf" -http { - [...] - - client_max_body_size 200M; -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/storage.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/storage.md deleted file mode 100644 index cde9201ab..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/self-hosted/storage.md +++ /dev/null @@ -1,22 +0,0 @@ -# 数据存储 - -这里罗列了 Zealot 服务所需的所有数据存储,在还没有提供更好的备份管理工具之前,方便有能力的用户能够手动备份和恢复数据使用。 - -## Postgres - -用于存储和管理一切和 Zealot 有关数据,这个就不用多说了。 - -## Redis - -目前只有 sidekiq 异步任务服务在使用它做一些任务状态、统计数据的存储。 - -## 文件存储 - -Zealot 服务除了依赖 postgresql、redis 之外还有一部分的磁盘存储是上传的应用、调试文件且仅提供存储在文件系统之中,目录位于 `public/uploads`。 - -- apps 上传应用的目录 -- debugs_files 上传调试文件的目录 - -## 备份存储 - -Zealot 服务目前支持通过管理员面板管理和生成备份数据,备份数据可配置范围包括数据库和上传应用,目录位于 `public/backup`。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/apple-team.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/apple-team.mdx deleted file mode 100644 index 42ded5648..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/apple-team.mdx +++ /dev/null @@ -1,30 +0,0 @@ -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -# 苹果开发者 - -iOS Ad-Hoc 签发的应用分发最大的困难是需要给大量不懂这些概念的人传递什么是 UDID、学习如何获取、获取后再提供给开发者,再通过重新签发证书、打包、上传才能安装。 - -Zealot 可以自动获取 Ad-Hoc 应用的 UDID,面对一串串的 UDID 没人能够看懂这都是谁的设备,明明这些设备在注册的时候都已经备注或自动获取了设备名,但它有不能够自动同步过来。 - -为了解决以上两个重大难题,Zealot 分别尝试了几种方案来解决这个困难,早期使用 fastlane 插件 [zealot_sync_device](/docs/developer-guide/fastlane/zealot_sync_devices) 调用时会同步测试设备的名称和机型,直到苹果开发者推出 [AppStoreConnect API](https://developer.apple.com/documentation/appstoreconnectapi) 后完全可以托管到 Zealot 来自动化处理,通过常规流程大大简化注册流程的同时,也能过让测试应用能够显示可识别且友好的测试设备名称。 - - - -虽然提供的设备 UDID 功能确认哪些应用可以安装,假如设备没有注册到任何一个应用这个时候提供一个测试设备注册的功能岂不是大大提升团队的效率?这也就是苹果开发者的作用。 - - - -最初功能介绍:https://github.com/tryzealot/zealot/issues/723 后续在做更全面的不全 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/backup.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/backup.mdx deleted file mode 100644 index ff3cbe7a9..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/backup.mdx +++ /dev/null @@ -1,34 +0,0 @@ -# 备份计划 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## 备份计划列表 - - - -## 备份文件 - - - -## 创建备份计划 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/background-jobs.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/background-jobs.mdx deleted file mode 100644 index 19eb38d08..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/background-jobs.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 后台任务 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/database-analytics.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/database-analytics.mdx deleted file mode 100644 index 4caf2dd3b..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/database-analytics.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 数据库分析 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/logging.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/logging.mdx deleted file mode 100644 index 938ffd38d..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/logging.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 系统日志 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/system-info.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/system-info.mdx deleted file mode 100644 index cb8571390..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/monitoring/system-info.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 系统信息 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/permissions.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/permissions.md deleted file mode 100644 index c7a2342fa..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/permissions.md +++ /dev/null @@ -1,39 +0,0 @@ -# 用户权限 - -Zealot 提供四种用户权限: - -- 游客 -- 用户 -- 开发者 -- 管理员 - -## 权限明细 - -功能 | 游客[开/关] | 用户 | 开发者 | 管理员 ----|---|---|---|--- -`控制面板`
浏览所有的数据 | ✓/✕ | ✓ | ✓ | ✓ -`应用`
浏览应用列表 | ✓/✕ | ✓ | ✓ | ✓ -`应用`
浏览应用类型和渠道详情 | ✓/✕ | ✓ | ✓ | ✓ -`应用`
浏览应用版本详情 | ✓/✓
支持密码访问 | ✓ | ✓ | ✓ -`应用`
浏览应用内的网络钩子 | ✓/✕ | ✓ | ✓ | ✓ -`应用`
上传/安装/下载应用 | ✓ | ✓ | ✓ | ✓ -`应用`
创建/编辑/删除应用 | | | ✓ | ✓ -`应用`
创建/编辑/删除应用的类型或渠道 | | | ✓ | ✓ -`应用`
删除指定的应用版本和上传的应用文件 | | | ✓ | ✓ -`应用`
测试应用的网络钩子 | | | ✓ | ✓ -`应用`
启用或禁用网络钩子 | | | ✓ | ✓ -`应用`
删除应用 | | | ✓ | ✓ -`调试文件`
浏览调试文件列表 | ✓/✕ | ✓ | ✓ | ✓ -`调试文件`
浏览上传调试文件的解析详情 | ✓ | ✓ | ✓ | ✓ -`调试文件`
下载调试文件 | ✓ | ✓ | ✓ | ✓ -`调试文件`
上传/删除调试文件 | | | ✓ | ✓ -`应用解包`
浏览应用解包列表 | ✓/✕ | ✓ | ✓ | ✓ -`应用解包`
浏览应用解包的详情数据 | ✓/✕ | ✓ | ✓ | ✓ -`应用解包`
删除应用解包 | | | ✓ | ✓ -`管理面板`
浏览和管理用户 | | | | ✓ -`管理面板`
浏览和管理全部的网络钩子 | | | | ✓ -`管理面板`
浏览和管理全部的苹果开发者 | | | | ✓ -`管理面板`
浏览和管理系统设置 | | | | ✓ -`管理面板`
浏览系统环境的数据 | | | | ✓ -`管理面板`
浏览和管理后台任务 | | | | ✓ -`管理面板`
浏览页面访问统计 | | | | ✓ diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/settings.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/settings.mdx deleted file mode 100644 index edbbf05f2..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/administrator/settings.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 系统设置 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/create.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/create.mdx deleted file mode 100644 index b8008d8ac..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/create.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 创建应用 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/detail.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/detail.mdx deleted file mode 100644 index 3a2d32768..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/detail.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 已上传应用 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/index.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/index.mdx deleted file mode 100644 index 2cc79d423..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/index.mdx +++ /dev/null @@ -1,54 +0,0 @@ -# 管理应用 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## 应用列表 - - - -## 编辑应用 - - - -## 创新新类型 - - - -## 创建新渠道 - - - -## 编辑渠道 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/upload.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/upload.mdx deleted file mode 100644 index 4854c8bbb..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/apps/upload.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 上传应用包 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/best_practices.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/best_practices.md deleted file mode 100644 index 6cbb945ab..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/best_practices.md +++ /dev/null @@ -1,63 +0,0 @@ -# 最佳实践 - -## iOS 和 Android 应用 - -### 集成 Zealot SDK - -集成 Zealot SDK 可以让非客户端研发自动触发新版本检查、查看变更日志和安装功能。 - -### 安装 fastlane - -通过官方文档安装 fastlane. - -### 配置 Fastfile - -```ruby -# 构建 iOS 的 ipa 文件并上传 zealot 服务器 -lane :upload_app do - # 打包,比如 iOS 的 gym 或 Android 的 gradle - gym - - # 上传应用到 Zealot - zealot( - endpoint: '...', - token: '...', - channel_key: '...' - ) - - # 上传 iOS 的 dSYM - zealot_debug_file( - scheme: 'AppName' - ) -end - -# 构建 android 的 apk 文件并生成 progguard 包后上传 zealot 服务器 -lane :upload_debug_file do - # 打包,比如 iOS 的 gym 或 Android 的 gradle - gradle - - # 自动化搜索 Android Proguard(混淆)并打包 Zip 文件 - debug_file - - # 上传应用到 Zealot - zealot( - endpoint: '...', - token: '...', - channel_key: '...' - ) - - # 上传 Android 的 Proguard - zealot_debug_file( - build_type: 'release', - flavor: 'googleplay' - ) -end -``` - -## CI 打包构建服务 - -自行选择使用 Jenkins、Gitlab CI 等任何可构建 iOS 或 Android 的构建服务完成项目构建的配置。这部分不同的 CI 服务配置都有所不同,暂时无法展开,大家可根据自己熟悉情况或借助运维部门的协助搭建。 - -## Zealot 服务 - -除了管理每次上传的应用和调试文件,在每次接收到上传的应用会触发已配置的网络钩子用来给第三方服务发送通知有新版本收到,同时对于集成 Zealot SDK 的手机客户端每次第一次打开 App 都会收到新版本的安装提醒。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/changelog.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/changelog.md deleted file mode 100644 index 90f67c594..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/changelog.md +++ /dev/null @@ -1,566 +0,0 @@ -# 变更日志 - -## 5.1.0 (2023-12-07) - -功能修复为主,小部分新特性升级,详细[代码变更记录][5.1.0]。 - -#### 变更 - -- `Docker` **重大变更** Redis 最低版本依赖从原来的 5.x 升级至 6.2+,建议使用 7.x 主版本,升级时请手动修改。 - -#### 新增 - -- `Docker` 新增 Redis 版本检测,过低版本会无法正常运行 -- `Docker` 服务初始化时创建数据库 -- `Web` 设置页面针对 JSON 格式设置增强校验条件 - -#### 修复 - -- `Web` 上传检测磁盘空间判断文件是否存在 -- `Web` 修复应用版本关联的调试文件 -- `Web` 修复应用解包详情页面没有展示测试设备列表 -- `Web` 优化应用版本错误页面的展示信息 -- `Web` 优化移动设备应用长包名溢出展示 -- `Web` 优化部分页面样式及英语语言的显示 -- `API/Web` Android 应用解析图标 webp 格式无法转换 png -- `API` 修复 GraphQL 用户认证 - -## 5.0.0 (2023-09-06) - -支持泛应用托管,支持解析会自动解析比如 Windows,不支持解析会跳过。详细[代码变更记录][5.0.0] - -#### 变更 - -- `Docker` **重大变更** Redis 最低版本依赖从原来的 5.x 升级至 6.2+,建议使用 7.x 主版本,升级时请手动修改。 - -#### 新增 - -- `Web/API` 支持泛应用托管(支持解析会自动解析,不支持解析会跳过),默认新增 Windows 和 Linux 平台 [#1121](https://github.com/tryzealot/zealot/pull/1121) -- `Web/API` 新增 Windows 应用托管(上传和元信息解析展示) [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` 全新调试文件页面并新增多 dSYM 调试文件解析和托管 [#1127](https://github.com/tryzealot/zealot/pull/1127) [#1124](https://github.com/tryzealot/zealot/pull/1124) [#961](https://github.com/tryzealot/zealot/issues/961) -- `Web` 支持 Android 应用解包 v1, v2, v3 签名信息 [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` 强化 Android 和 iOS 应用解包的 X509 证书信息 [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` 新增 “重新解析” 功能更新老结构的调试文件元信息 -- `Web` 上传应用版本的变更日志支持 markdown 格式 -- `Web` 设置页可配置全局 “每页返回最小” 和 “最大条目数” -- `Web` 应用版本详情页面针对 iOS 应用展示签名证书过期时间信息和签名证书过期无法安装(可以下载)的逻辑限制 -- `Web` 网络钩子及设置页添加或更新增加 JSON 格式校验 -- `Web` 注册测试设备到苹果开发者支持自定义设备名称和创建后编辑更新设备名称 -- `Web` 苹果开发者的私钥证书支持下载 - -#### 修复 - -- `Web` 修复解包应用无法删除问题 -- `Web` 部分页面的样式优化 -- `Web` 纠正英语语言包错误(en language i18n) -- `Web` 修复应用类型创建为空时错误的报错页面 -- `Web` 修复找不到文件报 404 错误页面 -- `API` 修复应用获取最新版本 build_version 版本比较逻辑优化 -- `Web` 优化上传应用自定义字段格式错误处理 -- `Web` 优化 url 注入、应用历史版本为空、没有注册设备等正确跳转 -- `Web` 优化展示备份任务错误信息 -- `Web` 上传应用对应用类型、调试文件增加类型检测 -- `Web` 修复创建苹果开发者没有预选创建 Distribution Certificate 的错误信息 - -## 4.7.1 (2023-03-10) - -支持最新 Android aapt2 构建工具生成的 aab 应用解析,详细[代码变更记录][4.7.1] - -#### 变更 - -- `Docker` **重大变更** Redis 最低版本依赖从原来的 5.x 升级至 6.2+,建议使用 7.x 主版本,升级时请手动修改。 - -#### 修复 - -- `Web` 升级最新 appt2 模型避免 aab 解析异常 -- `Web` 解析异常的重复处理 - -#### 新增 - -- `Web` Android 应用解包详情页增加应用类型 -- `Web` 应用渠道编辑后调整原先的页面 - -## 4.7.0 (2023-03-03) - -详细[代码变更记录][4.7.0]。 - -#### 变更 - -- `Docker` **重大变更** Redis 最低版本依赖从原来的 5.x 升级至 6.2+,建议使用 7.x 主版本,升级时请手动修改。 - -#### 新增 - -- `Web` 应用类型新增 “新上传版本提示窗” 控制开关 [#1058](https://github.com/tryzealot/zealot/pull/1058) 感谢 [softwind0214](https://github.com/softwind0214) -- `Web` 应用列表页面图标可点击跳转应用详情页 -- `Web` 环境信息新增依赖服务的版本号显示 -- `Web` 版本号增加对 nightly 构建的版本的显示 - -#### 修复 - -- `Web` Ruby 版本降级至 3.0 暂时解决高版本带来的 iOS 应用解析崩溃,具体情况看 [#1070](https://github.com/tryzealot/zealot/issues/1070) -- `Web` 应用/类型/渠道展示顺序固定为按照创建时间正序排列 -- `Web` 修复用户注销时没有弹出二次确认提示 -- `Web` 修复应用版本在主历史版本无法删除 -- `Web` 改善多个页面的样式问题 -- `Web` 产品环境不再展示 Javascript 调试器日志输出 - -## 4.6.0 (2023-01-17) - -运行环境升级至 Ruby 3.2 并支持 arm64 平台。详细[代码变更记录][4.6.0] - -#### 修复 - -- `Web` 捕获创建应用渠道名称为空问题 [#968](https://github.com/tryzealot/zealot/issues/968) 感谢 [congpeijun](https://github.com/congpeijun) -- `Web` 备份文件在磁盘不存在的逻辑完善 [#995](https://github.com/tryzealot/zealot/issues/995) - -#### 新增 - -- `Docker` 支持 arm64/v8 及 armv7 镜像 [#970](https://github.com/tryzealot/zealot/pull/970) -- `Web` 采用新 50x 错误页面 - -#### 变更 - -- `Web` 开发环境 Ruby 升级至 3.2 版本,devcontainer 及容器默认开启 YJIT 特性 [#1011](https://github.com/tryzealot/zealot/pull/1011) -- `API` 更新调试文件返回数据结构并修改状态码从 204 改为 200 - -## 4.5.3 (2022-11-22) - -详细[代码变更记录][4.5.3] - -#### 修复 - -- `Web` 修复第三方登录无法跳转 [#949](https://github.com/tryzealot/zealot/issues/949) 感谢 [softwind0214](https://github.com/softwind0214) - -#### 新增 - -- `Docker` 新增环境变量来关闭 WebSocket (ActionCable) 的请求保护 (实验性质) [#950](https://github.com/tryzealot/zealot/pull/950) - -## 4.5.2 (2022-11-01) - -详细[代码变更记录][4.5.2] - -#### 修复 - -- `Web` 修复注册测试设备异常 [#935](https://github.com/tryzealot/zealot/issues/935) 感谢 [ycy0430](https://github.com/ycy0430) -- `Web` 适配二维码支持黑暗模式 -- `Web` 修正 `en` 英文语言包 - -#### 新增 - -- `WebHook` 变量结构体新增 `username` 和 `email` 字段 [#934](https://github.com/tryzealot/zealot/issues/934) 感谢 [rkonfj](https://github.com/rkonfj) -- `Docker` 支持 `SIDEKIQ_CONCURRENCY` 环境变量设置后台任务的并发量,默认 5 - -#### 变更 - -- `Docker` 减少安全隐患,Web 服务包含 puma 和 puma_control_server 监听更换成 `127.0.0.1` -- `Web` 优化 iOS 设备 UDID 描述文件的文案 -- `Web` 更新页面底部的文案,感谢 Rails 和 AdminLTE 开源项目! - -## 4.5.1 (2022-09-14) - -详细[代码变更记录][4.5.1] - -#### 修复 - -- `Web` 修复应用解包解析报错 - -## 4.5.0 (2022-08-19) - -详细[代码变更记录][4.5.0] - -支持 👨🏻‍🔧 苹果开发者托管测试设备顺手把 🌑 黑暗模式搞来了! - -#### 新增 - -- `Web` 支持黑暗模式 [#816](https://github.com/tryzealot/zealot/pull/816) -- `Web` 新增苹果开发者管理用于注册测试设备 [#817](https://github.com/tryzealot/zealot/pull/817) -- `Web` 新增数据备份管理 [#835](https://github.com/tryzealot/zealot/pull/835) -- `Web` 管理面板完成依赖服务的监控 [#586](https://github.com/tryzealot/zealot/issues/586) -- `API` 涉及 `release` 字典的地方新增三个字段 `platform`, `device_type` 和 `custom_fields` - -#### 变更 - -- `Web` **不兼容变更** Google 统计强制升级 v4 版本,之前设置的需要重新配置才可以生效 [#815](https://github.com/tryzealot/zealot/pull/815) -- `CLI` **不兼容变更** 数据备份和还原功能因结构发生变更不再提供,请使用管理员面板的数据备份功能 -- `Web` 针对获取设备 UDID 及 iOS 版本安装和下载变更根据设备展示对应的功能界面,不再全部展示 -- `Web` 移除管理员面板的页面统计功能 [#814](https://github.com/tryzealot/zealot/pull/814) -- `Web` 前端技术栈从 webpacker 迁移至 esbuild + sass, Turbolinks 迁移至 Stimulus 带来更好的前端交互体验 [#829](https://github.com/tryzealot/zealot/pull/829) -- `Web` 鉴于编辑应用的类型和渠道逻辑较复杂,变更只能修改应用名 - -#### 修复 - -- `Web` 处理应用类型下没有存在渠道的选择错误 [#795](https://github.com/tryzealot/zealot/issues/795) 感谢 [tasselsd](https://github.com/tasselsd) -- `API` 修复 Android 地址返回错误 [#813](https://github.com/tryzealot/zealot/issues/813) 感谢 [denymz](https://github.com/denymz) -- `Web`/`API` 修正 aab 解析部分参数为空引发的异常 [tryzealot/fastlane-plugin-zealot#9](https://github.com/tryzealot/fastlane-plugin-zealot/issues/9) 感谢 [tasselsd](https://github.com/tasselsd) -- `Web` 修复第一次初始化项目生成演示数据异常 [#821](https://github.com/tryzealot/zealot/issues/821) -- `API` 修复检查应用最新版本数据异常 [#856](https://github.com/tryzealot/zealot/issues/856) 感谢 [denymz](https://github.com/denymz) -- `Web` 修复应用渠道详情因关联网络钩子数据异常报错 -- `Web` 修正英文语言包很多拼写错误 - -## 4.4.1 (2022-06-20) - -详细[代码变更记录][4.4.1] - -#### 修复 - -- `WebHook` 修复网络钩子触发成功后报错 [#792](https://github.com/tryzealot/zealot/issues/792) 感谢 [tasselsd](https://github.com/tasselsd) -- `Docker` 兼容 Caddy 2.5.0 反代 https 到 http [#790](https://github.com/tryzealot/zealot/pull/790) 感谢 [VisionBao](https://github.com/VisionBao) [songge1209](https://github.com/songge1209) - -## 4.4.0 (2022-06-09) - -详细[代码变更记录][4.4.0] - -#### 变更 - -- `Web` 对于未登录且未开启游客模式的用户权限新增查看应用版本详情之外还提供按照版本、分支、打包类型方式的筛选显示列表 -- `Web` 运行时环境升级至 Ruby 3.0,服务框架升级至 Rails 7.0 -- `Web` 兼容 macOS M1 芯片组 - -#### 新增 - -- `Web` 便于分享简化和统一部分应用链接 [#666](https://github.com/tryzealot/zealot/pull/666) -- `Web` 补全一些遗漏的权限检查页面 - -#### 修复 - -- `Job` 修复 iOS 文件解析 URL Schemes 异常 -- `Web` 修复服务日志没有输出到终端控制台 -- `Web` 增加处理上传调试文件在解析时它被删除掉或其他原因没有找到本地文件的异常捕获 -- `Web` 适配超宽屏幕的 UI -- `Web` 修复第三方登录依赖库的安全隐患 -- `API` 修复上传 Android 再不传 channel_key 异常 [#779](https://github.com/tryzealot/zealot/issues/779) 感谢 [likfe](https://github.com/likfe) - -## 4.3.1 (2021-12-22) - -详细[代码变更记录][4.3.1] - -#### 新增 - -- `Web` 设置项更新后可恢复原始默认值 -- `Web` 应用解包支持 Android 对 app links (区分 deep links 和 url schemes) 的解析显示 -- `Web` 设置页面强化设置开启、关闭状态的视觉效果 - -#### 修复 - -- `Web` 修复演示模式异步任务方法错误 -- `Web` 修复创建和编辑应用无法勾选选中的应用类型和渠道 -- `Web` 修复在环境页面无法 -- `Web` 修复解析 aab 没有 intent filters 无法解析 -- `Web` 增加取消勾选任何类型和渠道更新应用的报错 -- `Web` 修复加载策略造成第三方登录全部不可用 - -## 4.3.0 (2021-12-08) - -支持 aab 格式解析、多语言支持!详细[代码变更记录][4.3.0] - -#### 变更 - -- `Web` 使用默认提示的结构体作为网络钩子的数据结构,不再是一个奇怪的结构 -- `Web` 设置页面不再提供第三方登录授权的参数变更(依赖服务重启) -- `API` 上传应用接口和版本详情返回主体新增 `text_changelog` [650f1ffd](https://github.com/tryzealot/zealot/commit/650f1ffd3731f6a1f4cc703430be1b1b6f5d1cee) -- `API` 上传应用接口返回主体 `changelog_list` 改名 `changelog` [719f0b1e](https://github.com/tryzealot/zealot/commit/719f0b1eff92f358d246ededd6c1e6f9863f7f85) -- `Web` 变更日志输出的内容不再是一个数组内容,而是改为兼容 markdown list 格式的文本内容 [719f0b1e](https://github.com/tryzealot/zealot/commit/719f0b1eff92f358d246ededd6c1e6f9863f7f85) -- `Web` 一些隐私的配置 key 或 token 仅在管理员权限下明文显示;其他权限不可见;演示只读且会做部分加密处理 [#644](https://github.com/tryzealot/zealot/pull/644) -- `Web` 构建日期和哈希值无法获取不显示 - -#### 新增 - -- `Web` 支持 Android App Bundle (aab) 文件格式和 webp 图标的解析 -- `Web` 支持语言国际化,可选语言包:简体中文,英文 (支持页面配置) -- `Web` 支持配置更多的系统设置项 [#643](https://github.com/tryzealot/zealot/pull/643) -- `Web` 管理面板支持网络钩子的编辑功能 -- `Web` 重写并优化应用列表的样式布局 -- `Web` 优化基础的邮件模板 -- `Web` 调整登录窗口的样式和错误逻辑 -- `Web` 管理面板的环境变量页面新增文件权限检查 [#608](https://github.com/tryzealot/zealot/pull/608) -- `Web` 管理面板的新增错误异步任务的详情展示,最大错误数量为 5000 -- `Web` 使用更好的日志输出格式 [#646](https://github.com/tryzealot/zealot/pull/646) - -#### 修复 - -- `Web` 修复设置页面默认情况下 boolean 值类型的参数勾选状态错误 -- `Web` 修复在钉钉 App 点击安装或下载出现异常问题(改为微信逻辑处理) -- `Web` 修复在环境页面无法显示构建日期(构建 docker 镜像时的时间戳) -- `Web` 修复异步通知域名作用域无法生效 -- `Web` 修复获取 gems 异常 -- `Web` 修复 iOS 证书过期时间判断异常 -- `Web` 修复使用虚拟机开发挂载磁盘空间无法获取 -- `Web` 修复演示模式下的一些已知错误 - -## 4.2.2 (2021-10-15) - -详细[代码变更记录][4.2.2] - -#### 修复 - -- `API` 解决因批量替换造成的参数不匹配没有正确输出错误信息 [#615](https://github.com/tryzealot/zealot/issues/615) 感谢 [gin7758258](https://github.com/gin7758258) -- `Web` 解决了针对部分 apk Android 文件解析异常问题 [#587](https://github.com/tryzealot/zealot/pull/529) - -## 4.2.1 (2021-09-14) - -详细[代码变更记录][4.2.1] - -#### 变更 - -- `Web` 应用的图标不再按照预设尺寸裁切并移除图片处理依赖减少将近 200MB 镜像体积 -- `Docker` 反代服务 Caddy 不再输出日志到 STDOUT 而是直接到文件 - -#### 修复 - -- `Web` 修复上传应用后图标没有正常处理和显示 -- `Web` 兼容上传 dSYM 不同的 zip 解压缩逻辑 -- `Web` 修复安装 iOS 无法显示应用图标 -- `Web` 安全隐患:禁止编辑设置只读的系统设置 -- `Web` 修复 macOS 下载文件后缀不正确 -- `Web` 修复个别情况下不显示弹出无法安装的窗口 - -## 4.2.0 (2021-09-01) - -详细[代码变更记录][4.2.0] - -#### 变更 - -- `Web` 清理老版本逻辑默认改为关闭,如需开启请设置环境变量 `ZEALOT_KEEP_UPLOADS=false` [#570](https://github.com/tryzealot/zealot/pull/570) -- `Web` `文件解析`改名为`应用解包` [#529](https://github.com/tryzealot/zealot/pull/529) -- `Web` 下线应用解包中对已上传应用的解包支持(现在上传的应用都会自动触发额外的应用解包) -- `API` 上传应用的自定义字段图标支持 fontawesome css 的值,比如 [flag](https://fontawesome.com/v5.15/icons/flag?style=solid) 的值是 `fas fa-flag` -- `Docker` 镜像由 caddy 作为反代提供服务并对 volume 持久化做了变更,涉及迁移,具体看 [#540](https://github.com/tryzealot/zealot/pull/540) - -#### 新功能 - -- `Web` 支持 macOS 应用的上传、解析和下载 [#562](https://github.com/tryzealot/zealot/pull/562) -- `Web` 新增手机设备在渠道详情页对应用类型和渠道快速筛选项 [#510](https://github.com/tryzealot/zealot/issues/510) 感谢 [huacnlee](https://github.com/huacnlee) -- `Web` 管理员面板可配置应用的类型模板和默认注册用户的权限 [#562](https://github.com/tryzealot/zealot/pull/562) [#568](https://github.com/tryzealot/zealot/pull/568) -- `Web` 环境变量涉及隐私的做部分加密处理 -- `Web` 内存和磁盘使用率增加图形展示 -- `Docker` 新增支持 [Github Container Registry](https://github.com/tryzealot/zealot/pkgs/container/zealot) 镜像同步更新 -- `Docker` 新增支持环境变量配置 postgres 端口号 - -#### 修复 - -- `Web` 修复在 iPad 和 M1 芯片的 macOS 无法显示 iOS 安装按钮 [#519](https://github.com/tryzealot/zealot/issues/519) 感谢 [ohdarling](https://github.com/ohdarling) -- `Web` 修复注册但未验证邮件的同时使用第三方登录失败 [#517](https://github.com/tryzealot/zealot/issues/517) 感谢 [huacnlee](https://github.com/huacnlee) -- `Web` 修复使用网页上传没有触发应用解包 -- `Web` 修复 tubrolink 开启下左侧导航样式错位 -- `Web` Android 上传应用也显示解包链接 -- `Web` 优化解包文件列表判断为空的显示提示 -- `Web` 修复 LDAP 参数获取错误 [#541](https://github.com/tryzealot/zealot/pull/542) 感谢 [Martwu](https://github.com/Martwu) -- `Web` 优化捕获页面上传应用错误改为可读的错误信息 -- `Web` 修复创建应用类型出错判断异常 -- `Web` 补充在应用删除全部渠道后点击详情报错的一个异常情况的判断 -- `Web` 修复上传应用因解析过程变量释放错误 -- `Web` 修复应用设置密码保护校验时报错 [#564](https://github.com/tryzealot/zealot/issues/564) 感谢 [EasierLu](https://github.com/EasierLu) -- `Web` 修复管理员面板编辑用户资料报错 [#564](https://github.com/tryzealot/zealot/issues/564) 感谢 [EasierLu](https://github.com/EasierLu) -- `Web` 修复应用详情页面 "安装" 按钮会在错误的系统和设备上异常显示(正常只有 iOS 应用在 iOS 及 macOS 设备才会显示) -- `Web` 优化应用解包对于开发者证书因包含特殊字符集(目前已知的是中文编码)解析失败及 UI 样式的重新布局 -- `Web` 修复无法编辑当前用户 -- `Web` 改正调试文件的标题重复 -- `Docker` 修复镜像初始化 logrotate 错误 -- `Docker` 修复使用 Caddy 部署需要确认 [#551](https://github.com/tryzealot/zealot/issues/551) 感谢 [ReverseScale](https://github.com/ReverseScale) - -## 4.1.0 (2021-07-17) - -详细[代码变更记录][4.1.0] - -#### 变更 - -- `Web` 因 iPad 的 User-Agent 和 Desktop 一样更改获取设备 UDID 的显示逻辑 -- `Docker` 设置 Gihub Container Registry (gcr.io) 作为默认 Docker 镜像源 - -#### 新功能 - -- `Web` 支持飞书、Gitlab 第三方一键登录认证 -- `Web` 优化找不到应用版本详情页面并可以手动跳转到最新版本 -- `Web` 系统配置新增部分配置项的查看和部分不通过重启的参数修改 -- `Web` 管理面板新增页面统计报表 - -#### 修复 - -- `Web` 修复网络钩子无法获取 title 变量的值 -- `Web` 修复解析应用过程中异常报错 -- `Web` 修复创建应用过程中会有异常报错 -- `Web` 修复系统配置保存时为空造成无法编辑 -- `Job` 处理移除老版本的逻辑造成删除的版本逻辑和文档逻辑是反的 - -## 4.0.0 (2020-12-31) - -详细[代码变更记录][4.0.0] - -#### 修复 - -- `Web` 修正文件解析 iOS 证书对失效时间判断异常造成的页面错误显示 -- `Web` 忽略默认开发版本号检查新版本 - -## 4.0.0.rc2 (2020-12-25) - -详细[代码变更记录][4.0.0.rc2] - -#### 新功能 - -- `Web` 新的文件解析会保存到列表,上传的应用也会同步一份文件解析(异步任务) [#346](https://github.com/tryzealot/zealot/pull/346) -- `Web` 控制面板新增文件解析数据统计 -- `Web` 控制面板针对管理员新增网络钩子、后台任务和磁盘使用的数据统计 -- `Web` 版本详情提示文件缺失增加有权限者快速删除功能 - -#### 变更 - -- `API` 调试文件版本检查接口改名并新增按照文件指纹和 dSYM uuid 检查是否存在 [#349](https://github.com/tryzealot/zealot/pull/346) - -#### 修复 - -- `Web` 修复禁用 LDAP 登录认证报错( IP 白名单设置错误) -- `Web` 修正 Android 微信打开版本详情提示的文案 - -## 4.0.0.rc1 (2020-10-29) - -详细[代码变更记录][4.0.0.rc1] - -#### 变更 - -- `Docker` **重大变更** 合并 rails 和 worker 到同一镜像部署需要同步更新 zealot-docker 库 [#235](https://github.com/tryzealot/zealot/pull/235) -- `Docker` Ruby 升级 2.7 部署 -- `Web` font-awesome 从 4.7.0 升级至 5.13.0,可能会有遗漏的 Icon 显示不正常 -- `Web` 调整邀请邮件的文案 -- `Web` 应用和调试文件下载路径统一到 `/download` 路径 -- `Web` 在线解析应用需要登录权限 -- `Web` 优化已经删除的或不存在的版本详情地址会自动跳转最新版本 -- `Web` 应用安装和下载逻辑做了调整(主要 iPadOS UserAgent 和 Desktop 一样无法判断) - -#### 新功能 - -- `Web` 涉及下载文件不存在会提示无法下载 -- `Web` 在线解析支持 .mobileprovision 格式文件以及解析 .ipa 新增开启功能等 -- `Web` 部分系统设置可以使用管理员面板在线修改 [#245](https://github.com/tryzealot/zealot/pull/245) -- `Web` 新增游客模式 [#243](https://github.com/tryzealot/zealot/pull/243) -- `Web` 支持显示 iOS AdHoc 版本测试设备的名称 [#211](https://github.com/tryzealot/zealot/pull/211) -- `Web` 支持解析已上传版本安装包的内容 [#210](https://github.com/tryzealot/zealot/pull/210) -- `Web` 支持获取 iOS 设备 UDID 功能 [#203](https://github.com/tryzealot/zealot/pull/203) -- `Web` 支持定期数据初始化且有功能限制的演示模式 [#198](https://github.com/tryzealot/zealot/pull/198) -- `Web` 上传 App 后在版本详情显示原本应用的名称 -- `Web` 可通过版本、Git 分支、打包类型筛选过滤应用列表 -- `Web` 版本详情最近上传关联 git commit 链接(如果在渠道设置了 git url) -- `Web` LDAP 登录融合到现有登录界面,不再使用第三方依赖提供的简陋界面 -- `Job` 支持通过 rails 命令管理生成恢复数据备份功能(数据库、上传文件数据)[#207](https://github.com/tryzealot/zealot/pull/207) -- `API` 新增检查调试文件是否存在接口 `/api/debug_files/version_exist` - -#### 修复 - -- `Web` 修复上传 App 填写变更日志解析报错 -- `Web` 解决版本详情中二维码在中等分辨率会超出父视图 -- `Web` 解决应用渠道一些值为空确没有不显示默认值 -- `Web` 优化在线解析 iOS 包的内容展示(和永远展示假数据的问题) -- `Web` 解决版本详情在使用 [fastlane-plugin-ci_changelog](https://github.com/icyleaf/fastlane-plugin-ci_changelog) 生成的变更日志没有展示提交者信息 -- `Web` 修复并优化检查新版本逻辑 -- `Web` 修复删除调试文件确认弹窗信息获取为空 -- `Web` 优化版本详情设备列表在一些手机的显示方式 -- `Web` 修复解析应用在不传参数提交的报错 -- `Web` 优化版本列表在手机查看 -- `Web` 渠道版本的最近上传动态仅显示底部分页,上部改为版本总数 -- `Web` 修复管理员编辑用户留空密码提示不能为空 -- `Web`/`API` 修复在线下载和安装版本不存在时会采用最新版本 -- `Web` 修复游客模式登录界面会显示边栏菜单 -- `Web` 修复上传同一应用同一平台调试文件总是会被覆盖的问题 -- `Web` 系统设置页面优化对布尔类型、字典类型的显示 -- `Job` 修复定时任务来清理老版本时因版本判断错误发生的误删版本 -- `Docker` 修复因为 volume 存储 public 文件夹造成内部静态资源不会更新 -- `Docker` 容器内的版本和外部不一致 - -## 4.0.0.beta4 (2020-05-07) - -详细[代码变更记录][4.0.0.beta4] - -#### 新功能 - -- `Docker` 支持 Heroku 部署 -- `Web` 游客模式允许查看 App 详情、列表和上传 App 详情 -- `API` 上传 App 支持自定义字段 [#178](https://github.com/tryzealot/zealot/issues/178) -- `Web`/`API` 上传 App 传递了 `branch` 值开头包含 `origin/` 开头会自动清理掉 -- `Web` 登录、注册、找回密码、重设密码等用户认证界面增加项目简介 - -#### 修复 - -- `Web` 修正用户密码描述文案 -- `Web` 修复网络钩子(WebHook)包含 url 字段的地址错误 -- `Web`/`API` 修复上传 iOS dSYM 文件上传报错 -- `API` 修复获取 App 接口 has_password 参数异常 -- `API` 修复上传 App 记录的 source 来源都是 Web -- `API` 修复并支持上传 App 传递字符串类型的 json 格式的 changelog -- `Web` 修复系统信息没有正常获取 CPU 和内存信息 -- `Web` 修复在线解析 Android 应用偶尔报错 -- `Web` 修复使用微信扫描二维码页面报错 - -#### 变更 - -- `API` 应用最新版本接口(`apps/latest`)增加 bundle_id 纬度的验证 -- `Web` 游客模式可以访问应用版本详情和下载操作 -- `Web` 应用版本详情对于 iOS AdHoc 右侧的设备列表左移并默认收起状态 -- `Web` 开发环境移除 GraphQL 控制台功能,推荐使用 [graphql-playground](https://github.com/prisma-labs/graphql-playground) -- `Web` 页面底部移除 footbar,版本信息可以在系统信息查看 - -## 4.0.0.beta3 (2020-01-16) - -详细[代码变更记录][4.0.0.beta3] - -#### 新功能 - -- `Web` 管理员添加的用户在邮箱未激活会提示并显示确认邮箱的链接 -- `Web` 默认开启 Sentry 匿名上报机制(可关闭) - -#### 修复 - -- `API` 修复上传应用总会创建新渠道 -- `Web`/`API` 修复上传 Android 应用无法显示图标 - -#### 变更 - -- `Docker` 初始化数据从镜像移出到 [zealot-docker](https://github.com/tryzealot/zealot-docker) 操作 [#120](https://github.com/tryzealot/zealot/pull/120) -- `Docker` 精简镜像的体积大小从 1.18G 降到 308M [#114](https://github.com/tryzealot/zealot/issues/114) -- `Job` 使用异步任务代替传统 cron job 来实现定时清理老版本历史包文件(可关闭) -- `Job` 对异步任务进行分组和设置优先级 -- `API` 所有报错信息改成中文显示,因数据库写操作会返回具体错误信息 -- `Web` 使用 Rubocop Lint 规范化代码 - -## 4.0.0.beta2 (2020-01-10) - -详细[代码变更记录][4.0.0.beta2] - -#### 新功能 - -- `Web` 新增上传到具体应用渠道的全部版本列表同时支持删除操作 - -#### 修复 - -- `Web` 对于上传应用不是有效 ipa 或 apk 的会给予错误提示而不是报错 -- `API` 修复获取应用最新版本列表因查询版本号不存在数据库无法返回最新版本列表 -- `API` 只针对写操作的接口才会要求 token 验证(之前是绝大部分都需要) - -## 4.0.0.beta1 - -🌈 第一个公测版本发布啦 - -## 更早的版本 - -之前多年一直是公司内部开发和运营并没有开源,曾经承担过很多的功能到现在脱离出来专注提供应用托管和分发的服务。 - -[5.1.0]: https://github.com/tryzealot/zealot/compare/5.0.0...5.1.0 -[5.0.0]: https://github.com/tryzealot/zealot/compare/4.7.1...5.0.0 -[4.7.0]: https://github.com/tryzealot/zealot/compare/4.6.0...4.7.0 -[4.6.0]: https://github.com/tryzealot/zealot/compare/4.5.3...4.6.0 -[4.5.3]: https://github.com/tryzealot/zealot/compare/4.5.2...4.5.3 -[4.5.2]: https://github.com/tryzealot/zealot/compare/4.5.1...4.5.2 -[4.5.1]: https://github.com/tryzealot/zealot/compare/4.5.0...4.5.1 -[4.5.0]: https://github.com/tryzealot/zealot/compare/4.4.1...4.5.0 -[4.4.1]: https://github.com/tryzealot/zealot/compare/4.4.0...4.4.1 -[4.4.0]: https://github.com/tryzealot/zealot/compare/4.3.1...4.4.0 -[4.3.1]: https://github.com/tryzealot/zealot/compare/4.3.0...4.3.1 -[4.3.0]: https://github.com/tryzealot/zealot/compare/4.2.2...4.3.0 -[4.2.2]: https://github.com/tryzealot/zealot/compare/4.2.1...4.2.2 -[4.2.1]: https://github.com/tryzealot/zealot/compare/4.2.0...4.2.1 -[4.2.0]: https://github.com/tryzealot/zealot/compare/4.1.0...4.2.0 -[4.1.0]: https://github.com/tryzealot/zealot/compare/4.0.0...4.1.0 -[4.0.0]: https://github.com/tryzealot/zealot/compare/4.0.0.rc2...4.0.0 -[4.0.0.rc2]: https://github.com/tryzealot/zealot/compare/4.0.0.rc1...4.0.0.rc2 -[4.0.0.rc1]: https://github.com/tryzealot/zealot/compare/4.0.0.beta4...4.0.0.rc1 -[4.0.0.beta4]: https://github.com/tryzealot/zealot/compare/4.0.0.beta3...4.0.0.beta4 -[4.0.0.beta3]: https://github.com/tryzealot/zealot/compare/4.0.0.beta2...4.0.0.beta3 -[4.0.0.beta2]: https://github.com/tryzealot/zealot/compare/4.0.0.beta1...4.0.0.beta2 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/credits.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/credits.md deleted file mode 100644 index 68285af48..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/credits.md +++ /dev/null @@ -1,23 +0,0 @@ -# Credits - -实在不知道怎么翻译 `Credits`,就这么招吧。 - -## 贡献成员 - -感谢你们让 Zealot 变得更有用! - - - - - -## 项目名 - -Zealot 来自星际争霸种神族基础兵种。 - -## 图标 - -最初项目历史提交资源图标版权归属[暴雪](https://www.blizzard.com),后期改为自己设计的图标,如果有热心设计师能够帮助设计更好的图标,本人代表本项目表示衷心的感谢。 - -## 发布协议 - -Zealot 是一个基于 MIT 发布协议 (MIT) 发布的开源项目,协议内容请参见[协议文件](https://github.com/tryzealot/zealot/blob/develop/LICENSE)。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/dashboard.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/dashboard.md deleted file mode 100644 index 8ade0c0ca..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/dashboard.md +++ /dev/null @@ -1,3 +0,0 @@ -# 控制面板 - -![screenshot](/img/screenshot/product-1.png) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/debug-files/index.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/debug-files/index.mdx deleted file mode 100644 index 20cd25fad..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/debug-files/index.mdx +++ /dev/null @@ -1,14 +0,0 @@ -# 应用列表 - -按照归属的应用划分显示所有调试文件的数量和详情入口。 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/debug-files/review.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/debug-files/review.mdx deleted file mode 100644 index c63ba4e12..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/debug-files/review.mdx +++ /dev/null @@ -1,48 +0,0 @@ -# 查看调试文件详情 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Android - -### 版本列表 - - - -### 详情信息 - - - -## iOS - -### 版本列表 - - - -### 详情信息 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/debug-files/upload.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/debug-files/upload.mdx deleted file mode 100644 index 39ceb5cf8..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/debug-files/upload.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 上传调试文件 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/index.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/index.mdx deleted file mode 100644 index 8eeb6ca8d..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/index.mdx +++ /dev/null @@ -1,49 +0,0 @@ -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -# 用户手册 - -[![GitHub release](https://img.shields.io/github/v/release/tryzealot/zealot?include_prereleases)](https://github.com/tryzealot/zealot/releases) -[![Docker Pulls](https://img.shields.io/docker/pulls/tryzealot/zealot.svg)](https://hub.docker.com/r/tryzealot/zealot/) -[![Chat on Telegram](https://img.shields.io/badge/chat-on%20telegram-important.svg)](https://img.shields.io/badge/chat-on%20telegram-important.svg) -[![Maintainability](https://codeclimate.com/github/tryzealot/zealot/badges/gpa.svg)](https://codeclimate.com/github/tryzealot/zealot) -[![License](https://img.shields.io/github/license/tryzealot/zealot)](https://github.com/tryzealot/zealot/blob/develop/LICENSE) - -开源自部署持续集成一切跟应用有关事情,接入任意 CI 系统一切自动化处理,企业多年实战经验,独立部署提供企业打包分发流程、上传应用全套流程方案 En Taro Adun! 🖖 - - - -## 特性 - -- 🌏 **多平台应用托管**: macOS、iOS、Android(apk/aab)、Windows、Linux 泛平台 -- 📱 **测试设备一网打进**: 自动同步 iOS 测试设备信息,允许一键注册新设备到苹果开发者 -- 🧑‍💻 **丰富开发者套件**: 提供 REST API、[iOS][zealot-ios-sdk]、[Android][android-android-sdk] SDK 以及 [fastlane][fastlane-plugin-zealot] 自动化构建插件 -- 💥 **剖析应用内部的秘密**: 解读 iOS、Android 应用或 iOS 描述文件的元信息 -- 🚨 **内置多种事件通知**: 数据可自定义 Income WebHook 到任意通知服务 -- 🗄 **多渠道分类管理**: 自由划分不同场景不同产品形态的应用渠道管理 -- 🎳 **多架构部署**: amd86/arm64/armv7 及各种部署方案应有尽有 -- 🔑 **第三方登录**: 飞书、Gitlab、Google、LDAP 和 OIDC 一键授权 -- 🌑 **黑暗模式**: 黑夜白昼自由切换 - -## 在线演示 - -- 演示地址:https://tryzealot.ews.im/ -- 电子邮箱: `admin@zealot.com` -- 登录密码:`ze@l0t` - -> **注意**: 演示服务中的数据每日都会重新初始化,不对用户上传的应用承担任何法律风险,后果自负! - -## 发布协议 - -[MIT][mit-link] - -[zealot-ios-sdk]: https://github.com/tryzealot/zealot-ios -[android-android-sdk]: https://github.com/tryzealot/zealot-android -[fastlane-plugin-zealot]: https://github.com/tryzealot/fastlane-plugin-zealot -[mit-link]: https://github.com/tryzealot/zealot/blob/develop/LICENSE diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/qa.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/qa.md deleted file mode 100644 index b678dfeb4..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/qa.md +++ /dev/null @@ -1,73 +0,0 @@ -# 疑惑解答 - -下面会列出来一些遇到的问题并汇总提供给大家。 - -## 为什么不能使用 HTTP 部署服务 - -鉴于 iOS 使用下载服务依赖开启 SSL/TLS 证书,建议使用经过授权的证书服务,如果服务不需要提供 iOS、macOS 的安装服务可以考虑使用 HTTPS 部署服务, -这里推荐使用免费 [Let's Encrypt](https://letsencrypt.org/) 提供 SSL 证书服务。 - -## 使用自签名的证书无法安装 iOS 应用 - -如果使用自签名证书需要每个 iOS 设备在下载安装应用前必须安装自签名证书才行,每个设备都需要进行安装,操作比较复杂在有免费 SSL 证书服务的情况下不到逼不得已不建议使用自签名证书。 - -## 使用负载均衡部署服务,下载总会从 https 变成 http - -负载均衡在提供服务的时候会在最前端部署 https 服务,内部的分发实际上还是走的 http,解决办法在负载均衡上把转发的协议头从 http 改成 https,这样服务再转发的时候就会继承最前端的协议头(`X-Forwarded-Proto`)。 - -## 是否支持外部 redis、postgresql 链接 - -支持的,如果有公用的 redis、postgresql 服务器那就可以单独部署 zealot 服务,在 `.env` 配置或 Docker、K8s 的环境变量手动指定如下配置: - -```bash -# Redis -REDIS_URL=redis://127.0.0.1:6379/0 - -# Postgresl -ZEALOT_POSTGRES_HOST=127.0.0.1 -ZEALOT_POSTGRES_PORT=5432 -ZEALOT_POSTGRES_USERNAME=postgres -ZEALOT_POSTGRES_PASSWORD=ze@l0t -ZEALOT_POSTGRES_DB_NAME=zealot -``` - -## 是否支持 Kubernetes(k8s)部署 - -服务是支持 K8S 的单机部署但不支持伸缩特性,具体原因是因为应用上传使用的是容器内的本地存储没有支持亚马逊 S3 或阿里云第三方云存储的支持。 - -## 是否提供类似 FIR、蒲公英服务的应用的分享页面 - -服务提供两种页面地址: - -**1 应用渠道详情页** - -`https://YOUR_ZEALOT_URL/channels/SLUG` - -其实 `YOUR_ZEALOT_URL` 是 zealot 服务地址,`SLUG` 是你对应应用渠道的唯一地址。 - -**2 上传的版本详情页** - -`https://YOUR_ZEALOT_URL/channels/SLUG/releases/ID` - -其实 `YOUR_ZEALOT_URL` 是 zealot 服务地址,`SLUG` 是你对应应用渠道的唯一地址,`ID` 是上传的版本 ID,为空的时候会自动调整到最新版本,所以可以直接分享 - -`https://YOUR_ZEALOT_URL/channels/SLUG/releases` - - -## 服务运行一段时间 CPU 或内存资源暴涨不下,如何解决? - -根据用户 [Cleam](https://github.com/Cleam) 的[反馈](https://github.com/tryzealot/zealot/issues/768#issuecomment-1161097162)部署服务之后,托管的应用很少,上传频率不高,服务器硬件规格也完全达标的情况下还是会引发 CPU 或内存资源暴涨造成服务器卡死, -当前的情况属于还属于个人情况,目前情况未知,但可以通过限制 CPU 和内存来规避这个问题,编辑 `docker-compose.yml` 文件: - -```diff -zealot: - <<: *defaults -+ deploy: -+ resources: -+ limits: -+ cpus: 2.0 -+ memory: 2G -+ reservations: -+ cpus: 0.5 -+ memory: 256M -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/toolkits/fetch-udid.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/toolkits/fetch-udid.mdx deleted file mode 100644 index 3e2f4e804..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/toolkits/fetch-udid.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -sidebar_label: "获取 iOS 设备 UDID" ---- - -# 获取 iOS 设备 UDID - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -Zealot 提供的获取 iOS 设备 UDID 除了市面上最最最基础的功能之外,内置了强大扩展功能: - -1. 通过 UDID 罗列可以安装的应用列表 -1. 开启[苹果开发者](../administrator/apple-team)功能允许把未注册测试设备添加到对于的开发者账号 - -## 安装描述文件 - -:::info -此功能仅对 iOS 设备有效,如果是电脑打开会提示用手机扫描二维码打开。 -::: - -无论使用什么用户登录模式(包括游客模式)都可以通过左侧菜单栏的 "获取设备 UDID" 安装描述文件后获取当前 iOS 设备的 UDID。 - -不要在意安装的描述文件展示"未签名",这个不影响安装,且此描述文件是一次性的获取之后会被系统销毁绝对不会存在安全隐患。 - - - -描述文件安装后会返回浏览器打开一个新的页面展示设备 UDID,这个时候会出现如下两种情况: - -- [未注册设备](#未注册设备) -- [已注册设备](#已注册设备) - -## 未注册设备 - -未注册设备提供最基本的设备信息,包含 UDID、内部型号和序列化号之外,服务管理员如果添加了[苹果开发者](../administrator/apple-team)还会显示注册测试设备到对于的开发者账号中。 - -:::tip -注册到苹果开发者账号仅仅意味着设备更新到苹果开发者账号的 Devices 下面,对于 iOS 开发者还需要手动或脚本自动化把该测试设备添加到对应的 Ad-Hoc 证书,再进行安装并重新打包上传才允许该设备安装。 -::: - - - -## 已注册设备 - -已注册的测试设备就会展示可以安装的应用列表。服务管理员如果添加了[苹果开发者](../administrator/apple-team)还会显示注册测试设备到对于的开发者账号中。 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/toolkits/teardown.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/toolkits/teardown.mdx deleted file mode 100644 index 310add762..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/toolkits/teardown.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -sidebar_label: "解析应用" ---- - -# 解析应用分析内部元信息 (Metadata) - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Android - -获取 `AndroidManifest.xml` 元数据,解析 v1 至 v3 签名信息。 - - - -## iOS - -获取 `Info.plist` 元信息、Frameworks 和描述文件及证书信息。 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks.md deleted file mode 100644 index e7250bda0..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -sidebar_label: "网络钩子" ---- - -# 网络钩子(WebHook) - -Zealot 为每个应用渠道都提供一个消息通知的网络钩子,网络钩子完全可自定义结构体可适用于绝大多数的通知服务, -比如企业微信、钉钉、Slack 等等。 - -## 默认结构体 - -默认结构体每个参数都已变量的方式提供它的值,每个变量都以 `@` 开头,在创建网络钩子如果留空自定义结构体就会使用默认结构体, -如下全部提供的变量: - -```ruby -{ - event: @event, - username: @username, - email: @email, - title: @title, - name: @app_name, - app_name: @app_name, - device_type: @device_type, - release_version: @release_version, - build_version: @build_version, - size: @file_size, - changelog: @changelog, - release_url: @release_url, - install_url: @install_url, - icon_url: @icon_url, - qrcode_url: @qrcode_url, - uploaded_at: @uploaded_at -} -``` - -输出的结果如下: - -```json -{ - "event": "upload_events", - "username": "foobar", - "email": "foobar@example.com", - "title": "Zealot 样例 iOS 内测版上传了 1.0.0 版本", - "app_name": "Zealot 样例 iOS 内测版", - "device_type": "iOS", - "release_version": "1.0.0", - "build_version": "1", - "size": "30 MB", - "changelog": "- 新增了 A 功能\n- 修复了 B 问题\n- 发布 1.0.0 版本", - "release_url": "https://zealot.example.com/apps/x3gd/100", - "install_url": "https://zealot.example.com/api/apps/download/12354", - "icon_url": "https://zealot.example.com/api/apps/icon.png", - "qrcode_url": "https://zealot.example.com/api/apps/354/qrcode", - "uploaded_at": "2019-12-30 11:33:00" -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/dingtalk.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/dingtalk.md deleted file mode 100644 index dc0b358be..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/dingtalk.md +++ /dev/null @@ -1,29 +0,0 @@ -# 钉钉 - -[钉钉](https://developers.dingtalk.com/document/robots/custom-robot-access#section-e4x-4y8-9k0)的网络钩子结构体通常支持文本和 markdown 两种方式, -由于系统限制尽量使用关键词或 IP 地址白名单机制来接受消息。可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "msgtype": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\n上传时间: #{@uploaded_at}" - } -} -``` - -## Markdown 格式 - -title 字段仅在对话列表展示,进入对话框的聊天内容则展示 text 字段 - -```ruby -{ - "msgtype": "markdown", - "markdown": { - "title": @title, - "text": "## #{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}\n安装二维码:\n![qrcode](#{@qrcode_url})" - } -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/discord.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/discord.md deleted file mode 100644 index d60148202..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/discord.md +++ /dev/null @@ -1,63 +0,0 @@ -# Discord - -[Discord](https://support.discord.com/hc/zh-tw/articles/228383668) 支持 Slack 兼容的网络钩子因此其结构体通常支持文本和 block 富文本两种方式,可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "text": "#{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}" -} -``` - -## Block 富文本格式 - -一个简单的支持 markdown 的 block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "## #{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}\n安装二维码:\n![qrcode](#{@qrcode_url})" - } - } - ] -} -``` - -稍微好看点有些结构展示的 block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": @title, - } - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*平台:*\n#{@device_type}" - }, - { - "type": "mrkdwn", - "text": "*上传时间:*\n#{@uploaded_at}" - } - ] - }, - "accessory": { - "type": "image", - "image_url": @qrcode_url, - "alt_text": "install qrcode" - } - ] -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/feishu.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/feishu.md deleted file mode 100644 index 59484a2ac..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/feishu.md +++ /dev/null @@ -1,94 +0,0 @@ -# 飞书 - -[飞书](https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN)的网络钩子结构体通常支持文本和卡片两种方式, -由于系统限制尽量使用关键词或 IP 地址白名单机制来接受消息。可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "msg_type": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\n上传时间: #{@uploaded_at}" - } -} -``` - -## Interactive 卡片格式 - -通过这种格式可以实现支持 markdown 的部分语法(不支持外链图片展示): - -```ruby -{ - "msg_type": "interactive", - "card": { - "config": { - "wide_screen_mode": true, - "enable_forward": true - }, - "elements": [ - { - "tag": "div", - "fields": [ - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**平台**\n#{@device_type}" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**版本**\n#{@release_version} (#{@build_version})" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**最后提交者**\n#{@username}" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**上传时间**\n#{@uploaded_at}" - } - }, - ] - }, - { - "tag": "div", - "text": { - "content": "**变更历史**\n#{@changelog}", - "tag": "lark_md" - } - }, - { - "actions": [ - { - "tag": "button", - "text": { - "content": "🐞 版本详情", - "tag": "lark_md" - }, - "url": "#{@release_url}", - "type": "primary", - "value": {} - } - ], - "tag": "action" - } - ], - "header": { - "title": { - "content": "#{@title}", - "tag": "plain_text" - } - } - } -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/slack.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/slack.md deleted file mode 100644 index d0dbe1a8b..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/slack.md +++ /dev/null @@ -1,63 +0,0 @@ -# Slack - -[Slack](https://api.slack.com/messaging/webhooks) 的网络钩子使用 Incoming Webhooks 其结构体通常支持文本和 block 富文本两种方式,可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "text": "#{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}" -} -``` - -## Block 富文本格式 - -一个简单的支持 markdown 的 block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "## #{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}\n安装二维码:\n![qrcode](#{@qrcode_url})" - } - } - ] -} -``` - -稍微好看点有些结构展示的 block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": @title, - } - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*平台:*\n#{@device_type}" - }, - { - "type": "mrkdwn", - "text": "*上传时间:*\n#{@uploaded_at}" - } - ] - }, - "accessory": { - "type": "image", - "image_url": @qrcode_url, - "alt_text": "install qrcode" - } - ] -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/wecom.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/wecom.md deleted file mode 100644 index 74d646487..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.1/user-guide/webhooks/wecom.md +++ /dev/null @@ -1,25 +0,0 @@ -# 企业微信 - -[企业微信](https://work.weixin.qq.com/api/doc/90000/90136/91770)的网络钩子结构体通常支持文本和 markdown 两种方式,可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "msgtype": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\n上传时间: #{@uploaded_at}" - } -} -``` - -## Markdown 格式 - -```ruby -{ - "msgtype": "markdown", - "markdown": { - "content": "## #{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}\n安装二维码:\n![qrcode](#{@qrcode_url})" - } -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/contributing-guide/index.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/contributing-guide/index.md deleted file mode 100644 index 94bf00e37..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/contributing-guide/index.md +++ /dev/null @@ -1,15 +0,0 @@ -# 贡献者指南 - -本指南将会帮助你更好的上手 Zealot!感谢您对本项目感兴趣。在提交你的贡献之前请仔细认真阅读如下指南。 - -## 准备工作 - -贡献代码前请在 Issues 确认是否存在,没有发现的话欢迎动动小手创建新 Issue,创建之后你会收到一个自动回复请勿担心我会在看到后尽快整理并回应。 -如果解决方案非常的复杂,建议极可能完整描述背景、解决目的和方案以方便核心开发者审核。 - -## 本地开发环境 - -我们将会从如下指南帮助准备和部署本地 Zealot 开发环境: - -- [VSCode devcontainer 开发部署](/docs/contributing-guide/local-development/devcontainer) (**简单便捷,强烈推荐**) -- [源代码部署](/docs/contributing-guide/local-development/source-code) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/contributing-guide/local-development/devcontainer.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/contributing-guide/local-development/devcontainer.md deleted file mode 100644 index 7595244a2..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/contributing-guide/local-development/devcontainer.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -sidebar_label: "Dev Container (Docker)" ---- - -# Visual Studio Code Dev Container 开发部署指南 - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -``` - -[Dev Container](https://code.visualstudio.com/docs/devcontainers/containers) (Developing inside a Container) 是 Visual Studio Code 使用 Docker 作为开发环境能够实现在本地无需配置开发环境在容器开发有近乎本地体验的解决方案。 - -![VSCode devcontainer](https://code.visualstudio.com/assets/docs/devcontainers/containers/architecture-containers.png) - -## 系统依赖 - -在开发之前,你需要安装最新版本的 Git,Virsual Studio Code,Docker 和 docker-compose。 - -### 安装 Git - -因操作系统不同,建议按照官方[安装教程](https://github.com/git-guides/install-git)操作。 - -### 安装 Docker & docker-compose - -- Windows: 10 Pro/Enterprise 需要 [Docker Desktop](https://www.docker.com/products/docker-desktop) / Windows 10 Home (2004+) 需要 Docker Desktop 2.3+ 和 [WSL 2 back-end](https://aka.ms/vscode-remote/containers/docker-wsl2)。(不支持 Docker Toolbox 和 Windows container images) -- macOS: [Docker Desktop](https://www.docker.com/products/docker-desktop) 2.0+。 -- Linux: [Docker CE/EE](https://docs.docker.com/install/#supported-platforms) 18.06+ 和 [Docker Compose](https://docs.docker.com/compose/install) 1.21+。(不支持 Ubuntu snap 包) - -### 安装 Visual Studio Code - -Visual Studio Code 是一个跨平台运行的免费的代码编辑器,根据操作系统选择你的安装方式: - -```mdx-code-block - - -``` - -1. 下载 [Visual Studio Code](https://go.microsoft.com/fwlink/?LinkID=534106) macOS 版。 -1. 打开浏览器下载界面找到已下载的应用文件或压缩文件。 -1. 如果是压缩文件先进行解压缩操作,如果使用 Safari 下载通常会帮你自动解压缩。 -1. 拖拽 `Visual Studio Code.app` 到系统应用文件夹。 -1. 双击 VS Code 应用即可打开应用。 - -```mdx-code-block - - -``` - -1. 下载 [Visual Studio Code installer](https://go.microsoft.com/fwlink/?LinkID=534107) Windows 版。 -1. 下载完成后执行安装程序(VSCodeUserSetup-\{version\}.exe)等待安装成功。 -1. 默认情况下 VS Code 会安装到 `C:\Users\\{Username\}\AppData\Local\Programs\Microsoft VS Code` 路径。 - -```mdx-code-block - - -``` - -因操作系统不同,建议按照官方[安装教程](https://code.visualstudio.com/docs/setup/linux)操作。 - -```mdx-code-block - - -``` - -### 安装 Remote container 扩展 - -按照官方教程安装 [Remote Container extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)。 - -![VSCode extension](/img/vscode-install-remote-containers.png) - -## 获取 Zealot Codespace - -Zealot Codespace 同样存放在 Zealot 项目 [.devcontailer](https://github.com/tryzealot/zealot/tree/develop/.devcontainer) 目录,你需要先克隆项目源代码。 - -```bash -git clone https://github.com/tryzealot/zealot.git -``` - -Codespace 包含了一系列文件: - -文件名 | 说明 ----|--- -`devcontainer.json` | VSCode devcontainer 配置文件 -`Dockerfile.base` | 镜像核心,变更会自动推送到不同 registry 仓库 -`Dockerfile` | 间接镜像,主要是节省编译时间 -`docker-compose.yml` | 项目服务依赖 -`create-db-user.sql` | 用于初始化 Postgres 默认用户及权限 - -## 在容器内打开项目 - -打开 Visual Studio Code 应用后在 [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) 输入 `Dev Containers: Open Folder in Container...` 回车选择刚克隆下来的 Zealot 项目目录。 - -![VSCode Command Palette](/img/vscode-command-palette.png) - -首次执行会拉取 Zealot Codespace 镜像并开始构建,过程会持续一段时间期间可点击 **Starting Dev Container (show log)** 查看构建实时日志。 - -![VSCode Command Palette](/img/vscode-devcontainer-log.png) - -构建完成并启动完毕会加载项目文件和 zsh 终端,通过日志可以看到如下信息: - -``` -[7293 ms] Start: Run in container: cat /proc/344/environ -[9836 ms] Port forwarding connection from 53148 > 43379 > 43379 in the container. -[9836 ms] Start: Run in container: /home/vscode/.vscode-server/bin/5235c6bb189b60b01b1f49062f4ffa42384f8c91/node -e -[9981 ms] Port forwarding 53148 > 43379 > 43379 stderr: Connection established -[14988 ms] Port forwarding 53148 > 43379 > 43379 stderr: Remote close -[14999 ms] Port forwarding 53148 > 43379 > 43379 terminated with code 0 and signal null. -[29221 ms] Port forwarding 53148 > 43379 > 43379: Local close -``` - -在宿主机也能看到 Docker 启动了 docker-compose 在运行: - -![Docker-Compose containers](/img/vscode-devcontainer-docker-containers.png) - -## 启动项目 - -如果没有打开 VSCode 内置终端可以通过快捷键 `` Ctrl + ` `` 打开,新打开一个终端运行 `bin/dev` 可运行 Zealot 依赖的所有服务。 - -![VSCode Zealot in Container](/img/vscode-devcontainer-zealot.png) - -## 浏览器访问服务 - -在运行 `bin/dev` 一会后你会在右下角窗口看到 **Open in Browser** 窗口点击可打开 Zealot 网页服务。同样也可以通过终端区域顶部 **Ports** 选项查看可转发端口的服务,点击浏览器图标会把容器的端口转发并绑定到本地随机断开后上面访问。 - -![VSCode forwarded ports](/img/vscode-devcontainer-forwarded-ports.png) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/contributing-guide/local-development/source-code.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/contributing-guide/local-development/source-code.md deleted file mode 100644 index cc11bf73e..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/contributing-guide/local-development/source-code.md +++ /dev/null @@ -1,262 +0,0 @@ ---- -sidebar_label: "源代码" ---- - -# 源码部署 Zealot 指南 - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -``` - -如下整理了不同操作系统的本地部署开发教程。 - -## 准备部署环境 - -### macOS - -#### 安装 homebrew - -首先需要安装 Xcode Command tools: - -```bash -$ xcode-select --install -``` - -如果提示安装失败,需要从 https://developer.apple.com/downloads 下载安装。 - -之后安装 macOS 的包管理工具 Homebrew - -```bash -$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" -``` - -#### 安装依赖 - -之后开始安装环境依赖 - -```bash -$ brew install redis postgresql webp imagemagick node git -``` - -M1 用户需要设置依赖编译路径到 SHELL 的配置文件中: - -```bash -export CPATH=/opt/homebrew/include/ -export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/lib/ -``` - -#### 配置 Postgres 和 Redis - -运行 postgresql 和 redis 服务 - -```bash -$ brew services start postgresql -$ brew services start redis -``` - -Postgresql 还需要创建默认用户名: - -```bash -$ createuser --superuser zealot - -# 如果担心权限过高可以只开启创建数据库权限 -$ createuser --createdb zealot -``` - -#### yarn - -```bash -$ npm install -g yarn -``` - -运行起来后使用浏览器访问 `http://localhost:3000` - -#### 疑难杂症 - -##### M1 芯片 MacOS 问题 - -``` -aarch64-darwin/libwebp_ffi.bundle => aarch64-darwin/jpegdec.o -``` - -使用 `bundle install` 会遇到如上问题这个是因为 homebrew 安装 webp 依赖之后编译路径无法被找到,上面有解决办法。 - -### Debian (Ubuntu) - -#### 安装环境依赖 - -```bash -$ apt update -$ apt install -y libssl-dev tar tzdata git imagemagick libjpeg-dev libpng-dev libtiff-dev libwebp-dev -``` - -#### 安装依赖 - -```bash -$ apt install -y redis postgresql-client node -``` - -#### 配置 Postgres 和 Redis - -运行 postgresql 和 redis 服务 - -```bash -$ systemctl postgres start -$ systemctl redis start -``` - -Postgresql 还需要创建默认用户名: - -```bash -$ initdb -D /var/lib/postgresql/data -$ createuser --superuser zealot - -# If you are worried about the high privilege, you can only enable the create database privilege -$ createuser --createdb zealot -``` - -#### node - -```bash -$ npm install -g yarn -``` - -### Alpine Linux - -#### 安装环境依赖 - -```bash -$ apk --update --no-cache add build-base libxml2 libxslt git \ - libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev \ - tzdata -``` - -如果是在 `arm` 架构安装还需要额外安装 `gcompat` glib 兼容层,否则会报 "[Error loading shared library](https://nokogiri.org/tutorials/installing_nokogiri.html#linux-musl-error-loading-shared-library)" 异常错误。 - -#### 安装依赖 - -```bash -$ apk --update --no-cache redis postgresql node -``` - -#### 配置 Postgres 和 Redis - -运行 postgresql 和 redis 服务 - -```bash -$ rc-service postgres start -$ rc-service redis start -``` - -Postgresql 还需要创建默认用户名: - -```bash -$ initdb -D /var/lib/postgresql/data -$ createuser --superuser zealot - -# 如果担心数据库用户权限,可仅开启创建数据库权限 -$ createuser --createdb zealot -``` - -#### yarn - -```bash -$ npm install -g yarn -``` - -## 安装 Ruby - -可以通过 asdf、rvm 任意一种方式安装。 - -```mdx-code-block - - -``` - -一个支持主流开发语言版本切换的工具,请按照[官方安装教程](http://asdf-vm.com/guide/getting-started.html)好之后安装 ruby: - -```bash -# 开启 Ruby 3.2.0 YJIT 新特性需要安装 Rust 1.58+ -# 可选安装: -asdf plugin add rust -asdf install rust latest -asdf global rust latest -export RUBY_CONFIGURE_OPTS=--enable-yjit - -# 必须安装 -asdf plugin add ruby -asdf install ruby 3.2.0 -asdf global ruby 3.2.0 -``` - -```mdx-code-block - - -``` - -如下命令是先安装 rvm 到当前系统的用户后安装 Ruby 3.0 版本: - -```bash -$ curl -sSL https://get.rvm.io | bash -s stable -$ rvm install 3.2.0 --disable-binary -``` - -```mdx-code-block - - -``` - -## 克隆源代码 - -```bash -git clone https://github.com/tryzealot/zealot.git -``` - -## 初始化 - -以下步骤均需要在 zealot 根目录执行。 - -### bundler - -安装 Ruby gems 第三方类库 - -```bash -$ [sudo] gem install bundler -$ bundle install -``` - -### yarn - -安装前端第三方类库 - -```bash -$ yarn install -``` - -### 初始化数据库 - -确保连接数据库信息没有问题,后将会创建数据库表并创建表结构 - -```bash -$ rails db:create -$ rails db:migrate -``` - -配置数据库连接参数可通过[环境变量](/docs/self-hosted/configuration/environment-variables)或更改 `config/database.yml` 文件。 - -### 初始化预制数据 - -初始化管理员账号和应用样例 - -```bash -$ rails db:seed -``` - -### 运行 Zealot 服务 - -```bash -$ bin/dev -``` - -打开浏览器访问 `http://localhost:3000` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/api.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/api.md deleted file mode 100644 index fdc0d6eb5..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/api.md +++ /dev/null @@ -1,42 +0,0 @@ -# APIs - -Zealot 提供提供 REST APIs 接口服务可用于自定义的查看 App 信息或者上传、下载 App。 - -## 接口认证 {#authentication} - -接口请求目前仅支持 User Token 的 query 认证,在登录用户的详情页面最下面 `API - 密钥` 找到。 -> example : `https://YOUR_ZEALOT_URL/api?token=YOUR_TOKEN` - -## 接口版本 - -当前是 `v1` 版本,接口无需显性传递版本参数,另外 GraphGL 接口也在逐步开发中后续会考虑两个版本同时存在。 - -## 接口列表 - -目前可用的 API 接口基本满足打包和下载流程的范围: - -- [应用](#应用接口) -- [调试文件](#调试文件接口) - -### 应用接口 - -定义 | 地址 ----|--- -上传应用 | `/api/apps/upload` -应用列表 | `/api/apps` -应用详情 | `/api/apps/:id` -应用版本列表 | `/api/apps/versions` -应用最新版本 | `/api/apps/latest` -检查当前版本 | `/api/apps/version_exist` - -### 调试文件接口 - -定义 | 地址 ----|--- -上传调试文件 | `/api/debug_files/upload` -下载调试文件 | `/api/debug_files/download` -调试文件列表 | `/api/debug_files` -调试文件详情 | `/api/debug_files/:id` -检查调试文件是否存在 | `/api/debug_files/version_exist` -更新调试文件 | `/api/debug_files/:id` -删除调试文件 | `/api/debug_files/:id` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/api/apps.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/api/apps.md deleted file mode 100644 index 5e1a0957c..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/api/apps.md +++ /dev/null @@ -1,410 +0,0 @@ ---- -sidebar_label: "应用" ---- - -# 应用接口 - -## 上传应用 - -上传应用,仅支持 iOS, Android 和 macOS 类型。 - -``` -POST /api/apps/upload -``` - -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| file | `File` | true | 应用本地路径的内容 | -| channel_key | `String` | false | 应用具体渠道的 Key,没有传此参数会字段创建对于的应用、类型和渠道 | -| name | `String` | false | 应用名称,为空时取 App 的信息 | -| release_type | `String` | false | 应用类型,比如 debug, beta, adhoc, release, enterprise 等 | -| source | `String` | false | 上传渠道名称,默认是 api | -| changelog | `String` | false | 变更日志,接受纯文本或 JSON 格式化的数据 | -| branch | `String` |false|上传应用时的git branch名称| -| git_commit | `String` | false | 上传应用时的 git commit hash | -| ci_url | `String` | false | CI 项目构建地址 | -| custom_fields | `String` | false | 这是一个用 JSON 字符串定义的自定义字段,
可配置名称,值以及 fontawesome 图标用于在页面详情展示 | - -For `changelog` attribute which it accepts both `plain text` and `JSON` formatted contents: - -**plain text**: - -``` -message 1\nmessage 2 -``` - -**JSON**: - -``` -[ - { - "message": "message 1", - "author": "admin", - "email": "admin@zealot.com", - "date": "2021-11-11 11:11:11" - }, - { - "message": "message 1", - "author": "developer", - "email": "developer@zealot.com", - "date": "2021-11-11 11:11:11" - } -] -``` - -对于 `custom_fields` 的用法,它是一个使用 JSON 格式的以键值对为单位的数组,比如需要自定义国家 country=China 并配置图标为 fontawesome 的 [flag](https://fontawesome.com/v5.15/icons/flag?style=solid) - -```diff -curl -X POST \ - 'https://YOUR_ZEALOT_URL/api/apps/upload' \ - --form 'token="token"' \ - --form 'channel_key="channel_key"' \ -+ --form 'custom_fields="[{"name":"country","value":"China","icon":"fas fa-flag"}]"' \ - --form 'file=@/path/to/your/app' -``` - -#### 返回样例 - -```json -{ - "id": 50, - "version": 7, - "app_name": "Test Android", - "bundle_id": "com.test.app", - "release_version": "1.0", - "build_version": "1", - "source": "SOURCE", - "branch": "master", - "git_commit": "e9de48513dbb6abfbxxxxxxxxxxxxxxxxxxxxxxxx", - "ci_url": "", - "size": 1565486, - "icon_url": "/uploads/apps/a1/r1/icons/app_icon.png", - "release_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1", - "install_url": "https://YOUR_ZEALOT_URL/download/releases/1", - "qrcode_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1/qrcode?size=thumb", - "changelog": [ - { - "message": "Changelog message 1" - }, - { - "message": "Changelog message 2" - } - ], - "text_changelog": "- Changelog message 1\n- Changelog message 2", - "custom_fields": [], - "created_at": "2021-09-01T11:43:33.977+08:00", - "app": { - "id": 1, - "name": "App name" - }, - "scheme": { - "id": 8, - "name": "Test" - }, - "channel": { - "slug": "1XmpC", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - } -} -``` - -## 应用列表 - -获取创建的应用列表,支持分页 - -``` -GET /api/apps -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| page | `Integer` | false | 页数| -| per_page | `Integer` | false | 每页返回最大数目 | - -### 返回样例 - -```json -[ - { - "id": 1, - "name": "Zealot", - "schemes": [ - { - "id": 1, - "name": "测试版", - "channels": [ - { - "slug": "X1IXN", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "O1qHk", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - }, - { - "id": 2, - "name": "内测版", - "channels": [ - { - "slug": "l19Tl", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "8selv", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - } - ] - } -] -``` - -## 应用详情 - -查看应用的明细:应用类型、渠道等信息 - -``` -GET /api/apps/:id -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| id | `Integer` | true | 应用 ID | - -### 返回样例 - -```json -{ - "id": 1, - "name": "Zealot", - "schemes": [ - { - "id": 5, - "name": "测试版", - "channels": [ - { - "slug": "X1IXN", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "O1qHk", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - } - ] -} -``` - -## 应用版本列表 - -获取应用已上传的版本列表,按照上传时间倒序排列 - -``` -GET /api/apps/versions -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| page | `Integer` | false | 页数| -| per_page | `Integer` | false | 每页返回最大数目 | - -### 返回样例 - -```json -{ - "app_name": "Zealot iOS 测试版", - "bundle_id": "*", - "git_url": null, - "app": { - "id": 3, - "name": "Zealot" - }, - "scheme": { - "id": 5, - "name": "测试版" - }, - "releases": [ - { - "version": 2, - "app_name": "Zealot iOS 测试版", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10292024", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - }, - { - "version": 1, - "app_name": "Zealot iOS 测试版", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - }, - ] -} -``` - -## 应用最新版本 - -获取指定应用的最新版本信息 - -``` -GET /api/apps/latest -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| release_version | `String` | true | 应用的发布版本 | -| build_version | `String` | true | 应用的构建版本 | - -### 返回样例 - -```json -{ - "app_name": "Zealot iOS 测试版", - "bundle_id": "*", - "git_url": null, - "app": { - "id": 3, - "name": "Zealot" - }, - "scheme": { - "id": 5, - "name": "测试版" - }, - "releases": { - "version": 1, - "app_name": "Zealot iOS 测试版", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - } -} -``` - -## 检查当前版本是否存在 - -使用 bundle_id、release_version、build_verion 或 bundle_id、git_commit 组合检查当前版本是否存在 - -``` -GET /api/apps/version_exist -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| bundle_id | `String` | true | 应用的包名,iOS 取 bundle_id,Android 取 package_name | -| release_version | `String` | false | 应用的发布版本 | -| build_version | `String` | false | 应用的构建版本 | -| git_commit | `String` | false | 上传应用时的 git commit hash | - -### 返回样例 - -- 版本存在返回 200 状态码并返回版本的信息 -- 版本不存在返回 404 状态码和错误信息 - -版本存在的返回信息 - -```json -{ - "version": 1, - "app_name": "好好住 iOS 测试版", - "bundle_id": "com.haohaozhu.hhz", - "release_version": "4.1.1", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" -} -``` - -版本不存在的返回信息: - -```json -{ - "error": "应用版本不存在" -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/api/debug_files.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/api/debug_files.md deleted file mode 100644 index 317c395b2..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/api/debug_files.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -sidebar_label: "调试文件" ---- - -# 调试文件接口 - -## 上传调试文件 - -上传 iOS 和 Android 的调试文件: - -- iOS: 使用 Zip 压缩后的 dSYM 文件 -- Android: 使用 Zip 压缩后包含 mapping.txt、R.txt 和 AndroidManifest.xml 的文件 - -``` -POST /api/debug_files/upload -``` - -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| file | `File` | true | Zip 压缩文件后的调试文件 | -| release_version | `String` | true | 发布版本号,iOS 类型可忽略该参数 | -| build_version | `String` | true | 内部版本号,iOS 类型可忽略该参数 | - -### 返回样例 - -```json -{ - "id": 1, - "app_name": "演示应用", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## 下载调试文件 - -下载 iOS 和 Android 的调试文件 - -``` -GET /api/debug_files/download -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| release_version | `String` | true | 发布版本号,iOS 类型可忽略该参数 | -| build_version | `String` | false | 内部版本号,iOS 类型可忽略该参数 | -| order | `String` | false | 获取最新的方式,可选值有:
`version` = 最新版本 和 `upload_date` = 最新上传时间
**仅限接受 release_version 值为 `latest` 有效** | - -### 返回样例 - -- 版本存在返回 200 状态码并返回 302 重定向到下载地址 -- 版本不存在返回 404 状态码和错误信息 - -## 调试文件列表 - -获取创建的应用列表,支持分页 - -``` -GET /api/debug_files -``` - -### 参数 - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| page | `Integer` | false | 页数 | -| per_page | `Integer` | false | 每页返回最大数目 | - -### 返回样例 - -```json -[ - { - "id": 1, - "app_name": "演示应用", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] - } -] -``` - -## 调试文件详情 - -查看调试文件的明细,包含上传调试文件的具体解析。 - -``` -GET /api/debug_files/:id -``` - -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| id | `Integer` | true | 调试文件 ID | - -### 返回样例 - -```json -{ - "id": 1, - "app_name": "演示应用", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## 更新调试文件 - -更新调试文件 - -``` -PUT /api/debug_files/:id -``` - -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| id | `Integer` | true | 调试文件 ID | -| file | `File` | true | Zip 压缩文件后的调试文件 | -| release_version | `String` | true | 发布版本号,iOS 类型可忽略该参数 | -| build_version | `String` | true | 内部版本号,iOS 类型可忽略该参数 | - -### 返回样例 - -```json -{ - "id": 1, - "app_name": "演示应用", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## 删除调试文件 - -删除指定调试文件 - -``` -DELETE /api/debug_files/:id -``` -### 参数 - -:::info - -需要[用户认证](/docs/developer-guide/api#authentication) - -::: - -| 名称 | 类型 | 是否必须 | 描述 | -|---|---|---|---| -| channel_key | `String` | true | 应用具体渠道的 Key | -| id | `Integer` | true | 调试文件 ID | - -### 返回样例 - -```json -{ - "mesage": "OK" -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane.md deleted file mode 100644 index 75c380513..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane.md +++ /dev/null @@ -1,25 +0,0 @@ -# Fastlane 插件 - -:::info - -第一次听说 fastlane,那你得多 out 了?!快看看[开发者准备的 Fastlane 系列教程](https://icyleaf.com/series/fastlane)补补课吧。 - -::: - -## 添加 Zealot 插件 - -[fastlane-plugin-zealot](https://github.com/tryzealot/fastlane-plugin-zealot) 是专门为 Zealot 提供 -的上传 iOS、Andorid 应用和调试文件的 fastlane 插件。 - -通过下面方法添加到 fastlane 体系中: - -```bash -$ fastlane add_plugin zealot -``` - -插件包含多个 action: - -- `zealot`: 上传 iOS 或 Android 应用 -- `zealot_debug_file`: 上传调试文件(iOS 是 dSYM,Android 是 Proguard) -- `zealot_version_check`: 检查当前版本是否已存在 -- `zealot_sync_devices`: 同步 Apple 开发者账号的设备列表信息到 Zealot 用于关联 AdHoc 证书应用的设备名称 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot.md deleted file mode 100644 index 6ed857f37..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -sidebar_label: "zealot" ---- - -# Fastlane action: zealot - -上传 iOS 或 Android 应用,传入如下参数插件会在成功打包后自动获取 app 的路径并进行上传: - -```ruby -zealot( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', -) -``` - -## 参数 - -``` -+-----------------+---------------------------------+------------------------+----------+ -| zealot Options | -+-----------------+---------------------------------+------------------------+----------+ -| Key | Description | Env Var | Default | -+-----------------+---------------------------------+------------------------+----------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | The key of app's channel | ZEALOT_CHANNEL_KEY | | -| file | The path of app file. Optional | ZEALOT_FILE | | -| | if you use the `gym`, `ipa`, | | | -| | `xcodebuild` or `gradle` | | | -| | action. | | | -| name | The name of app to display on | ZEALOT_NAME | | -| | zealot | | | -| changelog | The changelog of app | ZEALOT_CHANGELOG | | -| slug | The slug of app | ZEALOT_SLUG | | -| release_type | The release type of app | ZEALOT_RELEASE_TYPE | | -| branch | The name of git branch | ZEALOT_BRANCH | | -| git_commit | The hash of git commit | ZEALOT_GIT_COMMIT | | -| custom_fields | The key-value hash of custom | ZEALOT_CUSTOM_FIELDS | | -| | fields | | | -| password | The password of app to download | ZEALOT_PASSWORD | | -| source | The name of upload source | ZEALOT_SOURCE | fastlane | -| ci_url | The name of upload source | ZEALOT_CI_CURL | | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| hide_user_token | replase user token to *** to | ZEALOT_HIDE_USER_TOKEN | true | -| | keep secret | | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error uploading app | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure | | | -+-----------------+---------------------------------+------------------------+----------+ -* = default value is dependent on the user's system - -+-----------------------+---------------------------------------------+ -| zealot Output Variables | -+-----------------------+---------------------------------------------+ -| Key | Description | -+-----------------------+---------------------------------------------+ -| ZEALOT_APP_ID | The id of app | -| ZEALOT_RELEASE_ID | The id of app's release | -| ZEALOT_RELEASE_URL | The release URL of the newly uploaded build | -| ZEALOT_INSTALL_URL | The install URL of the newly uploaded build | -| ZEALOT_QRCODE_URL | The QRCode URL of the newly uploaded build | -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+---------------------------------------------+ -``` - -## 环境变量 - -``` -+-----------------------+---------------------------------------------+ -| zealot Output Variables | -+-----------------------+---------------------------------------------+ -| Key | Description | -+-----------------------+---------------------------------------------+ -| ZEALOT_APP_ID | The id of app | -| ZEALOT_RELEASE_ID | The id of app's release | -| ZEALOT_RELEASE_URL | The release URL of the newly uploaded build | -| ZEALOT_INSTALL_URL | The install URL of the newly uploaded build | -| ZEALOT_QRCODE_URL | The QRCode URL of the newly uploaded build | -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+---------------------------------------------+ -Access the output values using `lane_context[SharedValues::VARIABLE_NAME]` -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot_debug_file.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot_debug_file.md deleted file mode 100644 index 083f64aad..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot_debug_file.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -sidebar_label: "zealot_debug_file" ---- - -# Fastlane action: zealot_debug_file - -上传 iOS 的 dSYM 或 Android 的 Proguard 调试文件到 Zealot - -```ruby - # 上传 iOS dSYM 调试文件 - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - platform: :ios, - xcode_scheme: 'AppName', - verify_ssl: false - ) - - # 上传 Android Proguard 调试文件 - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - platform: :android, - android_build_type: 'release', - android_flavor: 'store', - release_version: '1.1.0', - build_version: '1', - overwrite: true - ) - - # 上传指定 zip file 调试文件 - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - zip_file: 'path/to/your/zip_file', - release_version: '1.1.0', - build_version: '1', - verify_ssl: false - ) -``` - -## 参数 - -``` -+--------------------+-----------------------------------+---------------------------+---------+ -| zealot_debug_file Options | -+--------------------+-----------------------------------+---------------------------+---------+ -| Key | Description | Env Var | Default | -+--------------------+-----------------------------------+---------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | Any channel key of app | ZEALOT_CHANNEL_KEY | | -| zip_file | Using given the path of zip file | DF_DSYM_ZIP_FILE | | -| | to direct upload | | | -| platform | The name of platfrom, avaiable | ZEALOT_PLATFORM | | -| | value are | | | -| | ios,mac,macos,osx,android | | | -| path | The path of debug file | ZEALOT_PATH | | -| | (iOS/macOS is archive path for | | | -| | Xcode, Android is path for app | | | -| | project) | | | -| xcode_scheme | The scheme name of app | ZEALOT_XCODE_SCHEME | | -| android_build_type | The build type of app | ZEALOT_ANDROID_BUILD_TYPE | release | -| android_flavor | The product flavor of app | ZEALOT_ANDROID_FLAVOR | | -| extra_files | A set file names | ZEALOT_EXTRA_FILES | [] | -| output_path | The output path of compressed | DF_DSYM_OUTPUT_PATH | . | -| | dSYM file | | | -| release_version | The release version of app | ZEALOT_RELEASE_VERSION | | -| | (Android needs) | | | -| build_version | The build version of app | ZEALOT_BUILD_VERSION | | -| | (Android needs) | | | -| overwrite | Overwrite output compressed file | DF_DSYM_OVERWRITE | false | -| | if it existed | | | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error uploading app | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure? (true/false) | | | -+--------------------+-----------------------------------+---------------------------+---------+ -* = default value is dependent on the user's system - -+-----------------------+-----------------------------------------+ -| zealot_debug_file Output Variables | -+-----------------------+-----------------------------------------+ -| Key | Description | -+-----------------------+-----------------------------------------+ -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+-----------------------------------------+ -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot_sync_devices.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot_sync_devices.md deleted file mode 100644 index f3e1cee59..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot_sync_devices.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -sidebar_label: "zealot_sync_devices" ---- - -# Fastlane action: zealot_sync_devices - -:::info - -:bell: Zealot 4.5.0 版本已经支持使用 [Apple API Key](https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) - -苹果开发者管理并可自动同步测试设备展示,[查看详情](/docs/user-guide/administrator/apple-team) -::: - -同步并关联苹果开发者中心(Apple Developer Portal)的测试设备名称到 Zealot 服务。 - -```ruby -# 使用 Apple API Key 授权 -zealot_sync_devices( - endpoint: 'https://zealot.example.com', - token: '...', - api_key_path: '/path/to/your/api_key_json_file', - team_id: '...' -) - -# 使用密码授权(需要二步认证) -zealot_sync_devices( - endpoint: 'https://zealot.example.com', - token: '...', - username: 'user@example.com', - team_id: '...' -) -``` - -## 参数 - -``` -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| zealot_sync_devices Options | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| Key | Description | Env Var(s) | Default | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| username | The apple id (username) of Apple Developer Portal | ZEALOT_USERNAME | * | -| api_key_path | Path to your App Store Connect API Key JSON file | ZEALOT_API_PATH | | -| | (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key | | | -| | -json-file) | | | -| api_key | Your App Store Connect API Key information | ZEALOT_API_KEY | * | -| | (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key | | | -| | -hash-option) | | | -| team_id | The ID of your Developer Portal team if you're in multiple teams | ZEALOT_APPLE_TEAM_ID | * | -| team_name | The name of your Developer Portal team if you're in multiple teams | ZEALOT_APPLE_TEAM_NAME | * | -| platform | The platform to use (optional) | ZEALOT_APPLE_PLATFORM | ios | -| verify_ssl | Should verify SSL of zealot service | ZEALOT_VERIFY_SSL | true | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| fail_on_error | Should an error http request cause a failure? (true/false) | ZEALOT_FAIL_ON_ERROR | false | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot_version_check.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot_version_check.md deleted file mode 100644 index 59418736e..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/fastlane/zealot_version_check.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -sidebar_label: "zealot_version_check" ---- - -# Fastlane action: zealot_version_check - -检查当前版本是否已经上传,减少重复打包和上传。 - -```ruby -zealot_version_check( - endpoint: 'https://zealot.example.com', - token: '...', - bundle_id: 'com.example.app.name', - release_version: '1.0.0', - build_version: '1' -) -``` - -## 参数 - -``` -+-----------------+---------------------------------+------------------------+---------+ -| zealot_version_check Options | -+-----------------+---------------------------------+------------------------+---------+ -| Key | Description | Env Var | Default | -+-----------------+---------------------------------+------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | The key of app's channel | ZEALOT_CHANNEL_KEY | | -| bundle_id | The bundle id(package name) of | ZEALOT_BUNDLE_ID | | -| | app | | | -| release_version | The release version of app | ZEALOT_RELEASE_VERSION | | -| build_version | The build version of app | ZEALOT_BUILD_VERSION | | -| git_commit | The latest git commit of app | ZEALOT_GIT_COMMIT | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error http request | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure? (true/false) | | | -+-----------------+---------------------------------+------------------------+---------+ -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/index.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/index.md deleted file mode 100644 index 30cdd23db..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/index.md +++ /dev/null @@ -1,14 +0,0 @@ -# 开发者资源 - -Zealot 为开发者提供了丰富的组件,包括 iOS 和 Android 使用的 SDK,用于持久化构建自动化脚本 fastlane 插件等。 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/sdk/android.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/sdk/android.md deleted file mode 100644 index 2fd29bee5..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/sdk/android.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -sidebar_label: "Android" ---- - -# Zealot Android SDK - -Android 组件提供为 Zealot 检查新版本和安装的服务,支持 Kotlin 和 Java。 - -## 安装 - -### JitPack - -使用 [jitpack](https://jitpack.io) 安装,先需要添加 maven 仓库: - -```groovy -allprojects { - repositories { - ... - maven { url 'https://jitpack.io' } - } -} -``` - -之后在主 app 项目的 `build.gradle` 添加 zealot: - -```groovy -dependencies { - implementation 'com.github.tryzealot:zealot-android:master-SNAPSHOT' -} -``` - -## 用户权限 - -使用 Zealot SDK 需要开启网络权限 - -```xml - -``` - -## 初始化 - -在你的 `Application` 文件的 `onCreate` 方法添加启动代码: - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -``` - -```kotlin -// 单个渠道 -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("...") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch() - -// 多个渠道,比如测试版本,内测版本 -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("xxxxxxx", "beta") - .setCHannelKey("yyyyyyy", "test") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch() -``` - -```mdx-code-block - - -``` - -```kotlin -// 单个渠道 -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("...") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch(); - -// 多个渠道,比如测试版本,内测版本 -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("xxxxxxx", "beta") - .setCHannelKey("yyyyyyy", "test") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch(); -``` - -```mdx-code-block - - -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/sdk/ios.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/sdk/ios.md deleted file mode 100644 index 706e25a58..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/developer-guide/sdk/ios.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -sidebar_label: "iOS" ---- - -# Zealot iOS SDK -iOS 组件提供为 Zealot 检查新版本和安装的服务,支持 Swift 和 Objective-C。 - -## 安装 - -### Cocoapods - -使用 [Cocoapods](https://cocoapods.org) 安装 Zealot 需要把它加到 `Podfile`: - -```ruby -pod 'Zealot', :git => 'https://github.com/tryzealot/zealot-ios.git', :branch => 'master' -``` - -保存后开始安装: - -```bash -pod install -``` - -## 初始化 - -1. 在 AppDelegate 文件引入 Zealot 框架头: - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -``` - -```swift -import Zealot -``` - -```mdx-code-block - - -``` - -```objectivec -#import -``` - -```mdx-code-block - - -``` - -2. 接着在上面文件的 `application:didFinishLaunchingWithOptions:` 方法追加启动代码: - -```mdx-code-block - - -``` - -```swift -// 单个渠道 -let zealot = Zealot(endpoint: "https://zealot.example.com", channelKey: "...") -zealot.checkVersion() - -// 多个渠道,比如测试版本,内测版本 -let zealot = Zealot(endpoint: "https://zealot.example.com", - channelKeys: [ - "beta": "xxxxxxx", - "test": "yyyyyyy"], - default_enviroment: "beta") - -// 最后触发监测方法 -zealot.checkVersion() -``` - -```mdx-code-block - - -``` - -```objectivec -// 单个渠道 -Zealot *zealot = [[Zealot alloc] initWithEndpoint:@"https://zealot.example.com" - channelKey:@"..."]; - -// 多个渠道,比如测试版本,内测版本 -Zealot *zealot = [[Zealot alloc] initWithEndpoint:@"https://zealot.example.com" - channelKeys:@{ - @"beta": @"xxxxxxx", - @"gray": @"yyyyyyy" - } - default_enviroment:@"beta"]; - -// 最后触发监测方法 -[zealot checkVersion]; -``` - -```mdx-code-block - - -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/configuration/environment-variables.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/configuration/environment-variables.md deleted file mode 100644 index c9eec2ba8..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/configuration/environment-variables.md +++ /dev/null @@ -1,143 +0,0 @@ -# 环境变量 - -## .env 文件 - -Zealot 可通过如下环境变量或使用项目根目录的 `.env` 文件配置系统参数,通过上述方式更改后需要重启服务才可生效。 - -## HTTPS 证书 - -**因苹果的硬性要求线上部署和下载服务强制 HTTPS**,因此再部署的时候下载应用会强制走 HTTPS 协议。 - -如果部署是单台机器的独立服务,建议开启 Let's Encrypt 免费 SSL 证书,只需要设置 - -```bash -ZEALOT_CERT_EMAIL=zealot@example.com -``` - -> 和下面自签名证书文件名二选一,不能同时设置 - -如果部署的机器只能使用自签名证书,则需要配置,但需要注意的是 iOS 的下载需要在 iOS 设备授权自签名的证书后才允许下载安装。(不推荐) - -```bash -ZEALOT_CERT=zealot.example.com.pem -ZEALOT_CERT_KEY=zealot.example.com-key.pem -``` - -> 和 Let's Encrypt 注册电子邮箱名二选一,不能同时设置 - -## 配置域名 (URL) - -必须配置否则下载应用和一些静态资源会无法正确访问到 - -```bash -# 域名配置,无需配置 http:// 或 https:// -ZEALOT_DOMAIN=zealot.example.com -``` - -## 配置数据库和缓存 - -假如你有可以复用的 postgresql 和 redis 服务也可以自定义配置使用,而无需使用 docker-compose 默认配置的服务。 - -### Postgresql - -```bash -ZEALOT_POSTGRES_HOST=127.0.0.1 -ZEALOT_POSTGRES_PORT=5432 -ZEALOT_POSTGRES_USERNAME=postgres -ZEALOT_POSTGRES_PASSWORD=ze@l0t -ZEALOT_POSTGRES_DB_NAME=zealot -``` - -### Redis - -兼容大多数云服务部署采用的 URL 连接方式 - -```bash -REDIS_URL=redis://user:pass@127.0.0.1:6379/0 - -# 基于 SSL 的 Redis -REDIS_URL=rediss://user:pass@127.0.0.1:6379/0 -``` - -## 配置网站默认语言 - -语言包 | 值 ----|--- -zh-CN | 简体中文 (默认) -en | 英文 - -```bash -DEFAULT_LOCALE=en -``` - -## 配置网站默认外观 - -外观 | 值 ----|--- -light | 浅色 (默认) -dark | 深色(黑暗模式) -auto | 随系统自动 - -```bash -ZEALOT_APPEARANCE=dark -``` - -## 配置管理员账户和密码 - -默认不配置如下也会生成下面的账户和密码作为管理员权限的账户,建议配置后重新修改密码。 - -```bash -ZEALOT_ADMIN_EMAIL=admin@zealot.com -ZEALOT_ADMIN_PASSWORD=ze@l0t -``` - -### 开启用户注册 - -关闭注册之后,管理员可以通过管理面板的用户管理手动添加用户。 - -```bash -# 开启注册 -ZEALOT_REGISTER_ENABLED=true - -# 关闭注册 -ZEALOT_REGISTER_ENABLED=false -``` - -### 开启游客模式 - -开启游客模式后允许应用的查看、下载和安装,建议公司内部对权限依赖不高的状况使用,具体权限对比可以[看这里查看详情](/docs/user-guide/administrator/permissions) - -```bash -# 开启游客模式 -ZEALOT_GUEST_MODE=true - -# 关闭游客模式 -ZEALOT_GUEST_MODE=false -``` - -## 邮件服务 - -目前仅支持 smtp 的方式配置邮件通知服务,邮件通知主要影响用户注册、发送激活邮件、更改密码服务,如果不开启也不影响使用,账户激活的链接也会在用户管理那边找到。 - -```bash -# 发送邮件配置 -SMTP_DOMAIN=zealot.example.com -SMTP_ADDRESS=smtp.gmail.com -SMTP_PORT=587 -SMTP_USERNAME=you@gmail.com -SMTP_PASSWORD=your_app_password -SMTP_AUTH_METHOD=plain -SMTP_ENABLE_STARTTLS=true - -# 邮件默认收发人配置 -ACTION_MAILER_DEFAULT_FROM=notification@zealot.com -ACTION_MAILER_DEFAULT_TO=noreply-to@zealot.com -``` - -:::caution - -谷歌已[阻止](https://support.google.com/accounts/answer/6010255)其认为安全性较低的应用的登录操作。 -您可以更改 Gmail [设置](https://www.google.com/settings/security/lesssecureapps)以允许这些尝试。 -如果您的 Gmail 帐户启用了双重身份验证,则需要设置[应用密码](https://myaccount.google.com/apppasswords)并使用它来替换常规密码。 - -::: diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/configuration/schedule-jobs.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/configuration/schedule-jobs.md deleted file mode 100644 index 188a45ec8..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/configuration/schedule-jobs.md +++ /dev/null @@ -1,50 +0,0 @@ -# 定时任务 - -## 清理老版本 - -按照项目维护者长期的使用观察一个可靠的清理老版本的逻辑是时刻关注当前主版本的所有上传版本, -之前上传的历史版本只需要保留最后一个上传构建版本基本上就满足绝大数情况,举个例子: - -> 额外补充:当前逻辑相对省事但缺乏灵活度,其实有想过支持多种处理逻辑,具体参见 https://github.com/tryzealot/zealot/issues/376 - -``` -- 2.0 - - 3 - - 2 - - 1 -- 1.0.1 - - 10 - - 9 - - 8 - ... -- 1.0 - - 5 - - 4 - - 3 - ... -``` - -任务执行时会清理掉 1.0.1 版本包含 9 以下和 1.0 版本包含 4 以下所有版本,最终保留的版本文件是: - -``` -- 2.0 - - 3 - - 2 - - 1 -- 1.0.1 - - 10 -- 1.0 - - 5 -``` - -如果磁盘空间有限,可以通过设置环境变量 `ZEALOT_KEEP_UPLOADS=false` 来开启定时任务的清理。 - -:::info - -默认情况下 `ZEALOT_KEEP_UPLOADS` 是开启状态(`ture` ) 。 - -::: - -## 备份 - -当你通过管理员面板创建任何的备份计划都会加入到定时任务队列中。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/configuration/third-party-authentication.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/configuration/third-party-authentication.md deleted file mode 100644 index 0e1fea7e5..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/configuration/third-party-authentication.md +++ /dev/null @@ -1,116 +0,0 @@ -# 第三方登录 - -Zealot 支持使用已经支持的第三方服务授权登录,当前可以通过如下的环境变量或者在管理员面板的设置页面配置。 - -第三方服务 | 标识符 ----|--- -飞书 | `feishu` -Gitlab | `gitlab` -Google | `google_oauth2` -LDAP | `ldap` -OpenID Connect | `openid_connect` - -如果以上服务需要设置回调地址的话请统一设置为: - -``` -https://zealot.example.com/users/auth/:provider/callback -``` - -其中 `:provider` 是上面支持第三方服务的标识符,例如开启飞书那就把 `:provider` 替换成 `feishu`。 - -## 飞书 - -1. 去注册一个飞书账号并下载手机 App -1. 注册[飞书开发平台](https://open.feishu.cn/app/)并创建企业自建应用获得 app_id, app_secret -1. 填写 callback url 为 `https://zealot.example.com/users/auth/feishu/callback` (域名根据实际情况修改) -1. 添加用户字段信息授权:`email 地址` (可选) -1. 至少勾选一个应用方式并创建新版本后发布 - -```bash -FEISHU_ENABLED=true -FEISHU_APP_ID= -FEISHU_APP_SECRET= -``` - -## Gitlab - -1. 注册 Gitlab [官方](http://gitlab.com)账户或自部署 Gitlab 服务 -1. 在用户设置(Preferences) -> 应用(Applications) 创建一个新应用 -1. 回调地址(Redirect URI) 配置为 `https://zealot.example.com/users/auth/gitlab/callback` (域名根据实际情况修改) -1. 添加用户字段信息授权(scope):`read_user`,默认 zealot 仅用此授权,如果你的授权范围是 `api` 也没问题 - -```bash -GITLAB_ENABLED=true -GITLAB_SITE=https://gitlab.com/api/v4 -GITLAB_SCOPE=read_user -GITLAB_APP_ID= -GITLAB_SECRET= -``` - -## Google - -1. 注册 Google 账号 -1. 开通 [Google Cloud Platform](https://console.cloud.google.com/apis/dashboard) 服务 -1. 选择或创建 Project 并前往 Credentials -1. 创建 OAuth Client ID 选择 Web Application 后添加回调地址(Authorized redirect URI) 配置为 `https://zealot.example.com/users/auth/google_oauth2/callback` (域名根据实际情况修改) -1. 创建成功后获得 Client ID 和 Client Secret - -```bash -GOOGLE_OAUTH_ENABLED=true -GOOGLE_CLIENT_ID= -GOOGLE_SECRET= -``` - -## LDAP - -1. 自部署或使用现有的 LDAP 服务 -1. 自配置或查找如下参数的值 - -```bash -LDAP_ENABLED=true -LDAP_HOST=10.0.0.1 -LDAP_PORT=389 -LDAP_METHOD=plain -LDAP_BIND_DN="cn=Manager,dc=example,dc=com" -LDAP_PASSWORD=password -LDAP_BASE="ou=People,dc=example,dc=com" -LDAP_UID=uid -``` - -## OpenID Connect - -支持开启自动发现模式和手动设置两种方式 - -### 自动发现 - -开启自动发现模式会自动获取 `[OIDC_ISSUER_URL]/.well-known/openid-configuration` 配置。 - -```bash -OIDC_ENABLED=true -OIDC_NAME=OIDC Provider -OIDC_CLIENT_ID= -OIDC_CLIENT_SECRET= -OIDC_SCOPE=openid,email,profile -OIDC_RESPONSE_TYPE=code -OIDC_UID_FIELD=preferred_username -OIDC_ISSUER_URL=https://oidc.example.com -OIDC_DISCOVERY=true -``` - -### 手动配置 - -``` -OIDC_ENABLED=true -OIDC_NAME=OIDC Provider -OIDC_CLIENT_ID= -OIDC_CLIENT_SECRET= -OIDC_SCOPE=openid,email,profile -OIDC_RESPONSE_TYPE=code -OIDC_UID_FIELD=preferred_username -OIDC_ISSUER_URL=https://oidc.example.com -OIDC_AUTH_URI=/authorize -OIDC_TOKEN_URI=/token -OIDC_USERINFO_URI=/userinfo -``` - -以上 `OIDC_AUTH_URI`,`OIDC_TOKEN_URI`,`OIDC_USERINFO_URI` 未设置时会使用如上的默认路径。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/architecture.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/architecture.mdx deleted file mode 100644 index 90c3339ef..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/architecture.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_label: "服务架构" ---- - -# Zealot 服务架构 - -运行 Zealot 依赖如下服务才能保证正常运行 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - - - -- 使用 amd86/arm64/armv7 运行的主流 Linux 系统 -- Ruby on Rails 提供核心网页和 API 服务 -- Sidekiq 提供后台的异步任务管理服务 -- PostgreSQL 数据库服务 -- Redis 缓存服务 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/docker.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/docker.md deleted file mode 100644 index c1bc73fe5..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/docker.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -sidebar_label: "Docker" ---- - -# Docker 部署 Zealot 指南 - -:::tip - -强烈建议安装首选使用 [Docker](https://www.docker.io/) 容器方式安装部署 Zealot。 - -鉴于 iOS 使用下载服务依赖开启 SSL/TLS 证书,建议使用经过授权的证书服务,比如 [Let's Encrypt](https://letsencrypt.org/), -如果使用自签名证书需要每个 iOS 设备在下载安装应用前[必须安装自签名证书](https://support.apple.com/zh-cn/HT204477)才行。 - -::: - -## 一键安装脚本 - -> 对于一键安装部署脚本感兴趣的可以查看 [Docker 手把手部署文档](/docs/self-hosted/deployment/docker/step-by-step)。 - -本着一键安装的原则,可是现实往往是残酷的,Zealot 配置都是依托于 ENV 环境变量,需要配置好之后再执行一键部署生成脚本。 -首先需要克隆[官方 Zealot 部署工具](https://github.com/tryzealot/zealot-docker.git),进入 `zealot-docker` -目录后需要打开 `example.env` 文件配置必要的参数后可直接执行 `./deploy.sh` 脚本: - -:::info - -默认会生成管理员账号:`admin@zealot.com` 和密码 `ze@l0t` 和一些演示应用。 - -::: - -```bash -$ git clone https://github.com/tryzealot/zealot-docker.git -$ cd zealot-docker -$ ./deploy -``` - -一键部署生成脚本默认内置了下面三种模板配置 SSL 证书: - -## 配置 SSL 证书 - -### Let's Encrypt - -:::info - -**免费且自动续签 SSL 证书,新手使用的最佳选择** - -::: - -**第一步**:执行部署脚本: - -```bash -$ ./deploy -``` - -**第二步**:检查和配置 `.env` 文件,主要是 `ZEALOT_DOMAIN` 和 `ZEALOT_CERT_EMAIL` 是否填写正确, -其他部分可根据实际情况做对应的配置调整 - -**第三步**:运行 Zealot 服务: - -```bash -$ docker-compose up -d -``` - -### 反向代理托管 SSL 证书 - -配置说明迁移值[反向代理指南](/docs/self-hosted/reverse-proxies),里面包含了更多的服务配置。 - -### 自签名 SSL 证书 - -:::caution - -在条件满足其他情况下绝对不推荐此方案,iOS 设备对使用自签名证书的任何 Web 服务**必须在其设备上手动安装自签名证书后才能正常安装应用**。 - -::: - -如果域名是非注册域名则需要绑 host 才可以访问,通常是修改系统的 `/etc/hosts` 文件。 - -```bash -$ sudo vim /etc/hosts - -127.0.0.1 zealot.example.com -``` - -另外,在请求 API 接口时你需要关闭或忽略 SSL 证书认证,否则会报错。 - -## 配置访问方式 - -### 公网域名 - -如果想要 Zealot 服务启用公网域名访问,可以在配置 `ZEALOT_DOMAIN=zealot.example.com`,那么你可以直接通过 `https://zealot.example.com` 访问。 - -### IP + 端口 - -如果想要 Zealot 服务启用内网 IP 地址+端口号访问,可以在配置 `ZEALOT_DOMAIN=172.168.1.100:3000`,那么你可以直接通过 `https://172.168.1.100:3000` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/docker/step-by-step.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/docker/step-by-step.md deleted file mode 100644 index ff2958911..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/docker/step-by-step.md +++ /dev/null @@ -1,243 +0,0 @@ ---- -sidebar_label: "详细步骤" ---- - -# Docker 手把手部署文档 - -这是一篇手把手来指导使用 Docker 部署文档,同时也是解释[Docker 部署 Zealot 指南](/docs/self-hosted/deployment/docker)的分解 - -## 版本列表 - -- 稳定版本 - 5.2.3/latest - `ghcr.io/tryzealot/zealot:latest` -- 测试版本 - develop - `ghcr.io/tryzealot/zealot:nightly` - 基于 develop 分支每次提交构建的版本 - -## 镜像仓库 - -> Docker hub [取消了免费组织计划](https://web.docker.com/rs/790-SSB-375/images/privatereposfaq.pdf),不再同步更新推送。 - -Github Container Registry: https://github.com/tryzealot/zealot/pkgs/container/zealot (**推荐**) - -## 步骤解析 - -### 安装 Docker - -按照[官方教程](https://get.docker.com/)安装 - -### 安装 Docker-Compose - -按照[官方教程](https://docs.docker.com/compose/install/)安装 - -### 生成 .env 配置文件 - -从预先 `config.env` 配置文件复制一份部署使用的配置文件 - -### 配置域名 - -二次校验如果没有配置会再提醒 - -### 配置证书 - -部署脚本提供三种方式,就算使用最后一种生成的也是 https 的协议头 - -- 使用 Let's Encrypt 证书 -- 使用自签名证书 -- 纯 Zealot 服务(需反代网关或负载均衡生成 SSL 证书) - -### 生成 docker-compose.yml - -配置文件会生成至少三个服务(service),使用上面前两个证书方式会额外增加一个服务: - -- `zealot-zealot`: 核心 Web 和 API 服务 -- `zealot-postgres`: 数据库服务 -- `zealot-redis`: 缓存服务 -- `zealot-web`: 提供(服务和证书)反代的网关服务,非必需 - -### 创建持久化存储的 docker volumes - -存储持久化数据 - -- `zealot-uploads`: 上传应用和解析后的应用图标、上传的调试文件 -- `zealot-backup`: 备份计划生成备份文件 -- `zealot-postgres`: 数据库数据 -- `zealot-redis`: 缓存数据 - -### 拉取(更新)镜像 - -第一次使用会自动从容器镜像服务网站下载镜像,后续是更新操作,通常只会更新 zealot 镜像。其他几个依赖服务镜像都是固定版本号 - -```bash -docker-compose pull -``` - -### 设置数据库数据 - -第一次使用会初始化数据库、加载范例应用数据和设置管理员账号,后续这是因 zealot 更新需要的操作 - -```bash -docker-compose run --rm zealot run_upgrade -``` - -### 运行 docker-compose - -为了安全期间和用户的自定义操作需要手动执行来运行服务: - -```bash -docker-compose up -d -``` - -## 高级配置 - -### 自定义 volume 路径 - -自定义路径有两种方法: (假设自定义的路径是 `/data/zealot`) - -#### 1. 创建 volume 自定义路径 - -```sh -docker volume create --name zealot-data \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/zealot-data - -docker volume create --name zealot-redis \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/redis - -docker volume create --name zealot-postgres \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/postgres -``` - -#### 2. 修改 docker-compose 的 volumes 部分 - -打开 `docker-compose.yml` 拉到最底部找到 `volumes:` 开头的部分,修改为如下内容: - -```yaml -volumes: - zealot-data: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/data - zealot-redis: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/redis - - zealot-postgres: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/postgres -``` - -## 完整范例 - -```yaml -version: "3.8" - -x-restart-policy: &restart_policy - restart: unless-stopped - -x-defaults: &defaults - <<: *restart_policy - image: ghcr.io/tryzealot/zealot:nightly - depends_on: - - redis - - postgres - env_file: .env - volumes: - - zealot-uploads:/app/public/uploads - - zealot-backup:/app/public/backup - - ./log:/app/log # 持久化日志文件,可选 - healthcheck: - test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost/health || exit 1"] - -services: - redis: - <<: *restart_policy - image: redis:7-alpine - command: redis-server - volumes: - - zealot-redis:/data - healthcheck: - test: ["CMD", "redis-cli", "ping"] - postgres: - <<: *restart_policy - image: postgres:14-alpine - volumes: - - zealot-postgres:/var/lib/postgresql/data - environment: - POSTGRES_PASSWORD: ze@l0t - healthcheck: - test: ["CMD", "pg_isready", "-U", "postgres"] - zealot: - <<: *defaults - # 无需反代可开启端口映射,与下面 web 反代服务互斥 - ports: - - "80:80" - # 可选:使用反代托管 SSL 证书和服务 - web: - image: caddy:2-alpine - ports: - - "80:80" - - "443:443" - volumes: - - ./caddy/etc/caddy/Caddyfile:/etc/caddy/Caddyfile:ro - - ./caddy/etc/caddy/certs:/etc/caddy/certs:ro - env_file: .env - environment: - ACME_AGREE: "true" - - -# 持久化有三种方式: -volumes: - # 1. docker compose 内部自动生成 volumes - - zealot-uploads - - zealot-backup - - zealot-redis - - zealot-postgres - - # 2. docker compose 外部创建的 volumes - zealot-uploads: - external: true - zealot-backup: - external: true - zealot-redis: - external: true - zealot-postgres: - external: true - - - # 3. 挂载自定义本地路径 - zealot-uploads: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/zealot/uploads - zealot-backup: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/zealot/backup - zealot-redis: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/redis - zealot-postgres: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/postgres -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/fly.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/fly.md deleted file mode 100644 index 8413f6b5a..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/fly.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -sidebar_label: "Fly" ---- - -# 部署 Zealot 到 Fly 指南 - -Zealot 支持 [fly.io](https://fly.io) 官方的应用配置格式(fly.toml)。 - -## 部署步骤 - -- 预先安装 [flyctl](https://fly.io/docs/flyctl/) 命令行工具。 -- 复制下面[配置文件](#配置文件) 保存为 `fly.toml` 文件放在项目根目录,根据创建的 fly app 项目修改 app 的值。 -- 运行 `flyctl deploy` 开始构建和部署工作。 -- 运行 `fly scale vm shared-cpu-1x --memory 512` 来达到 Zealot 可允许的内存环境,默认免费的 256M 内存实际只有 205M,Zealot 运行起来闲置状态会 190M 到会提示 OOM 内存溢出。 - -### 配置文件 - -```toml -app = "[app-name:changeme]" -kill_signal = "SIGINT" -kill_timeout = 120 -processes = [] - -[build] - image = "ghcr.io/tryzealot/zealot:nightly" - -[experimental] - allowed_public_ports = [] - auto_rollback = true - -[[services]] - http_checks = [] - internal_port = 80 - processes = ["app"] - protocol = "tcp" - script_checks = [] - [services.concurrency] - hard_limit = 25 - soft_limit = 20 - type = "connections" - - [[services.ports]] - force_https = true - handlers = ["http"] - port = 80 - - [[services.ports]] - handlers = ["tls", "http"] - port = 443 - - [[services.tcp_checks]] - grace_period = "1s" - interval = "15s" - restart_limit = 0 - timeout = "2s" - -[[statics]] - guest_path = "/app/public" - url_prefix = "/" -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/kubernetes.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/kubernetes.md deleted file mode 100644 index 71a558d7a..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/kubernetes.md +++ /dev/null @@ -1,198 +0,0 @@ ---- -sidebar_label: "Kubernetes" ---- - -# Kubernetes 部署 Zealot 指南 - -Zealot 原生支持使用 Kubernetes 部署,不过一直还没有梳理 `.yaml` 配置文件用于安装。 - -## 部署清单 - -- 生成 `Secret`/`Configmap` 存储环境变量。 -- 生成 `PersistentVolumeClaim` 用于 `public/uploads`, `public/bakcup` 的持久化存储。 -- 生成 `Deployment` 来管理 `zealot` Pod。 -- 生成 `Ingress` 配置 Zealot 路由访问。 - -## 详细步骤 - -### 10-zealot-namespace.yml - -创建 Zealot 命名空间。 - -```yaml title="10-zealot-namespace.yml" -api Version: v1 -kind: Namespace -metadata: -name: zealot -``` - -### 20-zealot-secrets.yml - -配置 Zealot 涉及隐私数据的[环境变量](/docs/self-hosted/configuration/environment-variables),值是需要经过 base64 加密。 - -```yaml title="20-zealot-secrets.yml" -apiVersion: v1 -kind: Secret -metadata: - namespace: zealot - name: zealot-secrets -data: - ZEALOT_ADMIN_EMAIL: V1ZkU2RHRlhOVUZsYlZab1lrYzVNRXh0VG5aaVVUMDk= - ZEALOT_ADMIN_PASSWORD: emVAbDB0 - ZEALOT_POSTGRES_HOST: cG9zdGdyZXM= - ZEALOT_POSTGRES_PORT: NTQzMg== - ZEALOT_POSTGRES_USERNAME: emVhbG90 - ZEALOT_POSTGRES_PASSWORD: emVAbDB0 - ZEALOT_POSTGRES_DB_NAME: emVhbG90 - REDIS_URL: cmVkaXM6Ly9yZWRpczo2Mzc5LzE= - - # echo -n 'secret-key' | sha256sum | awk '{ printf $1 }' | base64 - SECRET_TOKEN: ODVkYmUxNWQ3NWVmOTMwOGM3YWUwZjMzYzdhMzI0Y2M2ZjRiZjUxOWEyZWQyZjMwMjdiZDMzYzE0MGE0ZjlhYQ== -``` - -### 21-zealot-configmap.yml - -配置 Zealot 正常数据的[环境变量](/docs/self-hosted/configuration/environment-variables)。 - -```yaml title="21-zealot-configmap.yml" -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: zealot - name: zealot-config -data: - ZEALOT_DOMAIN: zealot.example.com - DEFAULT_LOCALE: en - ZEALOT_REGISTER_ENABLED: "true" -``` - -### 30-zealot-storage.yml - -为上传文件(应用包和调试文件)以及备份文件创建持久化存储卷。你可能需要根据实际情况修改存储大小。 - -```yaml title="30-zealot-storage.yml" -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: zealot-uploads - namespace: zealot - labels: - app: zealot -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: zealot-backup - namespace: zealot - labels: - app: zealot -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi -``` - -### 40-zealot-deployment.yml - -创建 Zealot 部署,根据实际情况修改 `replicas` 扩容值和 `image` 镜像 tag。 - -```yaml title="40-zealot-deployment.yml" -apiVersion: apps/v1 -kind: Deployment -metadata: - name: zealot - namespace: zealot -spec: - restartPolicy: Always - replicas: 1 - selector: - matchLabels: - app: zealot - template: - metadata: - labels: - app: zealot - spec: - containers: - - name: zealot - image: ghcr.io/tryzealot/zealot:nightly - # imagePullPolicy: Always - ports: - - containerPort: 80 - protocol: TCP - name: http - envFrom: - - configMapRef: - name: zealot-env - - secretRef: - name: zealot-secrets - volumeMounts: - - mountPath: /app/public/uploads - name: uploads - - mountPath: /app/public/backup - name: backup - volumes: - - name: uploads - persistentVolumeClaim: - claimName: zealot-uploads - - name: backup - persistentVolumeClaim: - claimName: zealot-backup -``` - -### 50-zealot-service.yml - -创建 zealot 服务。 - -```yaml title="50-zealot-service.yml" -apiVersion: v1 -kind: Service -metadata: - name: zealot - namespace: zealot - labels: - app: zealot -spec: - selector: - app: zealot - ports: - - port: 80 - targetPort: http - name: http - protocol: TCP -``` - -### 60-zealot-ingress.yml - -为 Zealot 服务设置 ingress。 - -```yaml title="50-zealot-ingress.yml" -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: zealot - namespace: zealot - annotations: - #cert-manager.io/cluster-issuer: letsencrypt-prod - #kubernetes.io/ingress.class: nginx -spec: - rules: - - host: zealot.example.com - http: - paths: - - web: - service: - name: zealot - port: - number: 80 - path: / - pathType: Prefix -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/nomad.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/nomad.md deleted file mode 100644 index 509547fad..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/nomad.md +++ /dev/null @@ -1,238 +0,0 @@ ---- -sidebar_label: "Nomad" ---- - -# Nomad 部署 Zealot 指南 - -Zealot 原生支持使用 [Nomad](https://www.nomadproject.io/) 部署。这得益于 Nomad 有很不错的插件机制,官方默认支持 Docker 插件。 -在配置上接近于 docker compose 的配置,只不过它的配置语言是 [HCL](https://developer.hashicorp.com/nomad/docs/job-specification/hcl2) 而不是 YAML。 - -## 基本部署 - -### 使用 Nomad 部署 - -先按照官方教程依次安装好 [nomad](https://developer.hashicorp.com/nomad/docs/install),这个二进制文件是包含了客户端和服务端。 -不了解的建议跟着[官方教程](https://developer.hashicorp.com/nomad/tutorials/get-started)演练一遍。 - -下面文件将会创建 postgres、redis 和 zealot 三个服务,对于已有的外部数据库和缓存服务,可以删除掉对应的 `port`, `service` 和 `task` 后编辑 `zealot` task 里面的模板变量。 - -```hcl title="zealot.nomad" -job "zealot" { - type = "service" - datacenters = "dc1" // 根据实际情况修改 - - update { - max_parallel = 1 - min_healthy_time = "30s" - auto_revert = true - } - - group "zealot" { - network { - port "zealot" { - to = 80 - } - - port "postgres" { - to = 5678 - } - - port "redis" { - to = 6379 - } - } - - service { - name = "zealot" - port = "zealot" - provider = "nomad" - - // 注册服务到 traefik - // tags = [ - // "traefik.enable=true", - // "traefik.http.routers.zealot.entrypoints=web, websecure", - // "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)", - // ] - } - - service { - name = "postgres" - port = "postgres" - provider = "nomad" - - // 注册服务到 traefik - // tags = [ - // "traefik.enable=true", - // "traefik.tcp.routers.postgres.rule=HostSNI(`*`)", - // "traefik.tcp.routers.postgres.entrypoints=postgres", - // ] - } - - service { - name = "redis" - port = "redis" - provider = "nomad" - - // 注册服务到 traefik - // tags = [ - // "traefik.enable=true", - // "traefik.tcp.routers.redis.rule=HostSNI(`*`)", - // "traefik.tcp.routers.redis.entrypoints=redis", - // ] - } - - task "zealot" { - driver = "docker" - - config { - image = "ghcr.io/tryzealot/zealot:latest" - ports = ["zealot"] - - // 根据实际情况修改,或采用 CSI 协议的外部存储 - volumes = [ - "/tmp/zealot/uploads:/app/public/uploads", - "/tmp/zealot/backups:/app/public/backups", - ] - - // 添加服务到 homepage dashboard 面板 - // labels = { - // "homepage.group" = "Dev" - // "homepage.name" = "Zealot" - // "homepage.icon" = "mdi-progress-download" - // "homepage.href" = "https://zealot.example.com" - // "homepage.description" = "Beta App Distribution" - // } - } - - // Zealot example config - // https://github.com/tryzealot/zealot-docker/blob/master/config.env - template { - destination = "local/config.env" - change_mode = "restart" - env = true - data = <<-EOF - ZEALOT_APPEARANCE = dark - ZEALOT_DOMAIN = zealot.example.com - - ZEALOT_GUEST_MODE = false - ZEALOT_REGISTER_ENABLED = true - EOF - } - - template { - destination = "secrets/secret.env" - change_mode = "restart" - env = true - data = <<-EOF - # admin account - ZEALOT_ADMIN_EMAIL = admin@zealot.com - ZEALOT_ADMIN_PASSWORD = ze@l0t - - # datbase - ZEALOT_POSTGRES_HOST = {{ env "NOMAD_IP_postgres" }} - ZEALOT_POSTGRES_PORT = {{ env "NOMAD_PORT_postgres" }} - ZEALOT_POSTGRES_USERNAME = "zealot" - ZEALOT_POSTGRES_PASSWORD = "zealot" - ZEALOT_POSTGRES_DB_NAME = "zealot" - - # cache - REDIS_URL = redis://{{ env "NOMAD_ARRR_redis" }}/0 - - # secret token - SECRET_TOKEN = $${ sha256(uuidv5("url", "zealot.ews.im")) } - EOF - } - - resources { - cpu = 500 - memory = 500 - memory_max = 1000 - } - } - - task "postgres" { - driver = "docker" - - lifecycle { - hook = "prestart" - sidecar = true - } - - config { - image = "postgres:15-alpine" - ports = ["postgres"] - volumes = [ - "secrets/init-role.sql:/init-role.sql", - "secrets/init-db.sql:/init-db.sql" - ] - } - - env { - POSTGRES_INITDB_ARGS = "--data-checksums" - POSTGRES_USER = "zealot" - POSTGRES_PASSWORD = "zealot" - POSTGRES_DB = "zealot" - } - - resources{ - cpu = 512 - memory = 200 - memory_max = 512 - } - } - - task "redis" { - driver = "docker" - - lifecycle { - hook = "prestart" - sidecar = true - } - - config { - image = "redis:7-alpine" - ports = ["redis"] - } - - resources { - cpu = 200 - memory = 200 - } - } - } -} -``` - -确认无误后执行 `nomad job run zealot.nomad` - -### 使用 Terraform 部署 - -> Terraform 和 Nomad 是同家公司的产品。 - -先按照官方教程依次安装好 [terraform](https://www.terraform.io/)、[nomad 插件](https://registry.terraform.io/providers/hashicorp/nomad/)后,复用上面的 `zealot.nomad` 文件再额外加一个 `main.tf` 文件即可。 - -```hcl -resource "nomad_job" "jobs" { - jobspec = file("${path.module}/zealot.nomad") -} -``` - -执行 `terraform plan` 确认无误后在通过 `terraform apply` 应用。 - -## 外部文件存储 - -Nomad 支持多集群管理,很多情况下服务部署的存储不可能直接挂载到对应的文件系统中,更多的是放在一个共享文件存储协议上面,比如 SMB、NFS、S3 等等。 - -### CSI 协议 - -Nomad [支持 CSI 协议](https://developer.hashicorp.com/nomad/tutorials/stateful-workloads/stateful-workloads-csi-volumes),理论上[实现 CSI 接口的服务](https://kubernetes-csi.github.io/docs/drivers.html)都可以满足。 - -> 截止 Nomad 1.5 版本为止,Nomad 可以使用 CSI 卷,但它不能自身控制创建、销毁或管理。卷必须在外部创建,然后向 Nomad 注册后才能使用。 - -插件 | 支持协议 | 兼容情况 | terraform nomad 资源 ----|---|---|--- -[kubernetes-csi-driver-smb](https://github.com/kubernetes-csi/csi-driver-smb) | smb | 未测试 | 未测试 -[kubernetes-csi-driver-nfs](https://github.com/kubernetes-csi/csi-driver-nfs) | nfs | 支持 | [nomad_csi_volume_registration](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume_registration) -[kubernetes-csi-driver-iscsi](https://github.com/kubernetes-csi/csi-driver-iscsi) | iscsi | 未测试 | 未测试 -[democraticcsi/democratic-csi](https://github.com/democratic-csi/democratic-csi) | smb/nfs/iscsi | 支持 | [nomad_csi_volume](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume) -[rocketduck/csi-plugin-nfs](https://gitlab.com/rocketduck/csi-plugin-nfs) | nfs | 支持 | [nomad_csi_volume](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/railway.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/railway.md deleted file mode 100644 index 042c03473..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/railway.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -sidebar_label: "Railway" ---- - -# 部署 Zealot 到 Railway 指南 - -Zealot 支持使用 Docker 部署服务到 [Railway](https://railway.app/)。 - -## 部署步骤 - -- Fork [Zealot](https://github.com/tryzealot/zealot/fork) 项目到你自己的 Github 账户。 -- 使用 "deploy from Github repo" [新建项目](https://railway.app/new)。 -- 新增你需要的[环境变量](/docs/self-hosted/configuration/environment-variables)到 Variables 页面。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/render.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/render.md deleted file mode 100644 index 2d26c465d..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/render.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_label: "Render" ---- - -# 部署 Zealot 到 Render 指南 - -Zealot 提供 [render.com](https://render.com/) 官方 blueprint 模板 `render.yaml` 用于一键部署本服务。 - -## 模板 - -* 使用 [Zealot Docker 镜像](https://ghcr.io/tryzealot/zealot)。 -* 使用 [Render Disks](https://render.com/docs/disks) 作为上传应用和调试文件的持久化存储。 -* 使用 [PostgreSQL](https://render.com/docs/databases) 作为数据库以及 [Redis](https://render.com/docs/redis) 作为数据缓存。 - -## 一键部署 - -[![部署按钮](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/tryzealot/zealot) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/requirements.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/requirements.md deleted file mode 100644 index c7ce34d8b..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/requirements.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -sidebar_label: "依赖" ---- - -# Zealot 自部署依赖 - -如果想要顺利并发挥 Zealot 最佳状态运行,本页面提供了安装所需的各自软硬环境的依赖安装信息。 - -## 操作系统 - -Zealot 可以安装在绝大多数 Linux 操作系统,但目前并没有测试和统计具体有哪些。 - -## 硬件依赖 - -### 系统架构 - -支持使用 amd86/arm64/armv7 运行的主流 Linux 系统,比如 Debian,Ubuntu、CentOS、Arch Linux、Armbian 等。 - -### CPU - -CPU 数量取决于 Zealot 使用的资源和任务量,工作量受(包括但不仅限于)以下因素影响:有多少应用和调试文件被上传和解析;有多少应用被下载;有多少网络钩子被触发;苹果开发者同步测试设备的频率以及备份计划作业的数量和频率。 - -下面是最小硬件条件推荐的 CPU 硬件规格,请不要低于这个标准否则服务运行会收到一定的影响造成服务无法正常工作: - -- **1 核**是**必须**的最小核心数。 - -### 内存 - -内存大小取决于 Zealot 使用的资源和任务量,工作量受(包括但不仅限于)以下因素影响:有多少应用和调试文件被上传和解析;有多少应用被下载;有多少网络钩子被触发;苹果开发者同步测试设备的频率以及备份计划作业的数量和频率。 - -下面是最小硬件条件推荐的内存大小规格,请不要低于这个标准否则服务运行会收到一定的影响造成服务无法正常工作: - -- **512MB**是**必须**的最少的内存大小。 - -### 存储 - -存储容量的大小取决于有多少应用和调试文件版本上传,当然也包含生成的备份文件。 - -## 软件依赖 - -### Ruby 版本 - -- Ruby 3.0+ - -必须使用标准的 MRI 实现的 Ruby 版本。Zealot 内部依赖的 Gems 需要原生扩展。 - -### Node.js 版本 - -Zealot 使用 [esbuild](https://esbuild.github.io/) 和 [sass](https://sass-lang.com/) 编译前端资源。 - -推荐使用 Node 14.x 以上版本。 - -可以在终端应用通过运行 `node -v` 命令查看 node 的版本。如果运行的版本低于 `v8.0` 你需要更新到推荐的版本。你可在[官方网站](https://nodejs.org/en/download/)查看更多安装或升级教程。 - -## 数据库 - -数据库仅支持 PostgreSQL 且目前没有计划支持更多其他数据库。 - -### PostgreSQL 依赖 - -PostgreSQL 预留_至少_ 5-10 GB 空间,更多的空间意味着可以存储更多的数据。 - -我们强烈推荐使用且保持 PostgreSQL 永远是最新的稳定版本作为开发和测试使用。 - -### Redis - -Zealot 后台异步任务和定时任务依赖于 Redis 做数据的存储和统计使用,存储空间依赖很小,50MB 足矣。 - -Redis 最低支持版本 6.2+,推荐 7.x 版本 - -## Sidekiq - -Sidekiq 是 Zealot 后台异步任务和定时任务使用的服务,它支持多线程操作且运行时依托于 Rails (也就是 Zealot 使用的框架)。 -它可能会随着时间的推移而增长内存的占用,如果 Zealot 运行的时间很长造成的服务不稳定请适当调整内存的大小,建议是 1GB+。 - -## 已支持 Web 浏览器 - -:::tip - -Zealot 运行部分页面依赖于 Javascript,请不要设置浏览器禁止它。 - -::: - -Zealot 支持如下 Web 浏览器: - -- [x] [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/) -- [x] [Google Chrome](https://www.google.com/chrome/) -- [x] [Chromium](https://www.chromium.org/getting-involved/dev-channel) -- [x] [Apple Safari](https://www.apple.com/safari/) -- [x] [Microsoft Edge](https://www.microsoft.com/en-us/edge) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/source-code.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/source-code.md deleted file mode 100644 index 6d594d252..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/deployment/source-code.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar_label: "源代码" ---- - -# 源码部署 Zealot 指南 (遗弃) - -新指南已迁移到[贡献者指南](/docs/contributing-guide)。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/index.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/index.md deleted file mode 100644 index 060f9bc95..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/index.md +++ /dev/null @@ -1,14 +0,0 @@ -# 自建服务指南 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -本指南将会帮助你安装和部署 Zealot 到产品环境。 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/reverse-proxies.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/reverse-proxies.mdx deleted file mode 100644 index 923d0af6b..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/reverse-proxies.mdx +++ /dev/null @@ -1,274 +0,0 @@ - -# 反向代理 - -方便 SSL 证书的统一管理和分发、服务的扩容及接入现成的网关服务,文档提供几种给网关配置反向代理服务的配置。 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -## 准备工作 - -配置反向代理需要准备好如下数据: - -名称 | 范例值 | 备注 ----|---|--- -域名 | zealot.example.com | -反向代理 IP 地址 | 172.16.56.1 | -Zealot IP 地址 | 172.16.56.100 | 反向代理服务可访问
同一台服务可改为 127.0.0.1 -Zealot 外部映射端口号 | 8901 | 反向代理服务可访问 -Zealot 内部端口号 | 80 | 无需修改 -Let's Encrypt 邮箱 | your-email@example.com - -## Traefik - -[Traefik](https://doc.traefik.io/traefik/) 是一款开源的反向代理与负载均衡工具,它自身提供多种 Providers 可以实现接入反向代理并配置 SSL 的方式。 - -### 配置解释 - -无论使用那种 Provider 核心的配置项是相同的,构成反向代理服务配置主要有三部分组成:发现端口号、路由规则(包含访问端口号、域名绑定和SSL) - -### Traefik 服务 - -```mdx-code-block - - -``` - -```yaml -entryPoints: - web: - address: ":80" - - websecure: - address: ":443" - -certificatesResolvers: - letsencrypt: - acme: - email: your-email@example.com - storage: acme.json - httpChallenge: - entryPoint: web -``` - -```mdx-code-block - - -``` - -```toml -[entryPoints] - [entryPoints.web] - address = ":80" - - [entryPoints.websecure] - address = ":443" - -[certificatesResolvers.letsencrypt.acme] - email = "your-email@example.com" - storage = "acme.json" - [certificatesResolvers.letsencrypt.acme.httpChallenge] - # used during the challenge - entryPoint = "web" -``` - -```mdx-code-block - - -``` - -```bash ---entrypoints.web.address=:80 ---entrypoints.websecure.address=:443 - ---certificatesresolvers.letsencrypt.acme.email=your-email@example.com ---certificatesresolvers.letsencrypt.acme.storage=acme.json ---certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web -``` - -```mdx-code-block - - -``` - -### Docker - -首先需要开启 [Docker provider](https://doc.traefik.io/traefik/providers/docker/#configuration-examples) 后在修改 zealot 的 Docker Compose 配置: - -```yaml title="docker-compose.yml" -version: '3' -services: - zealot: - <<: *defaults - labels: - - "traefik.enable=true" - - "traefik.http.services.zealot.loadbalancer.server.port=80" - - "traefik.http.routers.zealot.service=zealot" - - "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)" - - "traefik.http.routers.zealot.tls=true" - - "traefik.http.routers.zealot.tls.certresolver=letsencrypt" - - "traefik.http.routers.zealot.tls.domains[0].main=icyleaf.dev" - - "traefik.http.routers.zealot.tls.domains[0].sans=zealot.example.com" - # 由 Treafik 接管无需在对外暴露端口号 - # ports: - # - "8901:80" - network: - # 根据 traefik 服务的 network 按需调整 - - traefik-services - -networks: - # 根据 traefik 服务的 network 按需调整 - traefik-services: - external: true -``` - -Docker 部署的局限于 Traefik 和 Zealot 服务通常在同一个机器的同一个 OS 系统中,跨机器就没法实现通讯,对于跨机器就需要参考下面两种配置方案: - -### Consul - -首先需要开启 [Consul provider](https://doc.traefik.io/traefik/providers/consul/) 或 [Consul Catalog provider](https://doc.traefik.io/traefik/providers/consul-catalog/),我们只需要利用它的 Key-Value 存储: - -```shell -consul kv put traefik/http/services/zealot/loadbalancer/server/port 5 -consul kv put traefik/http/routers/zealot/service zealot -consul kv put traefik/http/routers/zealot/rule 'Host(`zealot.example.com`)' -consul kv put traefik/http/routers/zealot/tls/certresolver letsencrypt -consul kv put traefik/http/routers/zealot/tls/domains/0/main icyleaf.dev -consul kv put traefik/http/routers/zealot/tls/domains/0/sans zealot.example.com -``` - -### Nomad - -首先需要开启 [Nomad provider](https://doc.traefik.io/traefik/providers/nomad/) 且 Nomad 版本要大于等于 1.3 才可以哟: - -```hcl title="zealot.nomad" -job "zealot" { - datacenters = ["dc1"] - type = "service" - - group "zealot" { - count = 1 - - network { - port "http"{ - static = 80 - } - } - - service { - name = "zealot-http" - provider = "nomad" - port = "http" - } - - task "server" { - driver = "docker" - config { - image = "ghcr.io/tryzealot/zealot:nightly" - ports = ["http"] - args = [ - - "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)", - - "traefik.http.routers.zealot.tls=true", - - "traefik.http.routers.zealot.tls.certresolver=letsencrypt", - - "traefik.http.routers.zealot.tls.domains[0].main=icyleaf.dev", - - "traefik.http.routers.zealot.tls.domains[0].sans=zealot.example.com" - ] - } - } - } -} -``` - -## Caddy 2 配置 - -```nginx title="Caddyfile" -:443 - -log - -# 使用 Let's Encrypt 服务 -tls your-email@example.com - -reverse_proxy 172.16.56.100:8901 -``` - -配置只需配置 `tls` 和 `proxy` 后面 IP 地址和端口部分即可。 - -## Nginx - -> 如下是通用配置,如果不可用欢迎[提问题](https://github.com/tryzealot/docs/issues/new)。 - -```nginx title="conf.d/zealot.conf" -upstream zealot { - zone upstreams 64K; - server 172.16.56.100:8901; - keepalive 32; -} - -map $http_upgrade $connection_upgrade { - default upgrade; - '' close; -} - -server { - listen 80; - listen [::]:80; - server_name zealot.example.com; - location /.well-known/acme-challenge/ { allow all; } - location / { return 301 https://$host$request_uri; } -} - -server { - listen 443 ssl http2; # 可选:http2 可能需要安装额外扩展,不需要可移除 - listen [::]:443 ssl http2; # 可选:http2 可能需要安装额外扩展,不需要可移除 - server_name zealot.example.com; - - ssl_certificate /etc/certs/zealot-cert.pem; - ssl_certificate_key /etc/certs/zealot.pem; - - # Optional - # ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA; - # ssl_session_timeout 5m; - # ssl_session_cache shared:SSL:1m; - # ssl_prefer_server_ciphers on; - - location / { - proxy_pass http://zealot; - proxy_redirect off; - - proxy_pass_header Authorization; - proxy_set_header Host $host; - # proxy_set_header X-Forwarded-Ssl on; # 可选 - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - - client_max_body_size 0; - proxy_read_timeout 36000s; - } -} -``` - -Nginx 还需要在 `http` 中配置最大上传文件上传大小,普通应用建议是在 200MB 左右,如果是游戏可根据实际文件大小再多出 50% 打出富余。 - -```nginx title="nginx.conf" -http { - [...] - - client_max_body_size 200M; -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/storage.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/storage.md deleted file mode 100644 index cde9201ab..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/self-hosted/storage.md +++ /dev/null @@ -1,22 +0,0 @@ -# 数据存储 - -这里罗列了 Zealot 服务所需的所有数据存储,在还没有提供更好的备份管理工具之前,方便有能力的用户能够手动备份和恢复数据使用。 - -## Postgres - -用于存储和管理一切和 Zealot 有关数据,这个就不用多说了。 - -## Redis - -目前只有 sidekiq 异步任务服务在使用它做一些任务状态、统计数据的存储。 - -## 文件存储 - -Zealot 服务除了依赖 postgresql、redis 之外还有一部分的磁盘存储是上传的应用、调试文件且仅提供存储在文件系统之中,目录位于 `public/uploads`。 - -- apps 上传应用的目录 -- debugs_files 上传调试文件的目录 - -## 备份存储 - -Zealot 服务目前支持通过管理员面板管理和生成备份数据,备份数据可配置范围包括数据库和上传应用,目录位于 `public/backup`。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/apple-team.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/apple-team.mdx deleted file mode 100644 index 42ded5648..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/apple-team.mdx +++ /dev/null @@ -1,30 +0,0 @@ -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -# 苹果开发者 - -iOS Ad-Hoc 签发的应用分发最大的困难是需要给大量不懂这些概念的人传递什么是 UDID、学习如何获取、获取后再提供给开发者,再通过重新签发证书、打包、上传才能安装。 - -Zealot 可以自动获取 Ad-Hoc 应用的 UDID,面对一串串的 UDID 没人能够看懂这都是谁的设备,明明这些设备在注册的时候都已经备注或自动获取了设备名,但它有不能够自动同步过来。 - -为了解决以上两个重大难题,Zealot 分别尝试了几种方案来解决这个困难,早期使用 fastlane 插件 [zealot_sync_device](/docs/developer-guide/fastlane/zealot_sync_devices) 调用时会同步测试设备的名称和机型,直到苹果开发者推出 [AppStoreConnect API](https://developer.apple.com/documentation/appstoreconnectapi) 后完全可以托管到 Zealot 来自动化处理,通过常规流程大大简化注册流程的同时,也能过让测试应用能够显示可识别且友好的测试设备名称。 - - - -虽然提供的设备 UDID 功能确认哪些应用可以安装,假如设备没有注册到任何一个应用这个时候提供一个测试设备注册的功能岂不是大大提升团队的效率?这也就是苹果开发者的作用。 - - - -最初功能介绍:https://github.com/tryzealot/zealot/issues/723 后续在做更全面的不全 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/backup.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/backup.mdx deleted file mode 100644 index ff3cbe7a9..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/backup.mdx +++ /dev/null @@ -1,34 +0,0 @@ -# 备份计划 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## 备份计划列表 - - - -## 备份文件 - - - -## 创建备份计划 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/background-jobs.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/background-jobs.mdx deleted file mode 100644 index 19eb38d08..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/background-jobs.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 后台任务 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/database-analytics.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/database-analytics.mdx deleted file mode 100644 index 4caf2dd3b..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/database-analytics.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 数据库分析 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/logging.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/logging.mdx deleted file mode 100644 index 938ffd38d..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/logging.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 系统日志 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/system-info.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/system-info.mdx deleted file mode 100644 index cb8571390..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/monitoring/system-info.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 系统信息 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/permissions.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/permissions.md deleted file mode 100644 index c7a2342fa..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/permissions.md +++ /dev/null @@ -1,39 +0,0 @@ -# 用户权限 - -Zealot 提供四种用户权限: - -- 游客 -- 用户 -- 开发者 -- 管理员 - -## 权限明细 - -功能 | 游客[开/关] | 用户 | 开发者 | 管理员 ----|---|---|---|--- -`控制面板`
浏览所有的数据 | ✓/✕ | ✓ | ✓ | ✓ -`应用`
浏览应用列表 | ✓/✕ | ✓ | ✓ | ✓ -`应用`
浏览应用类型和渠道详情 | ✓/✕ | ✓ | ✓ | ✓ -`应用`
浏览应用版本详情 | ✓/✓
支持密码访问 | ✓ | ✓ | ✓ -`应用`
浏览应用内的网络钩子 | ✓/✕ | ✓ | ✓ | ✓ -`应用`
上传/安装/下载应用 | ✓ | ✓ | ✓ | ✓ -`应用`
创建/编辑/删除应用 | | | ✓ | ✓ -`应用`
创建/编辑/删除应用的类型或渠道 | | | ✓ | ✓ -`应用`
删除指定的应用版本和上传的应用文件 | | | ✓ | ✓ -`应用`
测试应用的网络钩子 | | | ✓ | ✓ -`应用`
启用或禁用网络钩子 | | | ✓ | ✓ -`应用`
删除应用 | | | ✓ | ✓ -`调试文件`
浏览调试文件列表 | ✓/✕ | ✓ | ✓ | ✓ -`调试文件`
浏览上传调试文件的解析详情 | ✓ | ✓ | ✓ | ✓ -`调试文件`
下载调试文件 | ✓ | ✓ | ✓ | ✓ -`调试文件`
上传/删除调试文件 | | | ✓ | ✓ -`应用解包`
浏览应用解包列表 | ✓/✕ | ✓ | ✓ | ✓ -`应用解包`
浏览应用解包的详情数据 | ✓/✕ | ✓ | ✓ | ✓ -`应用解包`
删除应用解包 | | | ✓ | ✓ -`管理面板`
浏览和管理用户 | | | | ✓ -`管理面板`
浏览和管理全部的网络钩子 | | | | ✓ -`管理面板`
浏览和管理全部的苹果开发者 | | | | ✓ -`管理面板`
浏览和管理系统设置 | | | | ✓ -`管理面板`
浏览系统环境的数据 | | | | ✓ -`管理面板`
浏览和管理后台任务 | | | | ✓ -`管理面板`
浏览页面访问统计 | | | | ✓ diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/settings.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/settings.mdx deleted file mode 100644 index edbbf05f2..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/administrator/settings.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 系统设置 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/create.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/create.mdx deleted file mode 100644 index b8008d8ac..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/create.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 创建应用 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/detail.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/detail.mdx deleted file mode 100644 index 3a2d32768..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/detail.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 已上传应用 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/index.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/index.mdx deleted file mode 100644 index 2cc79d423..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/index.mdx +++ /dev/null @@ -1,54 +0,0 @@ -# 管理应用 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## 应用列表 - - - -## 编辑应用 - - - -## 创新新类型 - - - -## 创建新渠道 - - - -## 编辑渠道 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/upload.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/upload.mdx deleted file mode 100644 index 4854c8bbb..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/apps/upload.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 上传应用包 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/best_practices.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/best_practices.md deleted file mode 100644 index 6cbb945ab..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/best_practices.md +++ /dev/null @@ -1,63 +0,0 @@ -# 最佳实践 - -## iOS 和 Android 应用 - -### 集成 Zealot SDK - -集成 Zealot SDK 可以让非客户端研发自动触发新版本检查、查看变更日志和安装功能。 - -### 安装 fastlane - -通过官方文档安装 fastlane. - -### 配置 Fastfile - -```ruby -# 构建 iOS 的 ipa 文件并上传 zealot 服务器 -lane :upload_app do - # 打包,比如 iOS 的 gym 或 Android 的 gradle - gym - - # 上传应用到 Zealot - zealot( - endpoint: '...', - token: '...', - channel_key: '...' - ) - - # 上传 iOS 的 dSYM - zealot_debug_file( - scheme: 'AppName' - ) -end - -# 构建 android 的 apk 文件并生成 progguard 包后上传 zealot 服务器 -lane :upload_debug_file do - # 打包,比如 iOS 的 gym 或 Android 的 gradle - gradle - - # 自动化搜索 Android Proguard(混淆)并打包 Zip 文件 - debug_file - - # 上传应用到 Zealot - zealot( - endpoint: '...', - token: '...', - channel_key: '...' - ) - - # 上传 Android 的 Proguard - zealot_debug_file( - build_type: 'release', - flavor: 'googleplay' - ) -end -``` - -## CI 打包构建服务 - -自行选择使用 Jenkins、Gitlab CI 等任何可构建 iOS 或 Android 的构建服务完成项目构建的配置。这部分不同的 CI 服务配置都有所不同,暂时无法展开,大家可根据自己熟悉情况或借助运维部门的协助搭建。 - -## Zealot 服务 - -除了管理每次上传的应用和调试文件,在每次接收到上传的应用会触发已配置的网络钩子用来给第三方服务发送通知有新版本收到,同时对于集成 Zealot SDK 的手机客户端每次第一次打开 App 都会收到新版本的安装提醒。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/changelog.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/changelog.md deleted file mode 100644 index 631fbae3a..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/changelog.md +++ /dev/null @@ -1,616 +0,0 @@ -# 变更日志 - -## 5.2.3 (2024-04-29) - -详细[代码变更记录][5.2.3]。 - -#### 修复 - -- `Web` 修复用户注册提示用户名为空 [#1479](https://github.com/tryzealot/zealot/pull/1479) 感谢 [mlch911](https://github.com/mlch911) - -## 5.2.2 (2024-04-03) - -详细[代码变更记录][5.2.2]。 - -#### 修复 - -- `Web` 修复 OIDC 跳转链接 [#1455](https://github.com/tryzealot/zealot/pull/1455) 感谢 [yiukamsum](https://github.com/yiukamsum) - -## 5.2.1 (2024-04-02) - -解决 iOS 14.5 以下系统版本无法展示安装按钮的小臭虫。详细[代码变更记录][5.2.1]。 - -#### 修复 - -- `Web` iOS 13 以下不显示安装按钮 [#1335](https://github.com/tryzealot/zealot/issues/1335) 感谢 [InjoyDeng](https://github.com/InjoyDeng) [mlch911](https://github.com/mlch911) -- `Web` 删除新建应用下属任意层级造成应用列表页异常 [#1445](https://github.com/tryzealot/zealot/issues/1445) 感谢 [InjoyDeng](https://github.com/InjoyDeng) -- `Web` 修复空渠道在应用类型详情页异常 [#1426](https://github.com/tryzealot/zealot/issues/1426) 感谢 [Liberately](https://github.com/Liberately) -- `API` 修复无 bundle_id 获取最新版本逻辑错误 -- `API` 非 iOS 应用应用下载 install_url 使用普通下载地址 - -## 5.2.0 (2024-03-14) - -功能修复为主,小部分新特性升级,详细[代码变更记录][5.2.0]。 - -#### 新增 - -- `Web` 应用类型新增最大保留版本数的设置 [#1407](https://github.com/tryzealot/zealot/pull/1407) -- `Web` 开放 macOS 系统获取设备 UDID 功能 -- `Web` 允许注册 macOS 设备到苹果开发者测试设备 - -#### 修复 - -- `Web` Anroid 解包没有 services 存储错误的异常报错 -- `Web` 创建网络钩子格式校验错误造成创建失败 [#1314](https://github.com/tryzealot/zealot/issues/1314) -- `Web` 应用版本详情匹配调试文件查询错误造成的异常报错 [#1406](https://github.com/tryzealot/zealot/issues/1406) -- `API` 修复下载调试文件接口并修改变更为 GET 请求 [#1416](https://github.com/tryzealot/zealot/issues/1416) - -## 5.1.0 (2023-12-07) - -功能修复为主,小部分新特性升级,详细[代码变更记录][5.1.0]。 - -#### 变更 - -- `Docker` **重大变更** Redis 最低版本依赖从原来的 5.x 升级至 6.2+,建议使用 7.x 主版本,升级时请手动修改。 - -#### 新增 - -- `Docker` 新增 Redis 版本检测,过低版本会无法正常运行 -- `Docker` 服务初始化时创建数据库 -- `Web` 设置页面针对 JSON 格式设置增强校验条件 - -#### 修复 - -- `Web` 上传检测磁盘空间判断文件是否存在 -- `Web` 修复应用版本关联的调试文件 -- `Web` 修复应用解包详情页面没有展示测试设备列表 -- `Web` 优化应用版本错误页面的展示信息 -- `Web` 优化移动设备应用长包名溢出展示 -- `Web` 优化部分页面样式及英语语言的显示 -- `API/Web` Android 应用解析图标 webp 格式无法转换 png -- `API` 修复 GraphQL 用户认证 - -## 5.0.0 (2023-09-06) - -支持泛应用托管,支持解析会自动解析比如 Windows,不支持解析会跳过。详细[代码变更记录][5.0.0] - -#### 变更 - -- `Docker` **重大变更** Redis 最低版本依赖从原来的 5.x 升级至 6.2+,建议使用 7.x 主版本,升级时请手动修改。 - -#### 新增 - -- `Web/API` 支持泛应用托管(支持解析会自动解析,不支持解析会跳过),默认新增 Windows 和 Linux 平台 [#1121](https://github.com/tryzealot/zealot/pull/1121) -- `Web/API` 新增 Windows 应用托管(上传和元信息解析展示) [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` 全新调试文件页面并新增多 dSYM 调试文件解析和托管 [#1127](https://github.com/tryzealot/zealot/pull/1127) [#1124](https://github.com/tryzealot/zealot/pull/1124) [#961](https://github.com/tryzealot/zealot/issues/961) -- `Web` 支持 Android 应用解包 v1, v2, v3 签名信息 [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` 强化 Android 和 iOS 应用解包的 X509 证书信息 [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` 新增 “重新解析” 功能更新老结构的调试文件元信息 -- `Web` 上传应用版本的变更日志支持 markdown 格式 -- `Web` 设置页可配置全局 “每页返回最小” 和 “最大条目数” -- `Web` 应用版本详情页面针对 iOS 应用展示签名证书过期时间信息和签名证书过期无法安装(可以下载)的逻辑限制 -- `Web` 网络钩子及设置页添加或更新增加 JSON 格式校验 -- `Web` 注册测试设备到苹果开发者支持自定义设备名称和创建后编辑更新设备名称 -- `Web` 苹果开发者的私钥证书支持下载 - -#### 修复 - -- `Web` 修复解包应用无法删除问题 -- `Web` 部分页面的样式优化 -- `Web` 纠正英语语言包错误(en language i18n) -- `Web` 修复应用类型创建为空时错误的报错页面 -- `Web` 修复找不到文件报 404 错误页面 -- `API` 修复应用获取最新版本 build_version 版本比较逻辑优化 -- `Web` 优化上传应用自定义字段格式错误处理 -- `Web` 优化 url 注入、应用历史版本为空、没有注册设备等正确跳转 -- `Web` 优化展示备份任务错误信息 -- `Web` 上传应用对应用类型、调试文件增加类型检测 -- `Web` 修复创建苹果开发者没有预选创建 Distribution Certificate 的错误信息 - -## 4.7.1 (2023-03-10) - -支持最新 Android aapt2 构建工具生成的 aab 应用解析,详细[代码变更记录][4.7.1] - -#### 变更 - -- `Docker` **重大变更** Redis 最低版本依赖从原来的 5.x 升级至 6.2+,建议使用 7.x 主版本,升级时请手动修改。 - -#### 修复 - -- `Web` 升级最新 appt2 模型避免 aab 解析异常 -- `Web` 解析异常的重复处理 - -#### 新增 - -- `Web` Android 应用解包详情页增加应用类型 -- `Web` 应用渠道编辑后调整原先的页面 - -## 4.7.0 (2023-03-03) - -详细[代码变更记录][4.7.0]。 - -#### 变更 - -- `Docker` **重大变更** Redis 最低版本依赖从原来的 5.x 升级至 6.2+,建议使用 7.x 主版本,升级时请手动修改。 - -#### 新增 - -- `Web` 应用类型新增 “新上传版本提示窗” 控制开关 [#1058](https://github.com/tryzealot/zealot/pull/1058) 感谢 [softwind0214](https://github.com/softwind0214) -- `Web` 应用列表页面图标可点击跳转应用详情页 -- `Web` 环境信息新增依赖服务的版本号显示 -- `Web` 版本号增加对 nightly 构建的版本的显示 - -#### 修复 - -- `Web` Ruby 版本降级至 3.0 暂时解决高版本带来的 iOS 应用解析崩溃,具体情况看 [#1070](https://github.com/tryzealot/zealot/issues/1070) -- `Web` 应用/类型/渠道展示顺序固定为按照创建时间正序排列 -- `Web` 修复用户注销时没有弹出二次确认提示 -- `Web` 修复应用版本在主历史版本无法删除 -- `Web` 改善多个页面的样式问题 -- `Web` 产品环境不再展示 Javascript 调试器日志输出 - -## 4.6.0 (2023-01-17) - -运行环境升级至 Ruby 3.2 并支持 arm64 平台。详细[代码变更记录][4.6.0] - -#### 修复 - -- `Web` 捕获创建应用渠道名称为空问题 [#968](https://github.com/tryzealot/zealot/issues/968) 感谢 [congpeijun](https://github.com/congpeijun) -- `Web` 备份文件在磁盘不存在的逻辑完善 [#995](https://github.com/tryzealot/zealot/issues/995) - -#### 新增 - -- `Docker` 支持 arm64/v8 及 armv7 镜像 [#970](https://github.com/tryzealot/zealot/pull/970) -- `Web` 采用新 50x 错误页面 - -#### 变更 - -- `Web` 开发环境 Ruby 升级至 3.2 版本,devcontainer 及容器默认开启 YJIT 特性 [#1011](https://github.com/tryzealot/zealot/pull/1011) -- `API` 更新调试文件返回数据结构并修改状态码从 204 改为 200 - -## 4.5.3 (2022-11-22) - -详细[代码变更记录][4.5.3] - -#### 修复 - -- `Web` 修复第三方登录无法跳转 [#949](https://github.com/tryzealot/zealot/issues/949) 感谢 [softwind0214](https://github.com/softwind0214) - -#### 新增 - -- `Docker` 新增环境变量来关闭 WebSocket (ActionCable) 的请求保护 (实验性质) [#950](https://github.com/tryzealot/zealot/pull/950) - -## 4.5.2 (2022-11-01) - -详细[代码变更记录][4.5.2] - -#### 修复 - -- `Web` 修复注册测试设备异常 [#935](https://github.com/tryzealot/zealot/issues/935) 感谢 [ycy0430](https://github.com/ycy0430) -- `Web` 适配二维码支持黑暗模式 -- `Web` 修正 `en` 英文语言包 - -#### 新增 - -- `WebHook` 变量结构体新增 `username` 和 `email` 字段 [#934](https://github.com/tryzealot/zealot/issues/934) 感谢 [rkonfj](https://github.com/rkonfj) -- `Docker` 支持 `SIDEKIQ_CONCURRENCY` 环境变量设置后台任务的并发量,默认 5 - -#### 变更 - -- `Docker` 减少安全隐患,Web 服务包含 puma 和 puma_control_server 监听更换成 `127.0.0.1` -- `Web` 优化 iOS 设备 UDID 描述文件的文案 -- `Web` 更新页面底部的文案,感谢 Rails 和 AdminLTE 开源项目! - -## 4.5.1 (2022-09-14) - -详细[代码变更记录][4.5.1] - -#### 修复 - -- `Web` 修复应用解包解析报错 - -## 4.5.0 (2022-08-19) - -详细[代码变更记录][4.5.0] - -支持 👨🏻‍🔧 苹果开发者托管测试设备顺手把 🌑 黑暗模式搞来了! - -#### 新增 - -- `Web` 支持黑暗模式 [#816](https://github.com/tryzealot/zealot/pull/816) -- `Web` 新增苹果开发者管理用于注册测试设备 [#817](https://github.com/tryzealot/zealot/pull/817) -- `Web` 新增数据备份管理 [#835](https://github.com/tryzealot/zealot/pull/835) -- `Web` 管理面板完成依赖服务的监控 [#586](https://github.com/tryzealot/zealot/issues/586) -- `API` 涉及 `release` 字典的地方新增三个字段 `platform`, `device_type` 和 `custom_fields` - -#### 变更 - -- `Web` **不兼容变更** Google 统计强制升级 v4 版本,之前设置的需要重新配置才可以生效 [#815](https://github.com/tryzealot/zealot/pull/815) -- `CLI` **不兼容变更** 数据备份和还原功能因结构发生变更不再提供,请使用管理员面板的数据备份功能 -- `Web` 针对获取设备 UDID 及 iOS 版本安装和下载变更根据设备展示对应的功能界面,不再全部展示 -- `Web` 移除管理员面板的页面统计功能 [#814](https://github.com/tryzealot/zealot/pull/814) -- `Web` 前端技术栈从 webpacker 迁移至 esbuild + sass, Turbolinks 迁移至 Stimulus 带来更好的前端交互体验 [#829](https://github.com/tryzealot/zealot/pull/829) -- `Web` 鉴于编辑应用的类型和渠道逻辑较复杂,变更只能修改应用名 - -#### 修复 - -- `Web` 处理应用类型下没有存在渠道的选择错误 [#795](https://github.com/tryzealot/zealot/issues/795) 感谢 [tasselsd](https://github.com/tasselsd) -- `API` 修复 Android 地址返回错误 [#813](https://github.com/tryzealot/zealot/issues/813) 感谢 [denymz](https://github.com/denymz) -- `Web`/`API` 修正 aab 解析部分参数为空引发的异常 [tryzealot/fastlane-plugin-zealot#9](https://github.com/tryzealot/fastlane-plugin-zealot/issues/9) 感谢 [tasselsd](https://github.com/tasselsd) -- `Web` 修复第一次初始化项目生成演示数据异常 [#821](https://github.com/tryzealot/zealot/issues/821) -- `API` 修复检查应用最新版本数据异常 [#856](https://github.com/tryzealot/zealot/issues/856) 感谢 [denymz](https://github.com/denymz) -- `Web` 修复应用渠道详情因关联网络钩子数据异常报错 -- `Web` 修正英文语言包很多拼写错误 - -## 4.4.1 (2022-06-20) - -详细[代码变更记录][4.4.1] - -#### 修复 - -- `WebHook` 修复网络钩子触发成功后报错 [#792](https://github.com/tryzealot/zealot/issues/792) 感谢 [tasselsd](https://github.com/tasselsd) -- `Docker` 兼容 Caddy 2.5.0 反代 https 到 http [#790](https://github.com/tryzealot/zealot/pull/790) 感谢 [VisionBao](https://github.com/VisionBao) [songge1209](https://github.com/songge1209) - -## 4.4.0 (2022-06-09) - -详细[代码变更记录][4.4.0] - -#### 变更 - -- `Web` 对于未登录且未开启游客模式的用户权限新增查看应用版本详情之外还提供按照版本、分支、打包类型方式的筛选显示列表 -- `Web` 运行时环境升级至 Ruby 3.0,服务框架升级至 Rails 7.0 -- `Web` 兼容 macOS M1 芯片组 - -#### 新增 - -- `Web` 便于分享简化和统一部分应用链接 [#666](https://github.com/tryzealot/zealot/pull/666) -- `Web` 补全一些遗漏的权限检查页面 - -#### 修复 - -- `Job` 修复 iOS 文件解析 URL Schemes 异常 -- `Web` 修复服务日志没有输出到终端控制台 -- `Web` 增加处理上传调试文件在解析时它被删除掉或其他原因没有找到本地文件的异常捕获 -- `Web` 适配超宽屏幕的 UI -- `Web` 修复第三方登录依赖库的安全隐患 -- `API` 修复上传 Android 再不传 channel_key 异常 [#779](https://github.com/tryzealot/zealot/issues/779) 感谢 [likfe](https://github.com/likfe) - -## 4.3.1 (2021-12-22) - -详细[代码变更记录][4.3.1] - -#### 新增 - -- `Web` 设置项更新后可恢复原始默认值 -- `Web` 应用解包支持 Android 对 app links (区分 deep links 和 url schemes) 的解析显示 -- `Web` 设置页面强化设置开启、关闭状态的视觉效果 - -#### 修复 - -- `Web` 修复演示模式异步任务方法错误 -- `Web` 修复创建和编辑应用无法勾选选中的应用类型和渠道 -- `Web` 修复在环境页面无法 -- `Web` 修复解析 aab 没有 intent filters 无法解析 -- `Web` 增加取消勾选任何类型和渠道更新应用的报错 -- `Web` 修复加载策略造成第三方登录全部不可用 - -## 4.3.0 (2021-12-08) - -支持 aab 格式解析、多语言支持!详细[代码变更记录][4.3.0] - -#### 变更 - -- `Web` 使用默认提示的结构体作为网络钩子的数据结构,不再是一个奇怪的结构 -- `Web` 设置页面不再提供第三方登录授权的参数变更(依赖服务重启) -- `API` 上传应用接口和版本详情返回主体新增 `text_changelog` [650f1ffd](https://github.com/tryzealot/zealot/commit/650f1ffd3731f6a1f4cc703430be1b1b6f5d1cee) -- `API` 上传应用接口返回主体 `changelog_list` 改名 `changelog` [719f0b1e](https://github.com/tryzealot/zealot/commit/719f0b1eff92f358d246ededd6c1e6f9863f7f85) -- `Web` 变更日志输出的内容不再是一个数组内容,而是改为兼容 markdown list 格式的文本内容 [719f0b1e](https://github.com/tryzealot/zealot/commit/719f0b1eff92f358d246ededd6c1e6f9863f7f85) -- `Web` 一些隐私的配置 key 或 token 仅在管理员权限下明文显示;其他权限不可见;演示只读且会做部分加密处理 [#644](https://github.com/tryzealot/zealot/pull/644) -- `Web` 构建日期和哈希值无法获取不显示 - -#### 新增 - -- `Web` 支持 Android App Bundle (aab) 文件格式和 webp 图标的解析 -- `Web` 支持语言国际化,可选语言包:简体中文,英文 (支持页面配置) -- `Web` 支持配置更多的系统设置项 [#643](https://github.com/tryzealot/zealot/pull/643) -- `Web` 管理面板支持网络钩子的编辑功能 -- `Web` 重写并优化应用列表的样式布局 -- `Web` 优化基础的邮件模板 -- `Web` 调整登录窗口的样式和错误逻辑 -- `Web` 管理面板的环境变量页面新增文件权限检查 [#608](https://github.com/tryzealot/zealot/pull/608) -- `Web` 管理面板的新增错误异步任务的详情展示,最大错误数量为 5000 -- `Web` 使用更好的日志输出格式 [#646](https://github.com/tryzealot/zealot/pull/646) - -#### 修复 - -- `Web` 修复设置页面默认情况下 boolean 值类型的参数勾选状态错误 -- `Web` 修复在钉钉 App 点击安装或下载出现异常问题(改为微信逻辑处理) -- `Web` 修复在环境页面无法显示构建日期(构建 docker 镜像时的时间戳) -- `Web` 修复异步通知域名作用域无法生效 -- `Web` 修复获取 gems 异常 -- `Web` 修复 iOS 证书过期时间判断异常 -- `Web` 修复使用虚拟机开发挂载磁盘空间无法获取 -- `Web` 修复演示模式下的一些已知错误 - -## 4.2.2 (2021-10-15) - -详细[代码变更记录][4.2.2] - -#### 修复 - -- `API` 解决因批量替换造成的参数不匹配没有正确输出错误信息 [#615](https://github.com/tryzealot/zealot/issues/615) 感谢 [gin7758258](https://github.com/gin7758258) -- `Web` 解决了针对部分 apk Android 文件解析异常问题 [#587](https://github.com/tryzealot/zealot/pull/529) - -## 4.2.1 (2021-09-14) - -详细[代码变更记录][4.2.1] - -#### 变更 - -- `Web` 应用的图标不再按照预设尺寸裁切并移除图片处理依赖减少将近 200MB 镜像体积 -- `Docker` 反代服务 Caddy 不再输出日志到 STDOUT 而是直接到文件 - -#### 修复 - -- `Web` 修复上传应用后图标没有正常处理和显示 -- `Web` 兼容上传 dSYM 不同的 zip 解压缩逻辑 -- `Web` 修复安装 iOS 无法显示应用图标 -- `Web` 安全隐患:禁止编辑设置只读的系统设置 -- `Web` 修复 macOS 下载文件后缀不正确 -- `Web` 修复个别情况下不显示弹出无法安装的窗口 - -## 4.2.0 (2021-09-01) - -详细[代码变更记录][4.2.0] - -#### 变更 - -- `Web` 清理老版本逻辑默认改为关闭,如需开启请设置环境变量 `ZEALOT_KEEP_UPLOADS=false` [#570](https://github.com/tryzealot/zealot/pull/570) -- `Web` `文件解析`改名为`应用解包` [#529](https://github.com/tryzealot/zealot/pull/529) -- `Web` 下线应用解包中对已上传应用的解包支持(现在上传的应用都会自动触发额外的应用解包) -- `API` 上传应用的自定义字段图标支持 fontawesome css 的值,比如 [flag](https://fontawesome.com/v5.15/icons/flag?style=solid) 的值是 `fas fa-flag` -- `Docker` 镜像由 caddy 作为反代提供服务并对 volume 持久化做了变更,涉及迁移,具体看 [#540](https://github.com/tryzealot/zealot/pull/540) - -#### 新功能 - -- `Web` 支持 macOS 应用的上传、解析和下载 [#562](https://github.com/tryzealot/zealot/pull/562) -- `Web` 新增手机设备在渠道详情页对应用类型和渠道快速筛选项 [#510](https://github.com/tryzealot/zealot/issues/510) 感谢 [huacnlee](https://github.com/huacnlee) -- `Web` 管理员面板可配置应用的类型模板和默认注册用户的权限 [#562](https://github.com/tryzealot/zealot/pull/562) [#568](https://github.com/tryzealot/zealot/pull/568) -- `Web` 环境变量涉及隐私的做部分加密处理 -- `Web` 内存和磁盘使用率增加图形展示 -- `Docker` 新增支持 [Github Container Registry](https://github.com/tryzealot/zealot/pkgs/container/zealot) 镜像同步更新 -- `Docker` 新增支持环境变量配置 postgres 端口号 - -#### 修复 - -- `Web` 修复在 iPad 和 M1 芯片的 macOS 无法显示 iOS 安装按钮 [#519](https://github.com/tryzealot/zealot/issues/519) 感谢 [ohdarling](https://github.com/ohdarling) -- `Web` 修复注册但未验证邮件的同时使用第三方登录失败 [#517](https://github.com/tryzealot/zealot/issues/517) 感谢 [huacnlee](https://github.com/huacnlee) -- `Web` 修复使用网页上传没有触发应用解包 -- `Web` 修复 tubrolink 开启下左侧导航样式错位 -- `Web` Android 上传应用也显示解包链接 -- `Web` 优化解包文件列表判断为空的显示提示 -- `Web` 修复 LDAP 参数获取错误 [#541](https://github.com/tryzealot/zealot/pull/542) 感谢 [Martwu](https://github.com/Martwu) -- `Web` 优化捕获页面上传应用错误改为可读的错误信息 -- `Web` 修复创建应用类型出错判断异常 -- `Web` 补充在应用删除全部渠道后点击详情报错的一个异常情况的判断 -- `Web` 修复上传应用因解析过程变量释放错误 -- `Web` 修复应用设置密码保护校验时报错 [#564](https://github.com/tryzealot/zealot/issues/564) 感谢 [EasierLu](https://github.com/EasierLu) -- `Web` 修复管理员面板编辑用户资料报错 [#564](https://github.com/tryzealot/zealot/issues/564) 感谢 [EasierLu](https://github.com/EasierLu) -- `Web` 修复应用详情页面 "安装" 按钮会在错误的系统和设备上异常显示(正常只有 iOS 应用在 iOS 及 macOS 设备才会显示) -- `Web` 优化应用解包对于开发者证书因包含特殊字符集(目前已知的是中文编码)解析失败及 UI 样式的重新布局 -- `Web` 修复无法编辑当前用户 -- `Web` 改正调试文件的标题重复 -- `Docker` 修复镜像初始化 logrotate 错误 -- `Docker` 修复使用 Caddy 部署需要确认 [#551](https://github.com/tryzealot/zealot/issues/551) 感谢 [ReverseScale](https://github.com/ReverseScale) - -## 4.1.0 (2021-07-17) - -详细[代码变更记录][4.1.0] - -#### 变更 - -- `Web` 因 iPad 的 User-Agent 和 Desktop 一样更改获取设备 UDID 的显示逻辑 -- `Docker` 设置 Gihub Container Registry (gcr.io) 作为默认 Docker 镜像源 - -#### 新功能 - -- `Web` 支持飞书、Gitlab 第三方一键登录认证 -- `Web` 优化找不到应用版本详情页面并可以手动跳转到最新版本 -- `Web` 系统配置新增部分配置项的查看和部分不通过重启的参数修改 -- `Web` 管理面板新增页面统计报表 - -#### 修复 - -- `Web` 修复网络钩子无法获取 title 变量的值 -- `Web` 修复解析应用过程中异常报错 -- `Web` 修复创建应用过程中会有异常报错 -- `Web` 修复系统配置保存时为空造成无法编辑 -- `Job` 处理移除老版本的逻辑造成删除的版本逻辑和文档逻辑是反的 - -## 4.0.0 (2020-12-31) - -详细[代码变更记录][4.0.0] - -#### 修复 - -- `Web` 修正文件解析 iOS 证书对失效时间判断异常造成的页面错误显示 -- `Web` 忽略默认开发版本号检查新版本 - -## 4.0.0.rc2 (2020-12-25) - -详细[代码变更记录][4.0.0.rc2] - -#### 新功能 - -- `Web` 新的文件解析会保存到列表,上传的应用也会同步一份文件解析(异步任务) [#346](https://github.com/tryzealot/zealot/pull/346) -- `Web` 控制面板新增文件解析数据统计 -- `Web` 控制面板针对管理员新增网络钩子、后台任务和磁盘使用的数据统计 -- `Web` 版本详情提示文件缺失增加有权限者快速删除功能 - -#### 变更 - -- `API` 调试文件版本检查接口改名并新增按照文件指纹和 dSYM uuid 检查是否存在 [#349](https://github.com/tryzealot/zealot/pull/346) - -#### 修复 - -- `Web` 修复禁用 LDAP 登录认证报错( IP 白名单设置错误) -- `Web` 修正 Android 微信打开版本详情提示的文案 - -## 4.0.0.rc1 (2020-10-29) - -详细[代码变更记录][4.0.0.rc1] - -#### 变更 - -- `Docker` **重大变更** 合并 rails 和 worker 到同一镜像部署需要同步更新 zealot-docker 库 [#235](https://github.com/tryzealot/zealot/pull/235) -- `Docker` Ruby 升级 2.7 部署 -- `Web` font-awesome 从 4.7.0 升级至 5.13.0,可能会有遗漏的 Icon 显示不正常 -- `Web` 调整邀请邮件的文案 -- `Web` 应用和调试文件下载路径统一到 `/download` 路径 -- `Web` 在线解析应用需要登录权限 -- `Web` 优化已经删除的或不存在的版本详情地址会自动跳转最新版本 -- `Web` 应用安装和下载逻辑做了调整(主要 iPadOS UserAgent 和 Desktop 一样无法判断) - -#### 新功能 - -- `Web` 涉及下载文件不存在会提示无法下载 -- `Web` 在线解析支持 .mobileprovision 格式文件以及解析 .ipa 新增开启功能等 -- `Web` 部分系统设置可以使用管理员面板在线修改 [#245](https://github.com/tryzealot/zealot/pull/245) -- `Web` 新增游客模式 [#243](https://github.com/tryzealot/zealot/pull/243) -- `Web` 支持显示 iOS AdHoc 版本测试设备的名称 [#211](https://github.com/tryzealot/zealot/pull/211) -- `Web` 支持解析已上传版本安装包的内容 [#210](https://github.com/tryzealot/zealot/pull/210) -- `Web` 支持获取 iOS 设备 UDID 功能 [#203](https://github.com/tryzealot/zealot/pull/203) -- `Web` 支持定期数据初始化且有功能限制的演示模式 [#198](https://github.com/tryzealot/zealot/pull/198) -- `Web` 上传 App 后在版本详情显示原本应用的名称 -- `Web` 可通过版本、Git 分支、打包类型筛选过滤应用列表 -- `Web` 版本详情最近上传关联 git commit 链接(如果在渠道设置了 git url) -- `Web` LDAP 登录融合到现有登录界面,不再使用第三方依赖提供的简陋界面 -- `Job` 支持通过 rails 命令管理生成恢复数据备份功能(数据库、上传文件数据)[#207](https://github.com/tryzealot/zealot/pull/207) -- `API` 新增检查调试文件是否存在接口 `/api/debug_files/version_exist` - -#### 修复 - -- `Web` 修复上传 App 填写变更日志解析报错 -- `Web` 解决版本详情中二维码在中等分辨率会超出父视图 -- `Web` 解决应用渠道一些值为空确没有不显示默认值 -- `Web` 优化在线解析 iOS 包的内容展示(和永远展示假数据的问题) -- `Web` 解决版本详情在使用 [fastlane-plugin-ci_changelog](https://github.com/icyleaf/fastlane-plugin-ci_changelog) 生成的变更日志没有展示提交者信息 -- `Web` 修复并优化检查新版本逻辑 -- `Web` 修复删除调试文件确认弹窗信息获取为空 -- `Web` 优化版本详情设备列表在一些手机的显示方式 -- `Web` 修复解析应用在不传参数提交的报错 -- `Web` 优化版本列表在手机查看 -- `Web` 渠道版本的最近上传动态仅显示底部分页,上部改为版本总数 -- `Web` 修复管理员编辑用户留空密码提示不能为空 -- `Web`/`API` 修复在线下载和安装版本不存在时会采用最新版本 -- `Web` 修复游客模式登录界面会显示边栏菜单 -- `Web` 修复上传同一应用同一平台调试文件总是会被覆盖的问题 -- `Web` 系统设置页面优化对布尔类型、字典类型的显示 -- `Job` 修复定时任务来清理老版本时因版本判断错误发生的误删版本 -- `Docker` 修复因为 volume 存储 public 文件夹造成内部静态资源不会更新 -- `Docker` 容器内的版本和外部不一致 - -## 4.0.0.beta4 (2020-05-07) - -详细[代码变更记录][4.0.0.beta4] - -#### 新功能 - -- `Docker` 支持 Heroku 部署 -- `Web` 游客模式允许查看 App 详情、列表和上传 App 详情 -- `API` 上传 App 支持自定义字段 [#178](https://github.com/tryzealot/zealot/issues/178) -- `Web`/`API` 上传 App 传递了 `branch` 值开头包含 `origin/` 开头会自动清理掉 -- `Web` 登录、注册、找回密码、重设密码等用户认证界面增加项目简介 - -#### 修复 - -- `Web` 修正用户密码描述文案 -- `Web` 修复网络钩子(WebHook)包含 url 字段的地址错误 -- `Web`/`API` 修复上传 iOS dSYM 文件上传报错 -- `API` 修复获取 App 接口 has_password 参数异常 -- `API` 修复上传 App 记录的 source 来源都是 Web -- `API` 修复并支持上传 App 传递字符串类型的 json 格式的 changelog -- `Web` 修复系统信息没有正常获取 CPU 和内存信息 -- `Web` 修复在线解析 Android 应用偶尔报错 -- `Web` 修复使用微信扫描二维码页面报错 - -#### 变更 - -- `API` 应用最新版本接口(`apps/latest`)增加 bundle_id 纬度的验证 -- `Web` 游客模式可以访问应用版本详情和下载操作 -- `Web` 应用版本详情对于 iOS AdHoc 右侧的设备列表左移并默认收起状态 -- `Web` 开发环境移除 GraphQL 控制台功能,推荐使用 [graphql-playground](https://github.com/prisma-labs/graphql-playground) -- `Web` 页面底部移除 footbar,版本信息可以在系统信息查看 - -## 4.0.0.beta3 (2020-01-16) - -详细[代码变更记录][4.0.0.beta3] - -#### 新功能 - -- `Web` 管理员添加的用户在邮箱未激活会提示并显示确认邮箱的链接 -- `Web` 默认开启 Sentry 匿名上报机制(可关闭) - -#### 修复 - -- `API` 修复上传应用总会创建新渠道 -- `Web`/`API` 修复上传 Android 应用无法显示图标 - -#### 变更 - -- `Docker` 初始化数据从镜像移出到 [zealot-docker](https://github.com/tryzealot/zealot-docker) 操作 [#120](https://github.com/tryzealot/zealot/pull/120) -- `Docker` 精简镜像的体积大小从 1.18G 降到 308M [#114](https://github.com/tryzealot/zealot/issues/114) -- `Job` 使用异步任务代替传统 cron job 来实现定时清理老版本历史包文件(可关闭) -- `Job` 对异步任务进行分组和设置优先级 -- `API` 所有报错信息改成中文显示,因数据库写操作会返回具体错误信息 -- `Web` 使用 Rubocop Lint 规范化代码 - -## 4.0.0.beta2 (2020-01-10) - -详细[代码变更记录][4.0.0.beta2] - -#### 新功能 - -- `Web` 新增上传到具体应用渠道的全部版本列表同时支持删除操作 - -#### 修复 - -- `Web` 对于上传应用不是有效 ipa 或 apk 的会给予错误提示而不是报错 -- `API` 修复获取应用最新版本列表因查询版本号不存在数据库无法返回最新版本列表 -- `API` 只针对写操作的接口才会要求 token 验证(之前是绝大部分都需要) - -## 4.0.0.beta1 - -🌈 第一个公测版本发布啦 - -## 更早的版本 - -之前多年一直是公司内部开发和运营并没有开源,曾经承担过很多的功能到现在脱离出来专注提供应用托管和分发的服务。 - -[未发布]: https://github.com/tryzealot/zealot/compare/5.2.3...HEAD -[5.2.3]: https://github.com/tryzealot/zealot/compare/5.2.2...5.2.3 -[5.2.2]: https://github.com/tryzealot/zealot/compare/5.2.1...5.2.2 -[5.2.1]: https://github.com/tryzealot/zealot/compare/5.2.0...5.2.1 -[5.2.0]: https://github.com/tryzealot/zealot/compare/5.1.0...5.2.0 -[5.1.0]: https://github.com/tryzealot/zealot/compare/5.0.0...5.1.0 -[5.0.0]: https://github.com/tryzealot/zealot/compare/4.7.1...5.0.0 -[4.7.0]: https://github.com/tryzealot/zealot/compare/4.6.0...4.7.0 -[4.6.0]: https://github.com/tryzealot/zealot/compare/4.5.3...4.6.0 -[4.5.3]: https://github.com/tryzealot/zealot/compare/4.5.2...4.5.3 -[4.5.2]: https://github.com/tryzealot/zealot/compare/4.5.1...4.5.2 -[4.5.1]: https://github.com/tryzealot/zealot/compare/4.5.0...4.5.1 -[4.5.0]: https://github.com/tryzealot/zealot/compare/4.4.1...4.5.0 -[4.4.1]: https://github.com/tryzealot/zealot/compare/4.4.0...4.4.1 -[4.4.0]: https://github.com/tryzealot/zealot/compare/4.3.1...4.4.0 -[4.3.1]: https://github.com/tryzealot/zealot/compare/4.3.0...4.3.1 -[4.3.0]: https://github.com/tryzealot/zealot/compare/4.2.2...4.3.0 -[4.2.2]: https://github.com/tryzealot/zealot/compare/4.2.1...4.2.2 -[4.2.1]: https://github.com/tryzealot/zealot/compare/4.2.0...4.2.1 -[4.2.0]: https://github.com/tryzealot/zealot/compare/4.1.0...4.2.0 -[4.1.0]: https://github.com/tryzealot/zealot/compare/4.0.0...4.1.0 -[4.0.0]: https://github.com/tryzealot/zealot/compare/4.0.0.rc2...4.0.0 -[4.0.0.rc2]: https://github.com/tryzealot/zealot/compare/4.0.0.rc1...4.0.0.rc2 -[4.0.0.rc1]: https://github.com/tryzealot/zealot/compare/4.0.0.beta4...4.0.0.rc1 -[4.0.0.beta4]: https://github.com/tryzealot/zealot/compare/4.0.0.beta3...4.0.0.beta4 -[4.0.0.beta3]: https://github.com/tryzealot/zealot/compare/4.0.0.beta2...4.0.0.beta3 -[4.0.0.beta2]: https://github.com/tryzealot/zealot/compare/4.0.0.beta1...4.0.0.beta2 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/credits.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/credits.md deleted file mode 100644 index 68285af48..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/credits.md +++ /dev/null @@ -1,23 +0,0 @@ -# Credits - -实在不知道怎么翻译 `Credits`,就这么招吧。 - -## 贡献成员 - -感谢你们让 Zealot 变得更有用! - - - - - -## 项目名 - -Zealot 来自星际争霸种神族基础兵种。 - -## 图标 - -最初项目历史提交资源图标版权归属[暴雪](https://www.blizzard.com),后期改为自己设计的图标,如果有热心设计师能够帮助设计更好的图标,本人代表本项目表示衷心的感谢。 - -## 发布协议 - -Zealot 是一个基于 MIT 发布协议 (MIT) 发布的开源项目,协议内容请参见[协议文件](https://github.com/tryzealot/zealot/blob/develop/LICENSE)。 diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/dashboard.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/dashboard.md deleted file mode 100644 index 8ade0c0ca..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/dashboard.md +++ /dev/null @@ -1,3 +0,0 @@ -# 控制面板 - -![screenshot](/img/screenshot/product-1.png) diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/debug-files/index.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/debug-files/index.mdx deleted file mode 100644 index 20cd25fad..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/debug-files/index.mdx +++ /dev/null @@ -1,14 +0,0 @@ -# 应用列表 - -按照归属的应用划分显示所有调试文件的数量和详情入口。 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/debug-files/review.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/debug-files/review.mdx deleted file mode 100644 index c63ba4e12..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/debug-files/review.mdx +++ /dev/null @@ -1,48 +0,0 @@ -# 查看调试文件详情 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Android - -### 版本列表 - - - -### 详情信息 - - - -## iOS - -### 版本列表 - - - -### 详情信息 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/debug-files/upload.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/debug-files/upload.mdx deleted file mode 100644 index 39ceb5cf8..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/debug-files/upload.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# 上传调试文件 - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/index.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/index.mdx deleted file mode 100644 index 8eeb6ca8d..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/index.mdx +++ /dev/null @@ -1,49 +0,0 @@ -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -# 用户手册 - -[![GitHub release](https://img.shields.io/github/v/release/tryzealot/zealot?include_prereleases)](https://github.com/tryzealot/zealot/releases) -[![Docker Pulls](https://img.shields.io/docker/pulls/tryzealot/zealot.svg)](https://hub.docker.com/r/tryzealot/zealot/) -[![Chat on Telegram](https://img.shields.io/badge/chat-on%20telegram-important.svg)](https://img.shields.io/badge/chat-on%20telegram-important.svg) -[![Maintainability](https://codeclimate.com/github/tryzealot/zealot/badges/gpa.svg)](https://codeclimate.com/github/tryzealot/zealot) -[![License](https://img.shields.io/github/license/tryzealot/zealot)](https://github.com/tryzealot/zealot/blob/develop/LICENSE) - -开源自部署持续集成一切跟应用有关事情,接入任意 CI 系统一切自动化处理,企业多年实战经验,独立部署提供企业打包分发流程、上传应用全套流程方案 En Taro Adun! 🖖 - - - -## 特性 - -- 🌏 **多平台应用托管**: macOS、iOS、Android(apk/aab)、Windows、Linux 泛平台 -- 📱 **测试设备一网打进**: 自动同步 iOS 测试设备信息,允许一键注册新设备到苹果开发者 -- 🧑‍💻 **丰富开发者套件**: 提供 REST API、[iOS][zealot-ios-sdk]、[Android][android-android-sdk] SDK 以及 [fastlane][fastlane-plugin-zealot] 自动化构建插件 -- 💥 **剖析应用内部的秘密**: 解读 iOS、Android 应用或 iOS 描述文件的元信息 -- 🚨 **内置多种事件通知**: 数据可自定义 Income WebHook 到任意通知服务 -- 🗄 **多渠道分类管理**: 自由划分不同场景不同产品形态的应用渠道管理 -- 🎳 **多架构部署**: amd86/arm64/armv7 及各种部署方案应有尽有 -- 🔑 **第三方登录**: 飞书、Gitlab、Google、LDAP 和 OIDC 一键授权 -- 🌑 **黑暗模式**: 黑夜白昼自由切换 - -## 在线演示 - -- 演示地址:https://tryzealot.ews.im/ -- 电子邮箱: `admin@zealot.com` -- 登录密码:`ze@l0t` - -> **注意**: 演示服务中的数据每日都会重新初始化,不对用户上传的应用承担任何法律风险,后果自负! - -## 发布协议 - -[MIT][mit-link] - -[zealot-ios-sdk]: https://github.com/tryzealot/zealot-ios -[android-android-sdk]: https://github.com/tryzealot/zealot-android -[fastlane-plugin-zealot]: https://github.com/tryzealot/fastlane-plugin-zealot -[mit-link]: https://github.com/tryzealot/zealot/blob/develop/LICENSE diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/qa.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/qa.md deleted file mode 100644 index b678dfeb4..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/qa.md +++ /dev/null @@ -1,73 +0,0 @@ -# 疑惑解答 - -下面会列出来一些遇到的问题并汇总提供给大家。 - -## 为什么不能使用 HTTP 部署服务 - -鉴于 iOS 使用下载服务依赖开启 SSL/TLS 证书,建议使用经过授权的证书服务,如果服务不需要提供 iOS、macOS 的安装服务可以考虑使用 HTTPS 部署服务, -这里推荐使用免费 [Let's Encrypt](https://letsencrypt.org/) 提供 SSL 证书服务。 - -## 使用自签名的证书无法安装 iOS 应用 - -如果使用自签名证书需要每个 iOS 设备在下载安装应用前必须安装自签名证书才行,每个设备都需要进行安装,操作比较复杂在有免费 SSL 证书服务的情况下不到逼不得已不建议使用自签名证书。 - -## 使用负载均衡部署服务,下载总会从 https 变成 http - -负载均衡在提供服务的时候会在最前端部署 https 服务,内部的分发实际上还是走的 http,解决办法在负载均衡上把转发的协议头从 http 改成 https,这样服务再转发的时候就会继承最前端的协议头(`X-Forwarded-Proto`)。 - -## 是否支持外部 redis、postgresql 链接 - -支持的,如果有公用的 redis、postgresql 服务器那就可以单独部署 zealot 服务,在 `.env` 配置或 Docker、K8s 的环境变量手动指定如下配置: - -```bash -# Redis -REDIS_URL=redis://127.0.0.1:6379/0 - -# Postgresl -ZEALOT_POSTGRES_HOST=127.0.0.1 -ZEALOT_POSTGRES_PORT=5432 -ZEALOT_POSTGRES_USERNAME=postgres -ZEALOT_POSTGRES_PASSWORD=ze@l0t -ZEALOT_POSTGRES_DB_NAME=zealot -``` - -## 是否支持 Kubernetes(k8s)部署 - -服务是支持 K8S 的单机部署但不支持伸缩特性,具体原因是因为应用上传使用的是容器内的本地存储没有支持亚马逊 S3 或阿里云第三方云存储的支持。 - -## 是否提供类似 FIR、蒲公英服务的应用的分享页面 - -服务提供两种页面地址: - -**1 应用渠道详情页** - -`https://YOUR_ZEALOT_URL/channels/SLUG` - -其实 `YOUR_ZEALOT_URL` 是 zealot 服务地址,`SLUG` 是你对应应用渠道的唯一地址。 - -**2 上传的版本详情页** - -`https://YOUR_ZEALOT_URL/channels/SLUG/releases/ID` - -其实 `YOUR_ZEALOT_URL` 是 zealot 服务地址,`SLUG` 是你对应应用渠道的唯一地址,`ID` 是上传的版本 ID,为空的时候会自动调整到最新版本,所以可以直接分享 - -`https://YOUR_ZEALOT_URL/channels/SLUG/releases` - - -## 服务运行一段时间 CPU 或内存资源暴涨不下,如何解决? - -根据用户 [Cleam](https://github.com/Cleam) 的[反馈](https://github.com/tryzealot/zealot/issues/768#issuecomment-1161097162)部署服务之后,托管的应用很少,上传频率不高,服务器硬件规格也完全达标的情况下还是会引发 CPU 或内存资源暴涨造成服务器卡死, -当前的情况属于还属于个人情况,目前情况未知,但可以通过限制 CPU 和内存来规避这个问题,编辑 `docker-compose.yml` 文件: - -```diff -zealot: - <<: *defaults -+ deploy: -+ resources: -+ limits: -+ cpus: 2.0 -+ memory: 2G -+ reservations: -+ cpus: 0.5 -+ memory: 256M -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/toolkits/fetch-udid.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/toolkits/fetch-udid.mdx deleted file mode 100644 index 3e2f4e804..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/toolkits/fetch-udid.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -sidebar_label: "获取 iOS 设备 UDID" ---- - -# 获取 iOS 设备 UDID - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -Zealot 提供的获取 iOS 设备 UDID 除了市面上最最最基础的功能之外,内置了强大扩展功能: - -1. 通过 UDID 罗列可以安装的应用列表 -1. 开启[苹果开发者](../administrator/apple-team)功能允许把未注册测试设备添加到对于的开发者账号 - -## 安装描述文件 - -:::info -此功能仅对 iOS 设备有效,如果是电脑打开会提示用手机扫描二维码打开。 -::: - -无论使用什么用户登录模式(包括游客模式)都可以通过左侧菜单栏的 "获取设备 UDID" 安装描述文件后获取当前 iOS 设备的 UDID。 - -不要在意安装的描述文件展示"未签名",这个不影响安装,且此描述文件是一次性的获取之后会被系统销毁绝对不会存在安全隐患。 - - - -描述文件安装后会返回浏览器打开一个新的页面展示设备 UDID,这个时候会出现如下两种情况: - -- [未注册设备](#未注册设备) -- [已注册设备](#已注册设备) - -## 未注册设备 - -未注册设备提供最基本的设备信息,包含 UDID、内部型号和序列化号之外,服务管理员如果添加了[苹果开发者](../administrator/apple-team)还会显示注册测试设备到对于的开发者账号中。 - -:::tip -注册到苹果开发者账号仅仅意味着设备更新到苹果开发者账号的 Devices 下面,对于 iOS 开发者还需要手动或脚本自动化把该测试设备添加到对应的 Ad-Hoc 证书,再进行安装并重新打包上传才允许该设备安装。 -::: - - - -## 已注册设备 - -已注册的测试设备就会展示可以安装的应用列表。服务管理员如果添加了[苹果开发者](../administrator/apple-team)还会显示注册测试设备到对于的开发者账号中。 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/toolkits/teardown.mdx b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/toolkits/teardown.mdx deleted file mode 100644 index 310add762..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/toolkits/teardown.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -sidebar_label: "解析应用" ---- - -# 解析应用分析内部元信息 (Metadata) - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Android - -获取 `AndroidManifest.xml` 元数据,解析 v1 至 v3 签名信息。 - - - -## iOS - -获取 `Info.plist` 元信息、Frameworks 和描述文件及证书信息。 - - diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks.md deleted file mode 100644 index e7250bda0..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -sidebar_label: "网络钩子" ---- - -# 网络钩子(WebHook) - -Zealot 为每个应用渠道都提供一个消息通知的网络钩子,网络钩子完全可自定义结构体可适用于绝大多数的通知服务, -比如企业微信、钉钉、Slack 等等。 - -## 默认结构体 - -默认结构体每个参数都已变量的方式提供它的值,每个变量都以 `@` 开头,在创建网络钩子如果留空自定义结构体就会使用默认结构体, -如下全部提供的变量: - -```ruby -{ - event: @event, - username: @username, - email: @email, - title: @title, - name: @app_name, - app_name: @app_name, - device_type: @device_type, - release_version: @release_version, - build_version: @build_version, - size: @file_size, - changelog: @changelog, - release_url: @release_url, - install_url: @install_url, - icon_url: @icon_url, - qrcode_url: @qrcode_url, - uploaded_at: @uploaded_at -} -``` - -输出的结果如下: - -```json -{ - "event": "upload_events", - "username": "foobar", - "email": "foobar@example.com", - "title": "Zealot 样例 iOS 内测版上传了 1.0.0 版本", - "app_name": "Zealot 样例 iOS 内测版", - "device_type": "iOS", - "release_version": "1.0.0", - "build_version": "1", - "size": "30 MB", - "changelog": "- 新增了 A 功能\n- 修复了 B 问题\n- 发布 1.0.0 版本", - "release_url": "https://zealot.example.com/apps/x3gd/100", - "install_url": "https://zealot.example.com/api/apps/download/12354", - "icon_url": "https://zealot.example.com/api/apps/icon.png", - "qrcode_url": "https://zealot.example.com/api/apps/354/qrcode", - "uploaded_at": "2019-12-30 11:33:00" -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/dingtalk.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/dingtalk.md deleted file mode 100644 index dc0b358be..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/dingtalk.md +++ /dev/null @@ -1,29 +0,0 @@ -# 钉钉 - -[钉钉](https://developers.dingtalk.com/document/robots/custom-robot-access#section-e4x-4y8-9k0)的网络钩子结构体通常支持文本和 markdown 两种方式, -由于系统限制尽量使用关键词或 IP 地址白名单机制来接受消息。可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "msgtype": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\n上传时间: #{@uploaded_at}" - } -} -``` - -## Markdown 格式 - -title 字段仅在对话列表展示,进入对话框的聊天内容则展示 text 字段 - -```ruby -{ - "msgtype": "markdown", - "markdown": { - "title": @title, - "text": "## #{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}\n安装二维码:\n![qrcode](#{@qrcode_url})" - } -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/discord.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/discord.md deleted file mode 100644 index d60148202..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/discord.md +++ /dev/null @@ -1,63 +0,0 @@ -# Discord - -[Discord](https://support.discord.com/hc/zh-tw/articles/228383668) 支持 Slack 兼容的网络钩子因此其结构体通常支持文本和 block 富文本两种方式,可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "text": "#{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}" -} -``` - -## Block 富文本格式 - -一个简单的支持 markdown 的 block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "## #{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}\n安装二维码:\n![qrcode](#{@qrcode_url})" - } - } - ] -} -``` - -稍微好看点有些结构展示的 block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": @title, - } - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*平台:*\n#{@device_type}" - }, - { - "type": "mrkdwn", - "text": "*上传时间:*\n#{@uploaded_at}" - } - ] - }, - "accessory": { - "type": "image", - "image_url": @qrcode_url, - "alt_text": "install qrcode" - } - ] -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/feishu.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/feishu.md deleted file mode 100644 index 59484a2ac..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/feishu.md +++ /dev/null @@ -1,94 +0,0 @@ -# 飞书 - -[飞书](https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN)的网络钩子结构体通常支持文本和卡片两种方式, -由于系统限制尽量使用关键词或 IP 地址白名单机制来接受消息。可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "msg_type": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\n上传时间: #{@uploaded_at}" - } -} -``` - -## Interactive 卡片格式 - -通过这种格式可以实现支持 markdown 的部分语法(不支持外链图片展示): - -```ruby -{ - "msg_type": "interactive", - "card": { - "config": { - "wide_screen_mode": true, - "enable_forward": true - }, - "elements": [ - { - "tag": "div", - "fields": [ - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**平台**\n#{@device_type}" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**版本**\n#{@release_version} (#{@build_version})" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**最后提交者**\n#{@username}" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**上传时间**\n#{@uploaded_at}" - } - }, - ] - }, - { - "tag": "div", - "text": { - "content": "**变更历史**\n#{@changelog}", - "tag": "lark_md" - } - }, - { - "actions": [ - { - "tag": "button", - "text": { - "content": "🐞 版本详情", - "tag": "lark_md" - }, - "url": "#{@release_url}", - "type": "primary", - "value": {} - } - ], - "tag": "action" - } - ], - "header": { - "title": { - "content": "#{@title}", - "tag": "plain_text" - } - } - } -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/slack.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/slack.md deleted file mode 100644 index d0dbe1a8b..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/slack.md +++ /dev/null @@ -1,63 +0,0 @@ -# Slack - -[Slack](https://api.slack.com/messaging/webhooks) 的网络钩子使用 Incoming Webhooks 其结构体通常支持文本和 block 富文本两种方式,可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "text": "#{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}" -} -``` - -## Block 富文本格式 - -一个简单的支持 markdown 的 block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "## #{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}\n安装二维码:\n![qrcode](#{@qrcode_url})" - } - } - ] -} -``` - -稍微好看点有些结构展示的 block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": @title, - } - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*平台:*\n#{@device_type}" - }, - { - "type": "mrkdwn", - "text": "*上传时间:*\n#{@uploaded_at}" - } - ] - }, - "accessory": { - "type": "image", - "image_url": @qrcode_url, - "alt_text": "install qrcode" - } - ] -} -``` diff --git a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/wecom.md b/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/wecom.md deleted file mode 100644 index 74d646487..000000000 --- a/i18n/zh-Hans/docusaurus-plugin-content-docs/version-5.2/user-guide/webhooks/wecom.md +++ /dev/null @@ -1,25 +0,0 @@ -# 企业微信 - -[企业微信](https://work.weixin.qq.com/api/doc/90000/90136/91770)的网络钩子结构体通常支持文本和 markdown 两种方式,可通过如下配置实现: - -## Text 文本格式 - -```ruby -{ - "msgtype": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\n上传时间: #{@uploaded_at}" - } -} -``` - -## Markdown 格式 - -```ruby -{ - "msgtype": "markdown", - "markdown": { - "content": "## #{@title}\n平台: #{@device_type}\n上传时间: #{@uploaded_at}\n安装二维码:\n![qrcode](#{@qrcode_url})" - } -} -``` diff --git a/versioned_docs/version-4.x/contributing-guide/index.md b/versioned_docs/version-4.7.1/contributing-guide/index.md similarity index 100% rename from versioned_docs/version-4.x/contributing-guide/index.md rename to versioned_docs/version-4.7.1/contributing-guide/index.md diff --git a/versioned_docs/version-4.x/contributing-guide/local-development/devcontainer.md b/versioned_docs/version-4.7.1/contributing-guide/local-development/devcontainer.md similarity index 100% rename from versioned_docs/version-4.x/contributing-guide/local-development/devcontainer.md rename to versioned_docs/version-4.7.1/contributing-guide/local-development/devcontainer.md diff --git a/versioned_docs/version-4.x/contributing-guide/local-development/source-code.md b/versioned_docs/version-4.7.1/contributing-guide/local-development/source-code.md similarity index 100% rename from versioned_docs/version-4.x/contributing-guide/local-development/source-code.md rename to versioned_docs/version-4.7.1/contributing-guide/local-development/source-code.md diff --git a/versioned_docs/version-4.x/contributing-guide/sidebars.js b/versioned_docs/version-4.7.1/contributing-guide/sidebars.js similarity index 100% rename from versioned_docs/version-4.x/contributing-guide/sidebars.js rename to versioned_docs/version-4.7.1/contributing-guide/sidebars.js diff --git a/versioned_docs/version-4.x/developer-guide/api.md b/versioned_docs/version-4.7.1/developer-guide/api.md similarity index 100% rename from versioned_docs/version-4.x/developer-guide/api.md rename to versioned_docs/version-4.7.1/developer-guide/api.md diff --git a/versioned_docs/version-4.x/developer-guide/api/apps.md b/versioned_docs/version-4.7.1/developer-guide/api/apps.md similarity index 100% rename from versioned_docs/version-4.x/developer-guide/api/apps.md rename to versioned_docs/version-4.7.1/developer-guide/api/apps.md diff --git a/versioned_docs/version-4.x/developer-guide/api/debug_files.md b/versioned_docs/version-4.7.1/developer-guide/api/debug_files.md similarity index 100% rename from versioned_docs/version-4.x/developer-guide/api/debug_files.md rename to versioned_docs/version-4.7.1/developer-guide/api/debug_files.md diff --git a/versioned_docs/version-4.x/developer-guide/fastlane.md b/versioned_docs/version-4.7.1/developer-guide/fastlane.md similarity index 100% rename from versioned_docs/version-4.x/developer-guide/fastlane.md rename to versioned_docs/version-4.7.1/developer-guide/fastlane.md diff --git a/versioned_docs/version-4.x/developer-guide/fastlane/zealot.md b/versioned_docs/version-4.7.1/developer-guide/fastlane/zealot.md similarity index 100% rename from versioned_docs/version-4.x/developer-guide/fastlane/zealot.md rename to versioned_docs/version-4.7.1/developer-guide/fastlane/zealot.md diff --git a/versioned_docs/version-4.x/developer-guide/fastlane/zealot_debug_file.md b/versioned_docs/version-4.7.1/developer-guide/fastlane/zealot_debug_file.md similarity index 100% rename from versioned_docs/version-4.x/developer-guide/fastlane/zealot_debug_file.md rename to versioned_docs/version-4.7.1/developer-guide/fastlane/zealot_debug_file.md diff --git a/versioned_docs/version-4.x/developer-guide/fastlane/zealot_sync_devices.md b/versioned_docs/version-4.7.1/developer-guide/fastlane/zealot_sync_devices.md similarity index 97% rename from versioned_docs/version-4.x/developer-guide/fastlane/zealot_sync_devices.md rename to versioned_docs/version-4.7.1/developer-guide/fastlane/zealot_sync_devices.md index 68a465683..af073f5c6 100644 --- a/versioned_docs/version-4.x/developer-guide/fastlane/zealot_sync_devices.md +++ b/versioned_docs/version-4.7.1/developer-guide/fastlane/zealot_sync_devices.md @@ -5,7 +5,7 @@ sidebar_label: "zealot_sync_devices" # Fastlane action: zealot_sync_devices > :bell: Zealot 4.5.0 built in Apple team manage which it use [Apple API Key](https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) -> to sync iOS devices, even CAN registe the device after fetch the UDID, [Check detail](/docs/4.x/user-guide/administrator/apple-team) +> to sync iOS devices, even CAN registe the device after fetch the UDID, [Check detail](/docs/4.7.1/user-guide/administrator/apple-team) Use Apple Developer account to syncing UDIDs and relates the value in Zealot. diff --git a/versioned_docs/version-4.x/developer-guide/fastlane/zealot_version_check.md b/versioned_docs/version-4.7.1/developer-guide/fastlane/zealot_version_check.md similarity index 100% rename from versioned_docs/version-4.x/developer-guide/fastlane/zealot_version_check.md rename to versioned_docs/version-4.7.1/developer-guide/fastlane/zealot_version_check.md diff --git a/versioned_docs/version-4.x/developer-guide/index.md b/versioned_docs/version-4.7.1/developer-guide/index.md similarity index 100% rename from versioned_docs/version-4.x/developer-guide/index.md rename to versioned_docs/version-4.7.1/developer-guide/index.md diff --git a/versioned_docs/version-4.x/developer-guide/sdk/android.md b/versioned_docs/version-4.7.1/developer-guide/sdk/android.md similarity index 100% rename from versioned_docs/version-4.x/developer-guide/sdk/android.md rename to versioned_docs/version-4.7.1/developer-guide/sdk/android.md diff --git a/versioned_docs/version-4.x/developer-guide/sdk/ios.md b/versioned_docs/version-4.7.1/developer-guide/sdk/ios.md similarity index 100% rename from versioned_docs/version-4.x/developer-guide/sdk/ios.md rename to versioned_docs/version-4.7.1/developer-guide/sdk/ios.md diff --git a/versioned_docs/version-4.x/developer-guide/sidebars.js b/versioned_docs/version-4.7.1/developer-guide/sidebars.js similarity index 100% rename from versioned_docs/version-4.x/developer-guide/sidebars.js rename to versioned_docs/version-4.7.1/developer-guide/sidebars.js diff --git a/versioned_docs/version-4.x/self-hosted/configuration/environment-variables.md b/versioned_docs/version-4.7.1/self-hosted/configuration/environment-variables.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/configuration/environment-variables.md rename to versioned_docs/version-4.7.1/self-hosted/configuration/environment-variables.md diff --git a/versioned_docs/version-4.x/self-hosted/configuration/schedule-jobs.md b/versioned_docs/version-4.7.1/self-hosted/configuration/schedule-jobs.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/configuration/schedule-jobs.md rename to versioned_docs/version-4.7.1/self-hosted/configuration/schedule-jobs.md diff --git a/versioned_docs/version-4.x/self-hosted/configuration/third-party-authentication.md b/versioned_docs/version-4.7.1/self-hosted/configuration/third-party-authentication.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/configuration/third-party-authentication.md rename to versioned_docs/version-4.7.1/self-hosted/configuration/third-party-authentication.md diff --git a/versioned_docs/version-4.x/self-hosted/deployment/architecture.mdx b/versioned_docs/version-4.7.1/self-hosted/deployment/architecture.mdx similarity index 100% rename from versioned_docs/version-4.x/self-hosted/deployment/architecture.mdx rename to versioned_docs/version-4.7.1/self-hosted/deployment/architecture.mdx diff --git a/versioned_docs/version-4.x/self-hosted/deployment/docker.md b/versioned_docs/version-4.7.1/self-hosted/deployment/docker.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/deployment/docker.md rename to versioned_docs/version-4.7.1/self-hosted/deployment/docker.md diff --git a/versioned_docs/version-4.x/self-hosted/deployment/docker/step-by-step.md b/versioned_docs/version-4.7.1/self-hosted/deployment/docker/step-by-step.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/deployment/docker/step-by-step.md rename to versioned_docs/version-4.7.1/self-hosted/deployment/docker/step-by-step.md diff --git a/versioned_docs/version-4.x/self-hosted/deployment/fly.md b/versioned_docs/version-4.7.1/self-hosted/deployment/fly.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/deployment/fly.md rename to versioned_docs/version-4.7.1/self-hosted/deployment/fly.md diff --git a/versioned_docs/version-4.x/self-hosted/deployment/kubernetes.md b/versioned_docs/version-4.7.1/self-hosted/deployment/kubernetes.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/deployment/kubernetes.md rename to versioned_docs/version-4.7.1/self-hosted/deployment/kubernetes.md diff --git a/versioned_docs/version-4.x/self-hosted/deployment/nomad.md b/versioned_docs/version-4.7.1/self-hosted/deployment/nomad.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/deployment/nomad.md rename to versioned_docs/version-4.7.1/self-hosted/deployment/nomad.md diff --git a/versioned_docs/version-4.x/self-hosted/deployment/railway.md b/versioned_docs/version-4.7.1/self-hosted/deployment/railway.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/deployment/railway.md rename to versioned_docs/version-4.7.1/self-hosted/deployment/railway.md diff --git a/versioned_docs/version-4.x/self-hosted/deployment/render.md b/versioned_docs/version-4.7.1/self-hosted/deployment/render.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/deployment/render.md rename to versioned_docs/version-4.7.1/self-hosted/deployment/render.md diff --git a/versioned_docs/version-4.x/self-hosted/deployment/requirements.md b/versioned_docs/version-4.7.1/self-hosted/deployment/requirements.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/deployment/requirements.md rename to versioned_docs/version-4.7.1/self-hosted/deployment/requirements.md diff --git a/versioned_docs/version-4.x/self-hosted/deployment/source-code.md b/versioned_docs/version-4.7.1/self-hosted/deployment/source-code.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/deployment/source-code.md rename to versioned_docs/version-4.7.1/self-hosted/deployment/source-code.md diff --git a/versioned_docs/version-4.x/self-hosted/index.md b/versioned_docs/version-4.7.1/self-hosted/index.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/index.md rename to versioned_docs/version-4.7.1/self-hosted/index.md diff --git a/versioned_docs/version-4.x/self-hosted/reverse-proxies.mdx b/versioned_docs/version-4.7.1/self-hosted/reverse-proxies.mdx similarity index 100% rename from versioned_docs/version-4.x/self-hosted/reverse-proxies.mdx rename to versioned_docs/version-4.7.1/self-hosted/reverse-proxies.mdx diff --git a/versioned_docs/version-4.x/self-hosted/sidebars.js b/versioned_docs/version-4.7.1/self-hosted/sidebars.js similarity index 100% rename from versioned_docs/version-4.x/self-hosted/sidebars.js rename to versioned_docs/version-4.7.1/self-hosted/sidebars.js diff --git a/versioned_docs/version-4.x/self-hosted/storage.md b/versioned_docs/version-4.7.1/self-hosted/storage.md similarity index 100% rename from versioned_docs/version-4.x/self-hosted/storage.md rename to versioned_docs/version-4.7.1/self-hosted/storage.md diff --git a/versioned_docs/version-4.x/user-guide/administrator/apple-team.mdx b/versioned_docs/version-4.7.1/user-guide/administrator/apple-team.mdx similarity index 100% rename from versioned_docs/version-4.x/user-guide/administrator/apple-team.mdx rename to versioned_docs/version-4.7.1/user-guide/administrator/apple-team.mdx diff --git a/versioned_docs/version-4.x/user-guide/administrator/backup.md b/versioned_docs/version-4.7.1/user-guide/administrator/backup.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/administrator/backup.md rename to versioned_docs/version-4.7.1/user-guide/administrator/backup.md diff --git a/versioned_docs/version-4.x/user-guide/administrator/monitoring/background-jobs.md b/versioned_docs/version-4.7.1/user-guide/administrator/monitoring/background-jobs.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/administrator/monitoring/background-jobs.md rename to versioned_docs/version-4.7.1/user-guide/administrator/monitoring/background-jobs.md diff --git a/versioned_docs/version-4.x/user-guide/administrator/monitoring/database-analytics.md b/versioned_docs/version-4.7.1/user-guide/administrator/monitoring/database-analytics.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/administrator/monitoring/database-analytics.md rename to versioned_docs/version-4.7.1/user-guide/administrator/monitoring/database-analytics.md diff --git a/versioned_docs/version-4.x/user-guide/administrator/monitoring/logging.md b/versioned_docs/version-4.7.1/user-guide/administrator/monitoring/logging.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/administrator/monitoring/logging.md rename to versioned_docs/version-4.7.1/user-guide/administrator/monitoring/logging.md diff --git a/versioned_docs/version-4.x/user-guide/administrator/monitoring/system-info.md b/versioned_docs/version-4.7.1/user-guide/administrator/monitoring/system-info.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/administrator/monitoring/system-info.md rename to versioned_docs/version-4.7.1/user-guide/administrator/monitoring/system-info.md diff --git a/versioned_docs/version-4.x/user-guide/administrator/permissions.md b/versioned_docs/version-4.7.1/user-guide/administrator/permissions.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/administrator/permissions.md rename to versioned_docs/version-4.7.1/user-guide/administrator/permissions.md diff --git a/versioned_docs/version-4.x/user-guide/administrator/project-settings.md b/versioned_docs/version-4.7.1/user-guide/administrator/project-settings.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/administrator/project-settings.md rename to versioned_docs/version-4.7.1/user-guide/administrator/project-settings.md diff --git a/versioned_docs/version-4.x/user-guide/apps/create.md b/versioned_docs/version-4.7.1/user-guide/apps/create.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/apps/create.md rename to versioned_docs/version-4.7.1/user-guide/apps/create.md diff --git a/versioned_docs/version-4.x/user-guide/best_practices.md b/versioned_docs/version-4.7.1/user-guide/best_practices.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/best_practices.md rename to versioned_docs/version-4.7.1/user-guide/best_practices.md diff --git a/versioned_docs/version-4.x/user-guide/changelog.md b/versioned_docs/version-4.7.1/user-guide/changelog.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/changelog.md rename to versioned_docs/version-4.7.1/user-guide/changelog.md diff --git a/versioned_docs/version-4.x/user-guide/credits.md b/versioned_docs/version-4.7.1/user-guide/credits.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/credits.md rename to versioned_docs/version-4.7.1/user-guide/credits.md diff --git a/versioned_docs/version-4.x/user-guide/dashboard.md b/versioned_docs/version-4.7.1/user-guide/dashboard.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/dashboard.md rename to versioned_docs/version-4.7.1/user-guide/dashboard.md diff --git a/versioned_docs/version-4.x/user-guide/debug-files/upload.md b/versioned_docs/version-4.7.1/user-guide/debug-files/upload.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/debug-files/upload.md rename to versioned_docs/version-4.7.1/user-guide/debug-files/upload.md diff --git a/versioned_docs/version-4.x/user-guide/index.mdx b/versioned_docs/version-4.7.1/user-guide/index.mdx similarity index 97% rename from versioned_docs/version-4.x/user-guide/index.mdx rename to versioned_docs/version-4.7.1/user-guide/index.mdx index 06f3858ee..9fa95288e 100644 --- a/versioned_docs/version-4.x/user-guide/index.mdx +++ b/versioned_docs/version-4.7.1/user-guide/index.mdx @@ -36,7 +36,7 @@ Continuous everything. Automate the lifecycle of your apps. Connect your CI to b ## Demo -Simplified Chinese by default, change the language in [Settings](/docs/4.x/user-guide/administrator/project-settings) page. +Simplified Chinese by default, change the language in [Settings](/docs/4.7.1/user-guide/administrator/project-settings) page. - URL:https://tryzealot.ews.im/ - Admin account: `admin@zealot.com` diff --git a/versioned_docs/version-4.x/user-guide/qa.md b/versioned_docs/version-4.7.1/user-guide/qa.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/qa.md rename to versioned_docs/version-4.7.1/user-guide/qa.md diff --git a/versioned_docs/version-4.x/user-guide/sidebars.js b/versioned_docs/version-4.7.1/user-guide/sidebars.js similarity index 100% rename from versioned_docs/version-4.x/user-guide/sidebars.js rename to versioned_docs/version-4.7.1/user-guide/sidebars.js diff --git a/versioned_docs/version-4.x/user-guide/toolkits/fetch-udid.mdx b/versioned_docs/version-4.7.1/user-guide/toolkits/fetch-udid.mdx similarity index 100% rename from versioned_docs/version-4.x/user-guide/toolkits/fetch-udid.mdx rename to versioned_docs/version-4.7.1/user-guide/toolkits/fetch-udid.mdx diff --git a/versioned_docs/version-4.x/user-guide/toolkits/teardown.md b/versioned_docs/version-4.7.1/user-guide/toolkits/teardown.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/toolkits/teardown.md rename to versioned_docs/version-4.7.1/user-guide/toolkits/teardown.md diff --git a/versioned_docs/version-4.x/user-guide/webhooks.md b/versioned_docs/version-4.7.1/user-guide/webhooks.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/webhooks.md rename to versioned_docs/version-4.7.1/user-guide/webhooks.md diff --git a/versioned_docs/version-4.x/user-guide/webhooks/dingtalk.md b/versioned_docs/version-4.7.1/user-guide/webhooks/dingtalk.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/webhooks/dingtalk.md rename to versioned_docs/version-4.7.1/user-guide/webhooks/dingtalk.md diff --git a/versioned_docs/version-4.x/user-guide/webhooks/discord.md b/versioned_docs/version-4.7.1/user-guide/webhooks/discord.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/webhooks/discord.md rename to versioned_docs/version-4.7.1/user-guide/webhooks/discord.md diff --git a/versioned_docs/version-4.x/user-guide/webhooks/feishu.md b/versioned_docs/version-4.7.1/user-guide/webhooks/feishu.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/webhooks/feishu.md rename to versioned_docs/version-4.7.1/user-guide/webhooks/feishu.md diff --git a/versioned_docs/version-4.x/user-guide/webhooks/slack.md b/versioned_docs/version-4.7.1/user-guide/webhooks/slack.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/webhooks/slack.md rename to versioned_docs/version-4.7.1/user-guide/webhooks/slack.md diff --git a/versioned_docs/version-4.x/user-guide/webhooks/wecom.md b/versioned_docs/version-4.7.1/user-guide/webhooks/wecom.md similarity index 100% rename from versioned_docs/version-4.x/user-guide/webhooks/wecom.md rename to versioned_docs/version-4.7.1/user-guide/webhooks/wecom.md diff --git a/versioned_docs/version-5.0/contributing-guide/index.md b/versioned_docs/version-5.0/contributing-guide/index.md deleted file mode 100644 index 1460c9f40..000000000 --- a/versioned_docs/version-5.0/contributing-guide/index.md +++ /dev/null @@ -1,22 +0,0 @@ -# Contributing Guide - -This guide will help you get started with Zealot! Thank you for taking an interest in contributing to Zealot. Before submitting your contribution, please make sure to take a moment and read through the following guidelines: - -This guide will help you to install and setup a production ready Zealot. - -## Getting Started - -Before starting your work, ensure an issue exist for it. If not feel free to create one. You can also take a look into the issues tagged Good first issues. -Add a comment on the issue and wait for the issue to be assigned before you start working on it. -This helps to avoid multiple people working on similar issues. -If the solution is complex, propose the solution on the issue and wait for one of the core contributors to approve before going into the implementation. -This helps in shorter turn around times in merging PRs -For new feature requests, Provide a convincing reason to add this feature. Real-life business use-cases will be super helpful. -Feel free to join our discord community, if you need further discussions with the core team. - -## Setup for local development - -These guides will help you to setup the environment required for Zealot. Follow the guide based on the operating system you use. - -- [VSCode development with devcontainer](/docs/contributing-guide/local-development/devcontainer) -- [Soure code](/docs/contributing-guide/local-development/source-code) diff --git a/versioned_docs/version-5.0/contributing-guide/local-development/devcontainer.md b/versioned_docs/version-5.0/contributing-guide/local-development/devcontainer.md deleted file mode 100644 index f6142a478..000000000 --- a/versioned_docs/version-5.0/contributing-guide/local-development/devcontainer.md +++ /dev/null @@ -1,127 +0,0 @@ -# Visual Studio Code Dev Container Setup - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -``` - -[The Visual Studio Code Dev Containers](https://code.visualstudio.com/docs/devcontainers/containers) lets you use a Docker container as a full-featured development environment. - -![VSCode devcontainer](https://code.visualstudio.com/assets/docs/devcontainers/containers/architecture-containers.png) - -## System requirements - -Before processing, make sure you have the lateset version of Git, Virsual Studio Code, Docker and docker-compose. - -### Install Git - -[Install](https://github.com/git-guides/install-git) it from offical website. - -### Install Docker & docker-compose - -- Windows: [Docker Desktop](https://www.docker.com/products/docker-desktop) 2.0+ on Windows 10 Pro/Enterprise. Windows 10 Home (2004+) requires Docker Desktop 2.3+ and the [WSL 2 back-end](https://aka.ms/vscode-remote/containers/docker-wsl2). (Docker Toolbox is not supported. Windows container images are not supported.) -- macOS: [Docker Desktop](https://www.docker.com/products/docker-desktop) 2.0+. -- Linux: [Docker CE/EE](https://docs.docker.com/install/#supported-platforms) 18.06+ and [Docker Compose](https://docs.docker.com/compose/install) 1.21+. (The Ubuntu snap package is not supported.) - -### Install Visual Studio Code - -Visual Studio Code is a free code editor, which runs on the macOS, Linux, and Windows operating systems. - -Follow the platform-specific guides below: - -```mdx-code-block - - -``` - -1. Download [Visual Studio Code](https://go.microsoft.com/fwlink/?LinkID=534106) for macOS. -1. Open the browser's download list and locate the downloaded app or archive. -1. If archive, extract the archive contents. Use double-click for some browsers or select the 'magnifying glass' icon with Safari. -1. Drag `Visual Studio Code.app` to the Applications folder, making it available in the macOS Launchpad. -1. Open VS Code from the Applications folder, by double clicking the icon. - -```mdx-code-block - - -``` - -1. Download the [Visual Studio Code installer](https://go.microsoft.com/fwlink/?LinkID=534107) for Windows. -1. Once it is downloaded, run the installer (VSCodeUserSetup-\{version\}.exe). This will only take a minute. -1. By default, VS Code is installed under `C:\Users\\{Username\}\AppData\Local\Programs\Microsoft VS Code`. - -```mdx-code-block - - -``` - -Following the [offical Linux install guide](https://code.visualstudio.com/docs/setup/linux). - -```mdx-code-block - - -``` - -### Install Remote container extension - -Install the [Remote Container extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). - -![VSCode extension](/img/vscode-install-remote-containers.png) - -## Fetch Zealot Codesoace - -Zealot Codespace was in the `.devcontailer` folder of Zealot project, so you need clone the source code. - -```bash -git clone https://github.com/tryzealot/zealot.git -``` - -Explan these files in Codespace: - -File | Description ----|--- -`devcontainer.json` | VSCode devcontainer config -`Dockerfile.base` | Base Dockerfile, auto push multi registry servers after changes -`Dockerfile` | Speed up build time, depends on above image. -`docker-compose.yml` | All services of Zealot -`create-db-user.sql` | Create user and role for Zealot - -## Open the project in a container - -Start Visual Studio Code, run the `Dev Containers: Open Folder in Container...` command in [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) and select the Zealot folder. - -![VSCode Command Palette](/img/vscode-command-palette.png) - -Click the **Starting Dev Container (show log)** to review zealot codespace build real time logging messages. - -![VSCode Command Palette](/img/vscode-devcontainer-log.png) - - -When finish the task, project files will load in file explorer and the zsh terminal. Access log outputs messages: - -``` -[7293 ms] Start: Run in container: cat /proc/344/environ -[9836 ms] Port forwarding connection from 53148 > 43379 > 43379 in the container. -[9836 ms] Start: Run in container: /home/vscode/.vscode-server/bin/5235c6bb189b60b01b1f49062f4ffa42384f8c91/node -e -[9981 ms] Port forwarding 53148 > 43379 > 43379 stderr: Connection established -[14988 ms] Port forwarding 53148 > 43379 > 43379 stderr: Remote close -[14999 ms] Port forwarding 53148 > 43379 > 43379 terminated with code 0 and signal null. -[29221 ms] Port forwarding 53148 > 43379 > 43379: Local close -``` - -In host Docker containers: - -![Docker-Compose containers](/img/vscode-devcontainer-docker-containers.png) - -## Start the project - -Press `` Ctrl + ` `` to open the integrated terminal in Visual Studio Code if it isn't already open. then run `bin/dev` to run all services. - -Notice that the terminal prompt might look different than your normal terminal prompt. - -![VSCode Zealot in Container](/img/vscode-devcontainer-zealot.png) - -## Open in browser - -A while after run `bin/dev`, select **Ports** to see all forwarded ports, **Open in Browser** in quick way. - -![VSCode forwarded ports](/img/vscode-devcontainer-forwarded-ports.png) diff --git a/versioned_docs/version-5.0/contributing-guide/local-development/source-code.md b/versioned_docs/version-5.0/contributing-guide/local-development/source-code.md deleted file mode 100644 index 7ca41b086..000000000 --- a/versioned_docs/version-5.0/contributing-guide/local-development/source-code.md +++ /dev/null @@ -1,232 +0,0 @@ ---- -sidebar_label: "Source code" ---- - -# Source code - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -``` - -The following is a tutorial on local deployment development for different operating systems. - -## Prepare dependencies - -### macOS - -#### Install homebrew - -First you need to install Xcode Command tools: - -```bash -$ xcode-select --install -``` - -Then install Homebrew, the package management tool for macOS - -```bash -$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" -``` - -#### Install dependencies - -```bash -$ brew install redis postgresql webp imagemagick node git -``` - -#### Setup Database and cache services - -Run postgresql and redis services - -```bash -$ brew services start postgresql -$ brew services start redis -``` - -You also need to create a default username in Postgresql: - -```bash -$ createuser --superuser zealot - -# If you are worried about the high privilege, you can only enable the create database privilege -$ createuser --createdb zealot -``` - -#### yarn - -```bash -$ npm install -g yarn -``` - - -### Debian (Ubuntu) - -#### System dependencies - -```bash -$ apt update -$ apt install -y libssl-dev tar tzdata git imagemagick libjpeg-dev libpng-dev libtiff-dev libwebp-dev -``` - -#### Install dependencies - -```bash -$ apt install -y redis postgresql-client node -``` - -#### Setup Database and cache services - -Run postgresql and redis services - -```bash -$ systemctl postgres start -$ systemctl redis start -``` - -You also need to create a default username in Postgresql: - -```bash -$ initdb -D /var/lib/postgresql/data -$ createuser --superuser zealot - -# If you are worried about the high privilege, you can only enable the create database privilege -$ createuser --createdb zealot -``` - -#### node - -```bash -$ npm install -g yarn -``` - -### Alpine Linux - -#### System dependencies - -```bash -$ apk --update --no-cache add build-base libxml2 libxslt git \ - libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev \ - tzdata -``` - -Needs install `gcompat` if use `arm` architecture. or an exception will throws such like "[Error loading shared library](https://nokogiri.org/tutorials/installing_nokogiri.html#linux-musl-error-loading-shared-library)". - -#### Install dependencies - -```bash -$ apk --update --no-cache redis postgresql -``` - -#### Setup Database and cache services - -Run postgresql and redis services - -```bash -$ rc-service postgres start -$ rc-service redis start -``` - -You also need to create a default username in Postgresql: - -```bash -$ initdb -D /var/lib/postgresql/data -$ createuser --superuser zealot - -# If you are worried about the high privilege, you can only enable the create database privilege -$ createuser --createdb zealot -``` - -## Install Ruby - -Can be installed by either asdf, rvm as ruby version manager. - -```mdx-code-block - - -``` - -Following the [offical install guide](http://asdf-vm.com/guide/getting-started.html) then: - -```bash -# Enable Ruby 3.2.0 YJIT need install Rust 1.58+ -# Optinal install: -asdf plugin add rust -asdf install rust latest -asdf global rust latest -export RUBY_CONFIGURE_OPTS=--enable-yjit - -# Required: -asdf plugin add ruby -asdf install ruby 3.2.0 -asdf global ruby 3.2.0 -``` - -```mdx-code-block - - -``` - -```bash -$ curl -sSL https://get.rvm.io | bash -s stable -$ rvm install 3.2.0 --disable-binary -``` - -```mdx-code-block - - -``` - -## Fetch source code - -```bash -git clone https://github.com/tryzealot/zealot.git -``` - -## Initialize Zealot - -All the following steps need to be performed in the zealot root directory. - -### bundler - -Install Ruby gems - -```bash -$ [sudo] gem install bundler -$ bundle install -``` - -### yarn - -Install javascript packages: - -```bash -$ yarn install -``` - -### Initialize database - -Make sure there are no problems with the connection database information, then the database tables will be created and the table structure will be created: - -```bash -$ rails db:create -$ rails db:migrate -``` - -Configuring the connection database can be done via [environment variables](/docs/self-hosted/configuration/environment-variables) or by changing the `config/database.yml` file. - -### Initialize default account and demo data - -Initialize administrator account and sample application - -```bash -$ rails db:seed -``` - -### Launch services - -```bash -$ bin/dev -``` - -Open brower `http://localhost:3000` diff --git a/versioned_docs/version-5.0/contributing-guide/sidebars.js b/versioned_docs/version-5.0/contributing-guide/sidebars.js deleted file mode 100644 index ef8a8b710..000000000 --- a/versioned_docs/version-5.0/contributing-guide/sidebars.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = [ - { - label: "Getting Started", - type: "doc", - id: 'contributing-guide/index', - }, - { - collapsible: false, - label: "Local development", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "contributing-guide/local-development/devcontainer", - "contributing-guide/local-development/source-code" - ], - }, -]; diff --git a/versioned_docs/version-5.0/developer-guide/api.md b/versioned_docs/version-5.0/developer-guide/api.md deleted file mode 100644 index 52d806396..000000000 --- a/versioned_docs/version-5.0/developer-guide/api.md +++ /dev/null @@ -1,37 +0,0 @@ -# APIs - -Use the Zealot APIs to view, upload, download the build of app or debug file. - -## Authentication - -Requests currently only support query authentication for User Token, found in `API - Key` at the bottom of the login user details page. - -> example : `https://YOUR_ZEALOT_URL/api?token=YOUR_TOKEN` - -## Version - -The current version is `v1`, the APIs does not need to explicitly pass the version parameter, -and the GraphGL interface is being developed gradually. - -## Apps - -Resource | Available endpoints ----|--- -Upload an App | `/api/apps/upload` -List Apps | `/api/apps` -Get an App by id | `/api/apps/:id` -List verions from an App | `/api/apps/versions` -Get the latest Release from an App | `/api/apps/latest` -Check an Release from App exists | `/api/apps/version_exist` - -## Debug files - -Resource | Available endpoints ----|--- -Upload a debug file | `/api/debug_files/upload` -Download a debug file by id | `/api/debug_files/download` -List Debug files | `/api/debug_files` -Get an debug file by id | `/api/debug_files/:id` -Check a debug file exists by id | `/api/debug_files/version_exist` -Update a debug file by id | `/api/debug_files/:id` -Delete a debug file by id | `/api/debug_files/:id` diff --git a/versioned_docs/version-5.0/developer-guide/api/apps.md b/versioned_docs/version-5.0/developer-guide/api/apps.md deleted file mode 100644 index 2a66a5a06..000000000 --- a/versioned_docs/version-5.0/developer-guide/api/apps.md +++ /dev/null @@ -1,417 +0,0 @@ ---- -sidebar_label: "Apps" ---- - -# App APIs - -## Upload an app - -This allows you to upload an single iOS, Android or macOS file. - -``` -POST /api/apps/upload -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| file | `File` | true | an App file | -| channel_key | `String` | false | Channel key
Create a new App if leave it empty | -| name | `String` | false | the name of App
Use app name from parsed metadata in given file if leave it empty | -| release_type | `String` | false | Eg, debug, beta, adhoc, release, enterprise 等 | -| source | `String` | false | the source of upload (default is `api`) | -| changelog | `String` | false | Changelog
Avaiables in plain text or JSON formatted struct | -| branch | `String` |false| a branch name from git | -| git_commit | `String` | false | git commit | -| ci_url | `String` | false | the build url of a C | -| custom_fields | `String` | false | JSON formatted custom fileds
It could configures and display title,
value and icon from fontawesome in a Release page from an App | - -For `changelog` attribute which it accepts both `plain text` and `JSON` formatted contents: - -**plain text**: - -``` -message 1\nmessage 2 -``` - -**JSON**: - -``` -[ - { - "message": "message 1", - "author": "admin", - "email": "admin@zealot.com", - "date": "2021-11-11 11:11:11" - }, - { - "message": "message 1", - "author": "developer", - "email": "developer@zealot.com", - "date": "2021-11-11 11:11:11" - } -] -``` - -For `custom_fields` attribute which it use `JSON` formatted struct to build from each key-value. for example, Display country name like `country=China` with icon [flag](https://fontawesome.com/v5.15/icons/flag?style=solid): - -```diff -curl -X POST \ - 'https://YOUR_ZEALOT_URL/api/apps/upload' \ - --form 'token="token"' \ - --form 'channel_key="channel_key"' \ -+ --form 'custom_fields="[{"name":"country","value":"China","icon":"fas fa-flag"}]"' \ - --form 'file=@/path/to/your/app' -``` - -#### Return body - -```json -{ - "id": 50, - "version": 7, - "app_name": "Test Android", - "bundle_id": "com.test.app", - "release_version": "1.0", - "build_version": "1", - "source": "SOURCE", - "branch": "master", - "git_commit": "e9de48513dbb6abfbxxxxxxxxxxxxxxxxxxxxxxxx", - "ci_url": "", - "size": 1565486, - "icon_url": "/uploads/apps/a1/r1/icons/app_icon.png", - "release_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1", - "install_url": "https://YOUR_ZEALOT_URL/download/releases/1", - "qrcode_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1/qrcode?size=thumb", - "changelog": [ - { - "message": "Changelog message 1" - }, - { - "message": "Changelog message 2" - } - ], - "text_changelog": "- Changelog message 1\n- Changelog message 2", - "custom_fields": [], - "created_at": "2021-09-01T11:43:33.977+08:00", - "app": { - "id": 1, - "name": "App name" - }, - "scheme": { - "id": 8, - "name": "Test" - }, - "channel": { - "slug": "1XmpC", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - } -} -``` - -## List apps - -Get a list of app. - -This function takes pagination parameters page and per_page to restrict the list of app. - -``` -GET /api/apps -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| page | `Integer` | false | Page number (default: `1`) | -| per_page | `Integer` | false | Number of items to list per page (default: `25`, max: `100`). | - -### Return body - -```json -[ - { - "id": 1, - "name": "Zealot", - "schemes": [ - { - "id": 1, - "name": "Adhoc", - "channels": [ - { - "slug": "X1IXN", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "O1qHk", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - }, - { - "id": 2, - "name": "内测版", - "channels": [ - { - "slug": "l19Tl", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "8selv", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - } - ] - } -] -``` - -## Get an app - -Allows you to receive information about an app like name, scheme, channel. - -``` -GET /api/apps/:id -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| id | `Integer` | true | ID | - -### Return body - -```json -{ - "id": 1, - "name": "Zealot", - "schemes": [ - { - "id": 5, - "name": "Test App", - "channels": [ - { - "slug": "X1IXN", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "O1qHk", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - } - ] -} -``` - -## Get versions list of app - -Get a list of apps by the given channel key - - -``` -GET /api/apps/versions -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| page | `Integer` | false | Page number (default: `1`) | -| per_page | `Integer` | false | Number of items to list per page (default: `25`, max: `100`). | - -### Return body - -```json -{ - "app_name": "Zealot iOS", - "bundle_id": "*", - "git_url": null, - "app": { - "id": 3, - "name": "Zealot" - }, - "scheme": { - "id": 5, - "name": "AdHoc" - }, - "releases": [ - { - "version": 2, - "app_name": "Zealot iOS", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10292024", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - }, - { - "version": 1, - "app_name": "Zealot iOS", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - }, - ] -} -``` - -## Get the latest version of app - -Allows you to receive the latest information about a Release version from App like app metadata, changelog, icon url, install (download) url. - - -``` -GET /api/apps/latest -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| release_version | `String` | true | Release version | -| build_version | `String` | true | Build version | - -### Return body - -```json -{ - "app_name": "Zealot iOS", - "bundle_id": "*", - "git_url": null, - "app": { - "id": 3, - "name": "Zealot" - }, - "scheme": { - "id": 5, - "name": "AdHoc" - }, - "releases": { - "version": 1, - "app_name": "Zealot iOS", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - } -} -``` - -## Check version exists - -Allows you to check the Release exists by given query, query accepts two combo group: - -- `bundle_id`, `release_version` and `build_verion` -- `bundle_id` and `git_commit` - -``` -GET /api/apps/version_exist -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| bundle_id | `String` | true | bundle_id or package_name | -| release_version | `String` | false | Release version | -| build_version | `String` | false | Build version | -| git_commit | `String` | false | git commit hash | - -### Return body - -- Return 200 if release existed. -- Return 404 if release not existed. - -Success returns: - -```json -{ - "version": 1, - "app_name": "Zealot iOS", - "bundle_id": "im.ews.zealot", - "release_version": "4.1.1", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" -} -``` - -Not found returns: - -```json -{ - "error": "Not found release" -} -``` diff --git a/versioned_docs/version-5.0/developer-guide/api/debug_files.md b/versioned_docs/version-5.0/developer-guide/api/debug_files.md deleted file mode 100644 index 4cb3ec1ca..000000000 --- a/versioned_docs/version-5.0/developer-guide/api/debug_files.md +++ /dev/null @@ -1,254 +0,0 @@ ---- -sidebar_label: "Debug Files" ---- - -# Debug File APIs - -## Upload debug file - -This allows you to upload an single iOS, Android debug file. - -Debug file accepts: - -- iOS: a Zipped dSYM file -- Android: a Zipped file includes mapping.txt, R.txt or AndroidManifest.xml files. - -``` -POST /api/debug_files/upload -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| file | `File` | true | Arichved file by zip | -| release_version | `String` | true | Release version, ignore this param if iOS app | -| build_version | `String` | true | Build version, ignore this param if iOS app | - -### Return body - -```json -{ - "id": 1, - "app_name": "Demo App", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## Download debug file - -This allows you to download an single iOS, Android debug file. - -``` -GET /api/debug_files/download -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| release_version | `String` | true | Release version, ignore this param if iOS app | -| build_version | `String` | false | Build version, ignore this param if iOS app | -| order | `String` | false | Order by
`version` = latest version, `upload_date` = last uploaded date
**Vaild in release_version is `latest`** | - -### Return body - -- Retun 200 status code if the version exists and redirect to the download address with a 302 status code. -- return 404 status code if the version does not exist. - -## List debug files - -Get a list of debug files. - -This function takes pagination parameters page and per_page to restrict the list of debug files. - - -``` -GET /api/debug_files -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| page | `Integer` | false | Page number (default: `1`) | -| per_page | `Integer` | false | Number of items to list per page (default: `25`, max: `100`). | - -### Return body - -```json -[ - { - "id": 1, - "app_name": "Demo App", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] - } -] -``` - -## Get a debug file - -Allows you to receive information about debug file like name, file size, UUID (iOS only), platform (iOS only) or file list (Android only). - -``` -GET /api/debug_files/:id -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| id | `Integer` | true | ID | - -### Return body - -```json -{ - "id": 1, - "app_name": "Demo App", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## Update a existed debug file - -This allows you to update a debug file. - -``` -PUT /api/debug_files/:id -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| id | `Integer` | true | ID | -| file | `File` | true | a Zipped debug file | -| release_version | `String` | true | Release version, ignore this param if iOS app | -| build_version | `String` | true | Build version, ignore this param if iOS app | - -### Return body - -```json -{ - "id": 1, - "app_name": "Demo App", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## Delete a debug file - -This allows you to delete a debug file. - -``` -DELETE /api/debug_files/:id -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| id | `Integer` | true | ID | - -### Return body - -```json -{ - "mesage": "OK" -} -``` diff --git a/versioned_docs/version-5.0/developer-guide/fastlane.md b/versioned_docs/version-5.0/developer-guide/fastlane.md deleted file mode 100644 index f9ff48334..000000000 --- a/versioned_docs/version-5.0/developer-guide/fastlane.md +++ /dev/null @@ -1,27 +0,0 @@ -# Fastlane plugins - -## Add Zealot plugin - -> [fastlane](https://fastlane.tools) is an open source platform aimed at simplifying Android and iOS deployment. -> fastlane lets you automate every aspect of your development and release workflow, -> customize your deployment workflows using the hundreds of community built fastlane actions and plugins. - -[fastlane-plugin-zealot](https://github.com/tryzealot/fastlane-plugin-zealot) provides upload app, debug_file and -version check actions to Zealot, install it in shell: - -```bash -$ fastlane add_plugin zealot -``` - -## More usefully plugins - -In addition, as the author of the project also open source a number of other fastlane plug-ins there is always one you will use: - -Plugin | Description | ----|--- -[fastlane-plugin-ci_changelog](https://github.com/icyleaf/fastlane-plugin-ci_changelog) | Automate generate changelog between previous and the latest commit of SCM during the CI services. -[fastlane-plugin-update_jenkins_build](https://github.com/icyleaf/fastlane-plugin-update_jenkins_build) | Update build's description of jenkins. -[fastlane-plugin-humanable_build_number](https://github.com/icyleaf/fastlane-plugin-humanable_build_number) | Automatic generate app build number unque and human readable friendly -[fastlane-plugin-app_info](https://github.com/icyleaf/fastlane-plugin-app_info) | Teardown tool for mobile app(ipa, apk and aab file), analysis metedata like version, name, icon etc. -[fastlane-plugin-android_channels](https://github.com/icyleaf/fastlane-plugin-android_channels) | Package unsign apk with channels and write empty file to META-INF with channel in general way -[fastlane-plugin-ram_disk](https://github.com/icyleaf/fastlane-plugin-ram_disk) | Use a virtual ram disk to do anything else diff --git a/versioned_docs/version-5.0/developer-guide/fastlane/zealot.md b/versioned_docs/version-5.0/developer-guide/fastlane/zealot.md deleted file mode 100644 index c00c6c471..000000000 --- a/versioned_docs/version-5.0/developer-guide/fastlane/zealot.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -sidebar_label: "zealot" ---- - -# Fastlane action: zealot - -Uploading iOS, Android and macOS app, it requires three params: - -```ruby -zealot( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', -) -``` - -## Parameters - -``` -+-----------------+---------------------------------+------------------------+----------+ -| zealot Options | -+-----------------+---------------------------------+------------------------+----------+ -| Key | Description | Env Var | Default | -+-----------------+---------------------------------+------------------------+----------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | The key of app's channel | ZEALOT_CHANNEL_KEY | | -| file | The path of app file. Optional | ZEALOT_FILE | | -| | if you use the `gym`, `ipa`, | | | -| | `xcodebuild` or `gradle` | | | -| | action. | | | -| name | The name of app to display on | ZEALOT_NAME | | -| | zealot | | | -| changelog | The changelog of app | ZEALOT_CHANGELOG | | -| slug | The slug of app | ZEALOT_SLUG | | -| release_type | The release type of app | ZEALOT_RELEASE_TYPE | | -| branch | The name of git branch | ZEALOT_BRANCH | | -| git_commit | The hash of git commit | ZEALOT_GIT_COMMIT | | -| custom_fields | The key-value hash of custom | ZEALOT_CUSTOM_FIELDS | | -| | fields | | | -| password | The password of app to download | ZEALOT_PASSWORD | | -| source | The name of upload source | ZEALOT_SOURCE | fastlane | -| ci_url | The name of upload source | ZEALOT_CI_CURL | | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| hide_user_token | replase user token to *** to | ZEALOT_HIDE_USER_TOKEN | true | -| | keep secret | | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error uploading app | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure | | | -+-----------------+---------------------------------+------------------------+----------+ -* = default value is dependent on the user's system - -+-----------------------+---------------------------------------------+ -| zealot Output Variables | -+-----------------------+---------------------------------------------+ -| Key | Description | -+-----------------------+---------------------------------------------+ -| ZEALOT_APP_ID | The id of app | -| ZEALOT_RELEASE_ID | The id of app's release | -| ZEALOT_RELEASE_URL | The release URL of the newly uploaded build | -| ZEALOT_INSTALL_URL | The install URL of the newly uploaded build | -| ZEALOT_QRCODE_URL | The QRCode URL of the newly uploaded build | -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+---------------------------------------------+ -``` - -## Output Variables - -``` -+-----------------------+---------------------------------------------+ -| zealot Output Variables | -+-----------------------+---------------------------------------------+ -| Key | Description | -+-----------------------+---------------------------------------------+ -| ZEALOT_APP_ID | The id of app | -| ZEALOT_RELEASE_ID | The id of app's release | -| ZEALOT_RELEASE_URL | The release URL of the newly uploaded build | -| ZEALOT_INSTALL_URL | The install URL of the newly uploaded build | -| ZEALOT_QRCODE_URL | The QRCode URL of the newly uploaded build | -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+---------------------------------------------+ -Access the output values using `lane_context[SharedValues::VARIABLE_NAME]` -``` diff --git a/versioned_docs/version-5.0/developer-guide/fastlane/zealot_debug_file.md b/versioned_docs/version-5.0/developer-guide/fastlane/zealot_debug_file.md deleted file mode 100644 index 63017003a..000000000 --- a/versioned_docs/version-5.0/developer-guide/fastlane/zealot_debug_file.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -sidebar_label: "zealot_debug_file" ---- - -# Fastlane action: zealot_debug_file - -Upload iOS dSYM or Android Proguard file(s) to Zealot - -```ruby - # Upload iOS dSYM file - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - platform: :ios, - xcode_scheme: 'AppName', - verify_ssl: false - ) - - # Upload Android Proguard files - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - platform: :android, - android_build_type: 'release', - android_flavor: 'store', - release_version: '1.1.0', - build_version: '1', - overwrite: true - ) - - # Upload given zip file - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - zip_file: 'path/to/your/zip_file', - release_version: '1.1.0', - build_version: '1', - verify_ssl: false - ) -``` - -## Parameters - -``` -+--------------------+-----------------------------------+---------------------------+---------+ -| zealot_debug_file Options | -+--------------------+-----------------------------------+---------------------------+---------+ -| Key | Description | Env Var | Default | -+--------------------+-----------------------------------+---------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | Any channel key of app | ZEALOT_CHANNEL_KEY | | -| zip_file | Using given the path of zip file | DF_DSYM_ZIP_FILE | | -| | to direct upload | | | -| platform | The name of platfrom, avaiable | ZEALOT_PLATFORM | | -| | value are | | | -| | ios,mac,macos,osx,android | | | -| path | The path of debug file | ZEALOT_PATH | | -| | (iOS/macOS is archive path for | | | -| | Xcode, Android is path for app | | | -| | project) | | | -| xcode_scheme | The scheme name of app | ZEALOT_XCODE_SCHEME | | -| android_build_type | The build type of app | ZEALOT_ANDROID_BUILD_TYPE | release | -| android_flavor | The product flavor of app | ZEALOT_ANDROID_FLAVOR | | -| extra_files | A set file names | ZEALOT_EXTRA_FILES | [] | -| output_path | The output path of compressed | DF_DSYM_OUTPUT_PATH | . | -| | dSYM file | | | -| release_version | The release version of app | ZEALOT_RELEASE_VERSION | | -| | (Android needs) | | | -| build_version | The build version of app | ZEALOT_BUILD_VERSION | | -| | (Android needs) | | | -| overwrite | Overwrite output compressed file | DF_DSYM_OVERWRITE | false | -| | if it existed | | | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error uploading app | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure? (true/false) | | | -+--------------------+-----------------------------------+---------------------------+---------+ -* = default value is dependent on the user's system - -+-----------------------+-----------------------------------------+ -| zealot_debug_file Output Variables | -+-----------------------+-----------------------------------------+ -| Key | Description | -+-----------------------+-----------------------------------------+ -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+-----------------------------------------+ -``` diff --git a/versioned_docs/version-5.0/developer-guide/fastlane/zealot_sync_devices.md b/versioned_docs/version-5.0/developer-guide/fastlane/zealot_sync_devices.md deleted file mode 100644 index 1a61333c7..000000000 --- a/versioned_docs/version-5.0/developer-guide/fastlane/zealot_sync_devices.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -sidebar_label: "zealot_sync_devices" ---- - -# Fastlane action: zealot_sync_devices - -> :bell: Zealot 4.5.0 built in Apple team manage which it use [Apple API Key](https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) -> to sync iOS devices, even CAN registe the device after fetch the UDID, [Check detail](/docs/user-guide/administrator/apple-team) - -Use Apple Developer account to syncing UDIDs and relates the value in Zealot. - -```ruby -# With Apple API Key -zealot_sync_devices( - endpoint: 'https://zealot.example.com', - token: '...', - api_key_path: '/path/to/your/api_key_json_file', - team_id: '...' -) - -# With password (Two-factor Authentication required) -zealot_sync_devices( - endpoint: 'https://zealot.example.com', - token: '...', - username: 'user@example.com', - team_id: '...' -) -``` - -## Parameters - -``` -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| zealot_sync_devices Options | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| Key | Description | Env Var(s) | Default | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| username | The apple id (username) of Apple Developer Portal | ZEALOT_USERNAME | * | -| api_key_path | Path to your App Store Connect API Key JSON file | ZEALOT_API_PATH | | -| | (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key | | | -| | -json-file) | | | -| api_key | Your App Store Connect API Key information | ZEALOT_API_KEY | * | -| | (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key | | | -| | -hash-option) | | | -| team_id | The ID of your Developer Portal team if you're in multiple teams | ZEALOT_APPLE_TEAM_ID | * | -| team_name | The name of your Developer Portal team if you're in multiple teams | ZEALOT_APPLE_TEAM_NAME | * | -| platform | The platform to use (optional) | ZEALOT_APPLE_PLATFORM | ios | -| verify_ssl | Should verify SSL of zealot service | ZEALOT_VERIFY_SSL | true | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| fail_on_error | Should an error http request cause a failure? (true/false) | ZEALOT_FAIL_ON_ERROR | false | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -``` diff --git a/versioned_docs/version-5.0/developer-guide/fastlane/zealot_version_check.md b/versioned_docs/version-5.0/developer-guide/fastlane/zealot_version_check.md deleted file mode 100644 index ed7100ba0..000000000 --- a/versioned_docs/version-5.0/developer-guide/fastlane/zealot_version_check.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -sidebar_label: "zealot_version_check" ---- - -# Fastlane action: zealot_version_check - -Check given build exists or not on Zealot - -```ruby -zealot_version_check( - endpoint: 'https://zealot.example.com', - token: '...', - bundle_id: 'com.example.app.name', - release_version: '1.0.0', - build_version: '1' -) -``` - -## Parameters - -``` -+-----------------+---------------------------------+------------------------+---------+ -| zealot_version_check Options | -+-----------------+---------------------------------+------------------------+---------+ -| Key | Description | Env Var | Default | -+-----------------+---------------------------------+------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | The key of app's channel | ZEALOT_CHANNEL_KEY | | -| bundle_id | The bundle id(package name) of | ZEALOT_BUNDLE_ID | | -| | app | | | -| release_version | The release version of app | ZEALOT_RELEASE_VERSION | | -| build_version | The build version of app | ZEALOT_BUILD_VERSION | | -| git_commit | The latest git commit of app | ZEALOT_GIT_COMMIT | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error http request | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure? (true/false) | | | -+-----------------+---------------------------------+------------------------+---------+ -``` diff --git a/versioned_docs/version-5.0/developer-guide/index.md b/versioned_docs/version-5.0/developer-guide/index.md deleted file mode 100644 index aac28297e..000000000 --- a/versioned_docs/version-5.0/developer-guide/index.md +++ /dev/null @@ -1,15 +0,0 @@ -# Developer Guide - -Zealot offers a rich set of components for iOS, Android, and all aspects of the packaging process. - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - - diff --git a/versioned_docs/version-5.0/developer-guide/sdk/android.md b/versioned_docs/version-5.0/developer-guide/sdk/android.md deleted file mode 100644 index a0fbc4519..000000000 --- a/versioned_docs/version-5.0/developer-guide/sdk/android.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -sidebar_label: "Android" ---- - -# Zealot Android SDK - -The Android component provides a service to check for new versions and installations for Zealot, supporting both Kotlin and Java. - -## Install - -### JitPack - -Using [jitpack](https://jitpack.io) to install: - -```groovy -allprojects { - repositories { - ... - maven { url 'https://jitpack.io' } - } -} -``` - -In `build.gradle` file of main app project add: - -```groovy -dependencies { - implementation 'com.github.tryzealot:zealot-android:master-SNAPSHOT' -} -``` - -## Permission - -Zealot needs internet permission - -```xml - -``` - -## Usages - -Add the start code to the `onCreate` method block of your `Application` file: - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -``` - -```kotlin -// Single channel -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("...") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch() - -// Multi-channel, such as beta, adhoc versions -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("xxxxxxx", "beta") - .setCHannelKey("yyyyyyy", "test") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch() -``` - -```mdx-code-block - - -``` - -```kotlin -// Single channel -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("...") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch(); - -// Multi-channel, such as beta, adhoc versions -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("xxxxxxx", "beta") - .setCHannelKey("yyyyyyy", "test") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch(); -``` - -```mdx-code-block - - -``` diff --git a/versioned_docs/version-5.0/developer-guide/sdk/ios.md b/versioned_docs/version-5.0/developer-guide/sdk/ios.md deleted file mode 100644 index ecf471c11..000000000 --- a/versioned_docs/version-5.0/developer-guide/sdk/ios.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -sidebar_label: "iOS" ---- - -# Zealot iOS SDK - -The iOS component provides a service to check for new versions and installations for Zealot, -supporting Swift and Objective-C. - -## Install - -### Cocoapods - -Adding below code into `Podfile`: - -```ruby -pod 'Zealot', :git => 'https://github.com/tryzealot/zealot-ios.git', :branch => 'master' -``` - -Install it: - -```bash -pod install -``` - -## Usages - -### Import header - -1. Add the code in your `AppDelegate`: - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -``` - -```swift -import Zealot -``` - -```mdx-code-block - - -``` - -```objectivec -// Objective-C -#import -``` - -```mdx-code-block - - -``` - -### Configure - -2. Add the following code in `application:didFinishLaunchingWithOptions:` method block: - -```mdx-code-block - - -``` - -```swift -// Single channel -let zealot = Zealot(endpoint: "https://zealot.example.com", channelKey: "...") -zealot.checkVersion() - -// Multi-channel, such as beta, adhoc versions -let zealot = Zealot(endpoint: "https://zealot.example.com", - channelKeys: [ - "beta": "xxxxxxx", - "test": "yyyyyyy"], - default_enviroment: "beta") - -// Active it -zealot.checkVersion() -``` - -```mdx-code-block - - -``` - -```objectivec -// Single channel -Zealot *zealot = [[Zealot alloc] initWithEndpoint:@"https://zealot.example.com" - channelKey:@"..."]; - -// Multi-channel, such as beta, adhoc versions -Zealot *zealot = [[Zealot alloc] initWithEndpoint:@"https://zealot.example.com" - channelKeys:@{ - @"beta": @"xxxxxxx", - @"gray": @"yyyyyyy" - } - default_enviroment:@"beta"]; - -// Active it -[zealot checkVersion]; -``` - -```mdx-code-block - - -``` diff --git a/versioned_docs/version-5.0/developer-guide/sidebars.js b/versioned_docs/version-5.0/developer-guide/sidebars.js deleted file mode 100644 index f0d9c244e..000000000 --- a/versioned_docs/version-5.0/developer-guide/sidebars.js +++ /dev/null @@ -1,47 +0,0 @@ -module.exports = [ - { - label: "Getting Started", - type: "doc", - id: 'developer-guide/index', - }, - { - collapsible: false, - label: "SDKs", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "developer-guide/sdk/ios", - "developer-guide/sdk/android" - ], - }, - { - collapsible: false, - label: "fastlane plugins", - type: "category", - link: { - type: 'doc', - id: 'developer-guide/fastlane', - }, - items: [ - "developer-guide/fastlane/zealot", - "developer-guide/fastlane/zealot_version_check", - "developer-guide/fastlane/zealot_debug_file", - "developer-guide/fastlane/zealot_sync_devices" - ], - }, - { - collapsible: false, - label: "APIs", - type: "category", - link: { - type: 'doc', - id: 'developer-guide/api', - }, - items: [ - "developer-guide/api/apps", - "developer-guide/api/debug_files", - ], - } -]; diff --git a/versioned_docs/version-5.0/self-hosted/configuration/environment-variables.md b/versioned_docs/version-5.0/self-hosted/configuration/environment-variables.md deleted file mode 100644 index d4ae174fb..000000000 --- a/versioned_docs/version-5.0/self-hosted/configuration/environment-variables.md +++ /dev/null @@ -1,150 +0,0 @@ -# Environment Variables - -## The .env File - -You can set the correct values as per the following options. Once you set the values, you should rename the file to `.env` before you start the server. - -## Configure HTTPS (SSL) - -**Due to Apple's mandatory requirement of mandatory HTTPS for online deployment and download services**, d -ownloading applications will be forced to go HTTPS protocol when redeploying. - -If the deployment is a standalone service on a single machine, it is recommended to enable Let's Encrypt free SSL certificate: - -```bash -ZEALOT_CERT_EMAIL=zealot@example.com -``` - -> The following self-signed certificate file name, can not be set at the same time - -If the deployed machine can only use self-signed certificates, they need to be configured, -but note that iOS downloads require the iOS device to authorize the self-signed certificate before the download and installation is allowed. (Not recommended) - -```bash -ZEALOT_CERT=zealot.example.com.pem -ZEALOT_CERT_KEY=zealot.example.com-key.pem -``` - -## Configure URL (Domain) - -Must be configured otherwise downloaded applications and some static resources will not be accessed correctly - -```bash -# No need http:// or https:// -ZEALOT_DOMAIN=zealot.example.com -``` - -## Database configuration - -If you have reusable postgresql and redis services, -you can also customize the configuration to use them instead of -using the services configured by default with docker-compose. - -### Postgresql - -```bash -ZEALOT_POSTGRES_HOST=127.0.0.1 -ZEALOT_POSTGRES_PORT=5432 -ZEALOT_POSTGRES_USERNAME=postgres -ZEALOT_POSTGRES_PASSWORD=ze@l0t -ZEALOT_POSTGRES_DB_NAME=zealot -``` - -### Redis - -This is a URL connection mainly for most cloud services compatibility - -```bash -REDIS_URL=redis://user:pass@127.0.0.1:6379/0 - -# Redis over SSL -REDIS_URL=rediss://user:pass@127.0.0.1:6379/0 -``` - -## Configure default language - -Packs | Value ----|--- -zh-CN | Simplified Chinese (default) -en | English - -```bash -DEFAULT_LOCALE=en -``` - -## Configure default appearance - -Appearance | Value ----|--- -light | Light mode(default) -dark | Dark mode -auto | System auto - -```bash -ZEALOT_APPEARANCE=dark -``` - -## Configure default Administer - -The default does not configure the following will also generate the following account and -password as an account with administrator privileges, it is recommended to change the password again after configuration. - -```bash -ZEALOT_ADMIN_EMAIL=admin@zealot.com -ZEALOT_ADMIN_PASSWORD=ze@l0t -``` - -## Enable new user registration - -After closing the registration, the administrator can add users manually through the user management in the administration panel. - -```bash -# Open registration -ZEALOT_REGISTER_ENABLED=true - -# Close registration -ZEALOT_REGISTER_ENABLED=false -``` - -## Enable guest mode - -Enable the visitor mode to allow the application to view, download and install, -it is recommended that the company internal reliance on permissions is not high condition to use, -specific permission comparison can [see here for details](/docs/user-guide/administrator/permissions) - -```bash -# Guest mode is ON -ZEALOT_GUEST_MODE=true - -# Guest mode is OFF -ZEALOT_GUEST_MODE=false -``` - -## Configure emails - -Currently, only `smtp` is supported to configure email notification service. -Email notification mainly affects are user registration, sending activation emails and -changing password service, but it does not affect the use if it is not turned on. - -```bash -# SMTP settings -SMTP_ADDRESS=smtp.gmail.com -SMTP_PORT=587 -SMTP_DOMAIN=gmail.com -SMTP_USERNAME=you@gmail.com -SMTP_PASSWORD=yourpassword -SMTP_AUTH_METHOD=plain -SMTP_ENABLE_STARTTLS_AUTO=true - -# Sender and email address by default -ACTION_MAILER_DEFAULT_FROM=you@gmail.com -ACTION_MAILER_DEFAULT_TO=you@gmail.com -``` - -## Disbale Cable request protection - -Experimental: - -```bash -ZEALOT_DISABLE_CABLE_REQUEST_PROTECTION=true -``` diff --git a/versioned_docs/version-5.0/self-hosted/configuration/schedule-jobs.md b/versioned_docs/version-5.0/self-hosted/configuration/schedule-jobs.md deleted file mode 100644 index 9b989d97d..000000000 --- a/versioned_docs/version-5.0/self-hosted/configuration/schedule-jobs.md +++ /dev/null @@ -1,55 +0,0 @@ -# Schedule Jobs - -## Clean old version builds - -A reliable logic for cleaning up old versions is to keep an eye on all uploaded -versions of the current master version, as observed by project maintainers over time. - -Previously uploaded historical versions only need to keep the last uploaded build -version basically to meet the vast majority of cases, for example: - -> Additional: the current logic is relatively trouble-free but inflexible, in fact, -> there is thought to support a variety of processing logic, see https://github.com/tryzealot/zealot/issues/376 - -``` -- 2.0 - - 3 - - 2 - - 1 -- 1.0.1 - - 10 - - 9 - - 8 - ... -- 1.0 - - 5 - - 4 - - 3 - ... -``` - -The task will clean up all versions up to version 1.0.1 containing 9 and version 1.0 containing 4, -leaving the final version file as follows: - -``` -- 2.0 - - 3 - - 2 - - 1 -- 1.0.1 - - 10 -- 1.0 - - 5 -``` - -If disk space is limited, you can enable cleanup of timed tasks by setting the environment variable `ZEALOT_KEEP_UPLOADS=false`. - -:::info - -`ZEALOT_KEEP_UPLOADS` set `true` by default. - -::: - -## Backup - -When you create any backup it will join itself to the schedule job list. diff --git a/versioned_docs/version-5.0/self-hosted/configuration/third-party-authentication.md b/versioned_docs/version-5.0/self-hosted/configuration/third-party-authentication.md deleted file mode 100644 index 4eafaed8b..000000000 --- a/versioned_docs/version-5.0/self-hosted/configuration/third-party-authentication.md +++ /dev/null @@ -1,109 +0,0 @@ -# Third-party Authentication - -Zealot supports authorized logins using supported third-party services, which can be currently configured via the following environment variables or in the settings page of the admin panel. - -Service | provider ----|--- -Feishu | `feishu` -Gitlab | `gitlab` -Google | `google_oauth2` -LDAP | `ldap` -OpenID Connect | `openid_connect` - -If the above services need to set the callback address please set it uniformly as follows - -``` -https://zealot.example.com/users/auth/:provider/callback -``` - -where `:provider` is the identifier of the above supported third-party service, for example: - -```bash -# if Google is enabled, then replace `:provider` with `google_oauth2`. -https://zealot.example.com/users/auth/google_oauth2/callback -``` - -## Gitlab - -1. Register a Gitlab [On line](http://gitlab.com) account or use self-host service -1. Create an application in Preferences -> Applications page. -1. Configure `Redirect URI` such like `https://zealot.example.com/users/auth/gitlab/callback` (replace the domain in your case) -1. Check scope: `read_user`,By default zealot only uses this license, if your enable scope is `api` that's fine too - -```bash -GITLAB_ENABLED=true -GITLAB_SITE=https://gitlab.com/api/v4 -GITLAB_SCOPE=read_user -GITLAB_APP_ID= -GITLAB_SECRET= -``` - -## Google - -1. Register a Google account -1. Enable [Google Cloud Platform](https://console.cloud.google.com/apis/dashboard) service -1. Choose or create a Project then go to Credentials page -1. Create OAuth Client ID with Web Application, and configure Authorized redirect URI such like `https://zealot.example.com/users/auth/google_oauth2/callback` (replace the domain in your case) - -```bash -GOOGLE_OAUTH_ENABLED=true -GOOGLE_CLIENT_ID= -GOOGLE_SECRET= -``` - -## Feishu (Lark) - -1. Register a feishu (lark) account and download the Phone app. -1. Enable [Open platform](https://open.feishu.cn/app/) and create application to get app_id, app_secret -1. Configure callback url such like `https://zealot.example.com/users/auth/feishu/callback` (replace the domain in your case) -1. Check user filed information scope: `email address` (Optional) -1. Create a version and publish - -```bash -FEISHU_ENABLED=true -FEISHU_APP_ID= -FEISHU_APP_SECRET= -``` - -## LDAP - -```bash -LDAP_ENABLED=true -LDAP_HOST=10.0.0.1 -LDAP_PORT=389 -LDAP_METHOD=plain -LDAP_BIND_DN="cn=Manager,dc=example,dc=com" -LDAP_PASSWORD=password -LDAP_BASE="ou=People,dc=example,dc=com" -LDAP_UID=uid -``` - -## OpenID Connect - -Supports both auto-discovery mode and manual settings. - -### Auto-discovery - -Turning on auto-discovery mode will automatically fetch the `[OIDC_ISSUER_URL]/.well-known/openid-configuration` configuration. - -```bash -OIDC_ENABLED=true -OIDC_CLIENT_ID= -OIDC_CLIENT_SECRET= -OIDC_ISSUER_URL=https://oidc.example.com -OIDC_DISCOVERY=true -``` - -### Manual - -``` -OIDC_ENABLED=true -OIDC_CLIENT_ID= -OIDC_CLIENT_SECRET= -OIDC_ISSUER_URL=https://oidc.example.com -OIDC_AUTH_URI=/authorize -OIDC_TOKEN_URI=/token -OIDC_USERINFO_URI=/userinfo -``` - -Above `OIDC_AUTH_URI`, `OIDC_TOKEN_URI`, `OIDC_USERINFO_URI` will use the default path as above if not set. diff --git a/versioned_docs/version-5.0/self-hosted/deployment/architecture.mdx b/versioned_docs/version-5.0/self-hosted/deployment/architecture.mdx deleted file mode 100644 index 9c7011272..000000000 --- a/versioned_docs/version-5.0/self-hosted/deployment/architecture.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_label: "Architecture" ---- - -# Zealot Architecture - -Running Zealot requires the following set of services. - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - - - -- Mostly Linux based on amd86/arm64/armv7. -- Ruby on Rails powered Web and API services -- Sidekiq provides asynchronous background task management -- PostgreSQL database -- Redis cache diff --git a/versioned_docs/version-5.0/self-hosted/deployment/docker.md b/versioned_docs/version-5.0/self-hosted/deployment/docker.md deleted file mode 100644 index 58b10336b..000000000 --- a/versioned_docs/version-5.0/self-hosted/deployment/docker.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -sidebar_label: "On-premise (Docker)" ---- - -# Deploy Zealot with Docker guide - -> :bell: Strongly recommended to deploy Zealot using [Docker](https://www.docker.io/), -> unless you are familiar with the technology stack for this service. -> The app protection policy settings for iOS/iPadOS devices, it needs a public network over SSL, -> free to use [Let's Encrypt](https://letsencrypt.org/). -> -> If you use a self-signed certificate you must [install the self-signed certificate](https://support.apple.com/en-us/HT204477) -> on each iOS device before installing any app. - -## Why support docker image only? - -Deploying a Rails-based application is incredibly complex, and even though you must install many dependenices, -and you still need to worry how to launch and make it as a daemon to run in the background. - -## Software requirements - -- Git 2.0+ -- Docker 20.10.0+ -- Docker Compose 1.28.0+ - -## Install on Docker - -In the principle of one-click installation, but reality is often harsh, -Zealot configuration is dependent on `ENV` environment variables, -you need to configure it and then execute the one-click deployment generation script. - -First you need to clone the [deployment script](https://github.com/tryzealot/zealot-docker.git), -After entering the `zealot-docker` directory, you need to open the `example.env` file to -configure the necessary parameters and then you can directly execute `./deploy.sh` script. - -> By default, the administrator account: `admin@zealot.com` and password `ze@l0t` (you can change it) -> and some demo applications will be generated. - -```bash -$ git clone https://github.com/tryzealot/zealot-docker.git -$ cd zealot-docker -$ ./deploy -``` - -The one-click deployment generation script has three built-in templates by default: - -- Using Let's Encrypt SSL -- Using Self-signed SSL -- Using non-SSL (needs gateway or reverse proxy to manage SSL) - -For those interested in one-click installation deployment scripts, -you can check out the [Deployment Documentation with Docker](/docs/self-hosted/deployment/docker/step-by-step). - -## SSL - -### Let's Encrypt - -> **Best Choice** - -**Step 1**: Execute the deployment script: - -```bash -$ ./deploy -``` - -**Step 2**: Check and configure the `.env` file, mainly whether `ZEALOT_DOMAIN` and `ZEALOT_CERT_EMAIL` are filled in correctly. -Other parts can be adjusted according to the actual situation of the corresponding configuration - -**Step 3**: Run the Zealot service: - -```bash -$ docker-compose up -d -``` - -### Reverse proxy controls SSL - -Check [Reverse Proxies Guide](/docs/self-hosted/reverse-proxies) page. - -### Self-signed untrust SSL - -> **Not recommended** - -Please do not use this for non-essential cases, for iOS using self-signed certificates -**may require the device to also have an SSL certificate installed before accessing and installing the application**, -and Chrome may also deny access due to the certificate. - -> If the domain name is unregistered, you need to tie the host to access it, -> usually by modifying the system's `/etc/hosts` file. - -```bash title="/etc/hosts" -$ sudo vim /etc/hosts - -# highlight-start -127.0.0.1 zealot.example.com -# highlight-end -``` diff --git a/versioned_docs/version-5.0/self-hosted/deployment/docker/step-by-step.md b/versioned_docs/version-5.0/self-hosted/deployment/docker/step-by-step.md deleted file mode 100644 index c0e5d7b0e..000000000 --- a/versioned_docs/version-5.0/self-hosted/deployment/docker/step-by-step.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -sidebar_label: "Step by step" ---- - -# Docker deployment guide - -This is a handy guide to deploying with Docker, as well as a breakdown of the [on-premise deployment guide](/docs/self-hosted/deployment/docker). - -## Versions - -- Stable version - 5.2.3/latest - `ghcr.io/tryzealot/zealot:latest` -- Nightly version - develop - `ghcr.io/tryzealot/zealot:nightly` - Based on branch `develop` builds per commit. - -## Registry - -- Docker Container Registry: https://hub.docker.com/r/tryzealot/zealot/ -- Github Container Registry: https://github.com/tryzealot/zealot/pkgs/container/zealot (**Recommended**) - -## Step by Step - -### Install Docker - -Follows [official tutorial](https://get.docker.com/) to install docker. - -### Install Docker-Compose - -Follows [official tutorial](https://docs.docker.com/compose/install/) to install docker-compose. - -### Configure .env file - -Download a sample [config.env](https://github.com/tryzealot/zealot-docker/blob/master/config.env) file and customize it on your own. - -### Configure site domain - -The secondary verification will remind again if it is not configured - -### Configure SSL certificate - -Provides three ways to do this, even if the last one generates the https protocol header: - -- Using Let's Encrypt SSL -- Using Self-signed SSL -- Using non-SSL with Zealot service (needs gateway or reverse proxy to manage SSL) - -### Generate docker-compose.yml - -The configuration file will generate at least three services, using the first two certificates will add an additional service. - -- `zealot-zealot`: Use reverse-generation gateway services to deliver core Web and API services -- `zealot-postgres`: Database service -- `zealot-redis`: Cache service - -### Create docker volumes for persistent storage - -Persistent storage Data: - -- `zealot-data`: Uploaded apps, icons and debug files. -- `zealot-postgres`: Core database data -- `zealot-redis`: Hot cache and background jobs data - -### Pull images - -The first time you use it, you will initialize the database, -load the sample application data and set up the administrator account, -which is required for subsequent zealot updates. - -```bash -docker-compose pull -``` - -### Setup database data - -The first time you use it, you will initialize the database, load the sample application data -and set up the administrator account, which is required for subsequent zealot updates. - -```bash -docker-compose run --rm zealot run_upgrade -``` - -### Launch docker-compose - -Manual execution is required to run the service for security periods and user-defined operations: - -```bash -docker-compose up -d -``` - -## Advanced - -### Custom volumes - -You have two t - -There are two ways to customize the path: (Assuming that the custom path is `/data/zealot`) - -#### 1. Create custom docker volume - -```sh -docker volume create --name zealot-data \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/zealot-data - -docker volume create --name zealot-redis \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/redis - -docker volume create --name zealot-postgres \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/postgres -``` - -#### 2. Change volumes part of docker-compose file - -Open `docker-compose.yml` file and find `volumes:`: - -```yaml -volumes: - zealot-data: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/data - zealot-redis: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/redis - - zealot-postgres: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/postgres -``` diff --git a/versioned_docs/version-5.0/self-hosted/deployment/fly.md b/versioned_docs/version-5.0/self-hosted/deployment/fly.md deleted file mode 100644 index eb8714448..000000000 --- a/versioned_docs/version-5.0/self-hosted/deployment/fly.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -sidebar_label: "Fly" ---- - -# Deploy Zealot to Fly guide - -Zealot support use App Configuration (fly.toml) to deploy on [fly.io](https://fly.io). - -## Deploying on Fly - -- Install [flyctl](https://fly.io/docs/flyctl/). -- Copy full content of [app configuration](#app-configuration) save to `fly.toml` then change the `app` value . -- Run `flyctl deploy`. -- Run `fly scale vm shared-cpu-1x --memory 512`. - -### App Configuration - -```toml -app = "[app-name:changeme]" -kill_signal = "SIGINT" -kill_timeout = 120 -processes = [] - -[build] - image = "ghcr.io/tryzealot/zealot:nightly" - -[experimental] - allowed_public_ports = [] - auto_rollback = true - -[[services]] - http_checks = [] - internal_port = 80 - processes = ["app"] - protocol = "tcp" - script_checks = [] - [services.concurrency] - hard_limit = 25 - soft_limit = 20 - type = "connections" - - [[services.ports]] - force_https = true - handlers = ["http"] - port = 80 - - [[services.ports]] - handlers = ["tls", "http"] - port = 443 - - [[services.tcp_checks]] - grace_period = "1s" - interval = "15s" - restart_limit = 0 - timeout = "2s" - -[[statics]] - guest_path = "/app/public" - url_prefix = "/" -``` diff --git a/versioned_docs/version-5.0/self-hosted/deployment/kubernetes.md b/versioned_docs/version-5.0/self-hosted/deployment/kubernetes.md deleted file mode 100644 index db00e95d8..000000000 --- a/versioned_docs/version-5.0/self-hosted/deployment/kubernetes.md +++ /dev/null @@ -1,197 +0,0 @@ ---- -sidebar_label: "Kubernetes" ---- - -# Deploy Zealot with Kubernetes guide - -Zealot support deployments using Kubernetes, but only `.yaml` config files are available currently. - -## Check list - -- `ConfigMap` and `Secret` to configure enviroment variables. -- `PersistentVolumeClaim` to configure `public/uploads`, `public/bakcup`. -- `Deployment` to control `zealot` pod. - -## Steps - -### 10-zealot-namespace.yml - -Zealot namespace. - -```yaml title="10-zealot-namespace.yml" -api Version: v1 -kind: Namespace -metadata: -name: zealot -``` - -### 20-zealot-secrets.yml - -Zealot enviroments secrets. This is loaded all secrets [enviroments](/docs/self-hosted/configuration/environment-variables), **all values need encryt by base64**. - -```yaml title="20-zealot-secrets.yml" -apiVersion: v1 -kind: Secret -metadata: - namespace: zealot - name: zealot-secrets -data: - ZEALOT_ADMIN_EMAIL: V1ZkU2RHRlhOVUZsYlZab1lrYzVNRXh0VG5aaVVUMDk= - ZEALOT_ADMIN_PASSWORD: emVAbDB0 - ZEALOT_POSTGRES_HOST: cG9zdGdyZXM= - ZEALOT_POSTGRES_PORT: NTQzMg== - ZEALOT_POSTGRES_USERNAME: emVhbG90 - ZEALOT_POSTGRES_PASSWORD: emVAbDB0 - ZEALOT_POSTGRES_DB_NAME: emVhbG90 - REDIS_URL: cmVkaXM6Ly9yZWRpczo2Mzc5LzE= - - # echo -n 'secret-key' | sha256sum | awk '{ printf $1 }' | base64 - SECRET_TOKEN: ODVkYmUxNWQ3NWVmOTMwOGM3YWUwZjMzYzdhMzI0Y2M2ZjRiZjUxOWEyZWQyZjMwMjdiZDMzYzE0MGE0ZjlhYQ== -``` - -### 21-zealot-configmap.yml - -Zealot enviroments config map. This is loaded safe [enviroments](/docs/self-hosted/configuration/environment-variables). - -```yaml title="21-zealot-configmap.yml" -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: zealot - name: zealot-config -data: - ZEALOT_DOMAIN: zealot.example.com - DEFAULT_LOCALE: en - ZEALOT_REGISTER_ENABLED: "true" -``` - -### 30-zealot-storage.yml - -The creation of the persistent volume claims for uploaded files (apps/debug files) and backup files. May you want to increase the size. This expects to have a storage class installed. - -```yaml title="30-zealot-storage.yml" -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: zealot-uploads - namespace: zealot - labels: - app: zealot -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: zealot-backup - namespace: zealot - labels: - app: zealot -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi -``` - -### 40-zealot-deployment.yml - -Create zealot deployment, edit `replicas` and `image` tag. - -```yaml title="40-zealot-deployment.yml" -apiVersion: apps/v1 -kind: Deployment -metadata: - name: zealot - namespace: zealot -spec: - restartPolicy: Always - replicas: 1 - selector: - matchLabels: - app: zealot - template: - metadata: - labels: - app: zealot - spec: - containers: - - name: zealot - image: ghcr.io/tryzealot/zealot:nightly - # imagePullPolicy: Always - ports: - - containerPort: 80 - protocol: TCP - name: http - envFrom: - - configMapRef: - name: zealot-env - - secretRef: - name: zealot-secrets - volumeMounts: - - mountPath: /app/public/uploads - name: uploads - - mountPath: /app/public/backup - name: backup - volumes: - - name: uploads - persistentVolumeClaim: - claimName: zealot-uploads - - name: backup - persistentVolumeClaim: - claimName: zealot-backup -``` - -### 50-zealot-service.yml - -Creating zealot service. - -```yaml title="50-zealot-service.yml" -apiVersion: v1 -kind: Service -metadata: - name: zealot - namespace: zealot - labels: - app: zealot -spec: - selector: - app: zealot - ports: - - port: 80 - targetPort: http - name: http - protocol: TCP -``` - -### 60-zealot-ingress.yml - -Setting up the ingress for the zealot service. - -```yaml title="50-zealot-ingress.yml" -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: zealot - namespace: zealot - annotations: - #cert-manager.io/cluster-issuer: letsencrypt-prod - #kubernetes.io/ingress.class: nginx -spec: - rules: - - host: zealot.example.com - http: - paths: - - web: - service: - name: zealot - port: - number: 80 - path: / - pathType: Prefix -``` diff --git a/versioned_docs/version-5.0/self-hosted/deployment/nomad.md b/versioned_docs/version-5.0/self-hosted/deployment/nomad.md deleted file mode 100644 index 7faf13363..000000000 --- a/versioned_docs/version-5.0/self-hosted/deployment/nomad.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -sidebar_label: "Nomad" ---- - -# Deploy Zealot with Nomad guide - -Zealot support deployments using [Nomad](https://www.nomadproject.io/), it use [HCL](https://developer.hashicorp.com/nomad/docs/job-specification/hcl2) language to configure. - -## Setup - -### Using Nomad - -First, follow the official tutorial to install [nomad](https://developer.hashicorp.com/nomad/docs/install), this binary file contains the client and server. It is recommended to follow the [tutorials](https://developer.hashicorp.com/nomad/tutorials/get-started) to walk through it if you don't know it. - -The following file will create the postgres, redis and zealot services. -For the existing external database and cache services, -you can delete the corresponding `port`, `service` and `task` and edit the template variables in the `zealot` task. - -```hcl title="zealot.nomad" -job "zealot" { - type = "service" - datacenters = "dc1" // modify - - update { - max_parallel = 1 - min_healthy_time = "30s" - auto_revert = true - } - - group "zealot" { - network { - port "zealot" { - to = 80 - } - - port "postgres" { - to = 5678 - } - - port "redis" { - to = 6379 - } - } - - service { - name = "zealot" - port = "zealot" - provider = "nomad" - - // Register to traefik - // tags = [ - // "traefik.enable=true", - // "traefik.http.routers.zealot.entrypoints=web, websecure", - // "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)", - // ] - } - - service { - name = "postgres" - port = "postgres" - provider = "nomad" - - // Register to traefik - // tags = [ - // "traefik.enable=true", - // "traefik.tcp.routers.postgres.rule=HostSNI(`*`)", - // "traefik.tcp.routers.postgres.entrypoints=postgres", - // ] - } - - service { - name = "redis" - port = "redis" - provider = "nomad" - - // Register to traefik - // tags = [ - // "traefik.enable=true", - // "traefik.tcp.routers.redis.rule=HostSNI(`*`)", - // "traefik.tcp.routers.redis.entrypoints=redis", - // ] - } - - task "zealot" { - driver = "docker" - - config { - image = "ghcr.io/tryzealot/zealot:latest" - ports = ["zealot"] - - // modify - volumes = [ - "/tmp/zealot/uploads:/app/public/uploads", - "/tmp/zealot/backups:/app/public/backups", - ] - - // Register to homepage dashboard - // labels = { - // "homepage.group" = "Dev" - // "homepage.name" = "Zealot" - // "homepage.icon" = "mdi-progress-download" - // "homepage.href" = "https://zealot.example.com" - // "homepage.description" = "Beta App Distribution" - // } - } - - // Zealot example config - // https://github.com/tryzealot/zealot-docker/blob/master/config.env - template { - destination = "local/config.env" - change_mode = "restart" - env = true - data = <<-EOF - ZEALOT_APPEARANCE = dark - ZEALOT_DOMAIN = zealot.example.com - - ZEALOT_GUEST_MODE = false - ZEALOT_REGISTER_ENABLED = true - EOF - } - - template { - destination = "secrets/secret.env" - change_mode = "restart" - env = true - data = <<-EOF - # admin account - ZEALOT_ADMIN_EMAIL = admin@zealot.com - ZEALOT_ADMIN_PASSWORD = ze@l0t - - # datbase - ZEALOT_POSTGRES_HOST = {{ env "NOMAD_IP_postgres" }} - ZEALOT_POSTGRES_PORT = {{ env "NOMAD_PORT_postgres" }} - ZEALOT_POSTGRES_USERNAME = "zealot" - ZEALOT_POSTGRES_PASSWORD = "zealot" - ZEALOT_POSTGRES_DB_NAME = "zealot" - - # cache - REDIS_URL = redis://{{ env "NOMAD_ARRR_redis" }}/0 - - # secret token - SECRET_TOKEN = $${ sha256(uuidv5("url", "zealot.ews.im")) } - EOF - } - - resources { - cpu = 500 - memory = 500 - memory_max = 1000 - } - } - - task "postgres" { - driver = "docker" - - lifecycle { - hook = "prestart" - sidecar = true - } - - config { - image = "postgres:15-alpine" - ports = ["postgres"] - volumes = [ - "secrets/init-role.sql:/init-role.sql", - "secrets/init-db.sql:/init-db.sql" - ] - } - - env { - POSTGRES_INITDB_ARGS = "--data-checksums" - POSTGRES_USER = "zealot" - POSTGRES_PASSWORD = "zealot" - POSTGRES_DB = "zealot" - } - - resources{ - cpu = 512 - memory = 200 - memory_max = 512 - } - } - - task "redis" { - driver = "docker" - - lifecycle { - hook = "prestart" - sidecar = true - } - - config { - image = "redis:7-alpine" - ports = ["redis"] - } - - resources { - cpu = 200 - memory = 200 - } - } - } -} -``` - -Save the file and execute the command `nomad job run zealot.nomad`. - -### Using Terraform - -> Both Terraform and Nomad are the same company. - -Following the offical tutorials to install [terraform](https://www.terraform.io/), [nomad plugin](https://registry.terraform.io/providers/hashicorp/nomad/), -copy the `zealot.nomad` in previous step and edit a new file named `main.tf`: - - -```hcl -resource "nomad_job" "jobs" { - jobspec = file("${path.module}/zealot.nomad") -} -``` - -Execute `terraform plan` to ensure, then deploy `terraform apply`. - -## External Storages - -Nomad supports multi-cluster management, and in many cases the storage deployed by the service cannot be mounted directly to the corresponding file system, but is more often placed on top of a shared file storage protocol, such as SMB, NFS, S3, etc. - -### CSI - -Nomad currently supports the [CSI](https://developer.hashicorp.com/nomad/tutorials/stateful-workloads/stateful-workloads-csi-volumes) in [a limited capability](https://github.com/democratic-csi/democratic-csi/blob/master/docs/nomad.md) (Nomad 1.5). -Nomad can utilize CSI volumes, but it can not automatically create, destroy, or manage them in any capacity. Volumes have to be created externally and then registered with Nomad. -You can find a list of plugins in the [Kubernetes CSI Developer Documentation](https://kubernetes-csi.github.io/docs/drivers.html). - -Plugin | Schemes | Compatible | terraform nomad resource ----|---|---|--- -[kubernetes-csi-driver-smb](https://github.com/kubernetes-csi/csi-driver-smb) | smb | Unknown | Unknown -[kubernetes-csi-driver-nfs](https://github.com/kubernetes-csi/csi-driver-nfs) | nfs | Supported | [nomad_csi_volume_registration](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume_registration) -[kubernetes-csi-driver-iscsi](https://github.com/kubernetes-csi/csi-driver-iscsi) | iscsi | Supported | Supported -[democraticcsi/democratic-csi](https://github.com/democratic-csi/democratic-csi) | smb/nfs/iscsi | Supported | [nomad_csi_volume](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume) -[rocketduck/csi-plugin-nfs](https://gitlab.com/rocketduck/csi-plugin-nfs) | nfs | Supported | [nomad_csi_volume](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume) diff --git a/versioned_docs/version-5.0/self-hosted/deployment/railway.md b/versioned_docs/version-5.0/self-hosted/deployment/railway.md deleted file mode 100644 index 74bbfae80..000000000 --- a/versioned_docs/version-5.0/self-hosted/deployment/railway.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -sidebar_label: "Railway" ---- - -# Deploy Zealot to Railway guide - -Zealot support use `Dockfile` to deploy on [Railway](https://railway.app/). - -## Deploying on Railway - -- Fork [Zealot](https://github.com/tryzealot/zealot/fork) project to your Github account. -- Create [New Project](https://railway.app/new) with "deploy from Github repo". -- Add [Enviroment](/docs/self-hosted/configuration/environment-variables) to Variables page. diff --git a/versioned_docs/version-5.0/self-hosted/deployment/render.md b/versioned_docs/version-5.0/self-hosted/deployment/render.md deleted file mode 100644 index 9dae672be..000000000 --- a/versioned_docs/version-5.0/self-hosted/deployment/render.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_label: "Render" ---- - -# Deploy Zealot to Render guide - -Zealot support a render [blueprint](https://render.com/docs/blueprint-spec) named `render.yaml` to deploy on [render.com](https://render.com/). - -## Deploying on Render - -* It uses the [Zealot Docker image](https://ghcr.io/tryzealot/zealot). -* It uses [Render Disks](https://render.com/docs/disks) for permanent SSD storage for uploaded files and content. -* It uses [PostgreSQL](https://render.com/docs/databases) as the backing database and [Redis](https://render.com/docs/redis) as cache service. - -### Install button - -[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/tryzealot/zealot) diff --git a/versioned_docs/version-5.0/self-hosted/deployment/requirements.md b/versioned_docs/version-5.0/self-hosted/deployment/requirements.md deleted file mode 100644 index 0abbdaacb..000000000 --- a/versioned_docs/version-5.0/self-hosted/deployment/requirements.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -sidebar_label: "Requirements" ---- - -# Zealot Self Hosted Requirements - -This page incldues useful information on the requirements that are needed to install and run Zealot on your servers. - -## Operating Systems - -Installation of Zealot is possible on most Linux environments, but not officially supported. - -## Hardware requirements - -### Architecture - -Zealot can now run on either x86_64(amd86) or arm64(armv8/arrch) or armv7 based mostly Linux OS, for example: Debian, Ubuntu, CentOS, Arch Linux, Armbian etc. - -### CPU - -CPU requirements are dependent on the usage and expected workload. Your workload is influenced by factors such as - but not limited to - how many apps and debug files are uploaded and parsed, how many apps are downloaded, how many web hooks are triggered, how often Apple developers sync test devices, and how much and how often backup schedule jobs are made. - -The following is the recommended minimum CPU hardware guidance for a handful of example Zealot conversation base sizes. - -- **1 cores** is the **required** minimum number of cores. - -### Memory - -Memory requirements are dependent on the usage and expected workload. Your workload is influenced by factors such as - but not limited to - how many apps and debug files are uploaded and parsed, how many apps are downloaded, how many web hooks are triggered, how often Apple developers sync test devices, and how much and how often backup schedule jobs are made. - -The following is the recommended minimum Memory hardware guidance for a handful of example Zealot conversation base sizes. - -- **512MB RAM** is the **required** minimum memory size. - -### Storage - -The necessary hard drive space largely depends on the size and number of apps and debug files uploaded, also include backup files. - -## Software requirements - -### Ruby versions - -- Ruby 3.0 and later is required. - -You must use the standard MRI implementation of Ruby. Zealot needs several Gems that have native extensions. - -### Node.js versions - -Zealot uses [esbuild](https://esbuild.github.io/) and [sass](https://sass-lang.com/) to compile frontend assets. - -We recommend Node 14.x or higher version, as it's faster. - -You can check which version you're running with `node -v`. If you're running a version older than `v8.0`, -you need to update it to a newer version. You can find instructions to install from community maintained packages or compile from source at the [Node.js website](https://nodejs.org/en/download/). - -## Database - -PostgreSQL is the only supported database. We don't have plans to support any other alternatives as of now. - -### PostgreSQL Requirements - -The server running PostgreSQL should have _at least_ 5-10 GB of storage -available, though the exact requirements depends on the usage on your Zealot Instance. - -We highly recommend using the latest stable PostgreSQL versions as these were used for development and testing. - -### Redis - -Redis stores the background task queue and various Zealot configurations cached. -The storage requirements for Redis are minimal, You can start with 50MB and scale up as required. - -Redis version 6.2 or higher version is recommended - -## Sidekiq - -Sidekiq processes the background jobs with a multi-threaded process. -This process starts with the entire Rails stack but it can grow over time due to memory leaks. -On a very active server the Sidekiq process can use 1GB+ of memory. - -## Supported web browsers - -:::tip - -We don't support running Zealot with JavaScript disabled in the browser. - -::: - -Zealot supports the following web browsers: - -- [x] [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/) -- [x] [Google Chrome](https://www.google.com/chrome/) -- [x] [Chromium](https://www.chromium.org/getting-involved/dev-channel) -- [x] [Apple Safari](https://www.apple.com/safari/) -- [x] [Microsoft Edge](https://www.microsoft.com/en-us/edge) diff --git a/versioned_docs/version-5.0/self-hosted/deployment/source-code.md b/versioned_docs/version-5.0/self-hosted/deployment/source-code.md deleted file mode 100644 index 2299a3be8..000000000 --- a/versioned_docs/version-5.0/self-hosted/deployment/source-code.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar_label: "Source code" ---- - -# Source code - -It had been rewrite to [Contributing Guide](/docs/contributing-guide). diff --git a/versioned_docs/version-5.0/self-hosted/index.md b/versioned_docs/version-5.0/self-hosted/index.md deleted file mode 100644 index 0d2011b45..000000000 --- a/versioned_docs/version-5.0/self-hosted/index.md +++ /dev/null @@ -1,14 +0,0 @@ -# Self-hosted Installation Guide - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -This guide will help you to install and setup a production ready Zealot. - - diff --git a/versioned_docs/version-5.0/self-hosted/reverse-proxies.mdx b/versioned_docs/version-5.0/self-hosted/reverse-proxies.mdx deleted file mode 100644 index 3c27641a9..000000000 --- a/versioned_docs/version-5.0/self-hosted/reverse-proxies.mdx +++ /dev/null @@ -1,278 +0,0 @@ -# Reverse Proxies - -To facilitate the unified management and distribution of SSL certificates, service expansion and access to off-the-shelf gateway services, -we provides several configurations for configuring reverse proxy services to the gateway. - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -## Prepare - -The following data needs to be prepared to configure the reverse proxy: - -Name | Sample value | Description ----|---|--- -Domain | zealot.example.com | -Reverse proxy service IP address | 172.16.56.1 | -Zealot IP address | 172.16.56.100 | Reverse Proxy can be accessed
Change to 127.0.0.1 Reverse Proxy and zealot with one host. -Zealot public port | 8901 | Reverse Proxy can be accessed -Zealot internal port | 80 | No need modify -Let's Encrypt Email address | your-email@example.com - -## Traefik - -[Traefik](https://doc.traefik.io/traefik/) is an open source reverse proxy and load balancing tool, -which provides a variety of Providers can achieve access to the reverse proxy and configure the SSL. - -### Configuration - -Regardless of the type of Provider used the core configuration items are the same and constitute the reverse proxy service configuration consists of three main components: discovery port number, -routing rules (including access port number, domain name binding and SSL) - -### Traefik service - -```mdx-code-block - - -``` - -```yaml -entryPoints: - web: - address: ":80" - - websecure: - address: ":443" - -certificatesResolvers: - letsencrypt: - acme: - email: your-email@example.com - storage: acme.json - httpChallenge: - entryPoint: web -``` - -```mdx-code-block - - -``` - -```toml -[entryPoints] - [entryPoints.web] - address = ":80" - - [entryPoints.websecure] - address = ":443" - -[certificatesResolvers.letsencrypt.acme] - email = "your-email@example.com" - storage = "acme.json" - [certificatesResolvers.letsencrypt.acme.httpChallenge] - # used during the challenge - entryPoint = "web" -``` - -```mdx-code-block - - -``` - -```bash ---entrypoints.web.address=:80 ---entrypoints.websecure.address=:443 - ---certificatesresolvers.letsencrypt.acme.email=your-email@example.com ---certificatesresolvers.letsencrypt.acme.storage=acme.json ---certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web -``` - -```mdx-code-block - - -``` - -### Docker - -Enable [Docker provider](https://doc.traefik.io/traefik/providers/docker/#configuration-examples) then edit the Docker Compose file: - -```yaml title="docker-compose.yml" -version: '3' -services: - zealot: - <<: *defaults - labels: - - "traefik.enable=true" - - "traefik.http.services.zealot.loadbalancer.server.port=80" - - "traefik.http.routers.zealot.service=zealot" - - "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)" - - "traefik.http.routers.zealot.tls=true" - - "traefik.http.routers.zealot.tls.certresolver=letsencrypt" - - "traefik.http.routers.zealot.tls.domains[0].main=icyleaf.dev" - - "traefik.http.routers.zealot.tls.domains[0].sans=zealot.example.com" - # Comment port, no need to public - # ports: - # - "8901:80" - network: - # Change the network what traefik service is - - traefik-services - -networks: - # Change the network what traefik service is - traefik-services: - external: true -``` - -Deployment with Docker is limited to Traefik and Zealot service are usually in the same OS system of the same machine, -cross-machine can not achieve communication, for cross-machine need to refer to the following two configuration options. - -### Consul - -Enable [Consul provider](https://doc.traefik.io/traefik/providers/consul/) or [Consul Catalog provider](https://doc.traefik.io/traefik/providers/consul-catalog/), add key-value below: - -```shell -consul kv put traefik/http/services/zealot/loadbalancer/server/port 5 -consul kv put traefik/http/routers/zealot/service zealot -consul kv put traefik/http/routers/zealot/rule 'Host(`zealot.example.com`)' -consul kv put traefik/http/routers/zealot/tls/certresolver letsencrypt -consul kv put traefik/http/routers/zealot/tls/domains/0/main icyleaf.dev -consul kv put traefik/http/routers/zealot/tls/domains/0/sans zealot.example.com -``` - -### Nomad - -Enable [Nomad provider](https://doc.traefik.io/traefik/providers/nomad/) and make sure Nomad version >= 1.3: - -```hcl title="zealot.nomad" -job "zealot" { - datacenters = ["dc1"] - type = "service" - - group "zealot" { - count = 1 - - network { - port "http"{ - static = 80 - } - } - - service { - name = "zealot-http" - provider = "nomad" - port = "http" - } - - task "server" { - driver = "docker" - config { - image = "ghcr.io/tryzealot/zealot:nightly" - ports = ["http"] - args = [ - - "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)", - - "traefik.http.routers.zealot.tls=true", - - "traefik.http.routers.zealot.tls.certresolver=letsencrypt", - - "traefik.http.routers.zealot.tls.domains[0].main=icyleaf.dev", - - "traefik.http.routers.zealot.tls.domains[0].sans=zealot.example.com" - ] - } - } - } -} -``` - -## Caddy 2 - -The configuration only needs to relate the ip part after `tls` and `proxy`: - -```nginx title="Caddyfile" -:443 - -log - -# Use Let's Encrypt service -tls your-email@example.com - -reverse_proxy 172.16.56.100:8901 -``` - -## Nginx - -The following is the general configuration, if not effects welcome to [file a issue](https://github.com/tryzealot/docs/issues/new): - -```nginx title="conf.d/zealot.conf" -upstream zealot { - zone upstreams 64K; - server 172.16.56.100:8901; - keepalive 32; -} - -map $http_upgrade $connection_upgrade { - default upgrade; - '' close; -} - -server { - listen 80; - listen [::]:80; - server_name zealot.example.com; - location /.well-known/acme-challenge/ { allow all; } - location / { return 301 https://$host$request_uri; } -} - -server { - listen 443 ssl http2; # Optional: http2 may needs install extension - listen [::]:443 ssl http2; - server_name zealot.example.com; - - ssl_certificate /etc/certs/zealot-cert.pem; - ssl_certificate_key /etc/certs/zealot.pem; - - # Optional - # ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA; - # ssl_session_timeout 5m; - # ssl_session_cache shared:SSL:1m; - # ssl_prefer_server_ciphers on; - - location / { - proxy_pass http://zealot; - proxy_redirect off; - - proxy_pass_header Authorization; - proxy_set_header Host $host; - # proxy_set_header X-Forwarded-Ssl on; # Optional - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - - client_max_body_size 0; - proxy_read_timeout 36000s; - } -} -``` - -And you need update max body size in `http` block. Recommended is 200MB, if it's a game, -50% more can be played to make a surplus according to the actual file size. - -```nginx title="nginx.conf" -http { - [...] - - client_max_body_size 200M; -} -``` diff --git a/versioned_docs/version-5.0/self-hosted/sidebars.js b/versioned_docs/version-5.0/self-hosted/sidebars.js deleted file mode 100644 index e0aa8f7e7..000000000 --- a/versioned_docs/version-5.0/self-hosted/sidebars.js +++ /dev/null @@ -1,71 +0,0 @@ -module.exports = [ - { - label: "Getting Started", - type: "doc", - id: 'self-hosted/index', - }, - { - collapsible: false, - label: "Deployment", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "self-hosted/deployment/architecture", - "self-hosted/deployment/requirements", - { - collapsible: true, - label: "Docker", - type: "category", - link: { - type: "doc", - id: "self-hosted/deployment/docker", - }, - items: [ - "self-hosted/deployment/docker/step-by-step", - ], - }, - "self-hosted/deployment/kubernetes", - "self-hosted/deployment/nomad", - "self-hosted/deployment/source-code" - ], - }, - { - type: 'doc', - label: "Reverse Proxies", - id: 'self-hosted/reverse-proxies', - }, - { - collapsible: false, - label: "Cloud Provider Guides", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "self-hosted/deployment/fly", - "self-hosted/deployment/railway", - "self-hosted/deployment/render" - ] - }, - { - collapsible: false, - label: "Configuration", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "self-hosted/configuration/environment-variables", - "self-hosted/configuration/third-party-authentication", - "self-hosted/configuration/schedule-jobs", - ], - }, - { - type: 'doc', - label: "Storage", - id: 'self-hosted/storage', - }, - -]; diff --git a/versioned_docs/version-5.0/self-hosted/storage.md b/versioned_docs/version-5.0/self-hosted/storage.md deleted file mode 100644 index e62e27d16..000000000 --- a/versioned_docs/version-5.0/self-hosted/storage.md +++ /dev/null @@ -1,27 +0,0 @@ -# Data storages - -Here is a list of all the data storages required by the Zealot service, -for those who are able to manually backup and restore data before better backup management tools are available. - -## Postgres - -This is used to store and manage all data related to Zealot, so it goes without saying. - -## Redis - -Currently only the sidekiq asynchronous task service is using it to store some task status and statistics. - -## File storage - -The Zealot service relies on postgresql, redis and some other disk storage for uploaded application and debug files. -It is currently stored in the filesystem in the `public/uploads` directory. - -- apps The directory for uploading applications -- debugs_files directory for uploading debug files - -## Backup storage - -The Zealot service currently supports command-generated backup data, which will contain -the database and binary packages of the uploaded apps and debug files. - -The backup data is currently stored in the file system in the `public/backup` directory. diff --git a/versioned_docs/version-5.0/user-guide/administrator/apple-team.mdx b/versioned_docs/version-5.0/user-guide/administrator/apple-team.mdx deleted file mode 100644 index 8313d8900..000000000 --- a/versioned_docs/version-5.0/user-guide/administrator/apple-team.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -sidebar_label: "Apple Team" ---- - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -# Apple Team (Developer) - -One of the biggest challenges in distributing Ad-Hoc signed applications for iOS is the need to -convey what a UDID is and how to obtain it to a large number of people who may not understand -these concepts. After obtaining the UDID, it then needs to be provided to the developer, -who must then re-sign the certificate, package it, and upload it for installation. - -Zealot can automatically obtain the UDID of Ad-Hoc applications. -Although the UDIDs are usually accompanied by device names during registration, -sometimes it is difficult to understand which device belongs to whom when presented with a -list of UDIDs. To solve this problem, Zealot has tried several solutions. In the early days, -the fastlane plugin zealotsyncdevice was used to synchronize the names and models of testing devices. -With the release of the AppStoreConnect API, Zealot can now completely automate the process, -greatly simplifying the registration process and allowing testing applications to display -recognizable and friendly device names. - - - -Although providing the UDID of a device confirms which applications can be installed, -providing a feature to register a testing device that has not been registered with any application -would greatly improve the efficiency of the team. This is the role of the Apple Developer feature. - - - -The initial feature introduction: https://github.com/tryzealot/zealot/issues/723. diff --git a/versioned_docs/version-5.0/user-guide/administrator/backup.mdx b/versioned_docs/version-5.0/user-guide/administrator/backup.mdx deleted file mode 100644 index 494b0e9f6..000000000 --- a/versioned_docs/version-5.0/user-guide/administrator/backup.mdx +++ /dev/null @@ -1,38 +0,0 @@ ---- -sidebar_label: "Backup" ---- - -# Backup Schedule - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Backup list - - - -## Backup detail - - - -## Create a backup - - diff --git a/versioned_docs/version-5.0/user-guide/administrator/monitoring/background-jobs.mdx b/versioned_docs/version-5.0/user-guide/administrator/monitoring/background-jobs.mdx deleted file mode 100644 index 418dc9c19..000000000 --- a/versioned_docs/version-5.0/user-guide/administrator/monitoring/background-jobs.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Background Jobs - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.0/user-guide/administrator/monitoring/database-analytics.mdx b/versioned_docs/version-5.0/user-guide/administrator/monitoring/database-analytics.mdx deleted file mode 100644 index a18a394cf..000000000 --- a/versioned_docs/version-5.0/user-guide/administrator/monitoring/database-analytics.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Database Analytics - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.0/user-guide/administrator/monitoring/logging.mdx b/versioned_docs/version-5.0/user-guide/administrator/monitoring/logging.mdx deleted file mode 100644 index 546d52ba0..000000000 --- a/versioned_docs/version-5.0/user-guide/administrator/monitoring/logging.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Logging - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.0/user-guide/administrator/monitoring/system-info.mdx b/versioned_docs/version-5.0/user-guide/administrator/monitoring/system-info.mdx deleted file mode 100644 index 31fe466a5..000000000 --- a/versioned_docs/version-5.0/user-guide/administrator/monitoring/system-info.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# System informations - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.0/user-guide/administrator/permissions.md b/versioned_docs/version-5.0/user-guide/administrator/permissions.md deleted file mode 100644 index 6212251f2..000000000 --- a/versioned_docs/version-5.0/user-guide/administrator/permissions.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -sidebar_label: "Permissions" ---- - -# User Permissions and roles - -Zealot offers four types of user permissions. - -- Guest -- User -- Developer -- Administrator - -## Comparison - -Action | Guest[On/Off] | User | Developer | Administrator ----|---|---|---|--- -`Dashboard`
View all data | ✓/✕ | ✓ | ✓ | ✓ -`App`
View app list | ✓/✕ | ✓ | ✓ | ✓ -`App`
View app scheme(s) and channel(s) detail | ✓/✕ | ✓ | ✓ | ✓ -`App`
View the build(release) of app | ✓/✓
Password Auth | ✓ | ✓ | ✓ -`App`
View webhook list | ✓/✕ | ✓ | ✓ | ✓ -`App`
Upload/Install/Download app | ✓ | ✓ | ✓ | ✓ -`App`
Create/Edit/Delete an app | | | ✓ | ✓ -`App`
Create/Edit/Delete a scheme/channel of app | | | ✓ | ✓ -`App`
Delete a given version of app | | | ✓ | ✓ -`App`
Test a webhook network connection | | | ✓ | ✓ -`App`
Enable/Disable webhook | | | ✓ | ✓ -`App`
Delete an app | | | ✓ | ✓ -`DebugFile`
View debug file list | ✓/✕ | ✓ | ✓ | ✓ -`DebugFile`
View debug file detail | ✓ | ✓ | ✓ | ✓ -`DebugFile`
Download debug file | ✓ | ✓ | ✓ | ✓ -`DebugFile`
Upload/Delete a debug file | | | ✓ | ✓ -`Teardown`
View teardown list | ✓/✕ | ✓ | ✓ | ✓ -`Teardown`
View teardown detail | ✓/✕ | ✓ | ✓ | ✓ -`Teardown`
Delete a teardown | | | ✓ | ✓ -`Admin`
View and manage users | | | | ✓ -`Admin`
View and manage webhooks | | | | ✓ -`Admin`
View and manage settings | | | | ✓ -`Admin`
View system informations | | | | ✓ -`Admin`
View and manage background jobs| | | | ✓ -`Admin`
View page analytices | | | | ✓ diff --git a/versioned_docs/version-5.0/user-guide/administrator/project-settings.md b/versioned_docs/version-5.0/user-guide/administrator/project-settings.md deleted file mode 100644 index 73d8b2092..000000000 --- a/versioned_docs/version-5.0/user-guide/administrator/project-settings.md +++ /dev/null @@ -1,3 +0,0 @@ -# Project Settings - -![screenshot](/img/screenshot/product-7.png) diff --git a/versioned_docs/version-5.0/user-guide/administrator/settings.mdx b/versioned_docs/version-5.0/user-guide/administrator/settings.mdx deleted file mode 100644 index 295e1e1e8..000000000 --- a/versioned_docs/version-5.0/user-guide/administrator/settings.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Settings - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.0/user-guide/apps/create.mdx b/versioned_docs/version-5.0/user-guide/apps/create.mdx deleted file mode 100644 index c3f4a3145..000000000 --- a/versioned_docs/version-5.0/user-guide/apps/create.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Create an App - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.0/user-guide/apps/detail.mdx b/versioned_docs/version-5.0/user-guide/apps/detail.mdx deleted file mode 100644 index 5beb87eb5..000000000 --- a/versioned_docs/version-5.0/user-guide/apps/detail.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Uploaded releases - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.0/user-guide/apps/index.mdx b/versioned_docs/version-5.0/user-guide/apps/index.mdx deleted file mode 100644 index 7684fd980..000000000 --- a/versioned_docs/version-5.0/user-guide/apps/index.mdx +++ /dev/null @@ -1,54 +0,0 @@ -# Manage apps - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Apps list - - - -## Edit app - - - -## Create a new scheme - - - -## Create a new channel - - - -## Edit channel - - diff --git a/versioned_docs/version-5.0/user-guide/apps/upload.mdx b/versioned_docs/version-5.0/user-guide/apps/upload.mdx deleted file mode 100644 index cf2828c8a..000000000 --- a/versioned_docs/version-5.0/user-guide/apps/upload.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Uploaded a release - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.0/user-guide/best_practices.md b/versioned_docs/version-5.0/user-guide/best_practices.md deleted file mode 100644 index b508db09f..000000000 --- a/versioned_docs/version-5.0/user-guide/best_practices.md +++ /dev/null @@ -1,73 +0,0 @@ -# Best Practices - -## Workflow - -### iOS and Android Apps - -#### Zealot SDKs - -Integration with the Zealot SDK allows non-client development to automatically trigger new version checks, view change logs, and install functionality. - -#### Install fastlane - -In addition to the fastlane-plugin-zealot plugin, which is required to upload applications and debug files, -it is highly recommended to install the following plug-ins in addition to fastlane. - -- [ci_changelog](https://github.com/icyleaf/fastlane-plugin-ci_changelog) | Support for multiple CI systems to automatically generate change history -- [update_jenkins_build](https://github.com/icyleaf/fastlane-plugin-update_jenkins_build) | Automatically Update Jenkins Build Description -- [humanable_build_number](https://github.com/icyleaf/fastlane-plugin-humanable_build_number) | Generate a build version number that is recognizable to development -- [app_info](https://github.com/icyleaf/fastlane-plugin-app_info) | View metadata about the application after successful packaging -- [ram_disk](https://github.com/icyleaf/fastlane-plugin-ram_disk) | Create in-memory virtual disks, mainly used to improve App build speed (consider if memory is large) -- [debug_file](https://github.com/icyleaf/fastlane-plugin-debug_file) | Automated search for iOS/macOS dSYM or Android Proguard (obfuscation) and packaging of Zip files - -```ruby -# Build and upload ipa to zealot service -lane :upload_app do - # Building the package file, using gym in iOS, gradle in Android - gym - - # Uploading to Zealot - zealot( - endpoint: '...', - token: '...', - channel_key: '...' - ) - - # Uploading dSYM file to Zealot - zealot_debug_file( - scheme: 'AppName' - ) -end - -# Build android package file and generate progguard then upload to zealot service -lane :upload_debug_file do - # Building the package file, using gym in iOS, gradle in Android - gradle - - # Automated search for iOS/macOS dSYM or Android Proguard (obfuscation) and packaging of Zip files - debug_file - - # Uploading to Zealot - zealot( - endpoint: '...', - token: '...', - channel_key: '...' - ) - - # Uploading Proguard file to Zealot - zealot_debug_file( - build_type: 'release', - flavor: 'googleplay' - ) -end -``` - -### CI/CD Service - -For example, Jenkins, configure the project, set up the git hook to trigger packaging, nothing to say - -### Zealot Service - -In addition to managing each uploaded application and debug file, each time an uploaded application is received, -a configured web hook is triggered to send a notification to the third-party service that a new version has been received, -and for mobile clients that integrate with the Zealot SDK, they will receive a new version installation alert each time they open the app for the first time. diff --git a/versioned_docs/version-5.0/user-guide/changelog.md b/versioned_docs/version-5.0/user-guide/changelog.md deleted file mode 100644 index 2d1960a76..000000000 --- a/versioned_docs/version-5.0/user-guide/changelog.md +++ /dev/null @@ -1,531 +0,0 @@ -# Changelog - -## 5.0.0 (2023-09-06) - -Any archived package of application supportted (e.g. `Windows` or `Linux`)). Full [commit changes][5.0.0] - -#### Added - -- `Web`/`API` supports hosting of general applications (those that can be parsed automatically and those that cannot be parsed are skipped), and Windows and Linux platforms are added by default [#1121](https://github.com/tryzealot/zealot/pull/1121) -- `Web`/`API` adds support for hosting Windows applications (uploading and displaying metadata parsing) [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` has a new debugging file page and adds support for parsing and hosting multiple dSYM debugging files [#1127](https://github.com/tryzealot/zealot/pull/1127) [#1124](https://github.com/tryzealot/zealot/pull/1124) [#961](https://github.com/tryzealot/zealot/issues/961) -- `Web` supports unpacking v1, v2, and v3 signature information for Android applications [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` strengthens X509 certificate information for unpacking Android and iOS applications [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` adds a "Reparse" function to update the metadata of old structure debugging files -- `Web` supports markdown format for change logs of uploaded application versions -- `Web` settings page can configure the global "minimum number of items returned per page" and "maximum number of items" -- `Web` for iOS applications, the application version details page displays the expiration time information of the signing certificate and the logical restriction of installation failure due to expired signing certificate (can be downloaded) -- `Web` adds or updates JSON format verification to network hooks and settings pages. -- `Web` supports registering test devices to Apple developers with custom device names and editing/updating device names after creation. -- `Web` supports downloading private key certificates for Apple developers. - -#### Fixed - -- `Web` fixes the issue of being unable to delete unpacked applications -- `Web` optimizes the style of some pages -- `Web` corrects errors in the English language package (en language i18n) -- `Web` fixes the error page that appears when creating an empty application type -- `Web` fixes the 404 error page that appears when a file is not found. -- `API` fixes the logic optimization of comparing build_version for retrieving the latest version of an application. -- `Web` optimizes the error handling for custom field format during application upload. -- `Web` optimizes the correct redirection for URL injection, empty application history versions, and unregistered devices. -- `Web` optimizes the display of error information for backup tasks. -- `Web` adds type detection for application types and debug files during application upload. -- `Web` fixes the error message of not preselecting the creation of a Distribution Certificate for Apple developers. -## 4.7.1 (2023-03-10) - -Support for parsing aab applications generated by the latest Android aapt2 build tool, full [commit changes][4.7.1] - -#### Fixed - -- `Web` upgrades to the latest appt2 model to avoid exceptions when parsing aab files. -- `Web` implements duplicate processing for parsing exceptions. - -#### Added - -- `Web` adds application types to the details page of unpacked Android applications. -- `Web` adjusts the original page after editing an application channel. - -## 4.7.0 (2023-03-03) - -**Major Change** The minimum version of Redis dependencies has been updated from 5.x to 6.2+. Full [commit changes][4.7.0] - -#### Changed - -- `Docker` **Major Change** The minimum version of Redis dependencies has been updated from 5.x to 6.2+. It is recommended to use version 7.x. When upgrading, please manually modify the settings. - -#### Added - -- `Web` adds a control switch for "New Upload Version Prompt Window" to application types. [#1058](https://github.com/tryzealot/zealot/pull/1058) Thanks to [softwind0214](https://github.com/softwind0214) -- `Web` allows clicking on the application icon on the application list page to jump to the application details page. -- `Web` adds the display of the version number of dependent services to the environment information. -- `Web` adds support for displaying nightly build versions in the version number. - -#### Fixed - -- `Web` downgrades Ruby version to 3.0 temporarily to solve the iOS application parsing crash caused by the high version. See [#1070](https://github.com/tryzealot/zealot/issues/1070) for details. -- `Web` fixes the display order of applications/types/channels, which is now fixed as ascending order of creation time. -- `Web` fixes the issue where there is no confirmation prompt when a user logs out. -- `Web` fixes the issue where the main historical version of an application cannot be deleted. -- `Web` improves the style of multiple pages. -- `Web` no longer displays Javascript debugger logs in production environments. - -## 4.6.0 (2023-01-17) - -The runtime environment has been upgraded to Ruby 3.2 and now supports arm64 platforms. Full [commit changes][4.6.0] - -#### Fixed - -- `Web` captures the issue of creating an application channel with an empty name. [#968](https://github.com/tryzealot/zealot/issues/968) Thanks to [congpeijun](https://github.com/congpeijun) -- `Web` improves the logic for backup files that do not exist on disk. [#995](https://github.com/tryzealot/zealot/issues/995) - -#### Added - -- `Docker` supports arm64/v8 and armv7 arch. [#970](https://github.com/tryzealot/zealot/pull/970) -- `Web` Adopted a new 50x error page. - -#### Changed - -- `Web` upgrades the Ruby version to 3.2 in development environments, and devcontainers and containers now have the YJIT feature enabled by default. [#1011](https://github.com/tryzealot/zealot/pull/1011) -- `API` updates the data structure of the debug file return and changes the status code from 204 to 200. - -## 4.5.3 (2022-11-22) - -Full [commit changes][4.5.3] - -#### Fixed - -- `Web` Fixes the issue where third-party login cannot be redirected. [#949](https://github.com/tryzealot/zealot/issues/949) Thanks to [softwind0214](https://github.com/softwind0214) - -#### Added - -- `Docker` Adds a new environment variable to disable the request protection of WebSocket (ActionCable) requests (experimental). [#950](https://github.com/tryzealot/zealot/pull/950) - -## 4.5.2 (2022-11-01) - -Full [commit changes][4.5.2] - -#### Fixed - -- `Web` fixes the issue where registering a test device is abnormal. [#935](https://github.com/tryzealot/zealot/issues/935) Thanks to [ycy0430](https://github.com/ycy0430) -- `Web` adapts the QR code to support dark mode. -- `Web` corrects the English language pack. - -#### Added - -- `WebHook` Income webhook body structure adds the `username` and `email` fields. [#934](https://github.com/tryzealot/zealot/issues/934) Thanks to [rkonfj](https://github.com/rkonfj) -- `Docker` The `SIDEKIQ_CONCURRENCY` environment variable is now supported to set the concurrency of background tasks, with a default value of 5. - -#### Changed - -- `Docker` reduces security risks by changing the Web service, which includes puma and pumacontrolserver, to listen on `127.0.0.1`. -- `Web` optimizes the wording of the iOS device UDID profile. -- `Web` updates the text at the bottom of the page. Thanks to Rails and the AdminLTE open source project! - -## 4.5.1 (2022-09-14) - -Full [commit changes][4.5.1] - -#### Fixed - -- `Web` Fixes the issue where the application unpacking results in parsing errors. - -## 4.5.0 (2022-08-19) - -Supports the 🌑 dark mode and managing the test devices of an 👨🏻‍🔧 Apple developer account! Full [commit changes][4.5.0] - -#### Added - -- `Web` supports dark mode. [#816](https://github.com/tryzealot/zealot/pull/816) -- `Web` adds Apple developer management for registering test devices. [#817](https://github.com/tryzealot/zealot/pull/817) -- `Web` adds data backup management. [#835](https://github.com/tryzealot/zealot/pull/835) -- `Web` completes the monitoring of dependent services in the management panel. [#586](https://github.com/tryzealot/zealot/issues/586) -- `API` adds three fields, `platform`, `device_type`, and `custom_fields`, to the release dictionary. - -#### Changed - -- `Web` **Incompatible change** Google Analytics forces an upgrade to version 4, and previous settings need to be reconfigured to take effect. [#815](https://github.com/tryzealot/zealot/pull/815) -- `CLI` **Incompatible change** The data backup and restore functionality is no longer available due to changes in the structure. Please use the data backup function in the admin panel instead. -- `Web` adjusts the display of device UDID acquisition, iOS version installation and download based on the device, no longer displaying all functions. -- `Web` removes the page statistics function in the admin panel. [#814](https://github.com/tryzealot/zealot/pull/814) -- `Web` migrates the front-end technology stack from webpacker to esbuild + sass, and from Turbolinks to Stimulus, bringing a better front-end interaction experience. [#829](https://github.com/tryzealot/zealot/pull/829) -- `Web` due to the complexity of editing application types and channels, only the application name can be modified. - -#### Fixed - -- `Web` fixes the error of selecting a channel that does not exist under an application type. [#795](https://github.com/tryzealot/zealot/issues/795) Thanks to [tasselsd](https://github.com/tasselsd) -- `API` fixes the Android address return error. [#813](https://github.com/tryzealot/zealot/issues/813) Thanks to [denymz](https://github.com/denymz) -- `Web`/`API` fixes the exception caused by some parameters being empty in aab parsing. [tryzealot/fastlane-plugin-zealot#9](https://github.com/tryzealot/fastlane-plugin-zealot/issues/9) Thanks to [tasselsd](https://github.com/tasselsd) -- `Web` fixes the issue of abnormal generation of demo data during the first initialization of the project. [#821](https://github.com/tryzealot/zealot/issues/821) -- `API` fixes the issue of abnormal data when checking the latest version of the application. [#856](https://github.com/tryzealot/zealot/issues/856) Thanks to [denymz](https://github.com/denymz) -- `Web` fixes the issue of an error being thrown due to abnormal data in the associated network hook when viewing the details of an application channel. -- `Web` corrects many spelling errors in the English language pack. - -## 4.4.1 (2022-06-20) - -Full [commit changes][4.4.1] - -#### Fixed - -- `WebHook` fixes the issue where an error is thrown after a successful trigger. [#792](https://github.com/tryzealot/zealot/issues/792) Thanks to [tasselsd](https://github.com/tasselsd) -- `Docker` compatible with Caddy 2.5.0 for proxying from https to http. [#790](https://github.com/tryzealot/zealot/pull/790) Thanks to [VisionBao](https://github.com/VisionBao) [songge1209](https://github.com/songge1209) - -## 4.4.0 (2022-06-09) - -Full [commit changes][4.4.0] - -#### Changed - -- `Web` adds filtering by version, branch, and packaging type to the list display for users who are not logged in and have not enabled guest mode, in addition to viewing application version details. -- `Web` upgrades the runtime environment to Ruby 3.0 and the service framework to Rails 7.0. -- `Web` is now compatible with the macOS M1 chip. - -#### Added - -- `Web` simplifies and standardizes some application links to facilitate sharing. [#666](https://github.com/tryzealot/zealot/pull/666) -- `Web` completes some missing permission check pages. - -#### Fixed - -- `Job` fixes the issue of abnormal URL Schemes when parsing iOS files. -- `Web` fixes the issue where service logs are not output to the terminal console. -- `Web` adds exception handling for processing debug files uploaded when they are deleted during parsing or cannot be found for other reasons. -- `Web` adapts the UI for ultra-wide screens. -- `Web` fixes security vulnerabilities in third-party login dependencies. -- `API` fixes the issue where uploading Android without channel_key results in an exception. [#779](https://github.com/tryzealot/zealot/issues/779) Thanks to [likfe](https://github.com/likfe) - -## 4.3.1 (2021-12-22) - -Full [commit changes][4.3.1] - -#### Added - -- `Web` after updating the setting, the original default value can be restored. -- `Web` supports parsing and displaying app links (distinguishing between deep links and URL schemes) for Android in application unpacking. -- `Web` strengthens the visual effect of the open and closed status of the setting page. - -#### Fixed - -- `Web` fixes the issue of asynchronous task methods in demo mode. -- `Web` fixes the issue where selected application types and channels cannot be checked when creating and editing an application. -- `Web` fixes the issue where it is not possible to navigate to the environment page. -- `Web` fixes the issue where aab parsing fails when there are no intent filters. -- `Web` adds error handling for unchecking all application types and channels when updating an application. -- `Web` fixes the issue where the loading strategy causes all third-party logins to be unavailable. - -## 4.3.0 (2021-12-08) - -Supports parsing of the aab format, adds support for multiple languages. Full [commit changes][4.3.0] - -#### Changed - -- `Web` uses the default prompt structure as the data structure for network hooks, instead of a strange structure. -- `Web` no longer provides parameter changes for third-party login authorization on the settings page (requires service restart). -- `API` the upload application interface and version details return the `text_changelog` field in the response body. [650f1ffd](https://github.com/tryzealot/zealot/commit/650f1ffd3731f6a1f4cc703430be1b1b6f5d1cee) -- `API` renames the `changelog_list` field in the response body to `changelog`. [719f0b1e](https://github.com/tryzealot/zealot/commit/719f0b1eff92f358d246ededd6c1e6f9863f7f85) -- `Web` changes the log output format from an array to text format that is compatible with Markdown lists. [719f0b1e](https://github.com/tryzealot/zealot/commit/719f0b1eff92f358d246ededd6c1e6f9863f7f85) -- `Web` some privacy-related configuration keys or tokens are only displayed in plaintext under administrator permissions; other permissions cannot see them; demo mode is read-only and will do some encryption. [#644](https://github.com/tryzealot/zealot/pull/644) -- `Web` does not display the build date and hash value if they cannot be obtained. - -#### Added - -- `Web` supports parsing of the Android App Bundle (aab) file format and webp icons. -- `Web` supports language internationalization, with optional language packs: Simplified Chinese, English (support for page configuration). -- `Web` supports configuring more system settings. [#643](https://github.com/tryzealot/zealot/pull/643) -- `Web` adds editing functionality for network hooks in the management panel. -- `Web` rewrites and optimizes the style layout of the application list. -- `Web` optimizes the basic email template. -- `Web` adjusts the style and error logic of the login window. -- `Web` adds file permission checking to the environment variable page in the management panel. [#608](https://github.com/tryzealot/zealot/pull/608) -- `Web` adds error details display for asynchronous tasks in the management panel, with a maximum of 5000 errors. -- `Web` uses a better log output format. [#646](https://github.com/tryzealot/zealot/pull/646) - -#### Fixed - -- `Web` fixes the issue where the default selection state of boolean type parameters is incorrect on the settings page. -- `Web` fixes the issue where exceptions occur when clicking install or download in the DingTalk app (changed to WeChat logic processing). -- `Web` fixes the issue where the build date (time stamp when building a Docker image) cannot be displayed on the environment page. -- `Web` fixes the issue where the domain scope of asynchronous notifications does not take effect. -- `Web` fixes the issue of exception when getting gems. -- `Web` fixes the issue of abnormal judgment of the expiration time of iOS certificates. -- `Web` fixes the issue where disk space cannot be obtained when developing with a virtual machine mounted. -- `Web` fixes some known errors in demo mode. - -## 4.2.2 (2021-10-15) - -Full [commit changes][4.2.2] - -#### Fixed - -- `API` fixes the issue where incorrect error messages were not output due to parameter mismatches caused by batch replacements. [#615](https://github.com/tryzealot/zealot/issues/615) Thanks to [gin7758258](https://github.com/gin7758258) -- `Web` fixes the issue of abnormal parsing of some apk Android files. [#587](https://github.com/tryzealot/zealot/pull/529) - -## 4.2.1 (2021-09-14) - -Full [commit changes][4.2.1] - -#### Changed - -- `Web` application icons are no longer cropped to the preset size, and image processing dependencies have been removed, reducing the Docker image size by nearly 200MB. -- `Docker` the reverse proxy service Caddy no longer outputs logs to STDOUT but directly to files. - -#### Fixed - -- `Web` fixes the issue where icons are not displayed correctly after uploading an application. -- `Web` is compatible with different dSYM zip extraction logics when uploading. -- `Web` fixes the issue where the application icon is not displayed when installing iOS applications. -- `Web` fixes a security vulnerability by disabling the editing of read-only system settings. -- `Web` fixes the issue where the downloaded file suffix is not correct on macOS. -- `Web` fixes the issue where the window showing that an installation is not possible does not pop up in some cases. - -## 4.2.0 (2021-09-01) - -Full [commit changes][4.2.0] - -#### Changed - -- `Web` changes the default logic for cleaning up old versions to off. To enable, set the environment variable `ZEALOT_KEEP_UPLOADS=false`. [#570](https://github.com/tryzealot/zealot/pull/570) -- `Web` renames File Parsing to Application Unpacking. [#529](https://github.com/tryzealot/zealot/pull/529) -- `Web` removes support for unpacking previously uploaded applications in the application unpacking feature. (now all uploaded applications will automatically trigger additional application unpacking) -- `API` supports fontawesome css values for custom field icons when uploading applications, such as the value `fas fa-flag` for [flag](https://fontawesome.com/v5.15/icons/flag?style=solid). -- `Docker` changes the image to use caddy as a reverse proxy and modifies the volume persistence. Migration is required, see [#540](https://github.com/tryzealot/zealot/pull/540) for details. - -#### Added - -- `Web` supports uploading, parsing, and downloading macOS applications. [#562](https://github.com/tryzealot/zealot/pull/562) -- `Web` adds quick filtering options for application types and channels for mobile devices on the channel details page. [#510](https://github.com/tryzealot/zealot/issues/510) Thanks to [huacnlee](https://github.com/huacnlee) -- `Web` allows the administrator panel to configure application type templates and default registration user permissions. [#562](https://github.com/tryzealot/zealot/pull/562) [#568](https://github.com/tryzealot/zealot/pull/568) -- `Web` partially encrypts environment variables that involve privacy. -- `Web` adds graphical displays for memory and disk usage. -- `Docker` adds support for synchronizing updates with [Github Container Registry](https://github.com/tryzealot/zealot/pkgs/container/zealot) images. -- `Docker` adds support for configuring the postgres port number with environment variables. - -#### Fixed - -- `Web` fixes the issue where the iOS installation button cannot be displayed on iPad and M1 chip macOS. [#519](https://github.com/tryzealot/zealot/issues/519) Thanks to [ohdarling](https://github.com/ohdarling) -- `Web` fixes the issue where using third-party login while registering but not verifying email fails. [#517](https://github.com/tryzealot/zealot/issues/517) Thanks to [huacnlee](https://github.com/huacnlee) -- `Web` fixes the issue where uploading an application through the website does not trigger application unpacking. -- `Web` fixes the issue where the left navigation style is misaligned when tubrolink is enabled. -- `Web` displays the unpacking link when uploading Android applications. -- `Web` optimizes the display prompt for empty unpacking file lists. -- `Web` fixes the issue where LDAP parameters are obtained incorrectly. [#541](https://github.com/tryzealot/zealot/pull/542) Thanks to [Martwu](https://github.com/Martwu) -- `Web` changes the error message for capturing application upload errors to a readable format. -- `Web` fixes the issue where the application type creation error judgment is abnormal. -- `Web` adds an exception judgment for clicking the details page when all channels of an application are deleted. -- `Web` fixes the issue where uploading applications causes variable release errors in the parsing process. -- `Web` fixes the issue where an error occurs when verifying password protection for an application. [#564](https://github.com/tryzealot/zealot/issues/564) Thanks to [EasierLu](https://github.com/EasierLu) -- `Web` fixes the issue where editing user information in the administrator panel causes an error. [#564](https://github.com/tryzealot/zealot/issues/564) Thanks to [EasierLu](https://github.com/EasierLu) -- `Web` fixes the issue where the "Install" button on the application details page is displayed abnormally on incorrect systems and devices (normally only iOS applications are displayed on iOS and macOS devices). -- `Web` optimizes the unpacking of applications for developer certificates that fail to parse due to special character sets (currently known to be Chinese encoding) and UI layout adjustments. -- `Web` fixes the issue where the current user cannot be edited. -- `Web` corrects the duplicate title of debug files. -- `Docker` fixes the logrotate error during image initialization. -- `Docker` fixes the issue where Caddy deployment needs to be confirmed. [#551](https://github.com/tryzealot/zealot/issues/551) Thanks to [ReverseScale](https://github.com/ReverseScale) - -## 4.1.0 (2021-07-17) - -Full [commit changes][4.1.0] - -#### Changed - -- `Web` changes the display logic for obtaining device UDID due to the similarity of iPad's User-Agent and Desktop. -- `Docker` sets Gihub Container Registry (gcr.io) as the default Docker image source. - -#### Added - -- `Web` supports one-click login authentication for third-party platforms such as Feishu and Gitlab. -- `Web` optimizes the logic for accessing the version details page of an application that cannot be found and allows manual redirection to the latest version. -- `Web` adds the ability to view some system configuration items and modify some parameters without requiring a restart. -- `Web` adds a page statistics report to the management panel. - -#### Fixed - -- `Web` fixes the issue where the network hook cannot obtain the value of the title variable. -- `Web` fixes the abnormal error during application parsing process. -- `Web` fixes the abnormal error that occurs during application creation. -- `Web` fixes the issue where system configuration cannot be edited due to being saved as empty. -- `Job` fixes the issue where the logic for removing old versions causes the deletion logic and document logic to be reversed. - -## 4.0.0 (2020-12-31) - -Full [commit changes][4.0.0] - -#### Fixed - -- `Web` corrects the display error caused by abnormal judgment of the expiration time of the iOS certificate during file parsing. -- `Web` ignores the default development version number check for new versions. - -## 4.0.0.rc2 (2020-12-25) - -Full [commit changes][4.0.0.rc2] - -#### Added - -- `Web` newly parsed files will be saved to the list, and a file parsing for uploaded applications will also be synchronized. (asynchronous task) [#346](https://github.com/tryzealot/zealot/pull/346) -- `Web` adds file parsing data statistics to the control panel. -- `Web` adds data statistics for network hooks, background tasks, and disk usage for administrators in the control panel. -- `Web` adds a quick delete function for authorized personnel to the prompt for missing files in the version details. - -#### Changed - -- `API` The debug file version check interface has been renamed, and new check methods based on file fingerprints and dSYM UUID have been added. [#349](https://github.com/tryzealot/zealot/pull/346) - -#### Fixed - -- `Web` fixes the error when disabling LDAP login authentication. (caused by incorrect IP whitelist settings) -- `Web` corrects the wording of the prompt when opening the version details in WeChat for Android. - -## 4.0.0.rc1 (2020-10-29) - -Full [commit changes][4.0.0.rc1] - -#### Changed - -- `Docker` **major change** merges rails and worker into the same image for deployment. zealot-docker library needs to be updated accordingly [#235](https://github.com/tryzealot/zealot/pull/235) -- `Docker` upgrades Ruby to version 2.7 for deployment. -- `Web` upgrades font-awesome from version 4.7.0 to 5.13.0, which may cause missing icons to display improperly. -- `Web` adjusts the wording of invitation emails. -- `Web` unifies the download path for applications and debugging files to `/download` path. -- `Web` requires login permission for online application parsing. -- `Web` optimizes the logic for automatically redirecting to the latest version when accessing deleted or non-existent version details. -- `Web` adjusts the installation and download logic of applications (mainly due to the inability to distinguish between iPadOS UserAgent and Desktop). - -#### Added - -- `Web` displays a prompt when downloading files that do not exist. -- `Web` supports parsing .mobileprovision format files and enabling the parsing of .ipa files online. -- `Web` allows some system settings to be modified online using the administrator panel. [#245](https://github.com/tryzealot/zealot/pull/245) -- `Web` adds guest mode. [#243](https://github.com/tryzealot/zealot/pull/243) -- `Web` supports displaying the names of iOS AdHoc version test devices. [#211](https://github.com/tryzealot/zealot/pull/211) -- `Web` supports parsing the content of uploaded version installation packages. [#210](https://github.com/tryzealot/zealot/pull/210) -- `Web` supports obtaining the UDID of iOS devices. [#203](https://github.com/tryzealot/zealot/pull/203) -- `Web` supports a demo mode with limited functionality and periodic data initialization. [#198](https://github.com/tryzealot/zealot/pull/198) -- `Web` displays the original name of the application in the version details after uploading the App. -- `Web` allows filtering of the application list by version, Git branch, and packaging type. -- `Web` displays the Git commit link associated with the latest upload in the version details. (if the git URL is set in the channel settings) -- `Web` integrates LDAP login into the existing login interface and no longer uses the crude interface provided by third-party dependencies. -- `Job` supports managing the generation and recovery of data backup using rails commands. (database and uploaded file data) [#207](https://github.com/tryzealot/zealot/pull/207) -- `API` adds an interface to check if the debug file exists `/api/debug_files/version_exist`. - -#### Fixed - -- `Web` fixes the error when parsing changelog during App upload. -- `Web` fixes the issue where the QR code in the version details will exceed the parent view in medium resolution. -- `Web` fixes the issue where some values of the application channel are empty and the default value is not displayed. -- `Web` optimizes the content display when parsing iOS packages online. (and solves the problem of always displaying fake data) -- `Web` fixes the issue where the information of the submitter is not displayed for changelogs generated using [fastlane-plugin-ci_changelog](https://github.com/icyleaf/fastlane-plugin-ci_changelog) in the version details. -- `Web` fixes and optimizes the logic for checking new versions. -- `Web` fixes the issue where the pop-up window for confirming the deletion of debug files displays an empty message. -- `Web` optimizes the display of the device list in the version details on some mobile phones. -- `Web` fixes the error when parsing applications without submitting parameters. -- `Web` optimizes the display of the version list on mobile phones. -- `Web` only displays the bottom pagination for the latest upload dynamics of channel versions, and the top displays the total number of versions. -- `Web` fixes the issue where the administrator editing user prompt for a non-empty password. -- `Web`/`API` fixes the issue where the latest version is used when the requested version for online download and installation does not exist. -- `Web` fixes the issue where the login interface displays the sidebar menu in guest mode. -- `Web` fixes the issue where the same debugging file of the same application and platform is always overwritten when uploaded. -- `Web` optimizes the display of boolean and dictionary types on the system settings page. -- `Job` fixes the issue where old versions were accidentally deleted due to a version judgment error during scheduled cleaning. -- `Docker` fixes the issue where the internal static resources are not updated due to volume storage of the public folder. -- `Docker` fixes the issue where the container version is inconsistent with the external version. - -## 4.0.0.beta4 (2020-05-07) - -Full [commit changes][4.0.0.beta4] - -#### Added - -- `Docker` supports deployment on Heroku. -- `Web` allows guests to view App details, lists, and upload App details. -- `API` supports custom fields when uploading an App. [#178](https://github.com/tryzealot/zealot/issues/178) -- `Web`/`API` automatically removes the `origin/` prefix when passing the `branch` value during App upload. -- `Web` adds project introduction to user authentication interfaces such as login, registration, password retrieval, and password resetting. - -#### Fixed - -- `Web` corrects user password description text. -- `Web` fixes the URL field error in the WebHook. -- `Web`/`API` fixes the error when uploading iOS dSYM files. -- `API` fixes the abnormal has_password parameter in the App interface. -- `API` fixes the source of uploaded App records always showing as Web. -- `API` fixes and supports uploading changelog in JSON format as a string. -- `Web` fixes the issue where CPU and memory information cannot be retrieved from system information. -- `Web` fixes the occasional error when parsing Android applications online. -- `Web` fixes the error when scanning QR code with WeChat. - -#### Changed - -- `API` adds validation for bundle_id dimension to the latest version interface. (apps/latest) -- `Web` allows guests to access application version details and download operations. -- `Web` shifts the device list on the right-hand side of iOS AdHoc application version details to the left and collapses it by default. -- `Web` removes the GraphQL console functionality from the development environment and recommends using [graphql-playground](https://github.com/prisma-labs/graphql-playground). -- `Web` removes the footbar at the bottom of the page, and the version information can be viewed in the system information. - -## 4.0.0.beta3 (2020-01-16) - -Full [commit changes][4.0.0.beta3] - -#### Added - -- `Web` prompts and displays a confirmation email link for users added by administrators if their email is not activated. -- `Web` enables the default Sentry anonymous reporting mechanism (can be turned off). - -#### Fixed - -- `API` fixes the issue where uploading an application always creates a new channel. -- `Web`/`API` fixes the issue where the icon of uploaded Android applications cannot be displayed. - -#### Changed - -- `Docker` moves the initialization data out of the image and into [zealot-docker](https://github.com/tryzealot/zealot-docker) image. [#120](https://github.com/tryzealot/zealot/pull/120) -- `Docker` reduces the size of the image from 1.18G to 308M. [#114](https://github.com/tryzealot/zealot/issues/114) -- `Job` uses asynchronous tasks instead of traditional cron jobs to implement scheduled cleaning of old version history package files. (can be turned off) -- `Job` groups asynchronous tasks and sets priority. -- `API` displays all error messages in Chinese because database write operations return specific error messages. -- `Web` standardizes code using Rubocop Lint rules. - -## 4.0.0.beta2 (2020-01-10) - -Full [commit changes][4.0.0.beta2] - -#### Added - -- `Web` Added the ability to upload a complete version list to a specific application channel, and support deleting operations. - -#### Fixed - -- `Web` provides an error prompt instead of an error message when uploading an application that is not a valid ipa or apk. -- `API` fixes the issue where the latest version list of an application cannot be returned due to the non-existence of the queried version number in the database. -- `API` only requires token verification for interfaces that perform write operations (previously most interfaces required it). - -## 4.0.0.beta1 - -🌈 The first public beta version has been released! - -## Previous Version - -For many years, it was developed and operated internally within the company and was not open source. -It used to undertake many functions, but now it has been separated to focus on providing -application hosting and distribution services - -[5.0.0]: https://github.com/tryzealot/zealot/compare/4.7.1...5.0.0 -[4.7.0]: https://github.com/tryzealot/zealot/compare/4.6.0...4.7.0 -[4.6.0]: https://github.com/tryzealot/zealot/compare/4.5.3...4.6.0 -[4.5.3]: https://github.com/tryzealot/zealot/compare/4.5.2...4.5.3 -[4.5.2]: https://github.com/tryzealot/zealot/compare/4.5.1...4.5.2 -[4.5.1]: https://github.com/tryzealot/zealot/compare/4.5.0...4.5.1 -[4.5.0]: https://github.com/tryzealot/zealot/compare/4.4.1...4.5.0 -[4.4.1]: https://github.com/tryzealot/zealot/compare/4.4.0...4.4.1 -[4.4.0]: https://github.com/tryzealot/zealot/compare/4.3.1...4.4.0 -[4.3.1]: https://github.com/tryzealot/zealot/compare/4.3.0...4.3.1 -[4.3.0]: https://github.com/tryzealot/zealot/compare/4.2.2...4.3.0 -[4.2.2]: https://github.com/tryzealot/zealot/compare/4.2.1...4.2.2 -[4.2.1]: https://github.com/tryzealot/zealot/compare/4.2.0...4.2.1 -[4.2.0]: https://github.com/tryzealot/zealot/compare/4.1.0...4.2.0 -[4.1.0]: https://github.com/tryzealot/zealot/compare/4.0.0...4.1.0 -[4.0.0]: https://github.com/tryzealot/zealot/compare/4.0.0.rc2...4.0.0 -[4.0.0.rc2]: https://github.com/tryzealot/zealot/compare/4.0.0.rc1...4.0.0.rc2 -[4.0.0.rc1]: https://github.com/tryzealot/zealot/compare/4.0.0.beta4...4.0.0.rc1 -[4.0.0.beta4]: https://github.com/tryzealot/zealot/compare/4.0.0.beta3...4.0.0.beta4 -[4.0.0.beta3]: https://github.com/tryzealot/zealot/compare/4.0.0.beta2...4.0.0.beta3 -[4.0.0.beta2]: https://github.com/tryzealot/zealot/compare/4.0.0.beta1...4.0.0.beta2 diff --git a/versioned_docs/version-5.0/user-guide/credits.md b/versioned_docs/version-5.0/user-guide/credits.md deleted file mode 100644 index 2d31e1821..000000000 --- a/versioned_docs/version-5.0/user-guide/credits.md +++ /dev/null @@ -1,23 +0,0 @@ -# Credits - -## Contributions - -Thank you for making Zealot more useful! - - - - - -## Project name - -Zealot are a type of protoss warrior from Starcraft. - -## Project Logo - -Project history submission resources may be used to for the icon copyright belongs to [Blizzard](https://www.blizzard.com), -later changed to their own design icons, if there are enthusiastic designers can help design better icons, -I represent this project to express my sincere gratitude. - -## License - -Zealot is an open source project released under the MIT distribution protocol (MIT), which can be found at [LICENSE file](https://github.com/tryzealot/zealot/blob/develop/LICENSE)。 diff --git a/versioned_docs/version-5.0/user-guide/dashboard.md b/versioned_docs/version-5.0/user-guide/dashboard.md deleted file mode 100644 index d76e61f32..000000000 --- a/versioned_docs/version-5.0/user-guide/dashboard.md +++ /dev/null @@ -1,3 +0,0 @@ -# Dashboard - -![screenshot](/img/screenshot/product-1.png) diff --git a/versioned_docs/version-5.0/user-guide/debug-files/index.mdx b/versioned_docs/version-5.0/user-guide/debug-files/index.mdx deleted file mode 100644 index 52eb1c756..000000000 --- a/versioned_docs/version-5.0/user-guide/debug-files/index.mdx +++ /dev/null @@ -1,14 +0,0 @@ -# List debug files - -List all uploaded debug files oragiazed by app. - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.0/user-guide/debug-files/review.mdx b/versioned_docs/version-5.0/user-guide/debug-files/review.mdx deleted file mode 100644 index f0ddf22c8..000000000 --- a/versioned_docs/version-5.0/user-guide/debug-files/review.mdx +++ /dev/null @@ -1,48 +0,0 @@ -# Review metadata - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Android - -### Versions list - - - -### Version detail - - - -## iOS - -### Versions list - - - -### Version detail - - diff --git a/versioned_docs/version-5.0/user-guide/debug-files/upload.mdx b/versioned_docs/version-5.0/user-guide/debug-files/upload.mdx deleted file mode 100644 index d2302322b..000000000 --- a/versioned_docs/version-5.0/user-guide/debug-files/upload.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Create a Debug File - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.0/user-guide/index.mdx b/versioned_docs/version-5.0/user-guide/index.mdx deleted file mode 100644 index 817dbe0eb..000000000 --- a/versioned_docs/version-5.0/user-guide/index.mdx +++ /dev/null @@ -1,48 +0,0 @@ -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -# User Guide - -[![GitHub release](https://img.shields.io/github/v/release/tryzealot/zealot?include_prereleases)](https://github.com/tryzealot/zealot/releases) -[![Docker Pulls](https://img.shields.io/docker/pulls/tryzealot/zealot.svg)](https://hub.docker.com/r/tryzealot/zealot/) -[![Chat on Telegram](https://img.shields.io/badge/chat-on%20telegram-important.svg)](https://img.shields.io/badge/chat-on%20telegram-important.svg) -[![Maintainability](https://codeclimate.com/github/tryzealot/zealot/badges/gpa.svg)](https://codeclimate.com/github/tryzealot/zealot) -[![License](https://img.shields.io/github/license/tryzealot/zealot)](https://github.com/tryzealot/zealot/blob/develop/LICENSE) - -**Self-hosted Beta App Distribution for Android, iOS, macOS, Windows and Linux apps.** - -Continuous everything. Automate the lifecycle of your apps. Connect your CI to build in the cloud, test on thousands of real devices, distribute to beta testers and app stores. All in one place. - - - -## Features - -- 🌏 **Cross-platform hosting**: supports macOS, iOS, Android (apk/**aab**), Windows, Linux extensive platforms. -- 📱 **iOS device in control**: automatically synchronizes iOS test device information and allows for one-click registration of new devices with Apple developers. -- 🧑‍💻 **Full developer toolkit**: provides REST API, [iOS][zealot-ios-sdk], [Android][android-android-sdk] SDKs and [fastlane][fastlane-plugin-zealot] automation plugins for building. -- 💥 **Analyze secrets within applications**: interpret metadata for iOS or Android applications or describe files. -- 🚨 **Multiple notification built-in**: customizable data income WebHook to any notification service. -- 🗄 **Multi-channel classification management**: freely divide application channel management into different scenarios and product forms. -- 🎳 **Multiple Architectures** amd86/arm64/armv7 architectures deployment ready. -- 🔑 **Third-party Auth**: Google, Gitlab, LDAP, OIDC and Lark suppotted. -- 🌑 **Dark mode**: Feel free to switch between day and night. - -## Demo - -Simplified Chinese by default, change the language in [Settings](/docs/user-guide/administrator/settings) page. - -- URL:https://tryzealot.ews.im/ -- Admin account: `admin@zealot.com` -- Password: `ze@l0t` - -> **Notification**: Demo service will RESET ALL DATA daily. - -## About the translation - -The translation powered by [DeepL](https://www.deepl.com/translator) and it inevitably have some defects, please provide feedback in time, thanks! diff --git a/versioned_docs/version-5.0/user-guide/qa.md b/versioned_docs/version-5.0/user-guide/qa.md deleted file mode 100644 index 9587b12d8..000000000 --- a/versioned_docs/version-5.0/user-guide/qa.md +++ /dev/null @@ -1,3 +0,0 @@ -# Q&A - -> TODO diff --git a/versioned_docs/version-5.0/user-guide/toolkits/fetch-udid.mdx b/versioned_docs/version-5.0/user-guide/toolkits/fetch-udid.mdx deleted file mode 100644 index 821fda99d..000000000 --- a/versioned_docs/version-5.0/user-guide/toolkits/fetch-udid.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -sidebar_label: "Fetch UDID" ---- - -# Fetch iOS Device UDID - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -- List of installable applications based on UDID -- Enable Apple Developer functionality to add unregistered test devices to the corresponding developer account - -## Install profile - -:::info -This feature is only valid for iOS devices. If opened on a computer, -it will prompt you to [scan the QR code](https://support.apple.com/guide/iphone/scan-a-qr-code-iphe8bda8762/ios) with your phone. -::: - -Regardless of the user login mode (including guest mode), you can install the profile by clicking on "获取设备 UDID" in the left sidebar menu to retrieve the UDID of the current iOS device. - -Do not worry about the profile being displayed as "Unsigned". This does not affect the installation, and the profile is disposable and will be destroyed by the system after retrieval, so there is no security risk. - - - -After installing the profile, the browser will open a new page to display the device UDID. At this point, there will be two scenarios: - -- [Unregistered Device](#unregistered-device) -- [Registered Device](#registered-device) - -## Unregistered Device - -For an unregistered device, basic device information is provided, including UDID, internal model, and serial number. If the service administrator has added Apple Developer, it will also display the registration of the test device to the corresponding developer account. - -:::tip -Registering to an Apple Developer account only means that the device is added under -the Devices section of the Apple Developer account. For iOS developers, -you still need to manually or script-automate adding the test device to the -corresponding Ad-Hoc certificate, then install and repackage it before -allowing the device to install the application. -::: - - - -## Registered Device - -For a registered test device, the list of installable applications will be displayed. If the service administrator has added Apple Developer, it will also display the registration of the test device to the corresponding developer account. - - diff --git a/versioned_docs/version-5.0/user-guide/toolkits/teardown.mdx b/versioned_docs/version-5.0/user-guide/toolkits/teardown.mdx deleted file mode 100644 index e2a5a840d..000000000 --- a/versioned_docs/version-5.0/user-guide/toolkits/teardown.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -sidebar_label: "Teardown App" ---- - -# Teardown App view itself metadata - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Android - -Retrieve `AndroidManifest.xml` metadata, v1 to v3 signatures informations. - - - -## iOS - -Retrieve `Info.plist` metadata, Frameworks and signatures informations. - - diff --git a/versioned_docs/version-5.0/user-guide/webhooks.md b/versioned_docs/version-5.0/user-guide/webhooks.md deleted file mode 100644 index 2b102c49b..000000000 --- a/versioned_docs/version-5.0/user-guide/webhooks.md +++ /dev/null @@ -1,50 +0,0 @@ -# Webhooks - -Zealot provides a webhook for message notifications for each application channel. -The webhook is a fully customizable structure that can be used for most notification services, such as Wecom, Dingtalk, Slack, etc. - -## Payload (default) - -Each parameter of the default structure has its value provided as a variable, -and each variable starts with `@`, the default structure will be used if the custom structure is left empty when creating the webhook. -The following variables are all provided. - -```ruby -{ - event: @event, - username: @username, - email: @email, - title: @title, - app_name: @name, - device_type: @device_type, - release_version: @release_version, - build_version: @build_version, - size: @file_size, - changelog: @changelog, - install_url: @install_url, - icon_url: @icon_url, - qrcode_url: @qrcode_url, - uploaded_at: @uploaded_at -} -``` - -Output: - -```json -{ - "event": "upload_events", - "username": "foobar", - "email": "foobar@example.com", - "title": "Zealot upload 1.0.0 version", - "app_name": "Zealot", - "device_type": "iOS", - "release_version": "1.0.0", - "build_version": "1", - "size": "30 MB", - "install_url": "https://zealot.example.com/api/apps/download/12354", - "icon_url": "https://zealot.example.com/api/apps/icon.png", - "qrcode_url": "https://zealot.example.com/api/apps/354/qrcode", - "uploaded_at": "2019-12-30 11:33:00", - "changelog": "- Add feture A\n- Fix issue B\n- Release v1.0.0", -} -``` diff --git a/versioned_docs/version-5.0/user-guide/webhooks/dingtalk.md b/versioned_docs/version-5.0/user-guide/webhooks/dingtalk.md deleted file mode 100644 index fab1b4dfa..000000000 --- a/versioned_docs/version-5.0/user-guide/webhooks/dingtalk.md +++ /dev/null @@ -1,31 +0,0 @@ -# Dingtalk (Dingding) - -[钉钉](https://developers.dingtalk.com/document/robots/custom-robot-access#section-e4x-4y8-9k0) use Incoming Webhooks whose constructs -typically support both text and markdown, and can be configured as follows: - -> Due to system limitations try to use keyword or IP address whitelist mechanism to receive messages. - -## Text format - -```ruby -{ - "msgtype": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\nUplaod at: #{@uploaded_at}" - } -} -``` - -## Markdown format - -The title field is only displayed in the dialog list, the text field is displayed for the chat content entering the dialog. - -```ruby -{ - "msgtype": "markdown", - "markdown": { - "title": @title, - "text": "## #{@title}\nPlatform: #{@device_type}\nUplaod at: #{@uploaded_at}\nInstall QRcode:\n![qrcode](#{@qrcode_url})" - } -} -``` diff --git a/versioned_docs/version-5.0/user-guide/webhooks/discord.md b/versioned_docs/version-5.0/user-guide/webhooks/discord.md deleted file mode 100644 index 262fa9bb0..000000000 --- a/versioned_docs/version-5.0/user-guide/webhooks/discord.md +++ /dev/null @@ -1,64 +0,0 @@ -# Discord - -[Discord](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) should use Slack-Compatible Webhook whose constructs -typically support both text and block rich text, and can be configured as follows: - -## Text format - -```ruby -{ - "text": "##{@title}\nPlatform: #{@device_type}\nUpload at: #{@uploaded_at}" -} -``` - -## Block rich text format - -A simple block with markdown support - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "## #{@title}\nPlatform: #{@device_type}\nUpload at: #{@uploaded_at}\nInstal QRcode:\n![qrcode](#{@qrcode_url})" - } - } - ] -} -``` - -Better look at some of the structures shown in the block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": @title, - } - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*Platform:*\n#{@device_type}" - }, - { - "type": "mrkdwn", - "text": "*Upload at:*\n#{@uploaded_at}" - } - ] - }, - "accessory": { - "type": "image", - "image_url": @qrcode_url, - "alt_text": "install qrcode" - } - ] -} -``` diff --git a/versioned_docs/version-5.0/user-guide/webhooks/feishu.md b/versioned_docs/version-5.0/user-guide/webhooks/feishu.md deleted file mode 100644 index c5d5a6f29..000000000 --- a/versioned_docs/version-5.0/user-guide/webhooks/feishu.md +++ /dev/null @@ -1,96 +0,0 @@ -# Lark (Feishu) - -[飞书](https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN) use Incoming Webhooks whose constructs -typically support both text and interactive card, and can be configured as follows: - -> Due to system limitations try to use keyword or IP address whitelist mechanism to receive messages. - -## Text format - -```ruby -{ - "msg_type": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\nUplaod at: #{@uploaded_at}" - } -} -``` - -## Interactive card format - -Use card format could use partly of markdown syntax: - -```ruby -{ - "msg_type": "interactive", - "card": { - "config": { - "wide_screen_mode": true, - "enable_forward": true - }, - "elements": [ - { - "tag": "div", - "fields": [ - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**Platform**\n#{@device_type}" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**Version**\n#{@release_version} (#{@build_version})" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**Developer**\n#{@username}" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**Upload date**\n#{@uploaded_at}" - } - }, - ] - }, - { - "tag": "div", - "text": { - "content": "**Changelog**\n#{@changelog}", - "tag": "lark_md" - } - }, - { - "actions": [ - { - "tag": "button", - "text": { - "content": "🐞 Go to app", - "tag": "lark_md" - }, - "url": "#{@release_url}", - "type": "primary", - "value": {} - } - ], - "tag": "action" - } - ], - "header": { - "title": { - "content": "#{@title}", - "tag": "plain_text" - } - } - } -} -``` diff --git a/versioned_docs/version-5.0/user-guide/webhooks/slack.md b/versioned_docs/version-5.0/user-guide/webhooks/slack.md deleted file mode 100644 index b2ce3477a..000000000 --- a/versioned_docs/version-5.0/user-guide/webhooks/slack.md +++ /dev/null @@ -1,64 +0,0 @@ -# Slack - -[Slack](https://api.slack.com/messaging/webhooks) use Incoming Webhooks whose constructs -typically support both text and block rich text, and can be configured as follows: - -## Text format - -```ruby -{ - "text": "#{@title}\nPlatform: #{@device_type}\nUpload at: #{@uploaded_at}" -} -``` - -## Block rich text format - -A simple block with markdown support - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "## #{@title}\nPlatform: #{@device_type}\nUpload at: #{@uploaded_at}\nInstal QRcode:\n![qrcode](#{@qrcode_url})" - } - } - ] -} -``` - -Better look at some of the structures shown in the block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": @title, - } - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*Platform:*\n#{@device_type}" - }, - { - "type": "mrkdwn", - "text": "*Upload at:*\n#{@uploaded_at}" - } - ] - }, - "accessory": { - "type": "image", - "image_url": @qrcode_url, - "alt_text": "install qrcode" - } - ] -} -``` diff --git a/versioned_docs/version-5.0/user-guide/webhooks/wecom.md b/versioned_docs/version-5.0/user-guide/webhooks/wecom.md deleted file mode 100644 index b9228312d..000000000 --- a/versioned_docs/version-5.0/user-guide/webhooks/wecom.md +++ /dev/null @@ -1,26 +0,0 @@ -# Wecom (Wechat Work) - -[企业微信](https://work.weixin.qq.com/api/doc/90000/90136/91770) use Incoming Webhooks whose constructs -typically support both text and markdown, and can be configured as follows: - -## Text format - -```ruby -{ - "msgtype": "text", - "text": { - "content": "#{@title}\n\nInstall url:#{@install_url}\nUplaod at: #{@uploaded_at}" - } -} -``` - -## Markdown format - -```ruby -{ - "msgtype": "markdown", - "markdown": { - "content": "## #{@title}\nPlatform: #{@device_type}\nUplaod at: #{@uploaded_at}\nInstall QRcode:\n![qrcode](#{@qrcode_url})" - } -} -``` diff --git a/versioned_docs/version-5.1/contributing-guide/index.md b/versioned_docs/version-5.1/contributing-guide/index.md deleted file mode 100644 index 1460c9f40..000000000 --- a/versioned_docs/version-5.1/contributing-guide/index.md +++ /dev/null @@ -1,22 +0,0 @@ -# Contributing Guide - -This guide will help you get started with Zealot! Thank you for taking an interest in contributing to Zealot. Before submitting your contribution, please make sure to take a moment and read through the following guidelines: - -This guide will help you to install and setup a production ready Zealot. - -## Getting Started - -Before starting your work, ensure an issue exist for it. If not feel free to create one. You can also take a look into the issues tagged Good first issues. -Add a comment on the issue and wait for the issue to be assigned before you start working on it. -This helps to avoid multiple people working on similar issues. -If the solution is complex, propose the solution on the issue and wait for one of the core contributors to approve before going into the implementation. -This helps in shorter turn around times in merging PRs -For new feature requests, Provide a convincing reason to add this feature. Real-life business use-cases will be super helpful. -Feel free to join our discord community, if you need further discussions with the core team. - -## Setup for local development - -These guides will help you to setup the environment required for Zealot. Follow the guide based on the operating system you use. - -- [VSCode development with devcontainer](/docs/contributing-guide/local-development/devcontainer) -- [Soure code](/docs/contributing-guide/local-development/source-code) diff --git a/versioned_docs/version-5.1/contributing-guide/local-development/devcontainer.md b/versioned_docs/version-5.1/contributing-guide/local-development/devcontainer.md deleted file mode 100644 index f6142a478..000000000 --- a/versioned_docs/version-5.1/contributing-guide/local-development/devcontainer.md +++ /dev/null @@ -1,127 +0,0 @@ -# Visual Studio Code Dev Container Setup - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -``` - -[The Visual Studio Code Dev Containers](https://code.visualstudio.com/docs/devcontainers/containers) lets you use a Docker container as a full-featured development environment. - -![VSCode devcontainer](https://code.visualstudio.com/assets/docs/devcontainers/containers/architecture-containers.png) - -## System requirements - -Before processing, make sure you have the lateset version of Git, Virsual Studio Code, Docker and docker-compose. - -### Install Git - -[Install](https://github.com/git-guides/install-git) it from offical website. - -### Install Docker & docker-compose - -- Windows: [Docker Desktop](https://www.docker.com/products/docker-desktop) 2.0+ on Windows 10 Pro/Enterprise. Windows 10 Home (2004+) requires Docker Desktop 2.3+ and the [WSL 2 back-end](https://aka.ms/vscode-remote/containers/docker-wsl2). (Docker Toolbox is not supported. Windows container images are not supported.) -- macOS: [Docker Desktop](https://www.docker.com/products/docker-desktop) 2.0+. -- Linux: [Docker CE/EE](https://docs.docker.com/install/#supported-platforms) 18.06+ and [Docker Compose](https://docs.docker.com/compose/install) 1.21+. (The Ubuntu snap package is not supported.) - -### Install Visual Studio Code - -Visual Studio Code is a free code editor, which runs on the macOS, Linux, and Windows operating systems. - -Follow the platform-specific guides below: - -```mdx-code-block - - -``` - -1. Download [Visual Studio Code](https://go.microsoft.com/fwlink/?LinkID=534106) for macOS. -1. Open the browser's download list and locate the downloaded app or archive. -1. If archive, extract the archive contents. Use double-click for some browsers or select the 'magnifying glass' icon with Safari. -1. Drag `Visual Studio Code.app` to the Applications folder, making it available in the macOS Launchpad. -1. Open VS Code from the Applications folder, by double clicking the icon. - -```mdx-code-block - - -``` - -1. Download the [Visual Studio Code installer](https://go.microsoft.com/fwlink/?LinkID=534107) for Windows. -1. Once it is downloaded, run the installer (VSCodeUserSetup-\{version\}.exe). This will only take a minute. -1. By default, VS Code is installed under `C:\Users\\{Username\}\AppData\Local\Programs\Microsoft VS Code`. - -```mdx-code-block - - -``` - -Following the [offical Linux install guide](https://code.visualstudio.com/docs/setup/linux). - -```mdx-code-block - - -``` - -### Install Remote container extension - -Install the [Remote Container extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). - -![VSCode extension](/img/vscode-install-remote-containers.png) - -## Fetch Zealot Codesoace - -Zealot Codespace was in the `.devcontailer` folder of Zealot project, so you need clone the source code. - -```bash -git clone https://github.com/tryzealot/zealot.git -``` - -Explan these files in Codespace: - -File | Description ----|--- -`devcontainer.json` | VSCode devcontainer config -`Dockerfile.base` | Base Dockerfile, auto push multi registry servers after changes -`Dockerfile` | Speed up build time, depends on above image. -`docker-compose.yml` | All services of Zealot -`create-db-user.sql` | Create user and role for Zealot - -## Open the project in a container - -Start Visual Studio Code, run the `Dev Containers: Open Folder in Container...` command in [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) and select the Zealot folder. - -![VSCode Command Palette](/img/vscode-command-palette.png) - -Click the **Starting Dev Container (show log)** to review zealot codespace build real time logging messages. - -![VSCode Command Palette](/img/vscode-devcontainer-log.png) - - -When finish the task, project files will load in file explorer and the zsh terminal. Access log outputs messages: - -``` -[7293 ms] Start: Run in container: cat /proc/344/environ -[9836 ms] Port forwarding connection from 53148 > 43379 > 43379 in the container. -[9836 ms] Start: Run in container: /home/vscode/.vscode-server/bin/5235c6bb189b60b01b1f49062f4ffa42384f8c91/node -e -[9981 ms] Port forwarding 53148 > 43379 > 43379 stderr: Connection established -[14988 ms] Port forwarding 53148 > 43379 > 43379 stderr: Remote close -[14999 ms] Port forwarding 53148 > 43379 > 43379 terminated with code 0 and signal null. -[29221 ms] Port forwarding 53148 > 43379 > 43379: Local close -``` - -In host Docker containers: - -![Docker-Compose containers](/img/vscode-devcontainer-docker-containers.png) - -## Start the project - -Press `` Ctrl + ` `` to open the integrated terminal in Visual Studio Code if it isn't already open. then run `bin/dev` to run all services. - -Notice that the terminal prompt might look different than your normal terminal prompt. - -![VSCode Zealot in Container](/img/vscode-devcontainer-zealot.png) - -## Open in browser - -A while after run `bin/dev`, select **Ports** to see all forwarded ports, **Open in Browser** in quick way. - -![VSCode forwarded ports](/img/vscode-devcontainer-forwarded-ports.png) diff --git a/versioned_docs/version-5.1/contributing-guide/local-development/source-code.md b/versioned_docs/version-5.1/contributing-guide/local-development/source-code.md deleted file mode 100644 index 7ca41b086..000000000 --- a/versioned_docs/version-5.1/contributing-guide/local-development/source-code.md +++ /dev/null @@ -1,232 +0,0 @@ ---- -sidebar_label: "Source code" ---- - -# Source code - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -``` - -The following is a tutorial on local deployment development for different operating systems. - -## Prepare dependencies - -### macOS - -#### Install homebrew - -First you need to install Xcode Command tools: - -```bash -$ xcode-select --install -``` - -Then install Homebrew, the package management tool for macOS - -```bash -$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" -``` - -#### Install dependencies - -```bash -$ brew install redis postgresql webp imagemagick node git -``` - -#### Setup Database and cache services - -Run postgresql and redis services - -```bash -$ brew services start postgresql -$ brew services start redis -``` - -You also need to create a default username in Postgresql: - -```bash -$ createuser --superuser zealot - -# If you are worried about the high privilege, you can only enable the create database privilege -$ createuser --createdb zealot -``` - -#### yarn - -```bash -$ npm install -g yarn -``` - - -### Debian (Ubuntu) - -#### System dependencies - -```bash -$ apt update -$ apt install -y libssl-dev tar tzdata git imagemagick libjpeg-dev libpng-dev libtiff-dev libwebp-dev -``` - -#### Install dependencies - -```bash -$ apt install -y redis postgresql-client node -``` - -#### Setup Database and cache services - -Run postgresql and redis services - -```bash -$ systemctl postgres start -$ systemctl redis start -``` - -You also need to create a default username in Postgresql: - -```bash -$ initdb -D /var/lib/postgresql/data -$ createuser --superuser zealot - -# If you are worried about the high privilege, you can only enable the create database privilege -$ createuser --createdb zealot -``` - -#### node - -```bash -$ npm install -g yarn -``` - -### Alpine Linux - -#### System dependencies - -```bash -$ apk --update --no-cache add build-base libxml2 libxslt git \ - libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev \ - tzdata -``` - -Needs install `gcompat` if use `arm` architecture. or an exception will throws such like "[Error loading shared library](https://nokogiri.org/tutorials/installing_nokogiri.html#linux-musl-error-loading-shared-library)". - -#### Install dependencies - -```bash -$ apk --update --no-cache redis postgresql -``` - -#### Setup Database and cache services - -Run postgresql and redis services - -```bash -$ rc-service postgres start -$ rc-service redis start -``` - -You also need to create a default username in Postgresql: - -```bash -$ initdb -D /var/lib/postgresql/data -$ createuser --superuser zealot - -# If you are worried about the high privilege, you can only enable the create database privilege -$ createuser --createdb zealot -``` - -## Install Ruby - -Can be installed by either asdf, rvm as ruby version manager. - -```mdx-code-block - - -``` - -Following the [offical install guide](http://asdf-vm.com/guide/getting-started.html) then: - -```bash -# Enable Ruby 3.2.0 YJIT need install Rust 1.58+ -# Optinal install: -asdf plugin add rust -asdf install rust latest -asdf global rust latest -export RUBY_CONFIGURE_OPTS=--enable-yjit - -# Required: -asdf plugin add ruby -asdf install ruby 3.2.0 -asdf global ruby 3.2.0 -``` - -```mdx-code-block - - -``` - -```bash -$ curl -sSL https://get.rvm.io | bash -s stable -$ rvm install 3.2.0 --disable-binary -``` - -```mdx-code-block - - -``` - -## Fetch source code - -```bash -git clone https://github.com/tryzealot/zealot.git -``` - -## Initialize Zealot - -All the following steps need to be performed in the zealot root directory. - -### bundler - -Install Ruby gems - -```bash -$ [sudo] gem install bundler -$ bundle install -``` - -### yarn - -Install javascript packages: - -```bash -$ yarn install -``` - -### Initialize database - -Make sure there are no problems with the connection database information, then the database tables will be created and the table structure will be created: - -```bash -$ rails db:create -$ rails db:migrate -``` - -Configuring the connection database can be done via [environment variables](/docs/self-hosted/configuration/environment-variables) or by changing the `config/database.yml` file. - -### Initialize default account and demo data - -Initialize administrator account and sample application - -```bash -$ rails db:seed -``` - -### Launch services - -```bash -$ bin/dev -``` - -Open brower `http://localhost:3000` diff --git a/versioned_docs/version-5.1/contributing-guide/sidebars.js b/versioned_docs/version-5.1/contributing-guide/sidebars.js deleted file mode 100644 index ef8a8b710..000000000 --- a/versioned_docs/version-5.1/contributing-guide/sidebars.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = [ - { - label: "Getting Started", - type: "doc", - id: 'contributing-guide/index', - }, - { - collapsible: false, - label: "Local development", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "contributing-guide/local-development/devcontainer", - "contributing-guide/local-development/source-code" - ], - }, -]; diff --git a/versioned_docs/version-5.1/developer-guide/api.md b/versioned_docs/version-5.1/developer-guide/api.md deleted file mode 100644 index 52d806396..000000000 --- a/versioned_docs/version-5.1/developer-guide/api.md +++ /dev/null @@ -1,37 +0,0 @@ -# APIs - -Use the Zealot APIs to view, upload, download the build of app or debug file. - -## Authentication - -Requests currently only support query authentication for User Token, found in `API - Key` at the bottom of the login user details page. - -> example : `https://YOUR_ZEALOT_URL/api?token=YOUR_TOKEN` - -## Version - -The current version is `v1`, the APIs does not need to explicitly pass the version parameter, -and the GraphGL interface is being developed gradually. - -## Apps - -Resource | Available endpoints ----|--- -Upload an App | `/api/apps/upload` -List Apps | `/api/apps` -Get an App by id | `/api/apps/:id` -List verions from an App | `/api/apps/versions` -Get the latest Release from an App | `/api/apps/latest` -Check an Release from App exists | `/api/apps/version_exist` - -## Debug files - -Resource | Available endpoints ----|--- -Upload a debug file | `/api/debug_files/upload` -Download a debug file by id | `/api/debug_files/download` -List Debug files | `/api/debug_files` -Get an debug file by id | `/api/debug_files/:id` -Check a debug file exists by id | `/api/debug_files/version_exist` -Update a debug file by id | `/api/debug_files/:id` -Delete a debug file by id | `/api/debug_files/:id` diff --git a/versioned_docs/version-5.1/developer-guide/api/apps.md b/versioned_docs/version-5.1/developer-guide/api/apps.md deleted file mode 100644 index 2a66a5a06..000000000 --- a/versioned_docs/version-5.1/developer-guide/api/apps.md +++ /dev/null @@ -1,417 +0,0 @@ ---- -sidebar_label: "Apps" ---- - -# App APIs - -## Upload an app - -This allows you to upload an single iOS, Android or macOS file. - -``` -POST /api/apps/upload -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| file | `File` | true | an App file | -| channel_key | `String` | false | Channel key
Create a new App if leave it empty | -| name | `String` | false | the name of App
Use app name from parsed metadata in given file if leave it empty | -| release_type | `String` | false | Eg, debug, beta, adhoc, release, enterprise 等 | -| source | `String` | false | the source of upload (default is `api`) | -| changelog | `String` | false | Changelog
Avaiables in plain text or JSON formatted struct | -| branch | `String` |false| a branch name from git | -| git_commit | `String` | false | git commit | -| ci_url | `String` | false | the build url of a C | -| custom_fields | `String` | false | JSON formatted custom fileds
It could configures and display title,
value and icon from fontawesome in a Release page from an App | - -For `changelog` attribute which it accepts both `plain text` and `JSON` formatted contents: - -**plain text**: - -``` -message 1\nmessage 2 -``` - -**JSON**: - -``` -[ - { - "message": "message 1", - "author": "admin", - "email": "admin@zealot.com", - "date": "2021-11-11 11:11:11" - }, - { - "message": "message 1", - "author": "developer", - "email": "developer@zealot.com", - "date": "2021-11-11 11:11:11" - } -] -``` - -For `custom_fields` attribute which it use `JSON` formatted struct to build from each key-value. for example, Display country name like `country=China` with icon [flag](https://fontawesome.com/v5.15/icons/flag?style=solid): - -```diff -curl -X POST \ - 'https://YOUR_ZEALOT_URL/api/apps/upload' \ - --form 'token="token"' \ - --form 'channel_key="channel_key"' \ -+ --form 'custom_fields="[{"name":"country","value":"China","icon":"fas fa-flag"}]"' \ - --form 'file=@/path/to/your/app' -``` - -#### Return body - -```json -{ - "id": 50, - "version": 7, - "app_name": "Test Android", - "bundle_id": "com.test.app", - "release_version": "1.0", - "build_version": "1", - "source": "SOURCE", - "branch": "master", - "git_commit": "e9de48513dbb6abfbxxxxxxxxxxxxxxxxxxxxxxxx", - "ci_url": "", - "size": 1565486, - "icon_url": "/uploads/apps/a1/r1/icons/app_icon.png", - "release_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1", - "install_url": "https://YOUR_ZEALOT_URL/download/releases/1", - "qrcode_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1/qrcode?size=thumb", - "changelog": [ - { - "message": "Changelog message 1" - }, - { - "message": "Changelog message 2" - } - ], - "text_changelog": "- Changelog message 1\n- Changelog message 2", - "custom_fields": [], - "created_at": "2021-09-01T11:43:33.977+08:00", - "app": { - "id": 1, - "name": "App name" - }, - "scheme": { - "id": 8, - "name": "Test" - }, - "channel": { - "slug": "1XmpC", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - } -} -``` - -## List apps - -Get a list of app. - -This function takes pagination parameters page and per_page to restrict the list of app. - -``` -GET /api/apps -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| page | `Integer` | false | Page number (default: `1`) | -| per_page | `Integer` | false | Number of items to list per page (default: `25`, max: `100`). | - -### Return body - -```json -[ - { - "id": 1, - "name": "Zealot", - "schemes": [ - { - "id": 1, - "name": "Adhoc", - "channels": [ - { - "slug": "X1IXN", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "O1qHk", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - }, - { - "id": 2, - "name": "内测版", - "channels": [ - { - "slug": "l19Tl", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "8selv", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - } - ] - } -] -``` - -## Get an app - -Allows you to receive information about an app like name, scheme, channel. - -``` -GET /api/apps/:id -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| id | `Integer` | true | ID | - -### Return body - -```json -{ - "id": 1, - "name": "Zealot", - "schemes": [ - { - "id": 5, - "name": "Test App", - "channels": [ - { - "slug": "X1IXN", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "O1qHk", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - } - ] -} -``` - -## Get versions list of app - -Get a list of apps by the given channel key - - -``` -GET /api/apps/versions -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| page | `Integer` | false | Page number (default: `1`) | -| per_page | `Integer` | false | Number of items to list per page (default: `25`, max: `100`). | - -### Return body - -```json -{ - "app_name": "Zealot iOS", - "bundle_id": "*", - "git_url": null, - "app": { - "id": 3, - "name": "Zealot" - }, - "scheme": { - "id": 5, - "name": "AdHoc" - }, - "releases": [ - { - "version": 2, - "app_name": "Zealot iOS", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10292024", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - }, - { - "version": 1, - "app_name": "Zealot iOS", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - }, - ] -} -``` - -## Get the latest version of app - -Allows you to receive the latest information about a Release version from App like app metadata, changelog, icon url, install (download) url. - - -``` -GET /api/apps/latest -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| release_version | `String` | true | Release version | -| build_version | `String` | true | Build version | - -### Return body - -```json -{ - "app_name": "Zealot iOS", - "bundle_id": "*", - "git_url": null, - "app": { - "id": 3, - "name": "Zealot" - }, - "scheme": { - "id": 5, - "name": "AdHoc" - }, - "releases": { - "version": 1, - "app_name": "Zealot iOS", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - } -} -``` - -## Check version exists - -Allows you to check the Release exists by given query, query accepts two combo group: - -- `bundle_id`, `release_version` and `build_verion` -- `bundle_id` and `git_commit` - -``` -GET /api/apps/version_exist -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| bundle_id | `String` | true | bundle_id or package_name | -| release_version | `String` | false | Release version | -| build_version | `String` | false | Build version | -| git_commit | `String` | false | git commit hash | - -### Return body - -- Return 200 if release existed. -- Return 404 if release not existed. - -Success returns: - -```json -{ - "version": 1, - "app_name": "Zealot iOS", - "bundle_id": "im.ews.zealot", - "release_version": "4.1.1", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" -} -``` - -Not found returns: - -```json -{ - "error": "Not found release" -} -``` diff --git a/versioned_docs/version-5.1/developer-guide/api/debug_files.md b/versioned_docs/version-5.1/developer-guide/api/debug_files.md deleted file mode 100644 index 4cb3ec1ca..000000000 --- a/versioned_docs/version-5.1/developer-guide/api/debug_files.md +++ /dev/null @@ -1,254 +0,0 @@ ---- -sidebar_label: "Debug Files" ---- - -# Debug File APIs - -## Upload debug file - -This allows you to upload an single iOS, Android debug file. - -Debug file accepts: - -- iOS: a Zipped dSYM file -- Android: a Zipped file includes mapping.txt, R.txt or AndroidManifest.xml files. - -``` -POST /api/debug_files/upload -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| file | `File` | true | Arichved file by zip | -| release_version | `String` | true | Release version, ignore this param if iOS app | -| build_version | `String` | true | Build version, ignore this param if iOS app | - -### Return body - -```json -{ - "id": 1, - "app_name": "Demo App", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## Download debug file - -This allows you to download an single iOS, Android debug file. - -``` -GET /api/debug_files/download -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| release_version | `String` | true | Release version, ignore this param if iOS app | -| build_version | `String` | false | Build version, ignore this param if iOS app | -| order | `String` | false | Order by
`version` = latest version, `upload_date` = last uploaded date
**Vaild in release_version is `latest`** | - -### Return body - -- Retun 200 status code if the version exists and redirect to the download address with a 302 status code. -- return 404 status code if the version does not exist. - -## List debug files - -Get a list of debug files. - -This function takes pagination parameters page and per_page to restrict the list of debug files. - - -``` -GET /api/debug_files -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| page | `Integer` | false | Page number (default: `1`) | -| per_page | `Integer` | false | Number of items to list per page (default: `25`, max: `100`). | - -### Return body - -```json -[ - { - "id": 1, - "app_name": "Demo App", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] - } -] -``` - -## Get a debug file - -Allows you to receive information about debug file like name, file size, UUID (iOS only), platform (iOS only) or file list (Android only). - -``` -GET /api/debug_files/:id -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| id | `Integer` | true | ID | - -### Return body - -```json -{ - "id": 1, - "app_name": "Demo App", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## Update a existed debug file - -This allows you to update a debug file. - -``` -PUT /api/debug_files/:id -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| id | `Integer` | true | ID | -| file | `File` | true | a Zipped debug file | -| release_version | `String` | true | Release version, ignore this param if iOS app | -| build_version | `String` | true | Build version, ignore this param if iOS app | - -### Return body - -```json -{ - "id": 1, - "app_name": "Demo App", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## Delete a debug file - -This allows you to delete a debug file. - -``` -DELETE /api/debug_files/:id -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| id | `Integer` | true | ID | - -### Return body - -```json -{ - "mesage": "OK" -} -``` diff --git a/versioned_docs/version-5.1/developer-guide/fastlane.md b/versioned_docs/version-5.1/developer-guide/fastlane.md deleted file mode 100644 index f9ff48334..000000000 --- a/versioned_docs/version-5.1/developer-guide/fastlane.md +++ /dev/null @@ -1,27 +0,0 @@ -# Fastlane plugins - -## Add Zealot plugin - -> [fastlane](https://fastlane.tools) is an open source platform aimed at simplifying Android and iOS deployment. -> fastlane lets you automate every aspect of your development and release workflow, -> customize your deployment workflows using the hundreds of community built fastlane actions and plugins. - -[fastlane-plugin-zealot](https://github.com/tryzealot/fastlane-plugin-zealot) provides upload app, debug_file and -version check actions to Zealot, install it in shell: - -```bash -$ fastlane add_plugin zealot -``` - -## More usefully plugins - -In addition, as the author of the project also open source a number of other fastlane plug-ins there is always one you will use: - -Plugin | Description | ----|--- -[fastlane-plugin-ci_changelog](https://github.com/icyleaf/fastlane-plugin-ci_changelog) | Automate generate changelog between previous and the latest commit of SCM during the CI services. -[fastlane-plugin-update_jenkins_build](https://github.com/icyleaf/fastlane-plugin-update_jenkins_build) | Update build's description of jenkins. -[fastlane-plugin-humanable_build_number](https://github.com/icyleaf/fastlane-plugin-humanable_build_number) | Automatic generate app build number unque and human readable friendly -[fastlane-plugin-app_info](https://github.com/icyleaf/fastlane-plugin-app_info) | Teardown tool for mobile app(ipa, apk and aab file), analysis metedata like version, name, icon etc. -[fastlane-plugin-android_channels](https://github.com/icyleaf/fastlane-plugin-android_channels) | Package unsign apk with channels and write empty file to META-INF with channel in general way -[fastlane-plugin-ram_disk](https://github.com/icyleaf/fastlane-plugin-ram_disk) | Use a virtual ram disk to do anything else diff --git a/versioned_docs/version-5.1/developer-guide/fastlane/zealot.md b/versioned_docs/version-5.1/developer-guide/fastlane/zealot.md deleted file mode 100644 index c00c6c471..000000000 --- a/versioned_docs/version-5.1/developer-guide/fastlane/zealot.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -sidebar_label: "zealot" ---- - -# Fastlane action: zealot - -Uploading iOS, Android and macOS app, it requires three params: - -```ruby -zealot( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', -) -``` - -## Parameters - -``` -+-----------------+---------------------------------+------------------------+----------+ -| zealot Options | -+-----------------+---------------------------------+------------------------+----------+ -| Key | Description | Env Var | Default | -+-----------------+---------------------------------+------------------------+----------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | The key of app's channel | ZEALOT_CHANNEL_KEY | | -| file | The path of app file. Optional | ZEALOT_FILE | | -| | if you use the `gym`, `ipa`, | | | -| | `xcodebuild` or `gradle` | | | -| | action. | | | -| name | The name of app to display on | ZEALOT_NAME | | -| | zealot | | | -| changelog | The changelog of app | ZEALOT_CHANGELOG | | -| slug | The slug of app | ZEALOT_SLUG | | -| release_type | The release type of app | ZEALOT_RELEASE_TYPE | | -| branch | The name of git branch | ZEALOT_BRANCH | | -| git_commit | The hash of git commit | ZEALOT_GIT_COMMIT | | -| custom_fields | The key-value hash of custom | ZEALOT_CUSTOM_FIELDS | | -| | fields | | | -| password | The password of app to download | ZEALOT_PASSWORD | | -| source | The name of upload source | ZEALOT_SOURCE | fastlane | -| ci_url | The name of upload source | ZEALOT_CI_CURL | | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| hide_user_token | replase user token to *** to | ZEALOT_HIDE_USER_TOKEN | true | -| | keep secret | | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error uploading app | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure | | | -+-----------------+---------------------------------+------------------------+----------+ -* = default value is dependent on the user's system - -+-----------------------+---------------------------------------------+ -| zealot Output Variables | -+-----------------------+---------------------------------------------+ -| Key | Description | -+-----------------------+---------------------------------------------+ -| ZEALOT_APP_ID | The id of app | -| ZEALOT_RELEASE_ID | The id of app's release | -| ZEALOT_RELEASE_URL | The release URL of the newly uploaded build | -| ZEALOT_INSTALL_URL | The install URL of the newly uploaded build | -| ZEALOT_QRCODE_URL | The QRCode URL of the newly uploaded build | -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+---------------------------------------------+ -``` - -## Output Variables - -``` -+-----------------------+---------------------------------------------+ -| zealot Output Variables | -+-----------------------+---------------------------------------------+ -| Key | Description | -+-----------------------+---------------------------------------------+ -| ZEALOT_APP_ID | The id of app | -| ZEALOT_RELEASE_ID | The id of app's release | -| ZEALOT_RELEASE_URL | The release URL of the newly uploaded build | -| ZEALOT_INSTALL_URL | The install URL of the newly uploaded build | -| ZEALOT_QRCODE_URL | The QRCode URL of the newly uploaded build | -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+---------------------------------------------+ -Access the output values using `lane_context[SharedValues::VARIABLE_NAME]` -``` diff --git a/versioned_docs/version-5.1/developer-guide/fastlane/zealot_debug_file.md b/versioned_docs/version-5.1/developer-guide/fastlane/zealot_debug_file.md deleted file mode 100644 index 63017003a..000000000 --- a/versioned_docs/version-5.1/developer-guide/fastlane/zealot_debug_file.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -sidebar_label: "zealot_debug_file" ---- - -# Fastlane action: zealot_debug_file - -Upload iOS dSYM or Android Proguard file(s) to Zealot - -```ruby - # Upload iOS dSYM file - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - platform: :ios, - xcode_scheme: 'AppName', - verify_ssl: false - ) - - # Upload Android Proguard files - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - platform: :android, - android_build_type: 'release', - android_flavor: 'store', - release_version: '1.1.0', - build_version: '1', - overwrite: true - ) - - # Upload given zip file - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - zip_file: 'path/to/your/zip_file', - release_version: '1.1.0', - build_version: '1', - verify_ssl: false - ) -``` - -## Parameters - -``` -+--------------------+-----------------------------------+---------------------------+---------+ -| zealot_debug_file Options | -+--------------------+-----------------------------------+---------------------------+---------+ -| Key | Description | Env Var | Default | -+--------------------+-----------------------------------+---------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | Any channel key of app | ZEALOT_CHANNEL_KEY | | -| zip_file | Using given the path of zip file | DF_DSYM_ZIP_FILE | | -| | to direct upload | | | -| platform | The name of platfrom, avaiable | ZEALOT_PLATFORM | | -| | value are | | | -| | ios,mac,macos,osx,android | | | -| path | The path of debug file | ZEALOT_PATH | | -| | (iOS/macOS is archive path for | | | -| | Xcode, Android is path for app | | | -| | project) | | | -| xcode_scheme | The scheme name of app | ZEALOT_XCODE_SCHEME | | -| android_build_type | The build type of app | ZEALOT_ANDROID_BUILD_TYPE | release | -| android_flavor | The product flavor of app | ZEALOT_ANDROID_FLAVOR | | -| extra_files | A set file names | ZEALOT_EXTRA_FILES | [] | -| output_path | The output path of compressed | DF_DSYM_OUTPUT_PATH | . | -| | dSYM file | | | -| release_version | The release version of app | ZEALOT_RELEASE_VERSION | | -| | (Android needs) | | | -| build_version | The build version of app | ZEALOT_BUILD_VERSION | | -| | (Android needs) | | | -| overwrite | Overwrite output compressed file | DF_DSYM_OVERWRITE | false | -| | if it existed | | | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error uploading app | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure? (true/false) | | | -+--------------------+-----------------------------------+---------------------------+---------+ -* = default value is dependent on the user's system - -+-----------------------+-----------------------------------------+ -| zealot_debug_file Output Variables | -+-----------------------+-----------------------------------------+ -| Key | Description | -+-----------------------+-----------------------------------------+ -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+-----------------------------------------+ -``` diff --git a/versioned_docs/version-5.1/developer-guide/fastlane/zealot_sync_devices.md b/versioned_docs/version-5.1/developer-guide/fastlane/zealot_sync_devices.md deleted file mode 100644 index 1a61333c7..000000000 --- a/versioned_docs/version-5.1/developer-guide/fastlane/zealot_sync_devices.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -sidebar_label: "zealot_sync_devices" ---- - -# Fastlane action: zealot_sync_devices - -> :bell: Zealot 4.5.0 built in Apple team manage which it use [Apple API Key](https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) -> to sync iOS devices, even CAN registe the device after fetch the UDID, [Check detail](/docs/user-guide/administrator/apple-team) - -Use Apple Developer account to syncing UDIDs and relates the value in Zealot. - -```ruby -# With Apple API Key -zealot_sync_devices( - endpoint: 'https://zealot.example.com', - token: '...', - api_key_path: '/path/to/your/api_key_json_file', - team_id: '...' -) - -# With password (Two-factor Authentication required) -zealot_sync_devices( - endpoint: 'https://zealot.example.com', - token: '...', - username: 'user@example.com', - team_id: '...' -) -``` - -## Parameters - -``` -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| zealot_sync_devices Options | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| Key | Description | Env Var(s) | Default | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| username | The apple id (username) of Apple Developer Portal | ZEALOT_USERNAME | * | -| api_key_path | Path to your App Store Connect API Key JSON file | ZEALOT_API_PATH | | -| | (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key | | | -| | -json-file) | | | -| api_key | Your App Store Connect API Key information | ZEALOT_API_KEY | * | -| | (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key | | | -| | -hash-option) | | | -| team_id | The ID of your Developer Portal team if you're in multiple teams | ZEALOT_APPLE_TEAM_ID | * | -| team_name | The name of your Developer Portal team if you're in multiple teams | ZEALOT_APPLE_TEAM_NAME | * | -| platform | The platform to use (optional) | ZEALOT_APPLE_PLATFORM | ios | -| verify_ssl | Should verify SSL of zealot service | ZEALOT_VERIFY_SSL | true | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| fail_on_error | Should an error http request cause a failure? (true/false) | ZEALOT_FAIL_ON_ERROR | false | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -``` diff --git a/versioned_docs/version-5.1/developer-guide/fastlane/zealot_version_check.md b/versioned_docs/version-5.1/developer-guide/fastlane/zealot_version_check.md deleted file mode 100644 index ed7100ba0..000000000 --- a/versioned_docs/version-5.1/developer-guide/fastlane/zealot_version_check.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -sidebar_label: "zealot_version_check" ---- - -# Fastlane action: zealot_version_check - -Check given build exists or not on Zealot - -```ruby -zealot_version_check( - endpoint: 'https://zealot.example.com', - token: '...', - bundle_id: 'com.example.app.name', - release_version: '1.0.0', - build_version: '1' -) -``` - -## Parameters - -``` -+-----------------+---------------------------------+------------------------+---------+ -| zealot_version_check Options | -+-----------------+---------------------------------+------------------------+---------+ -| Key | Description | Env Var | Default | -+-----------------+---------------------------------+------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | The key of app's channel | ZEALOT_CHANNEL_KEY | | -| bundle_id | The bundle id(package name) of | ZEALOT_BUNDLE_ID | | -| | app | | | -| release_version | The release version of app | ZEALOT_RELEASE_VERSION | | -| build_version | The build version of app | ZEALOT_BUILD_VERSION | | -| git_commit | The latest git commit of app | ZEALOT_GIT_COMMIT | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error http request | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure? (true/false) | | | -+-----------------+---------------------------------+------------------------+---------+ -``` diff --git a/versioned_docs/version-5.1/developer-guide/index.md b/versioned_docs/version-5.1/developer-guide/index.md deleted file mode 100644 index aac28297e..000000000 --- a/versioned_docs/version-5.1/developer-guide/index.md +++ /dev/null @@ -1,15 +0,0 @@ -# Developer Guide - -Zealot offers a rich set of components for iOS, Android, and all aspects of the packaging process. - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - - diff --git a/versioned_docs/version-5.1/developer-guide/sdk/android.md b/versioned_docs/version-5.1/developer-guide/sdk/android.md deleted file mode 100644 index a0fbc4519..000000000 --- a/versioned_docs/version-5.1/developer-guide/sdk/android.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -sidebar_label: "Android" ---- - -# Zealot Android SDK - -The Android component provides a service to check for new versions and installations for Zealot, supporting both Kotlin and Java. - -## Install - -### JitPack - -Using [jitpack](https://jitpack.io) to install: - -```groovy -allprojects { - repositories { - ... - maven { url 'https://jitpack.io' } - } -} -``` - -In `build.gradle` file of main app project add: - -```groovy -dependencies { - implementation 'com.github.tryzealot:zealot-android:master-SNAPSHOT' -} -``` - -## Permission - -Zealot needs internet permission - -```xml - -``` - -## Usages - -Add the start code to the `onCreate` method block of your `Application` file: - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -``` - -```kotlin -// Single channel -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("...") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch() - -// Multi-channel, such as beta, adhoc versions -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("xxxxxxx", "beta") - .setCHannelKey("yyyyyyy", "test") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch() -``` - -```mdx-code-block - - -``` - -```kotlin -// Single channel -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("...") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch(); - -// Multi-channel, such as beta, adhoc versions -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("xxxxxxx", "beta") - .setCHannelKey("yyyyyyy", "test") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch(); -``` - -```mdx-code-block - - -``` diff --git a/versioned_docs/version-5.1/developer-guide/sdk/ios.md b/versioned_docs/version-5.1/developer-guide/sdk/ios.md deleted file mode 100644 index ecf471c11..000000000 --- a/versioned_docs/version-5.1/developer-guide/sdk/ios.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -sidebar_label: "iOS" ---- - -# Zealot iOS SDK - -The iOS component provides a service to check for new versions and installations for Zealot, -supporting Swift and Objective-C. - -## Install - -### Cocoapods - -Adding below code into `Podfile`: - -```ruby -pod 'Zealot', :git => 'https://github.com/tryzealot/zealot-ios.git', :branch => 'master' -``` - -Install it: - -```bash -pod install -``` - -## Usages - -### Import header - -1. Add the code in your `AppDelegate`: - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -``` - -```swift -import Zealot -``` - -```mdx-code-block - - -``` - -```objectivec -// Objective-C -#import -``` - -```mdx-code-block - - -``` - -### Configure - -2. Add the following code in `application:didFinishLaunchingWithOptions:` method block: - -```mdx-code-block - - -``` - -```swift -// Single channel -let zealot = Zealot(endpoint: "https://zealot.example.com", channelKey: "...") -zealot.checkVersion() - -// Multi-channel, such as beta, adhoc versions -let zealot = Zealot(endpoint: "https://zealot.example.com", - channelKeys: [ - "beta": "xxxxxxx", - "test": "yyyyyyy"], - default_enviroment: "beta") - -// Active it -zealot.checkVersion() -``` - -```mdx-code-block - - -``` - -```objectivec -// Single channel -Zealot *zealot = [[Zealot alloc] initWithEndpoint:@"https://zealot.example.com" - channelKey:@"..."]; - -// Multi-channel, such as beta, adhoc versions -Zealot *zealot = [[Zealot alloc] initWithEndpoint:@"https://zealot.example.com" - channelKeys:@{ - @"beta": @"xxxxxxx", - @"gray": @"yyyyyyy" - } - default_enviroment:@"beta"]; - -// Active it -[zealot checkVersion]; -``` - -```mdx-code-block - - -``` diff --git a/versioned_docs/version-5.1/developer-guide/sidebars.js b/versioned_docs/version-5.1/developer-guide/sidebars.js deleted file mode 100644 index f0d9c244e..000000000 --- a/versioned_docs/version-5.1/developer-guide/sidebars.js +++ /dev/null @@ -1,47 +0,0 @@ -module.exports = [ - { - label: "Getting Started", - type: "doc", - id: 'developer-guide/index', - }, - { - collapsible: false, - label: "SDKs", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "developer-guide/sdk/ios", - "developer-guide/sdk/android" - ], - }, - { - collapsible: false, - label: "fastlane plugins", - type: "category", - link: { - type: 'doc', - id: 'developer-guide/fastlane', - }, - items: [ - "developer-guide/fastlane/zealot", - "developer-guide/fastlane/zealot_version_check", - "developer-guide/fastlane/zealot_debug_file", - "developer-guide/fastlane/zealot_sync_devices" - ], - }, - { - collapsible: false, - label: "APIs", - type: "category", - link: { - type: 'doc', - id: 'developer-guide/api', - }, - items: [ - "developer-guide/api/apps", - "developer-guide/api/debug_files", - ], - } -]; diff --git a/versioned_docs/version-5.1/self-hosted/configuration/environment-variables.md b/versioned_docs/version-5.1/self-hosted/configuration/environment-variables.md deleted file mode 100644 index d4ae174fb..000000000 --- a/versioned_docs/version-5.1/self-hosted/configuration/environment-variables.md +++ /dev/null @@ -1,150 +0,0 @@ -# Environment Variables - -## The .env File - -You can set the correct values as per the following options. Once you set the values, you should rename the file to `.env` before you start the server. - -## Configure HTTPS (SSL) - -**Due to Apple's mandatory requirement of mandatory HTTPS for online deployment and download services**, d -ownloading applications will be forced to go HTTPS protocol when redeploying. - -If the deployment is a standalone service on a single machine, it is recommended to enable Let's Encrypt free SSL certificate: - -```bash -ZEALOT_CERT_EMAIL=zealot@example.com -``` - -> The following self-signed certificate file name, can not be set at the same time - -If the deployed machine can only use self-signed certificates, they need to be configured, -but note that iOS downloads require the iOS device to authorize the self-signed certificate before the download and installation is allowed. (Not recommended) - -```bash -ZEALOT_CERT=zealot.example.com.pem -ZEALOT_CERT_KEY=zealot.example.com-key.pem -``` - -## Configure URL (Domain) - -Must be configured otherwise downloaded applications and some static resources will not be accessed correctly - -```bash -# No need http:// or https:// -ZEALOT_DOMAIN=zealot.example.com -``` - -## Database configuration - -If you have reusable postgresql and redis services, -you can also customize the configuration to use them instead of -using the services configured by default with docker-compose. - -### Postgresql - -```bash -ZEALOT_POSTGRES_HOST=127.0.0.1 -ZEALOT_POSTGRES_PORT=5432 -ZEALOT_POSTGRES_USERNAME=postgres -ZEALOT_POSTGRES_PASSWORD=ze@l0t -ZEALOT_POSTGRES_DB_NAME=zealot -``` - -### Redis - -This is a URL connection mainly for most cloud services compatibility - -```bash -REDIS_URL=redis://user:pass@127.0.0.1:6379/0 - -# Redis over SSL -REDIS_URL=rediss://user:pass@127.0.0.1:6379/0 -``` - -## Configure default language - -Packs | Value ----|--- -zh-CN | Simplified Chinese (default) -en | English - -```bash -DEFAULT_LOCALE=en -``` - -## Configure default appearance - -Appearance | Value ----|--- -light | Light mode(default) -dark | Dark mode -auto | System auto - -```bash -ZEALOT_APPEARANCE=dark -``` - -## Configure default Administer - -The default does not configure the following will also generate the following account and -password as an account with administrator privileges, it is recommended to change the password again after configuration. - -```bash -ZEALOT_ADMIN_EMAIL=admin@zealot.com -ZEALOT_ADMIN_PASSWORD=ze@l0t -``` - -## Enable new user registration - -After closing the registration, the administrator can add users manually through the user management in the administration panel. - -```bash -# Open registration -ZEALOT_REGISTER_ENABLED=true - -# Close registration -ZEALOT_REGISTER_ENABLED=false -``` - -## Enable guest mode - -Enable the visitor mode to allow the application to view, download and install, -it is recommended that the company internal reliance on permissions is not high condition to use, -specific permission comparison can [see here for details](/docs/user-guide/administrator/permissions) - -```bash -# Guest mode is ON -ZEALOT_GUEST_MODE=true - -# Guest mode is OFF -ZEALOT_GUEST_MODE=false -``` - -## Configure emails - -Currently, only `smtp` is supported to configure email notification service. -Email notification mainly affects are user registration, sending activation emails and -changing password service, but it does not affect the use if it is not turned on. - -```bash -# SMTP settings -SMTP_ADDRESS=smtp.gmail.com -SMTP_PORT=587 -SMTP_DOMAIN=gmail.com -SMTP_USERNAME=you@gmail.com -SMTP_PASSWORD=yourpassword -SMTP_AUTH_METHOD=plain -SMTP_ENABLE_STARTTLS_AUTO=true - -# Sender and email address by default -ACTION_MAILER_DEFAULT_FROM=you@gmail.com -ACTION_MAILER_DEFAULT_TO=you@gmail.com -``` - -## Disbale Cable request protection - -Experimental: - -```bash -ZEALOT_DISABLE_CABLE_REQUEST_PROTECTION=true -``` diff --git a/versioned_docs/version-5.1/self-hosted/configuration/schedule-jobs.md b/versioned_docs/version-5.1/self-hosted/configuration/schedule-jobs.md deleted file mode 100644 index 9b989d97d..000000000 --- a/versioned_docs/version-5.1/self-hosted/configuration/schedule-jobs.md +++ /dev/null @@ -1,55 +0,0 @@ -# Schedule Jobs - -## Clean old version builds - -A reliable logic for cleaning up old versions is to keep an eye on all uploaded -versions of the current master version, as observed by project maintainers over time. - -Previously uploaded historical versions only need to keep the last uploaded build -version basically to meet the vast majority of cases, for example: - -> Additional: the current logic is relatively trouble-free but inflexible, in fact, -> there is thought to support a variety of processing logic, see https://github.com/tryzealot/zealot/issues/376 - -``` -- 2.0 - - 3 - - 2 - - 1 -- 1.0.1 - - 10 - - 9 - - 8 - ... -- 1.0 - - 5 - - 4 - - 3 - ... -``` - -The task will clean up all versions up to version 1.0.1 containing 9 and version 1.0 containing 4, -leaving the final version file as follows: - -``` -- 2.0 - - 3 - - 2 - - 1 -- 1.0.1 - - 10 -- 1.0 - - 5 -``` - -If disk space is limited, you can enable cleanup of timed tasks by setting the environment variable `ZEALOT_KEEP_UPLOADS=false`. - -:::info - -`ZEALOT_KEEP_UPLOADS` set `true` by default. - -::: - -## Backup - -When you create any backup it will join itself to the schedule job list. diff --git a/versioned_docs/version-5.1/self-hosted/configuration/third-party-authentication.md b/versioned_docs/version-5.1/self-hosted/configuration/third-party-authentication.md deleted file mode 100644 index 4eafaed8b..000000000 --- a/versioned_docs/version-5.1/self-hosted/configuration/third-party-authentication.md +++ /dev/null @@ -1,109 +0,0 @@ -# Third-party Authentication - -Zealot supports authorized logins using supported third-party services, which can be currently configured via the following environment variables or in the settings page of the admin panel. - -Service | provider ----|--- -Feishu | `feishu` -Gitlab | `gitlab` -Google | `google_oauth2` -LDAP | `ldap` -OpenID Connect | `openid_connect` - -If the above services need to set the callback address please set it uniformly as follows - -``` -https://zealot.example.com/users/auth/:provider/callback -``` - -where `:provider` is the identifier of the above supported third-party service, for example: - -```bash -# if Google is enabled, then replace `:provider` with `google_oauth2`. -https://zealot.example.com/users/auth/google_oauth2/callback -``` - -## Gitlab - -1. Register a Gitlab [On line](http://gitlab.com) account or use self-host service -1. Create an application in Preferences -> Applications page. -1. Configure `Redirect URI` such like `https://zealot.example.com/users/auth/gitlab/callback` (replace the domain in your case) -1. Check scope: `read_user`,By default zealot only uses this license, if your enable scope is `api` that's fine too - -```bash -GITLAB_ENABLED=true -GITLAB_SITE=https://gitlab.com/api/v4 -GITLAB_SCOPE=read_user -GITLAB_APP_ID= -GITLAB_SECRET= -``` - -## Google - -1. Register a Google account -1. Enable [Google Cloud Platform](https://console.cloud.google.com/apis/dashboard) service -1. Choose or create a Project then go to Credentials page -1. Create OAuth Client ID with Web Application, and configure Authorized redirect URI such like `https://zealot.example.com/users/auth/google_oauth2/callback` (replace the domain in your case) - -```bash -GOOGLE_OAUTH_ENABLED=true -GOOGLE_CLIENT_ID= -GOOGLE_SECRET= -``` - -## Feishu (Lark) - -1. Register a feishu (lark) account and download the Phone app. -1. Enable [Open platform](https://open.feishu.cn/app/) and create application to get app_id, app_secret -1. Configure callback url such like `https://zealot.example.com/users/auth/feishu/callback` (replace the domain in your case) -1. Check user filed information scope: `email address` (Optional) -1. Create a version and publish - -```bash -FEISHU_ENABLED=true -FEISHU_APP_ID= -FEISHU_APP_SECRET= -``` - -## LDAP - -```bash -LDAP_ENABLED=true -LDAP_HOST=10.0.0.1 -LDAP_PORT=389 -LDAP_METHOD=plain -LDAP_BIND_DN="cn=Manager,dc=example,dc=com" -LDAP_PASSWORD=password -LDAP_BASE="ou=People,dc=example,dc=com" -LDAP_UID=uid -``` - -## OpenID Connect - -Supports both auto-discovery mode and manual settings. - -### Auto-discovery - -Turning on auto-discovery mode will automatically fetch the `[OIDC_ISSUER_URL]/.well-known/openid-configuration` configuration. - -```bash -OIDC_ENABLED=true -OIDC_CLIENT_ID= -OIDC_CLIENT_SECRET= -OIDC_ISSUER_URL=https://oidc.example.com -OIDC_DISCOVERY=true -``` - -### Manual - -``` -OIDC_ENABLED=true -OIDC_CLIENT_ID= -OIDC_CLIENT_SECRET= -OIDC_ISSUER_URL=https://oidc.example.com -OIDC_AUTH_URI=/authorize -OIDC_TOKEN_URI=/token -OIDC_USERINFO_URI=/userinfo -``` - -Above `OIDC_AUTH_URI`, `OIDC_TOKEN_URI`, `OIDC_USERINFO_URI` will use the default path as above if not set. diff --git a/versioned_docs/version-5.1/self-hosted/deployment/architecture.mdx b/versioned_docs/version-5.1/self-hosted/deployment/architecture.mdx deleted file mode 100644 index 9c7011272..000000000 --- a/versioned_docs/version-5.1/self-hosted/deployment/architecture.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_label: "Architecture" ---- - -# Zealot Architecture - -Running Zealot requires the following set of services. - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - - - -- Mostly Linux based on amd86/arm64/armv7. -- Ruby on Rails powered Web and API services -- Sidekiq provides asynchronous background task management -- PostgreSQL database -- Redis cache diff --git a/versioned_docs/version-5.1/self-hosted/deployment/docker.md b/versioned_docs/version-5.1/self-hosted/deployment/docker.md deleted file mode 100644 index 58b10336b..000000000 --- a/versioned_docs/version-5.1/self-hosted/deployment/docker.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -sidebar_label: "On-premise (Docker)" ---- - -# Deploy Zealot with Docker guide - -> :bell: Strongly recommended to deploy Zealot using [Docker](https://www.docker.io/), -> unless you are familiar with the technology stack for this service. -> The app protection policy settings for iOS/iPadOS devices, it needs a public network over SSL, -> free to use [Let's Encrypt](https://letsencrypt.org/). -> -> If you use a self-signed certificate you must [install the self-signed certificate](https://support.apple.com/en-us/HT204477) -> on each iOS device before installing any app. - -## Why support docker image only? - -Deploying a Rails-based application is incredibly complex, and even though you must install many dependenices, -and you still need to worry how to launch and make it as a daemon to run in the background. - -## Software requirements - -- Git 2.0+ -- Docker 20.10.0+ -- Docker Compose 1.28.0+ - -## Install on Docker - -In the principle of one-click installation, but reality is often harsh, -Zealot configuration is dependent on `ENV` environment variables, -you need to configure it and then execute the one-click deployment generation script. - -First you need to clone the [deployment script](https://github.com/tryzealot/zealot-docker.git), -After entering the `zealot-docker` directory, you need to open the `example.env` file to -configure the necessary parameters and then you can directly execute `./deploy.sh` script. - -> By default, the administrator account: `admin@zealot.com` and password `ze@l0t` (you can change it) -> and some demo applications will be generated. - -```bash -$ git clone https://github.com/tryzealot/zealot-docker.git -$ cd zealot-docker -$ ./deploy -``` - -The one-click deployment generation script has three built-in templates by default: - -- Using Let's Encrypt SSL -- Using Self-signed SSL -- Using non-SSL (needs gateway or reverse proxy to manage SSL) - -For those interested in one-click installation deployment scripts, -you can check out the [Deployment Documentation with Docker](/docs/self-hosted/deployment/docker/step-by-step). - -## SSL - -### Let's Encrypt - -> **Best Choice** - -**Step 1**: Execute the deployment script: - -```bash -$ ./deploy -``` - -**Step 2**: Check and configure the `.env` file, mainly whether `ZEALOT_DOMAIN` and `ZEALOT_CERT_EMAIL` are filled in correctly. -Other parts can be adjusted according to the actual situation of the corresponding configuration - -**Step 3**: Run the Zealot service: - -```bash -$ docker-compose up -d -``` - -### Reverse proxy controls SSL - -Check [Reverse Proxies Guide](/docs/self-hosted/reverse-proxies) page. - -### Self-signed untrust SSL - -> **Not recommended** - -Please do not use this for non-essential cases, for iOS using self-signed certificates -**may require the device to also have an SSL certificate installed before accessing and installing the application**, -and Chrome may also deny access due to the certificate. - -> If the domain name is unregistered, you need to tie the host to access it, -> usually by modifying the system's `/etc/hosts` file. - -```bash title="/etc/hosts" -$ sudo vim /etc/hosts - -# highlight-start -127.0.0.1 zealot.example.com -# highlight-end -``` diff --git a/versioned_docs/version-5.1/self-hosted/deployment/docker/step-by-step.md b/versioned_docs/version-5.1/self-hosted/deployment/docker/step-by-step.md deleted file mode 100644 index f5a58e8b1..000000000 --- a/versioned_docs/version-5.1/self-hosted/deployment/docker/step-by-step.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -sidebar_label: "Step by step" ---- - -# Docker deployment guide - -This is a handy guide to deploying with Docker, as well as a breakdown of the [on-premise deployment guide](/docs/self-hosted/deployment/docker). - -## Versions - -- Stable version - 5.2.3/latest - `ghcr.io/tryzealot/zealot:latest` -- Nightly version - develop - `ghcr.io/tryzealot/zealot:nightly` - Based on branch `develop` builds per commit. - -## Registry - -- Docker Container Registry: https://hub.docker.com/r/tryzealot/zealot/ -- Github Container Registry: https://github.com/tryzealot/zealot/pkgs/container/zealot (**Recommended**) - -## Step by Step - -### Install Docker - -Follows [official tutorial](https://get.docker.com/) to install docker. - -### Install Docker-Compose - -Follows [official tutorial](https://docs.docker.com/compose/install/) to install docker-compose. - -### Configure .env file - -Download a sample [config.env](https://github.com/tryzealot/zealot-docker/blob/master/config.env) file and customize it on your own. - -### Configure site domain - -The secondary verification will remind again if it is not configured - -### Configure SSL certificate - -Provides three ways to do this, even if the last one generates the https protocol header: - -- Using Let's Encrypt SSL -- Using Self-signed SSL -- Using non-SSL with Zealot service (needs gateway or reverse proxy to manage SSL) - -### Generate docker-compose.yml - -The configuration file will generate at least three services, using the first two certificates will add an additional service. - -- `zealot-zealot`: Use reverse-generation gateway services to deliver core Web and API services -- `zealot-postgres`: Database service -- `zealot-redis`: Cache service -- `zealot-web`: Provides a reverse proxy gateway service for (services and certificates), optional. - -### Create docker volumes for persistent storage - -Persistent storage Data: - -- `zealot-uploads`: Uploaded app file with extracted icon, uploaded debugging files. -- `zealot-backup`: backup files. -- `zealot-postgres`: Core database data. -- `zealot-redis`: Hot cache and background jobs data. - -### Pull images - -The first time you use it, you will initialize the database, -load the sample application data and set up the administrator account, -which is required for subsequent zealot updates. - -```bash -docker-compose pull -``` - -### Setup database data - -The first time you use it, you will initialize the database, load the sample application data -and set up the administrator account, which is required for subsequent zealot updates. - -```bash -docker-compose run --rm zealot run_upgrade -``` - -### Launch docker-compose - -Manual execution is required to run the service for security periods and user-defined operations: - -```bash -docker-compose up -d -``` - -## Advanced - -### Custom volumes - -You have two t - -There are two ways to customize the path: (Assuming that the custom path is `/data/zealot`) - -#### 1. Create custom docker volume - -```sh -docker volume create --name zealot-data \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/zealot-data - -docker volume create --name zealot-redis \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/redis - -docker volume create --name zealot-postgres \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/postgres -``` - -#### 2. Change volumes part of docker-compose file - -Open `docker-compose.yml` file and find `volumes:`: - -```yaml -volumes: - zealot-data: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/data - zealot-redis: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/redis - - zealot-postgres: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/postgres -``` - -## Complete example - -```yaml -version: "3.8" - -x-restart-policy: &restart_policy - restart: unless-stopped - -x-defaults: &defaults - <<: *restart_policy - image: ghcr.io/tryzealot/zealot:nightly - depends_on: - - redis - - postgres - env_file: .env - volumes: - - zealot-uploads:/app/public/uploads - - zealot-backup:/app/public/backup - - ./log:/app/log # Optional: persisting log files. - healthcheck: - test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost/health || exit 1"] - -services: - redis: - <<: *restart_policy - image: redis:7-alpine - command: redis-server - volumes: - - zealot-redis:/data - healthcheck: - test: ["CMD", "redis-cli", "ping"] - postgres: - <<: *restart_policy - image: postgres:14-alpine - volumes: - - zealot-postgres:/var/lib/postgresql/data - environment: - POSTGRES_PASSWORD: ze@l0t - healthcheck: - test: ["CMD", "pg_isready", "-U", "postgres"] - zealot: - <<: *defaults - # Port mapping can be enabled without the need for reverse proxy, - # mutually exclusive with the web reverse proxy service below. - ports: - - "80:80" - # Optional: Use a reverse proxy to host SSL certificates and services. - web: - image: caddy:2-alpine - ports: - - "80:80" - - "443:443" - volumes: - - ./caddy/etc/caddy/Caddyfile:/etc/caddy/Caddyfile:ro - - ./caddy/etc/caddy/certs:/etc/caddy/certs:ro - env_file: .env - environment: - ACME_AGREE: "true" - -# There are three methods of persistence: -volumes: - # 1. docker compose inside volumes - - zealot-uploads - - zealot-backup - - zealot-redis - - zealot-postgres - - # 2. docker compose external volumes - zealot-uploads: - external: true - zealot-backup: - external: true - zealot-redis: - external: true - zealot-postgres: - external: true - - # 3. mount local path - zealot-uploads: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/zealot/uploads - zealot-backup: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/zealot/backup - zealot-redis: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/redis - zealot-postgres: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/postgres -``` diff --git a/versioned_docs/version-5.1/self-hosted/deployment/fly.md b/versioned_docs/version-5.1/self-hosted/deployment/fly.md deleted file mode 100644 index eb8714448..000000000 --- a/versioned_docs/version-5.1/self-hosted/deployment/fly.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -sidebar_label: "Fly" ---- - -# Deploy Zealot to Fly guide - -Zealot support use App Configuration (fly.toml) to deploy on [fly.io](https://fly.io). - -## Deploying on Fly - -- Install [flyctl](https://fly.io/docs/flyctl/). -- Copy full content of [app configuration](#app-configuration) save to `fly.toml` then change the `app` value . -- Run `flyctl deploy`. -- Run `fly scale vm shared-cpu-1x --memory 512`. - -### App Configuration - -```toml -app = "[app-name:changeme]" -kill_signal = "SIGINT" -kill_timeout = 120 -processes = [] - -[build] - image = "ghcr.io/tryzealot/zealot:nightly" - -[experimental] - allowed_public_ports = [] - auto_rollback = true - -[[services]] - http_checks = [] - internal_port = 80 - processes = ["app"] - protocol = "tcp" - script_checks = [] - [services.concurrency] - hard_limit = 25 - soft_limit = 20 - type = "connections" - - [[services.ports]] - force_https = true - handlers = ["http"] - port = 80 - - [[services.ports]] - handlers = ["tls", "http"] - port = 443 - - [[services.tcp_checks]] - grace_period = "1s" - interval = "15s" - restart_limit = 0 - timeout = "2s" - -[[statics]] - guest_path = "/app/public" - url_prefix = "/" -``` diff --git a/versioned_docs/version-5.1/self-hosted/deployment/kubernetes.md b/versioned_docs/version-5.1/self-hosted/deployment/kubernetes.md deleted file mode 100644 index db00e95d8..000000000 --- a/versioned_docs/version-5.1/self-hosted/deployment/kubernetes.md +++ /dev/null @@ -1,197 +0,0 @@ ---- -sidebar_label: "Kubernetes" ---- - -# Deploy Zealot with Kubernetes guide - -Zealot support deployments using Kubernetes, but only `.yaml` config files are available currently. - -## Check list - -- `ConfigMap` and `Secret` to configure enviroment variables. -- `PersistentVolumeClaim` to configure `public/uploads`, `public/bakcup`. -- `Deployment` to control `zealot` pod. - -## Steps - -### 10-zealot-namespace.yml - -Zealot namespace. - -```yaml title="10-zealot-namespace.yml" -api Version: v1 -kind: Namespace -metadata: -name: zealot -``` - -### 20-zealot-secrets.yml - -Zealot enviroments secrets. This is loaded all secrets [enviroments](/docs/self-hosted/configuration/environment-variables), **all values need encryt by base64**. - -```yaml title="20-zealot-secrets.yml" -apiVersion: v1 -kind: Secret -metadata: - namespace: zealot - name: zealot-secrets -data: - ZEALOT_ADMIN_EMAIL: V1ZkU2RHRlhOVUZsYlZab1lrYzVNRXh0VG5aaVVUMDk= - ZEALOT_ADMIN_PASSWORD: emVAbDB0 - ZEALOT_POSTGRES_HOST: cG9zdGdyZXM= - ZEALOT_POSTGRES_PORT: NTQzMg== - ZEALOT_POSTGRES_USERNAME: emVhbG90 - ZEALOT_POSTGRES_PASSWORD: emVAbDB0 - ZEALOT_POSTGRES_DB_NAME: emVhbG90 - REDIS_URL: cmVkaXM6Ly9yZWRpczo2Mzc5LzE= - - # echo -n 'secret-key' | sha256sum | awk '{ printf $1 }' | base64 - SECRET_TOKEN: ODVkYmUxNWQ3NWVmOTMwOGM3YWUwZjMzYzdhMzI0Y2M2ZjRiZjUxOWEyZWQyZjMwMjdiZDMzYzE0MGE0ZjlhYQ== -``` - -### 21-zealot-configmap.yml - -Zealot enviroments config map. This is loaded safe [enviroments](/docs/self-hosted/configuration/environment-variables). - -```yaml title="21-zealot-configmap.yml" -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: zealot - name: zealot-config -data: - ZEALOT_DOMAIN: zealot.example.com - DEFAULT_LOCALE: en - ZEALOT_REGISTER_ENABLED: "true" -``` - -### 30-zealot-storage.yml - -The creation of the persistent volume claims for uploaded files (apps/debug files) and backup files. May you want to increase the size. This expects to have a storage class installed. - -```yaml title="30-zealot-storage.yml" -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: zealot-uploads - namespace: zealot - labels: - app: zealot -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: zealot-backup - namespace: zealot - labels: - app: zealot -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi -``` - -### 40-zealot-deployment.yml - -Create zealot deployment, edit `replicas` and `image` tag. - -```yaml title="40-zealot-deployment.yml" -apiVersion: apps/v1 -kind: Deployment -metadata: - name: zealot - namespace: zealot -spec: - restartPolicy: Always - replicas: 1 - selector: - matchLabels: - app: zealot - template: - metadata: - labels: - app: zealot - spec: - containers: - - name: zealot - image: ghcr.io/tryzealot/zealot:nightly - # imagePullPolicy: Always - ports: - - containerPort: 80 - protocol: TCP - name: http - envFrom: - - configMapRef: - name: zealot-env - - secretRef: - name: zealot-secrets - volumeMounts: - - mountPath: /app/public/uploads - name: uploads - - mountPath: /app/public/backup - name: backup - volumes: - - name: uploads - persistentVolumeClaim: - claimName: zealot-uploads - - name: backup - persistentVolumeClaim: - claimName: zealot-backup -``` - -### 50-zealot-service.yml - -Creating zealot service. - -```yaml title="50-zealot-service.yml" -apiVersion: v1 -kind: Service -metadata: - name: zealot - namespace: zealot - labels: - app: zealot -spec: - selector: - app: zealot - ports: - - port: 80 - targetPort: http - name: http - protocol: TCP -``` - -### 60-zealot-ingress.yml - -Setting up the ingress for the zealot service. - -```yaml title="50-zealot-ingress.yml" -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: zealot - namespace: zealot - annotations: - #cert-manager.io/cluster-issuer: letsencrypt-prod - #kubernetes.io/ingress.class: nginx -spec: - rules: - - host: zealot.example.com - http: - paths: - - web: - service: - name: zealot - port: - number: 80 - path: / - pathType: Prefix -``` diff --git a/versioned_docs/version-5.1/self-hosted/deployment/nomad.md b/versioned_docs/version-5.1/self-hosted/deployment/nomad.md deleted file mode 100644 index 7faf13363..000000000 --- a/versioned_docs/version-5.1/self-hosted/deployment/nomad.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -sidebar_label: "Nomad" ---- - -# Deploy Zealot with Nomad guide - -Zealot support deployments using [Nomad](https://www.nomadproject.io/), it use [HCL](https://developer.hashicorp.com/nomad/docs/job-specification/hcl2) language to configure. - -## Setup - -### Using Nomad - -First, follow the official tutorial to install [nomad](https://developer.hashicorp.com/nomad/docs/install), this binary file contains the client and server. It is recommended to follow the [tutorials](https://developer.hashicorp.com/nomad/tutorials/get-started) to walk through it if you don't know it. - -The following file will create the postgres, redis and zealot services. -For the existing external database and cache services, -you can delete the corresponding `port`, `service` and `task` and edit the template variables in the `zealot` task. - -```hcl title="zealot.nomad" -job "zealot" { - type = "service" - datacenters = "dc1" // modify - - update { - max_parallel = 1 - min_healthy_time = "30s" - auto_revert = true - } - - group "zealot" { - network { - port "zealot" { - to = 80 - } - - port "postgres" { - to = 5678 - } - - port "redis" { - to = 6379 - } - } - - service { - name = "zealot" - port = "zealot" - provider = "nomad" - - // Register to traefik - // tags = [ - // "traefik.enable=true", - // "traefik.http.routers.zealot.entrypoints=web, websecure", - // "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)", - // ] - } - - service { - name = "postgres" - port = "postgres" - provider = "nomad" - - // Register to traefik - // tags = [ - // "traefik.enable=true", - // "traefik.tcp.routers.postgres.rule=HostSNI(`*`)", - // "traefik.tcp.routers.postgres.entrypoints=postgres", - // ] - } - - service { - name = "redis" - port = "redis" - provider = "nomad" - - // Register to traefik - // tags = [ - // "traefik.enable=true", - // "traefik.tcp.routers.redis.rule=HostSNI(`*`)", - // "traefik.tcp.routers.redis.entrypoints=redis", - // ] - } - - task "zealot" { - driver = "docker" - - config { - image = "ghcr.io/tryzealot/zealot:latest" - ports = ["zealot"] - - // modify - volumes = [ - "/tmp/zealot/uploads:/app/public/uploads", - "/tmp/zealot/backups:/app/public/backups", - ] - - // Register to homepage dashboard - // labels = { - // "homepage.group" = "Dev" - // "homepage.name" = "Zealot" - // "homepage.icon" = "mdi-progress-download" - // "homepage.href" = "https://zealot.example.com" - // "homepage.description" = "Beta App Distribution" - // } - } - - // Zealot example config - // https://github.com/tryzealot/zealot-docker/blob/master/config.env - template { - destination = "local/config.env" - change_mode = "restart" - env = true - data = <<-EOF - ZEALOT_APPEARANCE = dark - ZEALOT_DOMAIN = zealot.example.com - - ZEALOT_GUEST_MODE = false - ZEALOT_REGISTER_ENABLED = true - EOF - } - - template { - destination = "secrets/secret.env" - change_mode = "restart" - env = true - data = <<-EOF - # admin account - ZEALOT_ADMIN_EMAIL = admin@zealot.com - ZEALOT_ADMIN_PASSWORD = ze@l0t - - # datbase - ZEALOT_POSTGRES_HOST = {{ env "NOMAD_IP_postgres" }} - ZEALOT_POSTGRES_PORT = {{ env "NOMAD_PORT_postgres" }} - ZEALOT_POSTGRES_USERNAME = "zealot" - ZEALOT_POSTGRES_PASSWORD = "zealot" - ZEALOT_POSTGRES_DB_NAME = "zealot" - - # cache - REDIS_URL = redis://{{ env "NOMAD_ARRR_redis" }}/0 - - # secret token - SECRET_TOKEN = $${ sha256(uuidv5("url", "zealot.ews.im")) } - EOF - } - - resources { - cpu = 500 - memory = 500 - memory_max = 1000 - } - } - - task "postgres" { - driver = "docker" - - lifecycle { - hook = "prestart" - sidecar = true - } - - config { - image = "postgres:15-alpine" - ports = ["postgres"] - volumes = [ - "secrets/init-role.sql:/init-role.sql", - "secrets/init-db.sql:/init-db.sql" - ] - } - - env { - POSTGRES_INITDB_ARGS = "--data-checksums" - POSTGRES_USER = "zealot" - POSTGRES_PASSWORD = "zealot" - POSTGRES_DB = "zealot" - } - - resources{ - cpu = 512 - memory = 200 - memory_max = 512 - } - } - - task "redis" { - driver = "docker" - - lifecycle { - hook = "prestart" - sidecar = true - } - - config { - image = "redis:7-alpine" - ports = ["redis"] - } - - resources { - cpu = 200 - memory = 200 - } - } - } -} -``` - -Save the file and execute the command `nomad job run zealot.nomad`. - -### Using Terraform - -> Both Terraform and Nomad are the same company. - -Following the offical tutorials to install [terraform](https://www.terraform.io/), [nomad plugin](https://registry.terraform.io/providers/hashicorp/nomad/), -copy the `zealot.nomad` in previous step and edit a new file named `main.tf`: - - -```hcl -resource "nomad_job" "jobs" { - jobspec = file("${path.module}/zealot.nomad") -} -``` - -Execute `terraform plan` to ensure, then deploy `terraform apply`. - -## External Storages - -Nomad supports multi-cluster management, and in many cases the storage deployed by the service cannot be mounted directly to the corresponding file system, but is more often placed on top of a shared file storage protocol, such as SMB, NFS, S3, etc. - -### CSI - -Nomad currently supports the [CSI](https://developer.hashicorp.com/nomad/tutorials/stateful-workloads/stateful-workloads-csi-volumes) in [a limited capability](https://github.com/democratic-csi/democratic-csi/blob/master/docs/nomad.md) (Nomad 1.5). -Nomad can utilize CSI volumes, but it can not automatically create, destroy, or manage them in any capacity. Volumes have to be created externally and then registered with Nomad. -You can find a list of plugins in the [Kubernetes CSI Developer Documentation](https://kubernetes-csi.github.io/docs/drivers.html). - -Plugin | Schemes | Compatible | terraform nomad resource ----|---|---|--- -[kubernetes-csi-driver-smb](https://github.com/kubernetes-csi/csi-driver-smb) | smb | Unknown | Unknown -[kubernetes-csi-driver-nfs](https://github.com/kubernetes-csi/csi-driver-nfs) | nfs | Supported | [nomad_csi_volume_registration](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume_registration) -[kubernetes-csi-driver-iscsi](https://github.com/kubernetes-csi/csi-driver-iscsi) | iscsi | Supported | Supported -[democraticcsi/democratic-csi](https://github.com/democratic-csi/democratic-csi) | smb/nfs/iscsi | Supported | [nomad_csi_volume](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume) -[rocketduck/csi-plugin-nfs](https://gitlab.com/rocketduck/csi-plugin-nfs) | nfs | Supported | [nomad_csi_volume](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume) diff --git a/versioned_docs/version-5.1/self-hosted/deployment/railway.md b/versioned_docs/version-5.1/self-hosted/deployment/railway.md deleted file mode 100644 index 74bbfae80..000000000 --- a/versioned_docs/version-5.1/self-hosted/deployment/railway.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -sidebar_label: "Railway" ---- - -# Deploy Zealot to Railway guide - -Zealot support use `Dockfile` to deploy on [Railway](https://railway.app/). - -## Deploying on Railway - -- Fork [Zealot](https://github.com/tryzealot/zealot/fork) project to your Github account. -- Create [New Project](https://railway.app/new) with "deploy from Github repo". -- Add [Enviroment](/docs/self-hosted/configuration/environment-variables) to Variables page. diff --git a/versioned_docs/version-5.1/self-hosted/deployment/render.md b/versioned_docs/version-5.1/self-hosted/deployment/render.md deleted file mode 100644 index 9dae672be..000000000 --- a/versioned_docs/version-5.1/self-hosted/deployment/render.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_label: "Render" ---- - -# Deploy Zealot to Render guide - -Zealot support a render [blueprint](https://render.com/docs/blueprint-spec) named `render.yaml` to deploy on [render.com](https://render.com/). - -## Deploying on Render - -* It uses the [Zealot Docker image](https://ghcr.io/tryzealot/zealot). -* It uses [Render Disks](https://render.com/docs/disks) for permanent SSD storage for uploaded files and content. -* It uses [PostgreSQL](https://render.com/docs/databases) as the backing database and [Redis](https://render.com/docs/redis) as cache service. - -### Install button - -[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/tryzealot/zealot) diff --git a/versioned_docs/version-5.1/self-hosted/deployment/requirements.md b/versioned_docs/version-5.1/self-hosted/deployment/requirements.md deleted file mode 100644 index 0abbdaacb..000000000 --- a/versioned_docs/version-5.1/self-hosted/deployment/requirements.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -sidebar_label: "Requirements" ---- - -# Zealot Self Hosted Requirements - -This page incldues useful information on the requirements that are needed to install and run Zealot on your servers. - -## Operating Systems - -Installation of Zealot is possible on most Linux environments, but not officially supported. - -## Hardware requirements - -### Architecture - -Zealot can now run on either x86_64(amd86) or arm64(armv8/arrch) or armv7 based mostly Linux OS, for example: Debian, Ubuntu, CentOS, Arch Linux, Armbian etc. - -### CPU - -CPU requirements are dependent on the usage and expected workload. Your workload is influenced by factors such as - but not limited to - how many apps and debug files are uploaded and parsed, how many apps are downloaded, how many web hooks are triggered, how often Apple developers sync test devices, and how much and how often backup schedule jobs are made. - -The following is the recommended minimum CPU hardware guidance for a handful of example Zealot conversation base sizes. - -- **1 cores** is the **required** minimum number of cores. - -### Memory - -Memory requirements are dependent on the usage and expected workload. Your workload is influenced by factors such as - but not limited to - how many apps and debug files are uploaded and parsed, how many apps are downloaded, how many web hooks are triggered, how often Apple developers sync test devices, and how much and how often backup schedule jobs are made. - -The following is the recommended minimum Memory hardware guidance for a handful of example Zealot conversation base sizes. - -- **512MB RAM** is the **required** minimum memory size. - -### Storage - -The necessary hard drive space largely depends on the size and number of apps and debug files uploaded, also include backup files. - -## Software requirements - -### Ruby versions - -- Ruby 3.0 and later is required. - -You must use the standard MRI implementation of Ruby. Zealot needs several Gems that have native extensions. - -### Node.js versions - -Zealot uses [esbuild](https://esbuild.github.io/) and [sass](https://sass-lang.com/) to compile frontend assets. - -We recommend Node 14.x or higher version, as it's faster. - -You can check which version you're running with `node -v`. If you're running a version older than `v8.0`, -you need to update it to a newer version. You can find instructions to install from community maintained packages or compile from source at the [Node.js website](https://nodejs.org/en/download/). - -## Database - -PostgreSQL is the only supported database. We don't have plans to support any other alternatives as of now. - -### PostgreSQL Requirements - -The server running PostgreSQL should have _at least_ 5-10 GB of storage -available, though the exact requirements depends on the usage on your Zealot Instance. - -We highly recommend using the latest stable PostgreSQL versions as these were used for development and testing. - -### Redis - -Redis stores the background task queue and various Zealot configurations cached. -The storage requirements for Redis are minimal, You can start with 50MB and scale up as required. - -Redis version 6.2 or higher version is recommended - -## Sidekiq - -Sidekiq processes the background jobs with a multi-threaded process. -This process starts with the entire Rails stack but it can grow over time due to memory leaks. -On a very active server the Sidekiq process can use 1GB+ of memory. - -## Supported web browsers - -:::tip - -We don't support running Zealot with JavaScript disabled in the browser. - -::: - -Zealot supports the following web browsers: - -- [x] [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/) -- [x] [Google Chrome](https://www.google.com/chrome/) -- [x] [Chromium](https://www.chromium.org/getting-involved/dev-channel) -- [x] [Apple Safari](https://www.apple.com/safari/) -- [x] [Microsoft Edge](https://www.microsoft.com/en-us/edge) diff --git a/versioned_docs/version-5.1/self-hosted/deployment/source-code.md b/versioned_docs/version-5.1/self-hosted/deployment/source-code.md deleted file mode 100644 index 2299a3be8..000000000 --- a/versioned_docs/version-5.1/self-hosted/deployment/source-code.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar_label: "Source code" ---- - -# Source code - -It had been rewrite to [Contributing Guide](/docs/contributing-guide). diff --git a/versioned_docs/version-5.1/self-hosted/index.md b/versioned_docs/version-5.1/self-hosted/index.md deleted file mode 100644 index 0d2011b45..000000000 --- a/versioned_docs/version-5.1/self-hosted/index.md +++ /dev/null @@ -1,14 +0,0 @@ -# Self-hosted Installation Guide - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -This guide will help you to install and setup a production ready Zealot. - - diff --git a/versioned_docs/version-5.1/self-hosted/reverse-proxies.mdx b/versioned_docs/version-5.1/self-hosted/reverse-proxies.mdx deleted file mode 100644 index 3c27641a9..000000000 --- a/versioned_docs/version-5.1/self-hosted/reverse-proxies.mdx +++ /dev/null @@ -1,278 +0,0 @@ -# Reverse Proxies - -To facilitate the unified management and distribution of SSL certificates, service expansion and access to off-the-shelf gateway services, -we provides several configurations for configuring reverse proxy services to the gateway. - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -## Prepare - -The following data needs to be prepared to configure the reverse proxy: - -Name | Sample value | Description ----|---|--- -Domain | zealot.example.com | -Reverse proxy service IP address | 172.16.56.1 | -Zealot IP address | 172.16.56.100 | Reverse Proxy can be accessed
Change to 127.0.0.1 Reverse Proxy and zealot with one host. -Zealot public port | 8901 | Reverse Proxy can be accessed -Zealot internal port | 80 | No need modify -Let's Encrypt Email address | your-email@example.com - -## Traefik - -[Traefik](https://doc.traefik.io/traefik/) is an open source reverse proxy and load balancing tool, -which provides a variety of Providers can achieve access to the reverse proxy and configure the SSL. - -### Configuration - -Regardless of the type of Provider used the core configuration items are the same and constitute the reverse proxy service configuration consists of three main components: discovery port number, -routing rules (including access port number, domain name binding and SSL) - -### Traefik service - -```mdx-code-block - - -``` - -```yaml -entryPoints: - web: - address: ":80" - - websecure: - address: ":443" - -certificatesResolvers: - letsencrypt: - acme: - email: your-email@example.com - storage: acme.json - httpChallenge: - entryPoint: web -``` - -```mdx-code-block - - -``` - -```toml -[entryPoints] - [entryPoints.web] - address = ":80" - - [entryPoints.websecure] - address = ":443" - -[certificatesResolvers.letsencrypt.acme] - email = "your-email@example.com" - storage = "acme.json" - [certificatesResolvers.letsencrypt.acme.httpChallenge] - # used during the challenge - entryPoint = "web" -``` - -```mdx-code-block - - -``` - -```bash ---entrypoints.web.address=:80 ---entrypoints.websecure.address=:443 - ---certificatesresolvers.letsencrypt.acme.email=your-email@example.com ---certificatesresolvers.letsencrypt.acme.storage=acme.json ---certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web -``` - -```mdx-code-block - - -``` - -### Docker - -Enable [Docker provider](https://doc.traefik.io/traefik/providers/docker/#configuration-examples) then edit the Docker Compose file: - -```yaml title="docker-compose.yml" -version: '3' -services: - zealot: - <<: *defaults - labels: - - "traefik.enable=true" - - "traefik.http.services.zealot.loadbalancer.server.port=80" - - "traefik.http.routers.zealot.service=zealot" - - "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)" - - "traefik.http.routers.zealot.tls=true" - - "traefik.http.routers.zealot.tls.certresolver=letsencrypt" - - "traefik.http.routers.zealot.tls.domains[0].main=icyleaf.dev" - - "traefik.http.routers.zealot.tls.domains[0].sans=zealot.example.com" - # Comment port, no need to public - # ports: - # - "8901:80" - network: - # Change the network what traefik service is - - traefik-services - -networks: - # Change the network what traefik service is - traefik-services: - external: true -``` - -Deployment with Docker is limited to Traefik and Zealot service are usually in the same OS system of the same machine, -cross-machine can not achieve communication, for cross-machine need to refer to the following two configuration options. - -### Consul - -Enable [Consul provider](https://doc.traefik.io/traefik/providers/consul/) or [Consul Catalog provider](https://doc.traefik.io/traefik/providers/consul-catalog/), add key-value below: - -```shell -consul kv put traefik/http/services/zealot/loadbalancer/server/port 5 -consul kv put traefik/http/routers/zealot/service zealot -consul kv put traefik/http/routers/zealot/rule 'Host(`zealot.example.com`)' -consul kv put traefik/http/routers/zealot/tls/certresolver letsencrypt -consul kv put traefik/http/routers/zealot/tls/domains/0/main icyleaf.dev -consul kv put traefik/http/routers/zealot/tls/domains/0/sans zealot.example.com -``` - -### Nomad - -Enable [Nomad provider](https://doc.traefik.io/traefik/providers/nomad/) and make sure Nomad version >= 1.3: - -```hcl title="zealot.nomad" -job "zealot" { - datacenters = ["dc1"] - type = "service" - - group "zealot" { - count = 1 - - network { - port "http"{ - static = 80 - } - } - - service { - name = "zealot-http" - provider = "nomad" - port = "http" - } - - task "server" { - driver = "docker" - config { - image = "ghcr.io/tryzealot/zealot:nightly" - ports = ["http"] - args = [ - - "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)", - - "traefik.http.routers.zealot.tls=true", - - "traefik.http.routers.zealot.tls.certresolver=letsencrypt", - - "traefik.http.routers.zealot.tls.domains[0].main=icyleaf.dev", - - "traefik.http.routers.zealot.tls.domains[0].sans=zealot.example.com" - ] - } - } - } -} -``` - -## Caddy 2 - -The configuration only needs to relate the ip part after `tls` and `proxy`: - -```nginx title="Caddyfile" -:443 - -log - -# Use Let's Encrypt service -tls your-email@example.com - -reverse_proxy 172.16.56.100:8901 -``` - -## Nginx - -The following is the general configuration, if not effects welcome to [file a issue](https://github.com/tryzealot/docs/issues/new): - -```nginx title="conf.d/zealot.conf" -upstream zealot { - zone upstreams 64K; - server 172.16.56.100:8901; - keepalive 32; -} - -map $http_upgrade $connection_upgrade { - default upgrade; - '' close; -} - -server { - listen 80; - listen [::]:80; - server_name zealot.example.com; - location /.well-known/acme-challenge/ { allow all; } - location / { return 301 https://$host$request_uri; } -} - -server { - listen 443 ssl http2; # Optional: http2 may needs install extension - listen [::]:443 ssl http2; - server_name zealot.example.com; - - ssl_certificate /etc/certs/zealot-cert.pem; - ssl_certificate_key /etc/certs/zealot.pem; - - # Optional - # ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA; - # ssl_session_timeout 5m; - # ssl_session_cache shared:SSL:1m; - # ssl_prefer_server_ciphers on; - - location / { - proxy_pass http://zealot; - proxy_redirect off; - - proxy_pass_header Authorization; - proxy_set_header Host $host; - # proxy_set_header X-Forwarded-Ssl on; # Optional - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - - client_max_body_size 0; - proxy_read_timeout 36000s; - } -} -``` - -And you need update max body size in `http` block. Recommended is 200MB, if it's a game, -50% more can be played to make a surplus according to the actual file size. - -```nginx title="nginx.conf" -http { - [...] - - client_max_body_size 200M; -} -``` diff --git a/versioned_docs/version-5.1/self-hosted/sidebars.js b/versioned_docs/version-5.1/self-hosted/sidebars.js deleted file mode 100644 index e0aa8f7e7..000000000 --- a/versioned_docs/version-5.1/self-hosted/sidebars.js +++ /dev/null @@ -1,71 +0,0 @@ -module.exports = [ - { - label: "Getting Started", - type: "doc", - id: 'self-hosted/index', - }, - { - collapsible: false, - label: "Deployment", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "self-hosted/deployment/architecture", - "self-hosted/deployment/requirements", - { - collapsible: true, - label: "Docker", - type: "category", - link: { - type: "doc", - id: "self-hosted/deployment/docker", - }, - items: [ - "self-hosted/deployment/docker/step-by-step", - ], - }, - "self-hosted/deployment/kubernetes", - "self-hosted/deployment/nomad", - "self-hosted/deployment/source-code" - ], - }, - { - type: 'doc', - label: "Reverse Proxies", - id: 'self-hosted/reverse-proxies', - }, - { - collapsible: false, - label: "Cloud Provider Guides", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "self-hosted/deployment/fly", - "self-hosted/deployment/railway", - "self-hosted/deployment/render" - ] - }, - { - collapsible: false, - label: "Configuration", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "self-hosted/configuration/environment-variables", - "self-hosted/configuration/third-party-authentication", - "self-hosted/configuration/schedule-jobs", - ], - }, - { - type: 'doc', - label: "Storage", - id: 'self-hosted/storage', - }, - -]; diff --git a/versioned_docs/version-5.1/self-hosted/storage.md b/versioned_docs/version-5.1/self-hosted/storage.md deleted file mode 100644 index e62e27d16..000000000 --- a/versioned_docs/version-5.1/self-hosted/storage.md +++ /dev/null @@ -1,27 +0,0 @@ -# Data storages - -Here is a list of all the data storages required by the Zealot service, -for those who are able to manually backup and restore data before better backup management tools are available. - -## Postgres - -This is used to store and manage all data related to Zealot, so it goes without saying. - -## Redis - -Currently only the sidekiq asynchronous task service is using it to store some task status and statistics. - -## File storage - -The Zealot service relies on postgresql, redis and some other disk storage for uploaded application and debug files. -It is currently stored in the filesystem in the `public/uploads` directory. - -- apps The directory for uploading applications -- debugs_files directory for uploading debug files - -## Backup storage - -The Zealot service currently supports command-generated backup data, which will contain -the database and binary packages of the uploaded apps and debug files. - -The backup data is currently stored in the file system in the `public/backup` directory. diff --git a/versioned_docs/version-5.1/user-guide/administrator/apple-team.mdx b/versioned_docs/version-5.1/user-guide/administrator/apple-team.mdx deleted file mode 100644 index 8313d8900..000000000 --- a/versioned_docs/version-5.1/user-guide/administrator/apple-team.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -sidebar_label: "Apple Team" ---- - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -# Apple Team (Developer) - -One of the biggest challenges in distributing Ad-Hoc signed applications for iOS is the need to -convey what a UDID is and how to obtain it to a large number of people who may not understand -these concepts. After obtaining the UDID, it then needs to be provided to the developer, -who must then re-sign the certificate, package it, and upload it for installation. - -Zealot can automatically obtain the UDID of Ad-Hoc applications. -Although the UDIDs are usually accompanied by device names during registration, -sometimes it is difficult to understand which device belongs to whom when presented with a -list of UDIDs. To solve this problem, Zealot has tried several solutions. In the early days, -the fastlane plugin zealotsyncdevice was used to synchronize the names and models of testing devices. -With the release of the AppStoreConnect API, Zealot can now completely automate the process, -greatly simplifying the registration process and allowing testing applications to display -recognizable and friendly device names. - - - -Although providing the UDID of a device confirms which applications can be installed, -providing a feature to register a testing device that has not been registered with any application -would greatly improve the efficiency of the team. This is the role of the Apple Developer feature. - - - -The initial feature introduction: https://github.com/tryzealot/zealot/issues/723. diff --git a/versioned_docs/version-5.1/user-guide/administrator/backup.mdx b/versioned_docs/version-5.1/user-guide/administrator/backup.mdx deleted file mode 100644 index 494b0e9f6..000000000 --- a/versioned_docs/version-5.1/user-guide/administrator/backup.mdx +++ /dev/null @@ -1,38 +0,0 @@ ---- -sidebar_label: "Backup" ---- - -# Backup Schedule - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Backup list - - - -## Backup detail - - - -## Create a backup - - diff --git a/versioned_docs/version-5.1/user-guide/administrator/monitoring/background-jobs.mdx b/versioned_docs/version-5.1/user-guide/administrator/monitoring/background-jobs.mdx deleted file mode 100644 index 418dc9c19..000000000 --- a/versioned_docs/version-5.1/user-guide/administrator/monitoring/background-jobs.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Background Jobs - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.1/user-guide/administrator/monitoring/database-analytics.mdx b/versioned_docs/version-5.1/user-guide/administrator/monitoring/database-analytics.mdx deleted file mode 100644 index a18a394cf..000000000 --- a/versioned_docs/version-5.1/user-guide/administrator/monitoring/database-analytics.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Database Analytics - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.1/user-guide/administrator/monitoring/logging.mdx b/versioned_docs/version-5.1/user-guide/administrator/monitoring/logging.mdx deleted file mode 100644 index 546d52ba0..000000000 --- a/versioned_docs/version-5.1/user-guide/administrator/monitoring/logging.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Logging - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.1/user-guide/administrator/monitoring/system-info.mdx b/versioned_docs/version-5.1/user-guide/administrator/monitoring/system-info.mdx deleted file mode 100644 index 31fe466a5..000000000 --- a/versioned_docs/version-5.1/user-guide/administrator/monitoring/system-info.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# System informations - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.1/user-guide/administrator/permissions.md b/versioned_docs/version-5.1/user-guide/administrator/permissions.md deleted file mode 100644 index 6212251f2..000000000 --- a/versioned_docs/version-5.1/user-guide/administrator/permissions.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -sidebar_label: "Permissions" ---- - -# User Permissions and roles - -Zealot offers four types of user permissions. - -- Guest -- User -- Developer -- Administrator - -## Comparison - -Action | Guest[On/Off] | User | Developer | Administrator ----|---|---|---|--- -`Dashboard`
View all data | ✓/✕ | ✓ | ✓ | ✓ -`App`
View app list | ✓/✕ | ✓ | ✓ | ✓ -`App`
View app scheme(s) and channel(s) detail | ✓/✕ | ✓ | ✓ | ✓ -`App`
View the build(release) of app | ✓/✓
Password Auth | ✓ | ✓ | ✓ -`App`
View webhook list | ✓/✕ | ✓ | ✓ | ✓ -`App`
Upload/Install/Download app | ✓ | ✓ | ✓ | ✓ -`App`
Create/Edit/Delete an app | | | ✓ | ✓ -`App`
Create/Edit/Delete a scheme/channel of app | | | ✓ | ✓ -`App`
Delete a given version of app | | | ✓ | ✓ -`App`
Test a webhook network connection | | | ✓ | ✓ -`App`
Enable/Disable webhook | | | ✓ | ✓ -`App`
Delete an app | | | ✓ | ✓ -`DebugFile`
View debug file list | ✓/✕ | ✓ | ✓ | ✓ -`DebugFile`
View debug file detail | ✓ | ✓ | ✓ | ✓ -`DebugFile`
Download debug file | ✓ | ✓ | ✓ | ✓ -`DebugFile`
Upload/Delete a debug file | | | ✓ | ✓ -`Teardown`
View teardown list | ✓/✕ | ✓ | ✓ | ✓ -`Teardown`
View teardown detail | ✓/✕ | ✓ | ✓ | ✓ -`Teardown`
Delete a teardown | | | ✓ | ✓ -`Admin`
View and manage users | | | | ✓ -`Admin`
View and manage webhooks | | | | ✓ -`Admin`
View and manage settings | | | | ✓ -`Admin`
View system informations | | | | ✓ -`Admin`
View and manage background jobs| | | | ✓ -`Admin`
View page analytices | | | | ✓ diff --git a/versioned_docs/version-5.1/user-guide/administrator/settings.mdx b/versioned_docs/version-5.1/user-guide/administrator/settings.mdx deleted file mode 100644 index 295e1e1e8..000000000 --- a/versioned_docs/version-5.1/user-guide/administrator/settings.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Settings - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.1/user-guide/apps/create.mdx b/versioned_docs/version-5.1/user-guide/apps/create.mdx deleted file mode 100644 index c3f4a3145..000000000 --- a/versioned_docs/version-5.1/user-guide/apps/create.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Create an App - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.1/user-guide/apps/detail.mdx b/versioned_docs/version-5.1/user-guide/apps/detail.mdx deleted file mode 100644 index 5beb87eb5..000000000 --- a/versioned_docs/version-5.1/user-guide/apps/detail.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Uploaded releases - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.1/user-guide/apps/index.mdx b/versioned_docs/version-5.1/user-guide/apps/index.mdx deleted file mode 100644 index 7684fd980..000000000 --- a/versioned_docs/version-5.1/user-guide/apps/index.mdx +++ /dev/null @@ -1,54 +0,0 @@ -# Manage apps - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Apps list - - - -## Edit app - - - -## Create a new scheme - - - -## Create a new channel - - - -## Edit channel - - diff --git a/versioned_docs/version-5.1/user-guide/apps/upload.mdx b/versioned_docs/version-5.1/user-guide/apps/upload.mdx deleted file mode 100644 index cf2828c8a..000000000 --- a/versioned_docs/version-5.1/user-guide/apps/upload.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Uploaded a release - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.1/user-guide/best_practices.md b/versioned_docs/version-5.1/user-guide/best_practices.md deleted file mode 100644 index b508db09f..000000000 --- a/versioned_docs/version-5.1/user-guide/best_practices.md +++ /dev/null @@ -1,73 +0,0 @@ -# Best Practices - -## Workflow - -### iOS and Android Apps - -#### Zealot SDKs - -Integration with the Zealot SDK allows non-client development to automatically trigger new version checks, view change logs, and install functionality. - -#### Install fastlane - -In addition to the fastlane-plugin-zealot plugin, which is required to upload applications and debug files, -it is highly recommended to install the following plug-ins in addition to fastlane. - -- [ci_changelog](https://github.com/icyleaf/fastlane-plugin-ci_changelog) | Support for multiple CI systems to automatically generate change history -- [update_jenkins_build](https://github.com/icyleaf/fastlane-plugin-update_jenkins_build) | Automatically Update Jenkins Build Description -- [humanable_build_number](https://github.com/icyleaf/fastlane-plugin-humanable_build_number) | Generate a build version number that is recognizable to development -- [app_info](https://github.com/icyleaf/fastlane-plugin-app_info) | View metadata about the application after successful packaging -- [ram_disk](https://github.com/icyleaf/fastlane-plugin-ram_disk) | Create in-memory virtual disks, mainly used to improve App build speed (consider if memory is large) -- [debug_file](https://github.com/icyleaf/fastlane-plugin-debug_file) | Automated search for iOS/macOS dSYM or Android Proguard (obfuscation) and packaging of Zip files - -```ruby -# Build and upload ipa to zealot service -lane :upload_app do - # Building the package file, using gym in iOS, gradle in Android - gym - - # Uploading to Zealot - zealot( - endpoint: '...', - token: '...', - channel_key: '...' - ) - - # Uploading dSYM file to Zealot - zealot_debug_file( - scheme: 'AppName' - ) -end - -# Build android package file and generate progguard then upload to zealot service -lane :upload_debug_file do - # Building the package file, using gym in iOS, gradle in Android - gradle - - # Automated search for iOS/macOS dSYM or Android Proguard (obfuscation) and packaging of Zip files - debug_file - - # Uploading to Zealot - zealot( - endpoint: '...', - token: '...', - channel_key: '...' - ) - - # Uploading Proguard file to Zealot - zealot_debug_file( - build_type: 'release', - flavor: 'googleplay' - ) -end -``` - -### CI/CD Service - -For example, Jenkins, configure the project, set up the git hook to trigger packaging, nothing to say - -### Zealot Service - -In addition to managing each uploaded application and debug file, each time an uploaded application is received, -a configured web hook is triggered to send a notification to the third-party service that a new version has been received, -and for mobile clients that integrate with the Zealot SDK, they will receive a new version installation alert each time they open the app for the first time. diff --git a/versioned_docs/version-5.1/user-guide/changelog.md b/versioned_docs/version-5.1/user-guide/changelog.md deleted file mode 100644 index 7192fec10..000000000 --- a/versioned_docs/version-5.1/user-guide/changelog.md +++ /dev/null @@ -1,565 +0,0 @@ -# Changelog - -## 5.1.0 (2023-12-07) - -Mainly functional fixes, with minor upgrades to new features. Full [commit changes][5.0.0]. - -#### Changed - -- `Docker` **Major Change** The minimum version of Redis dependencies has been updated from 5.x to 6.2+. It is recommended to use version 7.x. When upgrading, please manually modify the settings. - -#### Added -- `Docker` added Redis and PostgreSQL version checks; running below minimum versions may cause malfunction. -- `Docker` service initializes by creating databases during startup. -- `Web` enhanced validation conditions for JSON format settings on the settings page. - -#### Fixed - -- `Web` checks disk space upon upload to determine file existence. -- `Web` fixed debug file association with application versions. -- `Web` resolved issue where the application unpack details page wasn't displaying the list of testing devices. -- `Web` optimized display information on error pages for application versions. -- `Web` improved display for long package names of mobile device applications. -- `Web` optimized some page styles and the display of English language. -- `API/Web` fixed issue where the Android app parsing icon in webp format failed to convert to png. -- `API` resolved GraphQL user authentication. - -## 5.0.0 (2023-09-06) - -Any archived package of application supportted (e.g. `Windows` or `Linux`)). Full [commit changes][5.0.0]. - -#### Changed - -- `Docker` **Major Change** The minimum version of Redis dependencies has been updated from 5.x to 6.2+. It is recommended to use version 7.x. When upgrading, please manually modify the settings. - -#### Added - -- `Web`/`API` supports hosting of general applications (those that can be parsed automatically and those that cannot be parsed are skipped), and Windows and Linux platforms are added by default [#1121](https://github.com/tryzealot/zealot/pull/1121) -- `Web`/`API` adds support for hosting Windows applications (uploading and displaying metadata parsing) [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` has a new debugging file page and adds support for parsing and hosting multiple dSYM debugging files [#1127](https://github.com/tryzealot/zealot/pull/1127) [#1124](https://github.com/tryzealot/zealot/pull/1124) [#961](https://github.com/tryzealot/zealot/issues/961) -- `Web` supports unpacking v1, v2, and v3 signature information for Android applications [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` strengthens X509 certificate information for unpacking Android and iOS applications [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` adds a "Reparse" function to update the metadata of old structure debugging files -- `Web` supports markdown format for change logs of uploaded application versions -- `Web` settings page can configure the global "minimum number of items returned per page" and "maximum number of items" -- `Web` for iOS applications, the application version details page displays the expiration time information of the signing certificate and the logical restriction of installation failure due to expired signing certificate (can be downloaded) -- `Web` adds or updates JSON format verification to network hooks and settings pages. -- `Web` supports registering test devices to Apple developers with custom device names and editing/updating device names after creation. -- `Web` supports downloading private key certificates for Apple developers. - -#### Fixed - -- `Web` fixes the issue of being unable to delete unpacked applications -- `Web` optimizes the style of some pages -- `Web` corrects errors in the English language package (en language i18n) -- `Web` fixes the error page that appears when creating an empty application type -- `Web` fixes the 404 error page that appears when a file is not found. -- `API` fixes the logic optimization of comparing build_version for retrieving the latest version of an application. -- `Web` optimizes the error handling for custom field format during application upload. -- `Web` optimizes the correct redirection for URL injection, empty application history versions, and unregistered devices. -- `Web` optimizes the display of error information for backup tasks. -- `Web` adds type detection for application types and debug files during application upload. -- `Web` fixes the error message of not preselecting the creation of a Distribution Certificate for Apple developers. - -## 4.7.1 (2023-03-10) - -Support for parsing aab applications generated by the latest Android aapt2 build tool, full [commit changes][4.7.1]. - -#### Changed - -- `Docker` **Major Change** The minimum version of Redis dependencies has been updated from 5.x to 6.2+. It is recommended to use version 7.x. When upgrading, please manually modify the settings. - -#### Fixed - -- `Web` upgrades to the latest appt2 model to avoid exceptions when parsing aab files. -- `Web` implements duplicate processing for parsing exceptions. - -#### Added - -- `Web` adds application types to the details page of unpacked Android applications. -- `Web` adjusts the original page after editing an application channel. - -## 4.7.0 (2023-03-03) - -**Major Change** The minimum version of Redis dependencies has been updated from 5.x to 6.2+. Full [commit changes][4.7.0]. - -#### Changed - -- `Docker` **Major Change** The minimum version of Redis dependencies has been updated from 5.x to 6.2+. It is recommended to use version 7.x. When upgrading, please manually modify the settings. - -#### Added - -- `Web` adds a control switch for "New Upload Version Prompt Window" to application types. [#1058](https://github.com/tryzealot/zealot/pull/1058) Thanks to [softwind0214](https://github.com/softwind0214) -- `Web` allows clicking on the application icon on the application list page to jump to the application details page. -- `Web` adds the display of the version number of dependent services to the environment information. -- `Web` adds support for displaying nightly build versions in the version number. - -#### Fixed - -- `Web` downgrades Ruby version to 3.0 temporarily to solve the iOS application parsing crash caused by the high version. See [#1070](https://github.com/tryzealot/zealot/issues/1070) for details. -- `Web` fixes the display order of applications/types/channels, which is now fixed as ascending order of creation time. -- `Web` fixes the issue where there is no confirmation prompt when a user logs out. -- `Web` fixes the issue where the main historical version of an application cannot be deleted. -- `Web` improves the style of multiple pages. -- `Web` no longer displays Javascript debugger logs in production environments. - -## 4.6.0 (2023-01-17) - -The runtime environment has been upgraded to Ruby 3.2 and now supports arm64 platforms. Full [commit changes][4.6.0]. - -#### Fixed - -- `Web` captures the issue of creating an application channel with an empty name. [#968](https://github.com/tryzealot/zealot/issues/968) Thanks to [congpeijun](https://github.com/congpeijun) -- `Web` improves the logic for backup files that do not exist on disk. [#995](https://github.com/tryzealot/zealot/issues/995) - -#### Added - -- `Docker` supports arm64/v8 and armv7 arch. [#970](https://github.com/tryzealot/zealot/pull/970) -- `Web` Adopted a new 50x error page. - -#### Changed - -- `Web` upgrades the Ruby version to 3.2 in development environments, and devcontainers and containers now have the YJIT feature enabled by default. [#1011](https://github.com/tryzealot/zealot/pull/1011) -- `API` updates the data structure of the debug file return and changes the status code from 204 to 200. - -## 4.5.3 (2022-11-22) - -Full [commit changes][4.5.3]. - -#### Fixed - -- `Web` Fixes the issue where third-party login cannot be redirected. [#949](https://github.com/tryzealot/zealot/issues/949) Thanks to [softwind0214](https://github.com/softwind0214) - -#### Added - -- `Docker` Adds a new environment variable to disable the request protection of WebSocket (ActionCable) requests (experimental). [#950](https://github.com/tryzealot/zealot/pull/950) - -## 4.5.2 (2022-11-01) - -Full [commit changes][4.5.2]. - -#### Fixed - -- `Web` fixes the issue where registering a test device is abnormal. [#935](https://github.com/tryzealot/zealot/issues/935) Thanks to [ycy0430](https://github.com/ycy0430) -- `Web` adapts the QR code to support dark mode. -- `Web` corrects the English language pack. - -#### Added - -- `WebHook` Income webhook body structure adds the `username` and `email` fields. [#934](https://github.com/tryzealot/zealot/issues/934) Thanks to [rkonfj](https://github.com/rkonfj) -- `Docker` The `SIDEKIQ_CONCURRENCY` environment variable is now supported to set the concurrency of background tasks, with a default value of 5. - -#### Changed - -- `Docker` reduces security risks by changing the Web service, which includes puma and pumacontrolserver, to listen on `127.0.0.1`. -- `Web` optimizes the wording of the iOS device UDID profile. -- `Web` updates the text at the bottom of the page. Thanks to Rails and the AdminLTE open source project! - -## 4.5.1 (2022-09-14) - -Full [commit changes][4.5.1] - -#### Fixed - -- `Web` Fixes the issue where the application unpacking results in parsing errors. - -## 4.5.0 (2022-08-19) - -Supports the 🌑 dark mode and managing the test devices of an 👨🏻‍🔧 Apple developer account! Full [commit changes][4.5.0]. - -#### Added - -- `Web` supports dark mode. [#816](https://github.com/tryzealot/zealot/pull/816) -- `Web` adds Apple developer management for registering test devices. [#817](https://github.com/tryzealot/zealot/pull/817) -- `Web` adds data backup management. [#835](https://github.com/tryzealot/zealot/pull/835) -- `Web` completes the monitoring of dependent services in the management panel. [#586](https://github.com/tryzealot/zealot/issues/586) -- `API` adds three fields, `platform`, `device_type`, and `custom_fields`, to the release dictionary. - -#### Changed - -- `Web` **Incompatible change** Google Analytics forces an upgrade to version 4, and previous settings need to be reconfigured to take effect. [#815](https://github.com/tryzealot/zealot/pull/815) -- `CLI` **Incompatible change** The data backup and restore functionality is no longer available due to changes in the structure. Please use the data backup function in the admin panel instead. -- `Web` adjusts the display of device UDID acquisition, iOS version installation and download based on the device, no longer displaying all functions. -- `Web` removes the page statistics function in the admin panel. [#814](https://github.com/tryzealot/zealot/pull/814) -- `Web` migrates the front-end technology stack from webpacker to esbuild + sass, and from Turbolinks to Stimulus, bringing a better front-end interaction experience. [#829](https://github.com/tryzealot/zealot/pull/829) -- `Web` due to the complexity of editing application types and channels, only the application name can be modified. - -#### Fixed - -- `Web` fixes the error of selecting a channel that does not exist under an application type. [#795](https://github.com/tryzealot/zealot/issues/795) Thanks to [tasselsd](https://github.com/tasselsd) -- `API` fixes the Android address return error. [#813](https://github.com/tryzealot/zealot/issues/813) Thanks to [denymz](https://github.com/denymz) -- `Web`/`API` fixes the exception caused by some parameters being empty in aab parsing. [tryzealot/fastlane-plugin-zealot#9](https://github.com/tryzealot/fastlane-plugin-zealot/issues/9) Thanks to [tasselsd](https://github.com/tasselsd) -- `Web` fixes the issue of abnormal generation of demo data during the first initialization of the project. [#821](https://github.com/tryzealot/zealot/issues/821) -- `API` fixes the issue of abnormal data when checking the latest version of the application. [#856](https://github.com/tryzealot/zealot/issues/856) Thanks to [denymz](https://github.com/denymz) -- `Web` fixes the issue of an error being thrown due to abnormal data in the associated network hook when viewing the details of an application channel. -- `Web` corrects many spelling errors in the English language pack. - -## 4.4.1 (2022-06-20) - -Full [commit changes][4.4.1] - -#### Fixed - -- `WebHook` fixes the issue where an error is thrown after a successful trigger. [#792](https://github.com/tryzealot/zealot/issues/792) Thanks to [tasselsd](https://github.com/tasselsd) -- `Docker` compatible with Caddy 2.5.0 for proxying from https to http. [#790](https://github.com/tryzealot/zealot/pull/790) Thanks to [VisionBao](https://github.com/VisionBao) [songge1209](https://github.com/songge1209) - -## 4.4.0 (2022-06-09) - -Full [commit changes][4.4.0]. - -#### Changed - -- `Web` adds filtering by version, branch, and packaging type to the list display for users who are not logged in and have not enabled guest mode, in addition to viewing application version details. -- `Web` upgrades the runtime environment to Ruby 3.0 and the service framework to Rails 7.0. -- `Web` is now compatible with the macOS M1 chip. - -#### Added - -- `Web` simplifies and standardizes some application links to facilitate sharing. [#666](https://github.com/tryzealot/zealot/pull/666) -- `Web` completes some missing permission check pages. - -#### Fixed - -- `Job` fixes the issue of abnormal URL Schemes when parsing iOS files. -- `Web` fixes the issue where service logs are not output to the terminal console. -- `Web` adds exception handling for processing debug files uploaded when they are deleted during parsing or cannot be found for other reasons. -- `Web` adapts the UI for ultra-wide screens. -- `Web` fixes security vulnerabilities in third-party login dependencies. -- `API` fixes the issue where uploading Android without channel_key results in an exception. [#779](https://github.com/tryzealot/zealot/issues/779) Thanks to [likfe](https://github.com/likfe) - -## 4.3.1 (2021-12-22) - -Full [commit changes][4.3.1]. - -#### Added - -- `Web` after updating the setting, the original default value can be restored. -- `Web` supports parsing and displaying app links (distinguishing between deep links and URL schemes) for Android in application unpacking. -- `Web` strengthens the visual effect of the open and closed status of the setting page. - -#### Fixed - -- `Web` fixes the issue of asynchronous task methods in demo mode. -- `Web` fixes the issue where selected application types and channels cannot be checked when creating and editing an application. -- `Web` fixes the issue where it is not possible to navigate to the environment page. -- `Web` fixes the issue where aab parsing fails when there are no intent filters. -- `Web` adds error handling for unchecking all application types and channels when updating an application. -- `Web` fixes the issue where the loading strategy causes all third-party logins to be unavailable. - -## 4.3.0 (2021-12-08) - -Supports parsing of the aab format, adds support for multiple languages. Full [commit changes][4.3.0] - -#### Changed - -- `Web` uses the default prompt structure as the data structure for network hooks, instead of a strange structure. -- `Web` no longer provides parameter changes for third-party login authorization on the settings page (requires service restart). -- `API` the upload application interface and version details return the `text_changelog` field in the response body. [650f1ffd](https://github.com/tryzealot/zealot/commit/650f1ffd3731f6a1f4cc703430be1b1b6f5d1cee) -- `API` renames the `changelog_list` field in the response body to `changelog`. [719f0b1e](https://github.com/tryzealot/zealot/commit/719f0b1eff92f358d246ededd6c1e6f9863f7f85) -- `Web` changes the log output format from an array to text format that is compatible with Markdown lists. [719f0b1e](https://github.com/tryzealot/zealot/commit/719f0b1eff92f358d246ededd6c1e6f9863f7f85) -- `Web` some privacy-related configuration keys or tokens are only displayed in plaintext under administrator permissions; other permissions cannot see them; demo mode is read-only and will do some encryption. [#644](https://github.com/tryzealot/zealot/pull/644) -- `Web` does not display the build date and hash value if they cannot be obtained. - -#### Added - -- `Web` supports parsing of the Android App Bundle (aab) file format and webp icons. -- `Web` supports language internationalization, with optional language packs: Simplified Chinese, English (support for page configuration). -- `Web` supports configuring more system settings. [#643](https://github.com/tryzealot/zealot/pull/643) -- `Web` adds editing functionality for network hooks in the management panel. -- `Web` rewrites and optimizes the style layout of the application list. -- `Web` optimizes the basic email template. -- `Web` adjusts the style and error logic of the login window. -- `Web` adds file permission checking to the environment variable page in the management panel. [#608](https://github.com/tryzealot/zealot/pull/608) -- `Web` adds error details display for asynchronous tasks in the management panel, with a maximum of 5000 errors. -- `Web` uses a better log output format. [#646](https://github.com/tryzealot/zealot/pull/646) - -#### Fixed - -- `Web` fixes the issue where the default selection state of boolean type parameters is incorrect on the settings page. -- `Web` fixes the issue where exceptions occur when clicking install or download in the DingTalk app (changed to WeChat logic processing). -- `Web` fixes the issue where the build date (time stamp when building a Docker image) cannot be displayed on the environment page. -- `Web` fixes the issue where the domain scope of asynchronous notifications does not take effect. -- `Web` fixes the issue of exception when getting gems. -- `Web` fixes the issue of abnormal judgment of the expiration time of iOS certificates. -- `Web` fixes the issue where disk space cannot be obtained when developing with a virtual machine mounted. -- `Web` fixes some known errors in demo mode. - -## 4.2.2 (2021-10-15) - -Full [commit changes][4.2.2]. - -#### Fixed - -- `API` fixes the issue where incorrect error messages were not output due to parameter mismatches caused by batch replacements. [#615](https://github.com/tryzealot/zealot/issues/615) Thanks to [gin7758258](https://github.com/gin7758258) -- `Web` fixes the issue of abnormal parsing of some apk Android files. [#587](https://github.com/tryzealot/zealot/pull/529) - -## 4.2.1 (2021-09-14) - -Full [commit changes][4.2.1]. - -#### Changed - -- `Web` application icons are no longer cropped to the preset size, and image processing dependencies have been removed, reducing the Docker image size by nearly 200MB. -- `Docker` the reverse proxy service Caddy no longer outputs logs to STDOUT but directly to files. - -#### Fixed - -- `Web` fixes the issue where icons are not displayed correctly after uploading an application. -- `Web` is compatible with different dSYM zip extraction logics when uploading. -- `Web` fixes the issue where the application icon is not displayed when installing iOS applications. -- `Web` fixes a security vulnerability by disabling the editing of read-only system settings. -- `Web` fixes the issue where the downloaded file suffix is not correct on macOS. -- `Web` fixes the issue where the window showing that an installation is not possible does not pop up in some cases. - -## 4.2.0 (2021-09-01) - -Full [commit changes][4.2.0]. - -#### Changed - -- `Web` changes the default logic for cleaning up old versions to off. To enable, set the environment variable `ZEALOT_KEEP_UPLOADS=false`. [#570](https://github.com/tryzealot/zealot/pull/570) -- `Web` renames File Parsing to Application Unpacking. [#529](https://github.com/tryzealot/zealot/pull/529) -- `Web` removes support for unpacking previously uploaded applications in the application unpacking feature. (now all uploaded applications will automatically trigger additional application unpacking) -- `API` supports fontawesome css values for custom field icons when uploading applications, such as the value `fas fa-flag` for [flag](https://fontawesome.com/v5.15/icons/flag?style=solid). -- `Docker` changes the image to use caddy as a reverse proxy and modifies the volume persistence. Migration is required, see [#540](https://github.com/tryzealot/zealot/pull/540) for details. - -#### Added - -- `Web` supports uploading, parsing, and downloading macOS applications. [#562](https://github.com/tryzealot/zealot/pull/562) -- `Web` adds quick filtering options for application types and channels for mobile devices on the channel details page. [#510](https://github.com/tryzealot/zealot/issues/510) Thanks to [huacnlee](https://github.com/huacnlee) -- `Web` allows the administrator panel to configure application type templates and default registration user permissions. [#562](https://github.com/tryzealot/zealot/pull/562) [#568](https://github.com/tryzealot/zealot/pull/568) -- `Web` partially encrypts environment variables that involve privacy. -- `Web` adds graphical displays for memory and disk usage. -- `Docker` adds support for synchronizing updates with [Github Container Registry](https://github.com/tryzealot/zealot/pkgs/container/zealot) images. -- `Docker` adds support for configuring the postgres port number with environment variables. - -#### Fixed - -- `Web` fixes the issue where the iOS installation button cannot be displayed on iPad and M1 chip macOS. [#519](https://github.com/tryzealot/zealot/issues/519) Thanks to [ohdarling](https://github.com/ohdarling) -- `Web` fixes the issue where using third-party login while registering but not verifying email fails. [#517](https://github.com/tryzealot/zealot/issues/517) Thanks to [huacnlee](https://github.com/huacnlee) -- `Web` fixes the issue where uploading an application through the website does not trigger application unpacking. -- `Web` fixes the issue where the left navigation style is misaligned when tubrolink is enabled. -- `Web` displays the unpacking link when uploading Android applications. -- `Web` optimizes the display prompt for empty unpacking file lists. -- `Web` fixes the issue where LDAP parameters are obtained incorrectly. [#541](https://github.com/tryzealot/zealot/pull/542) Thanks to [Martwu](https://github.com/Martwu) -- `Web` changes the error message for capturing application upload errors to a readable format. -- `Web` fixes the issue where the application type creation error judgment is abnormal. -- `Web` adds an exception judgment for clicking the details page when all channels of an application are deleted. -- `Web` fixes the issue where uploading applications causes variable release errors in the parsing process. -- `Web` fixes the issue where an error occurs when verifying password protection for an application. [#564](https://github.com/tryzealot/zealot/issues/564) Thanks to [EasierLu](https://github.com/EasierLu) -- `Web` fixes the issue where editing user information in the administrator panel causes an error. [#564](https://github.com/tryzealot/zealot/issues/564) Thanks to [EasierLu](https://github.com/EasierLu) -- `Web` fixes the issue where the "Install" button on the application details page is displayed abnormally on incorrect systems and devices (normally only iOS applications are displayed on iOS and macOS devices). -- `Web` optimizes the unpacking of applications for developer certificates that fail to parse due to special character sets (currently known to be Chinese encoding) and UI layout adjustments. -- `Web` fixes the issue where the current user cannot be edited. -- `Web` corrects the duplicate title of debug files. -- `Docker` fixes the logrotate error during image initialization. -- `Docker` fixes the issue where Caddy deployment needs to be confirmed. [#551](https://github.com/tryzealot/zealot/issues/551) Thanks to [ReverseScale](https://github.com/ReverseScale) - -## 4.1.0 (2021-07-17) - -Full [commit changes][4.1.0]. - -#### Changed - -- `Web` changes the display logic for obtaining device UDID due to the similarity of iPad's User-Agent and Desktop. -- `Docker` sets Gihub Container Registry (gcr.io) as the default Docker image source. - -#### Added - -- `Web` supports one-click login authentication for third-party platforms such as Feishu and Gitlab. -- `Web` optimizes the logic for accessing the version details page of an application that cannot be found and allows manual redirection to the latest version. -- `Web` adds the ability to view some system configuration items and modify some parameters without requiring a restart. -- `Web` adds a page statistics report to the management panel. - -#### Fixed - -- `Web` fixes the issue where the network hook cannot obtain the value of the title variable. -- `Web` fixes the abnormal error during application parsing process. -- `Web` fixes the abnormal error that occurs during application creation. -- `Web` fixes the issue where system configuration cannot be edited due to being saved as empty. -- `Job` fixes the issue where the logic for removing old versions causes the deletion logic and document logic to be reversed. - -## 4.0.0 (2020-12-31) - -Full [commit changes][4.0.0]. - -#### Fixed - -- `Web` corrects the display error caused by abnormal judgment of the expiration time of the iOS certificate during file parsing. -- `Web` ignores the default development version number check for new versions. - -## 4.0.0.rc2 (2020-12-25) - -Full [commit changes][4.0.0.rc2]. - -#### Added - -- `Web` newly parsed files will be saved to the list, and a file parsing for uploaded applications will also be synchronized. (asynchronous task) [#346](https://github.com/tryzealot/zealot/pull/346) -- `Web` adds file parsing data statistics to the control panel. -- `Web` adds data statistics for network hooks, background tasks, and disk usage for administrators in the control panel. -- `Web` adds a quick delete function for authorized personnel to the prompt for missing files in the version details. - -#### Changed - -- `API` The debug file version check interface has been renamed, and new check methods based on file fingerprints and dSYM UUID have been added. [#349](https://github.com/tryzealot/zealot/pull/346) - -#### Fixed - -- `Web` fixes the error when disabling LDAP login authentication. (caused by incorrect IP whitelist settings) -- `Web` corrects the wording of the prompt when opening the version details in WeChat for Android. - -## 4.0.0.rc1 (2020-10-29) - -Full [commit changes][4.0.0.rc1]. - -#### Changed - -- `Docker` **major change** merges rails and worker into the same image for deployment. zealot-docker library needs to be updated accordingly [#235](https://github.com/tryzealot/zealot/pull/235) -- `Docker` upgrades Ruby to version 2.7 for deployment. -- `Web` upgrades font-awesome from version 4.7.0 to 5.13.0, which may cause missing icons to display improperly. -- `Web` adjusts the wording of invitation emails. -- `Web` unifies the download path for applications and debugging files to `/download` path. -- `Web` requires login permission for online application parsing. -- `Web` optimizes the logic for automatically redirecting to the latest version when accessing deleted or non-existent version details. -- `Web` adjusts the installation and download logic of applications (mainly due to the inability to distinguish between iPadOS UserAgent and Desktop). - -#### Added - -- `Web` displays a prompt when downloading files that do not exist. -- `Web` supports parsing .mobileprovision format files and enabling the parsing of .ipa files online. -- `Web` allows some system settings to be modified online using the administrator panel. [#245](https://github.com/tryzealot/zealot/pull/245) -- `Web` adds guest mode. [#243](https://github.com/tryzealot/zealot/pull/243) -- `Web` supports displaying the names of iOS AdHoc version test devices. [#211](https://github.com/tryzealot/zealot/pull/211) -- `Web` supports parsing the content of uploaded version installation packages. [#210](https://github.com/tryzealot/zealot/pull/210) -- `Web` supports obtaining the UDID of iOS devices. [#203](https://github.com/tryzealot/zealot/pull/203) -- `Web` supports a demo mode with limited functionality and periodic data initialization. [#198](https://github.com/tryzealot/zealot/pull/198) -- `Web` displays the original name of the application in the version details after uploading the App. -- `Web` allows filtering of the application list by version, Git branch, and packaging type. -- `Web` displays the Git commit link associated with the latest upload in the version details. (if the git URL is set in the channel settings) -- `Web` integrates LDAP login into the existing login interface and no longer uses the crude interface provided by third-party dependencies. -- `Job` supports managing the generation and recovery of data backup using rails commands. (database and uploaded file data) [#207](https://github.com/tryzealot/zealot/pull/207) -- `API` adds an interface to check if the debug file exists `/api/debug_files/version_exist`. - -#### Fixed - -- `Web` fixes the error when parsing changelog during App upload. -- `Web` fixes the issue where the QR code in the version details will exceed the parent view in medium resolution. -- `Web` fixes the issue where some values of the application channel are empty and the default value is not displayed. -- `Web` optimizes the content display when parsing iOS packages online. (and solves the problem of always displaying fake data) -- `Web` fixes the issue where the information of the submitter is not displayed for changelogs generated using [fastlane-plugin-ci_changelog](https://github.com/icyleaf/fastlane-plugin-ci_changelog) in the version details. -- `Web` fixes and optimizes the logic for checking new versions. -- `Web` fixes the issue where the pop-up window for confirming the deletion of debug files displays an empty message. -- `Web` optimizes the display of the device list in the version details on some mobile phones. -- `Web` fixes the error when parsing applications without submitting parameters. -- `Web` optimizes the display of the version list on mobile phones. -- `Web` only displays the bottom pagination for the latest upload dynamics of channel versions, and the top displays the total number of versions. -- `Web` fixes the issue where the administrator editing user prompt for a non-empty password. -- `Web`/`API` fixes the issue where the latest version is used when the requested version for online download and installation does not exist. -- `Web` fixes the issue where the login interface displays the sidebar menu in guest mode. -- `Web` fixes the issue where the same debugging file of the same application and platform is always overwritten when uploaded. -- `Web` optimizes the display of boolean and dictionary types on the system settings page. -- `Job` fixes the issue where old versions were accidentally deleted due to a version judgment error during scheduled cleaning. -- `Docker` fixes the issue where the internal static resources are not updated due to volume storage of the public folder. -- `Docker` fixes the issue where the container version is inconsistent with the external version. - -## 4.0.0.beta4 (2020-05-07) - -Full [commit changes][4.0.0.beta4]. - -#### Added - -- `Docker` supports deployment on Heroku. -- `Web` allows guests to view App details, lists, and upload App details. -- `API` supports custom fields when uploading an App. [#178](https://github.com/tryzealot/zealot/issues/178) -- `Web`/`API` automatically removes the `origin/` prefix when passing the `branch` value during App upload. -- `Web` adds project introduction to user authentication interfaces such as login, registration, password retrieval, and password resetting. - -#### Fixed - -- `Web` corrects user password description text. -- `Web` fixes the URL field error in the WebHook. -- `Web`/`API` fixes the error when uploading iOS dSYM files. -- `API` fixes the abnormal has_password parameter in the App interface. -- `API` fixes the source of uploaded App records always showing as Web. -- `API` fixes and supports uploading changelog in JSON format as a string. -- `Web` fixes the issue where CPU and memory information cannot be retrieved from system information. -- `Web` fixes the occasional error when parsing Android applications online. -- `Web` fixes the error when scanning QR code with WeChat. - -#### Changed - -- `API` adds validation for bundle_id dimension to the latest version interface. (apps/latest) -- `Web` allows guests to access application version details and download operations. -- `Web` shifts the device list on the right-hand side of iOS AdHoc application version details to the left and collapses it by default. -- `Web` removes the GraphQL console functionality from the development environment and recommends using [graphql-playground](https://github.com/prisma-labs/graphql-playground). -- `Web` removes the footbar at the bottom of the page, and the version information can be viewed in the system information. - -## 4.0.0.beta3 (2020-01-16) - -Full [commit changes][4.0.0.beta3]. - -#### Added - -- `Web` prompts and displays a confirmation email link for users added by administrators if their email is not activated. -- `Web` enables the default Sentry anonymous reporting mechanism (can be turned off). - -#### Fixed - -- `API` fixes the issue where uploading an application always creates a new channel. -- `Web`/`API` fixes the issue where the icon of uploaded Android applications cannot be displayed. - -#### Changed - -- `Docker` moves the initialization data out of the image and into [zealot-docker](https://github.com/tryzealot/zealot-docker) image. [#120](https://github.com/tryzealot/zealot/pull/120) -- `Docker` reduces the size of the image from 1.18G to 308M. [#114](https://github.com/tryzealot/zealot/issues/114) -- `Job` uses asynchronous tasks instead of traditional cron jobs to implement scheduled cleaning of old version history package files. (can be turned off) -- `Job` groups asynchronous tasks and sets priority. -- `API` displays all error messages in Chinese because database write operations return specific error messages. -- `Web` standardizes code using Rubocop Lint rules. - -## 4.0.0.beta2 (2020-01-10) - -Full [commit changes][4.0.0.beta2]. - -#### Added - -- `Web` Added the ability to upload a complete version list to a specific application channel, and support deleting operations. - -#### Fixed - -- `Web` provides an error prompt instead of an error message when uploading an application that is not a valid ipa or apk. -- `API` fixes the issue where the latest version list of an application cannot be returned due to the non-existence of the queried version number in the database. -- `API` only requires token verification for interfaces that perform write operations (previously most interfaces required it). - -## 4.0.0.beta1 - -🌈 The first public beta version has been released! - -## Previous Version - -For many years, it was developed and operated internally within the company and was not open source. -It used to undertake many functions, but now it has been separated to focus on providing -application hosting and distribution services - -[5.1.0]: https://github.com/tryzealot/zealot/compare/5.0.0...5.1.0 -[5.0.0]: https://github.com/tryzealot/zealot/compare/4.7.1...5.0.0 -[4.7.0]: https://github.com/tryzealot/zealot/compare/4.6.0...4.7.0 -[4.6.0]: https://github.com/tryzealot/zealot/compare/4.5.3...4.6.0 -[4.5.3]: https://github.com/tryzealot/zealot/compare/4.5.2...4.5.3 -[4.5.2]: https://github.com/tryzealot/zealot/compare/4.5.1...4.5.2 -[4.5.1]: https://github.com/tryzealot/zealot/compare/4.5.0...4.5.1 -[4.5.0]: https://github.com/tryzealot/zealot/compare/4.4.1...4.5.0 -[4.4.1]: https://github.com/tryzealot/zealot/compare/4.4.0...4.4.1 -[4.4.0]: https://github.com/tryzealot/zealot/compare/4.3.1...4.4.0 -[4.3.1]: https://github.com/tryzealot/zealot/compare/4.3.0...4.3.1 -[4.3.0]: https://github.com/tryzealot/zealot/compare/4.2.2...4.3.0 -[4.2.2]: https://github.com/tryzealot/zealot/compare/4.2.1...4.2.2 -[4.2.1]: https://github.com/tryzealot/zealot/compare/4.2.0...4.2.1 -[4.2.0]: https://github.com/tryzealot/zealot/compare/4.1.0...4.2.0 -[4.1.0]: https://github.com/tryzealot/zealot/compare/4.0.0...4.1.0 -[4.0.0]: https://github.com/tryzealot/zealot/compare/4.0.0.rc2...4.0.0 -[4.0.0.rc2]: https://github.com/tryzealot/zealot/compare/4.0.0.rc1...4.0.0.rc2 -[4.0.0.rc1]: https://github.com/tryzealot/zealot/compare/4.0.0.beta4...4.0.0.rc1 -[4.0.0.beta4]: https://github.com/tryzealot/zealot/compare/4.0.0.beta3...4.0.0.beta4 -[4.0.0.beta3]: https://github.com/tryzealot/zealot/compare/4.0.0.beta2...4.0.0.beta3 -[4.0.0.beta2]: https://github.com/tryzealot/zealot/compare/4.0.0.beta1...4.0.0.beta2 diff --git a/versioned_docs/version-5.1/user-guide/credits.md b/versioned_docs/version-5.1/user-guide/credits.md deleted file mode 100644 index 2d31e1821..000000000 --- a/versioned_docs/version-5.1/user-guide/credits.md +++ /dev/null @@ -1,23 +0,0 @@ -# Credits - -## Contributions - -Thank you for making Zealot more useful! - - - - - -## Project name - -Zealot are a type of protoss warrior from Starcraft. - -## Project Logo - -Project history submission resources may be used to for the icon copyright belongs to [Blizzard](https://www.blizzard.com), -later changed to their own design icons, if there are enthusiastic designers can help design better icons, -I represent this project to express my sincere gratitude. - -## License - -Zealot is an open source project released under the MIT distribution protocol (MIT), which can be found at [LICENSE file](https://github.com/tryzealot/zealot/blob/develop/LICENSE)。 diff --git a/versioned_docs/version-5.1/user-guide/dashboard.md b/versioned_docs/version-5.1/user-guide/dashboard.md deleted file mode 100644 index d76e61f32..000000000 --- a/versioned_docs/version-5.1/user-guide/dashboard.md +++ /dev/null @@ -1,3 +0,0 @@ -# Dashboard - -![screenshot](/img/screenshot/product-1.png) diff --git a/versioned_docs/version-5.1/user-guide/debug-files/index.mdx b/versioned_docs/version-5.1/user-guide/debug-files/index.mdx deleted file mode 100644 index 52eb1c756..000000000 --- a/versioned_docs/version-5.1/user-guide/debug-files/index.mdx +++ /dev/null @@ -1,14 +0,0 @@ -# List debug files - -List all uploaded debug files oragiazed by app. - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.1/user-guide/debug-files/review.mdx b/versioned_docs/version-5.1/user-guide/debug-files/review.mdx deleted file mode 100644 index f0ddf22c8..000000000 --- a/versioned_docs/version-5.1/user-guide/debug-files/review.mdx +++ /dev/null @@ -1,48 +0,0 @@ -# Review metadata - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Android - -### Versions list - - - -### Version detail - - - -## iOS - -### Versions list - - - -### Version detail - - diff --git a/versioned_docs/version-5.1/user-guide/debug-files/upload.mdx b/versioned_docs/version-5.1/user-guide/debug-files/upload.mdx deleted file mode 100644 index d2302322b..000000000 --- a/versioned_docs/version-5.1/user-guide/debug-files/upload.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Create a Debug File - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.1/user-guide/index.mdx b/versioned_docs/version-5.1/user-guide/index.mdx deleted file mode 100644 index 817dbe0eb..000000000 --- a/versioned_docs/version-5.1/user-guide/index.mdx +++ /dev/null @@ -1,48 +0,0 @@ -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -# User Guide - -[![GitHub release](https://img.shields.io/github/v/release/tryzealot/zealot?include_prereleases)](https://github.com/tryzealot/zealot/releases) -[![Docker Pulls](https://img.shields.io/docker/pulls/tryzealot/zealot.svg)](https://hub.docker.com/r/tryzealot/zealot/) -[![Chat on Telegram](https://img.shields.io/badge/chat-on%20telegram-important.svg)](https://img.shields.io/badge/chat-on%20telegram-important.svg) -[![Maintainability](https://codeclimate.com/github/tryzealot/zealot/badges/gpa.svg)](https://codeclimate.com/github/tryzealot/zealot) -[![License](https://img.shields.io/github/license/tryzealot/zealot)](https://github.com/tryzealot/zealot/blob/develop/LICENSE) - -**Self-hosted Beta App Distribution for Android, iOS, macOS, Windows and Linux apps.** - -Continuous everything. Automate the lifecycle of your apps. Connect your CI to build in the cloud, test on thousands of real devices, distribute to beta testers and app stores. All in one place. - - - -## Features - -- 🌏 **Cross-platform hosting**: supports macOS, iOS, Android (apk/**aab**), Windows, Linux extensive platforms. -- 📱 **iOS device in control**: automatically synchronizes iOS test device information and allows for one-click registration of new devices with Apple developers. -- 🧑‍💻 **Full developer toolkit**: provides REST API, [iOS][zealot-ios-sdk], [Android][android-android-sdk] SDKs and [fastlane][fastlane-plugin-zealot] automation plugins for building. -- 💥 **Analyze secrets within applications**: interpret metadata for iOS or Android applications or describe files. -- 🚨 **Multiple notification built-in**: customizable data income WebHook to any notification service. -- 🗄 **Multi-channel classification management**: freely divide application channel management into different scenarios and product forms. -- 🎳 **Multiple Architectures** amd86/arm64/armv7 architectures deployment ready. -- 🔑 **Third-party Auth**: Google, Gitlab, LDAP, OIDC and Lark suppotted. -- 🌑 **Dark mode**: Feel free to switch between day and night. - -## Demo - -Simplified Chinese by default, change the language in [Settings](/docs/user-guide/administrator/settings) page. - -- URL:https://tryzealot.ews.im/ -- Admin account: `admin@zealot.com` -- Password: `ze@l0t` - -> **Notification**: Demo service will RESET ALL DATA daily. - -## About the translation - -The translation powered by [DeepL](https://www.deepl.com/translator) and it inevitably have some defects, please provide feedback in time, thanks! diff --git a/versioned_docs/version-5.1/user-guide/qa.md b/versioned_docs/version-5.1/user-guide/qa.md deleted file mode 100644 index 9587b12d8..000000000 --- a/versioned_docs/version-5.1/user-guide/qa.md +++ /dev/null @@ -1,3 +0,0 @@ -# Q&A - -> TODO diff --git a/versioned_docs/version-5.1/user-guide/sidebars.js b/versioned_docs/version-5.1/user-guide/sidebars.js deleted file mode 100644 index 81d300a77..000000000 --- a/versioned_docs/version-5.1/user-guide/sidebars.js +++ /dev/null @@ -1,99 +0,0 @@ -module.exports = [ - { - label: "Getting Started", - type: "doc", - id: 'user-guide/index', - }, - { - label: "Dashboard", - type: "doc", - id: 'user-guide/dashboard', - }, - { - collapsible: true, - label: "Apps", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "user-guide/apps/create", - "user-guide/apps/index", - "user-guide/apps/detail", - "user-guide/apps/upload", - ], - }, - { - collapsible: true, - label: "Debug Files", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "user-guide/debug-files/index", - "user-guide/debug-files/review", - "user-guide/debug-files/upload", - ], - }, - { - collapsible: true, - label: "Toolkits", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "user-guide/toolkits/teardown", - "user-guide/toolkits/fetch-udid", - ], - }, - { - collapsible: true, - label: "Webhooks", - type: "category", - link: { - type: "doc", - id: 'user-guide/webhooks', - }, - items: [ - "user-guide/webhooks/slack", - "user-guide/webhooks/discord", - "user-guide/webhooks/feishu", - "user-guide/webhooks/dingtalk", - "user-guide/webhooks/wecom", - ], - }, - { - collapsible: true, - label: "Administrator", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "user-guide/administrator/apple-team", - "user-guide/administrator/permissions", - "user-guide/administrator/backup", - "user-guide/administrator/settings", - { - collapsible: true, - label: "Monitoring", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "user-guide/administrator/monitoring/system-info", - "user-guide/administrator/monitoring/logging", - "user-guide/administrator/monitoring/background-jobs", - "user-guide/administrator/monitoring/database-analytics", - ], - }, - ], - }, - "user-guide/best_practices", - "user-guide/changelog", - "user-guide/qa", - "user-guide/credits", -]; diff --git a/versioned_docs/version-5.1/user-guide/toolkits/fetch-udid.mdx b/versioned_docs/version-5.1/user-guide/toolkits/fetch-udid.mdx deleted file mode 100644 index 821fda99d..000000000 --- a/versioned_docs/version-5.1/user-guide/toolkits/fetch-udid.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -sidebar_label: "Fetch UDID" ---- - -# Fetch iOS Device UDID - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -- List of installable applications based on UDID -- Enable Apple Developer functionality to add unregistered test devices to the corresponding developer account - -## Install profile - -:::info -This feature is only valid for iOS devices. If opened on a computer, -it will prompt you to [scan the QR code](https://support.apple.com/guide/iphone/scan-a-qr-code-iphe8bda8762/ios) with your phone. -::: - -Regardless of the user login mode (including guest mode), you can install the profile by clicking on "获取设备 UDID" in the left sidebar menu to retrieve the UDID of the current iOS device. - -Do not worry about the profile being displayed as "Unsigned". This does not affect the installation, and the profile is disposable and will be destroyed by the system after retrieval, so there is no security risk. - - - -After installing the profile, the browser will open a new page to display the device UDID. At this point, there will be two scenarios: - -- [Unregistered Device](#unregistered-device) -- [Registered Device](#registered-device) - -## Unregistered Device - -For an unregistered device, basic device information is provided, including UDID, internal model, and serial number. If the service administrator has added Apple Developer, it will also display the registration of the test device to the corresponding developer account. - -:::tip -Registering to an Apple Developer account only means that the device is added under -the Devices section of the Apple Developer account. For iOS developers, -you still need to manually or script-automate adding the test device to the -corresponding Ad-Hoc certificate, then install and repackage it before -allowing the device to install the application. -::: - - - -## Registered Device - -For a registered test device, the list of installable applications will be displayed. If the service administrator has added Apple Developer, it will also display the registration of the test device to the corresponding developer account. - - diff --git a/versioned_docs/version-5.1/user-guide/toolkits/teardown.mdx b/versioned_docs/version-5.1/user-guide/toolkits/teardown.mdx deleted file mode 100644 index e2a5a840d..000000000 --- a/versioned_docs/version-5.1/user-guide/toolkits/teardown.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -sidebar_label: "Teardown App" ---- - -# Teardown App view itself metadata - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Android - -Retrieve `AndroidManifest.xml` metadata, v1 to v3 signatures informations. - - - -## iOS - -Retrieve `Info.plist` metadata, Frameworks and signatures informations. - - diff --git a/versioned_docs/version-5.1/user-guide/webhooks.md b/versioned_docs/version-5.1/user-guide/webhooks.md deleted file mode 100644 index 2b102c49b..000000000 --- a/versioned_docs/version-5.1/user-guide/webhooks.md +++ /dev/null @@ -1,50 +0,0 @@ -# Webhooks - -Zealot provides a webhook for message notifications for each application channel. -The webhook is a fully customizable structure that can be used for most notification services, such as Wecom, Dingtalk, Slack, etc. - -## Payload (default) - -Each parameter of the default structure has its value provided as a variable, -and each variable starts with `@`, the default structure will be used if the custom structure is left empty when creating the webhook. -The following variables are all provided. - -```ruby -{ - event: @event, - username: @username, - email: @email, - title: @title, - app_name: @name, - device_type: @device_type, - release_version: @release_version, - build_version: @build_version, - size: @file_size, - changelog: @changelog, - install_url: @install_url, - icon_url: @icon_url, - qrcode_url: @qrcode_url, - uploaded_at: @uploaded_at -} -``` - -Output: - -```json -{ - "event": "upload_events", - "username": "foobar", - "email": "foobar@example.com", - "title": "Zealot upload 1.0.0 version", - "app_name": "Zealot", - "device_type": "iOS", - "release_version": "1.0.0", - "build_version": "1", - "size": "30 MB", - "install_url": "https://zealot.example.com/api/apps/download/12354", - "icon_url": "https://zealot.example.com/api/apps/icon.png", - "qrcode_url": "https://zealot.example.com/api/apps/354/qrcode", - "uploaded_at": "2019-12-30 11:33:00", - "changelog": "- Add feture A\n- Fix issue B\n- Release v1.0.0", -} -``` diff --git a/versioned_docs/version-5.1/user-guide/webhooks/dingtalk.md b/versioned_docs/version-5.1/user-guide/webhooks/dingtalk.md deleted file mode 100644 index fab1b4dfa..000000000 --- a/versioned_docs/version-5.1/user-guide/webhooks/dingtalk.md +++ /dev/null @@ -1,31 +0,0 @@ -# Dingtalk (Dingding) - -[钉钉](https://developers.dingtalk.com/document/robots/custom-robot-access#section-e4x-4y8-9k0) use Incoming Webhooks whose constructs -typically support both text and markdown, and can be configured as follows: - -> Due to system limitations try to use keyword or IP address whitelist mechanism to receive messages. - -## Text format - -```ruby -{ - "msgtype": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\nUplaod at: #{@uploaded_at}" - } -} -``` - -## Markdown format - -The title field is only displayed in the dialog list, the text field is displayed for the chat content entering the dialog. - -```ruby -{ - "msgtype": "markdown", - "markdown": { - "title": @title, - "text": "## #{@title}\nPlatform: #{@device_type}\nUplaod at: #{@uploaded_at}\nInstall QRcode:\n![qrcode](#{@qrcode_url})" - } -} -``` diff --git a/versioned_docs/version-5.1/user-guide/webhooks/discord.md b/versioned_docs/version-5.1/user-guide/webhooks/discord.md deleted file mode 100644 index 262fa9bb0..000000000 --- a/versioned_docs/version-5.1/user-guide/webhooks/discord.md +++ /dev/null @@ -1,64 +0,0 @@ -# Discord - -[Discord](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) should use Slack-Compatible Webhook whose constructs -typically support both text and block rich text, and can be configured as follows: - -## Text format - -```ruby -{ - "text": "##{@title}\nPlatform: #{@device_type}\nUpload at: #{@uploaded_at}" -} -``` - -## Block rich text format - -A simple block with markdown support - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "## #{@title}\nPlatform: #{@device_type}\nUpload at: #{@uploaded_at}\nInstal QRcode:\n![qrcode](#{@qrcode_url})" - } - } - ] -} -``` - -Better look at some of the structures shown in the block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": @title, - } - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*Platform:*\n#{@device_type}" - }, - { - "type": "mrkdwn", - "text": "*Upload at:*\n#{@uploaded_at}" - } - ] - }, - "accessory": { - "type": "image", - "image_url": @qrcode_url, - "alt_text": "install qrcode" - } - ] -} -``` diff --git a/versioned_docs/version-5.1/user-guide/webhooks/feishu.md b/versioned_docs/version-5.1/user-guide/webhooks/feishu.md deleted file mode 100644 index c5d5a6f29..000000000 --- a/versioned_docs/version-5.1/user-guide/webhooks/feishu.md +++ /dev/null @@ -1,96 +0,0 @@ -# Lark (Feishu) - -[飞书](https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN) use Incoming Webhooks whose constructs -typically support both text and interactive card, and can be configured as follows: - -> Due to system limitations try to use keyword or IP address whitelist mechanism to receive messages. - -## Text format - -```ruby -{ - "msg_type": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\nUplaod at: #{@uploaded_at}" - } -} -``` - -## Interactive card format - -Use card format could use partly of markdown syntax: - -```ruby -{ - "msg_type": "interactive", - "card": { - "config": { - "wide_screen_mode": true, - "enable_forward": true - }, - "elements": [ - { - "tag": "div", - "fields": [ - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**Platform**\n#{@device_type}" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**Version**\n#{@release_version} (#{@build_version})" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**Developer**\n#{@username}" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**Upload date**\n#{@uploaded_at}" - } - }, - ] - }, - { - "tag": "div", - "text": { - "content": "**Changelog**\n#{@changelog}", - "tag": "lark_md" - } - }, - { - "actions": [ - { - "tag": "button", - "text": { - "content": "🐞 Go to app", - "tag": "lark_md" - }, - "url": "#{@release_url}", - "type": "primary", - "value": {} - } - ], - "tag": "action" - } - ], - "header": { - "title": { - "content": "#{@title}", - "tag": "plain_text" - } - } - } -} -``` diff --git a/versioned_docs/version-5.1/user-guide/webhooks/slack.md b/versioned_docs/version-5.1/user-guide/webhooks/slack.md deleted file mode 100644 index b2ce3477a..000000000 --- a/versioned_docs/version-5.1/user-guide/webhooks/slack.md +++ /dev/null @@ -1,64 +0,0 @@ -# Slack - -[Slack](https://api.slack.com/messaging/webhooks) use Incoming Webhooks whose constructs -typically support both text and block rich text, and can be configured as follows: - -## Text format - -```ruby -{ - "text": "#{@title}\nPlatform: #{@device_type}\nUpload at: #{@uploaded_at}" -} -``` - -## Block rich text format - -A simple block with markdown support - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "## #{@title}\nPlatform: #{@device_type}\nUpload at: #{@uploaded_at}\nInstal QRcode:\n![qrcode](#{@qrcode_url})" - } - } - ] -} -``` - -Better look at some of the structures shown in the block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": @title, - } - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*Platform:*\n#{@device_type}" - }, - { - "type": "mrkdwn", - "text": "*Upload at:*\n#{@uploaded_at}" - } - ] - }, - "accessory": { - "type": "image", - "image_url": @qrcode_url, - "alt_text": "install qrcode" - } - ] -} -``` diff --git a/versioned_docs/version-5.1/user-guide/webhooks/wecom.md b/versioned_docs/version-5.1/user-guide/webhooks/wecom.md deleted file mode 100644 index b9228312d..000000000 --- a/versioned_docs/version-5.1/user-guide/webhooks/wecom.md +++ /dev/null @@ -1,26 +0,0 @@ -# Wecom (Wechat Work) - -[企业微信](https://work.weixin.qq.com/api/doc/90000/90136/91770) use Incoming Webhooks whose constructs -typically support both text and markdown, and can be configured as follows: - -## Text format - -```ruby -{ - "msgtype": "text", - "text": { - "content": "#{@title}\n\nInstall url:#{@install_url}\nUplaod at: #{@uploaded_at}" - } -} -``` - -## Markdown format - -```ruby -{ - "msgtype": "markdown", - "markdown": { - "content": "## #{@title}\nPlatform: #{@device_type}\nUplaod at: #{@uploaded_at}\nInstall QRcode:\n![qrcode](#{@qrcode_url})" - } -} -``` diff --git a/versioned_docs/version-5.2/contributing-guide/index.md b/versioned_docs/version-5.2/contributing-guide/index.md deleted file mode 100644 index 1460c9f40..000000000 --- a/versioned_docs/version-5.2/contributing-guide/index.md +++ /dev/null @@ -1,22 +0,0 @@ -# Contributing Guide - -This guide will help you get started with Zealot! Thank you for taking an interest in contributing to Zealot. Before submitting your contribution, please make sure to take a moment and read through the following guidelines: - -This guide will help you to install and setup a production ready Zealot. - -## Getting Started - -Before starting your work, ensure an issue exist for it. If not feel free to create one. You can also take a look into the issues tagged Good first issues. -Add a comment on the issue and wait for the issue to be assigned before you start working on it. -This helps to avoid multiple people working on similar issues. -If the solution is complex, propose the solution on the issue and wait for one of the core contributors to approve before going into the implementation. -This helps in shorter turn around times in merging PRs -For new feature requests, Provide a convincing reason to add this feature. Real-life business use-cases will be super helpful. -Feel free to join our discord community, if you need further discussions with the core team. - -## Setup for local development - -These guides will help you to setup the environment required for Zealot. Follow the guide based on the operating system you use. - -- [VSCode development with devcontainer](/docs/contributing-guide/local-development/devcontainer) -- [Soure code](/docs/contributing-guide/local-development/source-code) diff --git a/versioned_docs/version-5.2/contributing-guide/local-development/devcontainer.md b/versioned_docs/version-5.2/contributing-guide/local-development/devcontainer.md deleted file mode 100644 index f6142a478..000000000 --- a/versioned_docs/version-5.2/contributing-guide/local-development/devcontainer.md +++ /dev/null @@ -1,127 +0,0 @@ -# Visual Studio Code Dev Container Setup - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -``` - -[The Visual Studio Code Dev Containers](https://code.visualstudio.com/docs/devcontainers/containers) lets you use a Docker container as a full-featured development environment. - -![VSCode devcontainer](https://code.visualstudio.com/assets/docs/devcontainers/containers/architecture-containers.png) - -## System requirements - -Before processing, make sure you have the lateset version of Git, Virsual Studio Code, Docker and docker-compose. - -### Install Git - -[Install](https://github.com/git-guides/install-git) it from offical website. - -### Install Docker & docker-compose - -- Windows: [Docker Desktop](https://www.docker.com/products/docker-desktop) 2.0+ on Windows 10 Pro/Enterprise. Windows 10 Home (2004+) requires Docker Desktop 2.3+ and the [WSL 2 back-end](https://aka.ms/vscode-remote/containers/docker-wsl2). (Docker Toolbox is not supported. Windows container images are not supported.) -- macOS: [Docker Desktop](https://www.docker.com/products/docker-desktop) 2.0+. -- Linux: [Docker CE/EE](https://docs.docker.com/install/#supported-platforms) 18.06+ and [Docker Compose](https://docs.docker.com/compose/install) 1.21+. (The Ubuntu snap package is not supported.) - -### Install Visual Studio Code - -Visual Studio Code is a free code editor, which runs on the macOS, Linux, and Windows operating systems. - -Follow the platform-specific guides below: - -```mdx-code-block - - -``` - -1. Download [Visual Studio Code](https://go.microsoft.com/fwlink/?LinkID=534106) for macOS. -1. Open the browser's download list and locate the downloaded app or archive. -1. If archive, extract the archive contents. Use double-click for some browsers or select the 'magnifying glass' icon with Safari. -1. Drag `Visual Studio Code.app` to the Applications folder, making it available in the macOS Launchpad. -1. Open VS Code from the Applications folder, by double clicking the icon. - -```mdx-code-block - - -``` - -1. Download the [Visual Studio Code installer](https://go.microsoft.com/fwlink/?LinkID=534107) for Windows. -1. Once it is downloaded, run the installer (VSCodeUserSetup-\{version\}.exe). This will only take a minute. -1. By default, VS Code is installed under `C:\Users\\{Username\}\AppData\Local\Programs\Microsoft VS Code`. - -```mdx-code-block - - -``` - -Following the [offical Linux install guide](https://code.visualstudio.com/docs/setup/linux). - -```mdx-code-block - - -``` - -### Install Remote container extension - -Install the [Remote Container extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). - -![VSCode extension](/img/vscode-install-remote-containers.png) - -## Fetch Zealot Codesoace - -Zealot Codespace was in the `.devcontailer` folder of Zealot project, so you need clone the source code. - -```bash -git clone https://github.com/tryzealot/zealot.git -``` - -Explan these files in Codespace: - -File | Description ----|--- -`devcontainer.json` | VSCode devcontainer config -`Dockerfile.base` | Base Dockerfile, auto push multi registry servers after changes -`Dockerfile` | Speed up build time, depends on above image. -`docker-compose.yml` | All services of Zealot -`create-db-user.sql` | Create user and role for Zealot - -## Open the project in a container - -Start Visual Studio Code, run the `Dev Containers: Open Folder in Container...` command in [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) and select the Zealot folder. - -![VSCode Command Palette](/img/vscode-command-palette.png) - -Click the **Starting Dev Container (show log)** to review zealot codespace build real time logging messages. - -![VSCode Command Palette](/img/vscode-devcontainer-log.png) - - -When finish the task, project files will load in file explorer and the zsh terminal. Access log outputs messages: - -``` -[7293 ms] Start: Run in container: cat /proc/344/environ -[9836 ms] Port forwarding connection from 53148 > 43379 > 43379 in the container. -[9836 ms] Start: Run in container: /home/vscode/.vscode-server/bin/5235c6bb189b60b01b1f49062f4ffa42384f8c91/node -e -[9981 ms] Port forwarding 53148 > 43379 > 43379 stderr: Connection established -[14988 ms] Port forwarding 53148 > 43379 > 43379 stderr: Remote close -[14999 ms] Port forwarding 53148 > 43379 > 43379 terminated with code 0 and signal null. -[29221 ms] Port forwarding 53148 > 43379 > 43379: Local close -``` - -In host Docker containers: - -![Docker-Compose containers](/img/vscode-devcontainer-docker-containers.png) - -## Start the project - -Press `` Ctrl + ` `` to open the integrated terminal in Visual Studio Code if it isn't already open. then run `bin/dev` to run all services. - -Notice that the terminal prompt might look different than your normal terminal prompt. - -![VSCode Zealot in Container](/img/vscode-devcontainer-zealot.png) - -## Open in browser - -A while after run `bin/dev`, select **Ports** to see all forwarded ports, **Open in Browser** in quick way. - -![VSCode forwarded ports](/img/vscode-devcontainer-forwarded-ports.png) diff --git a/versioned_docs/version-5.2/contributing-guide/local-development/source-code.md b/versioned_docs/version-5.2/contributing-guide/local-development/source-code.md deleted file mode 100644 index 7ca41b086..000000000 --- a/versioned_docs/version-5.2/contributing-guide/local-development/source-code.md +++ /dev/null @@ -1,232 +0,0 @@ ---- -sidebar_label: "Source code" ---- - -# Source code - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -``` - -The following is a tutorial on local deployment development for different operating systems. - -## Prepare dependencies - -### macOS - -#### Install homebrew - -First you need to install Xcode Command tools: - -```bash -$ xcode-select --install -``` - -Then install Homebrew, the package management tool for macOS - -```bash -$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" -``` - -#### Install dependencies - -```bash -$ brew install redis postgresql webp imagemagick node git -``` - -#### Setup Database and cache services - -Run postgresql and redis services - -```bash -$ brew services start postgresql -$ brew services start redis -``` - -You also need to create a default username in Postgresql: - -```bash -$ createuser --superuser zealot - -# If you are worried about the high privilege, you can only enable the create database privilege -$ createuser --createdb zealot -``` - -#### yarn - -```bash -$ npm install -g yarn -``` - - -### Debian (Ubuntu) - -#### System dependencies - -```bash -$ apt update -$ apt install -y libssl-dev tar tzdata git imagemagick libjpeg-dev libpng-dev libtiff-dev libwebp-dev -``` - -#### Install dependencies - -```bash -$ apt install -y redis postgresql-client node -``` - -#### Setup Database and cache services - -Run postgresql and redis services - -```bash -$ systemctl postgres start -$ systemctl redis start -``` - -You also need to create a default username in Postgresql: - -```bash -$ initdb -D /var/lib/postgresql/data -$ createuser --superuser zealot - -# If you are worried about the high privilege, you can only enable the create database privilege -$ createuser --createdb zealot -``` - -#### node - -```bash -$ npm install -g yarn -``` - -### Alpine Linux - -#### System dependencies - -```bash -$ apk --update --no-cache add build-base libxml2 libxslt git \ - libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev \ - tzdata -``` - -Needs install `gcompat` if use `arm` architecture. or an exception will throws such like "[Error loading shared library](https://nokogiri.org/tutorials/installing_nokogiri.html#linux-musl-error-loading-shared-library)". - -#### Install dependencies - -```bash -$ apk --update --no-cache redis postgresql -``` - -#### Setup Database and cache services - -Run postgresql and redis services - -```bash -$ rc-service postgres start -$ rc-service redis start -``` - -You also need to create a default username in Postgresql: - -```bash -$ initdb -D /var/lib/postgresql/data -$ createuser --superuser zealot - -# If you are worried about the high privilege, you can only enable the create database privilege -$ createuser --createdb zealot -``` - -## Install Ruby - -Can be installed by either asdf, rvm as ruby version manager. - -```mdx-code-block - - -``` - -Following the [offical install guide](http://asdf-vm.com/guide/getting-started.html) then: - -```bash -# Enable Ruby 3.2.0 YJIT need install Rust 1.58+ -# Optinal install: -asdf plugin add rust -asdf install rust latest -asdf global rust latest -export RUBY_CONFIGURE_OPTS=--enable-yjit - -# Required: -asdf plugin add ruby -asdf install ruby 3.2.0 -asdf global ruby 3.2.0 -``` - -```mdx-code-block - - -``` - -```bash -$ curl -sSL https://get.rvm.io | bash -s stable -$ rvm install 3.2.0 --disable-binary -``` - -```mdx-code-block - - -``` - -## Fetch source code - -```bash -git clone https://github.com/tryzealot/zealot.git -``` - -## Initialize Zealot - -All the following steps need to be performed in the zealot root directory. - -### bundler - -Install Ruby gems - -```bash -$ [sudo] gem install bundler -$ bundle install -``` - -### yarn - -Install javascript packages: - -```bash -$ yarn install -``` - -### Initialize database - -Make sure there are no problems with the connection database information, then the database tables will be created and the table structure will be created: - -```bash -$ rails db:create -$ rails db:migrate -``` - -Configuring the connection database can be done via [environment variables](/docs/self-hosted/configuration/environment-variables) or by changing the `config/database.yml` file. - -### Initialize default account and demo data - -Initialize administrator account and sample application - -```bash -$ rails db:seed -``` - -### Launch services - -```bash -$ bin/dev -``` - -Open brower `http://localhost:3000` diff --git a/versioned_docs/version-5.2/contributing-guide/sidebars.js b/versioned_docs/version-5.2/contributing-guide/sidebars.js deleted file mode 100644 index ef8a8b710..000000000 --- a/versioned_docs/version-5.2/contributing-guide/sidebars.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = [ - { - label: "Getting Started", - type: "doc", - id: 'contributing-guide/index', - }, - { - collapsible: false, - label: "Local development", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "contributing-guide/local-development/devcontainer", - "contributing-guide/local-development/source-code" - ], - }, -]; diff --git a/versioned_docs/version-5.2/developer-guide/api.md b/versioned_docs/version-5.2/developer-guide/api.md deleted file mode 100644 index 52d806396..000000000 --- a/versioned_docs/version-5.2/developer-guide/api.md +++ /dev/null @@ -1,37 +0,0 @@ -# APIs - -Use the Zealot APIs to view, upload, download the build of app or debug file. - -## Authentication - -Requests currently only support query authentication for User Token, found in `API - Key` at the bottom of the login user details page. - -> example : `https://YOUR_ZEALOT_URL/api?token=YOUR_TOKEN` - -## Version - -The current version is `v1`, the APIs does not need to explicitly pass the version parameter, -and the GraphGL interface is being developed gradually. - -## Apps - -Resource | Available endpoints ----|--- -Upload an App | `/api/apps/upload` -List Apps | `/api/apps` -Get an App by id | `/api/apps/:id` -List verions from an App | `/api/apps/versions` -Get the latest Release from an App | `/api/apps/latest` -Check an Release from App exists | `/api/apps/version_exist` - -## Debug files - -Resource | Available endpoints ----|--- -Upload a debug file | `/api/debug_files/upload` -Download a debug file by id | `/api/debug_files/download` -List Debug files | `/api/debug_files` -Get an debug file by id | `/api/debug_files/:id` -Check a debug file exists by id | `/api/debug_files/version_exist` -Update a debug file by id | `/api/debug_files/:id` -Delete a debug file by id | `/api/debug_files/:id` diff --git a/versioned_docs/version-5.2/developer-guide/api/apps.md b/versioned_docs/version-5.2/developer-guide/api/apps.md deleted file mode 100644 index 2a66a5a06..000000000 --- a/versioned_docs/version-5.2/developer-guide/api/apps.md +++ /dev/null @@ -1,417 +0,0 @@ ---- -sidebar_label: "Apps" ---- - -# App APIs - -## Upload an app - -This allows you to upload an single iOS, Android or macOS file. - -``` -POST /api/apps/upload -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| file | `File` | true | an App file | -| channel_key | `String` | false | Channel key
Create a new App if leave it empty | -| name | `String` | false | the name of App
Use app name from parsed metadata in given file if leave it empty | -| release_type | `String` | false | Eg, debug, beta, adhoc, release, enterprise 等 | -| source | `String` | false | the source of upload (default is `api`) | -| changelog | `String` | false | Changelog
Avaiables in plain text or JSON formatted struct | -| branch | `String` |false| a branch name from git | -| git_commit | `String` | false | git commit | -| ci_url | `String` | false | the build url of a C | -| custom_fields | `String` | false | JSON formatted custom fileds
It could configures and display title,
value and icon from fontawesome in a Release page from an App | - -For `changelog` attribute which it accepts both `plain text` and `JSON` formatted contents: - -**plain text**: - -``` -message 1\nmessage 2 -``` - -**JSON**: - -``` -[ - { - "message": "message 1", - "author": "admin", - "email": "admin@zealot.com", - "date": "2021-11-11 11:11:11" - }, - { - "message": "message 1", - "author": "developer", - "email": "developer@zealot.com", - "date": "2021-11-11 11:11:11" - } -] -``` - -For `custom_fields` attribute which it use `JSON` formatted struct to build from each key-value. for example, Display country name like `country=China` with icon [flag](https://fontawesome.com/v5.15/icons/flag?style=solid): - -```diff -curl -X POST \ - 'https://YOUR_ZEALOT_URL/api/apps/upload' \ - --form 'token="token"' \ - --form 'channel_key="channel_key"' \ -+ --form 'custom_fields="[{"name":"country","value":"China","icon":"fas fa-flag"}]"' \ - --form 'file=@/path/to/your/app' -``` - -#### Return body - -```json -{ - "id": 50, - "version": 7, - "app_name": "Test Android", - "bundle_id": "com.test.app", - "release_version": "1.0", - "build_version": "1", - "source": "SOURCE", - "branch": "master", - "git_commit": "e9de48513dbb6abfbxxxxxxxxxxxxxxxxxxxxxxxx", - "ci_url": "", - "size": 1565486, - "icon_url": "/uploads/apps/a1/r1/icons/app_icon.png", - "release_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1", - "install_url": "https://YOUR_ZEALOT_URL/download/releases/1", - "qrcode_url": "https://YOUR_ZEALOT_URL/channels/1XmpC/releases/1/qrcode?size=thumb", - "changelog": [ - { - "message": "Changelog message 1" - }, - { - "message": "Changelog message 2" - } - ], - "text_changelog": "- Changelog message 1\n- Changelog message 2", - "custom_fields": [], - "created_at": "2021-09-01T11:43:33.977+08:00", - "app": { - "id": 1, - "name": "App name" - }, - "scheme": { - "id": 8, - "name": "Test" - }, - "channel": { - "slug": "1XmpC", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - } -} -``` - -## List apps - -Get a list of app. - -This function takes pagination parameters page and per_page to restrict the list of app. - -``` -GET /api/apps -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| page | `Integer` | false | Page number (default: `1`) | -| per_page | `Integer` | false | Number of items to list per page (default: `25`, max: `100`). | - -### Return body - -```json -[ - { - "id": 1, - "name": "Zealot", - "schemes": [ - { - "id": 1, - "name": "Adhoc", - "channels": [ - { - "slug": "X1IXN", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "O1qHk", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - }, - { - "id": 2, - "name": "内测版", - "channels": [ - { - "slug": "l19Tl", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "8selv", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - } - ] - } -] -``` - -## Get an app - -Allows you to receive information about an app like name, scheme, channel. - -``` -GET /api/apps/:id -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| id | `Integer` | true | ID | - -### Return body - -```json -{ - "id": 1, - "name": "Zealot", - "schemes": [ - { - "id": 5, - "name": "Test App", - "channels": [ - { - "slug": "X1IXN", - "name": "Android", - "device_type": "android", - "bundle_id": "*", - "git_url": null, - "has_password": false - }, - { - "slug": "O1qHk", - "name": "iOS", - "device_type": "ios", - "bundle_id": "*", - "git_url": null, - "has_password": false - } - ] - } - ] -} -``` - -## Get versions list of app - -Get a list of apps by the given channel key - - -``` -GET /api/apps/versions -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| page | `Integer` | false | Page number (default: `1`) | -| per_page | `Integer` | false | Number of items to list per page (default: `25`, max: `100`). | - -### Return body - -```json -{ - "app_name": "Zealot iOS", - "bundle_id": "*", - "git_url": null, - "app": { - "id": 3, - "name": "Zealot" - }, - "scheme": { - "id": 5, - "name": "AdHoc" - }, - "releases": [ - { - "version": 2, - "app_name": "Zealot iOS", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10292024", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - }, - { - "version": 1, - "app_name": "Zealot iOS", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - }, - ] -} -``` - -## Get the latest version of app - -Allows you to receive the latest information about a Release version from App like app metadata, changelog, icon url, install (download) url. - - -``` -GET /api/apps/latest -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| release_version | `String` | true | Release version | -| build_version | `String` | true | Build version | - -### Return body - -```json -{ - "app_name": "Zealot iOS", - "bundle_id": "*", - "git_url": null, - "app": { - "id": 3, - "name": "Zealot" - }, - "scheme": { - "id": 5, - "name": "AdHoc" - }, - "releases": { - "version": 1, - "app_name": "Zealot iOS", - "bundle_id": "im.ews.zealot", - "release_version": "1.0.0", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" - } -} -``` - -## Check version exists - -Allows you to check the Release exists by given query, query accepts two combo group: - -- `bundle_id`, `release_version` and `build_verion` -- `bundle_id` and `git_commit` - -``` -GET /api/apps/version_exist -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| bundle_id | `String` | true | bundle_id or package_name | -| release_version | `String` | false | Release version | -| build_version | `String` | false | Build version | -| git_commit | `String` | false | git commit hash | - -### Return body - -- Return 200 if release existed. -- Return 404 if release not existed. - -Success returns: - -```json -{ - "version": 1, - "app_name": "Zealot iOS", - "bundle_id": "im.ews.zealot", - "release_version": "4.1.1", - "build_version": "10291524", - "source": "Web", - "branch": "", - "git_commit": "", - "ci_url": "", - "size": 79712596, - "icon_url": "https://tryzealot.ews.im/uploads/apps/a3/r21/icons/8ab13dc08321f9f3412a9fa98689d9c3.png", - "install_url": "itms-services://?action=download-manifest&url=https://tryzealot.ews.im/api/apps/O1qHk/1/install", - "changelog": [], - "created_at": "2019-12-25T14:26:06.608+08:00" -} -``` - -Not found returns: - -```json -{ - "error": "Not found release" -} -``` diff --git a/versioned_docs/version-5.2/developer-guide/api/debug_files.md b/versioned_docs/version-5.2/developer-guide/api/debug_files.md deleted file mode 100644 index 4cb3ec1ca..000000000 --- a/versioned_docs/version-5.2/developer-guide/api/debug_files.md +++ /dev/null @@ -1,254 +0,0 @@ ---- -sidebar_label: "Debug Files" ---- - -# Debug File APIs - -## Upload debug file - -This allows you to upload an single iOS, Android debug file. - -Debug file accepts: - -- iOS: a Zipped dSYM file -- Android: a Zipped file includes mapping.txt, R.txt or AndroidManifest.xml files. - -``` -POST /api/debug_files/upload -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| file | `File` | true | Arichved file by zip | -| release_version | `String` | true | Release version, ignore this param if iOS app | -| build_version | `String` | true | Build version, ignore this param if iOS app | - -### Return body - -```json -{ - "id": 1, - "app_name": "Demo App", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## Download debug file - -This allows you to download an single iOS, Android debug file. - -``` -GET /api/debug_files/download -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| release_version | `String` | true | Release version, ignore this param if iOS app | -| build_version | `String` | false | Build version, ignore this param if iOS app | -| order | `String` | false | Order by
`version` = latest version, `upload_date` = last uploaded date
**Vaild in release_version is `latest`** | - -### Return body - -- Retun 200 status code if the version exists and redirect to the download address with a 302 status code. -- return 404 status code if the version does not exist. - -## List debug files - -Get a list of debug files. - -This function takes pagination parameters page and per_page to restrict the list of debug files. - - -``` -GET /api/debug_files -``` - -### Parameters - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| page | `Integer` | false | Page number (default: `1`) | -| per_page | `Integer` | false | Number of items to list per page (default: `25`, max: `100`). | - -### Return body - -```json -[ - { - "id": 1, - "app_name": "Demo App", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] - } -] -``` - -## Get a debug file - -Allows you to receive information about debug file like name, file size, UUID (iOS only), platform (iOS only) or file list (Android only). - -``` -GET /api/debug_files/:id -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| id | `Integer` | true | ID | - -### Return body - -```json -{ - "id": 1, - "app_name": "Demo App", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## Update a existed debug file - -This allows you to update a debug file. - -``` -PUT /api/debug_files/:id -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| id | `Integer` | true | ID | -| file | `File` | true | a Zipped debug file | -| release_version | `String` | true | Release version, ignore this param if iOS app | -| build_version | `String` | true | Build version, ignore this param if iOS app | - -### Return body - -```json -{ - "id": 1, - "app_name": "Demo App", - "device_type": "ios", - "release_version": "1.14.0", - "build_version": "980", - "file_url": "https://tryzealot.ews.im/download/debug_files/1", - "metadata": [ - { - "id": 1, - "debug_file_id": 1, - "uuid": "34656552-21ae-3722-a7fb-3582bc9b1d98", - "type": "arm64", - "object": "AppName", - "data": {}, - "size": 4137941, - "created_at": "2022-11-25T15:53:15.157+08:00", - "updated_at": "2022-11-25T15:53:15.157+08:00" - } - ] -} -``` - -## Delete a debug file - -This allows you to delete a debug file. - -``` -DELETE /api/debug_files/:id -``` - -### Parameters - -:::info - -[Authentication](/docs/developer-guide/api#authentication) required. - -::: - -| Attribute | Type | Required | Description | -|---|---|---|---| -| channel_key | `String` | true | Channel key | -| id | `Integer` | true | ID | - -### Return body - -```json -{ - "mesage": "OK" -} -``` diff --git a/versioned_docs/version-5.2/developer-guide/fastlane.md b/versioned_docs/version-5.2/developer-guide/fastlane.md deleted file mode 100644 index f9ff48334..000000000 --- a/versioned_docs/version-5.2/developer-guide/fastlane.md +++ /dev/null @@ -1,27 +0,0 @@ -# Fastlane plugins - -## Add Zealot plugin - -> [fastlane](https://fastlane.tools) is an open source platform aimed at simplifying Android and iOS deployment. -> fastlane lets you automate every aspect of your development and release workflow, -> customize your deployment workflows using the hundreds of community built fastlane actions and plugins. - -[fastlane-plugin-zealot](https://github.com/tryzealot/fastlane-plugin-zealot) provides upload app, debug_file and -version check actions to Zealot, install it in shell: - -```bash -$ fastlane add_plugin zealot -``` - -## More usefully plugins - -In addition, as the author of the project also open source a number of other fastlane plug-ins there is always one you will use: - -Plugin | Description | ----|--- -[fastlane-plugin-ci_changelog](https://github.com/icyleaf/fastlane-plugin-ci_changelog) | Automate generate changelog between previous and the latest commit of SCM during the CI services. -[fastlane-plugin-update_jenkins_build](https://github.com/icyleaf/fastlane-plugin-update_jenkins_build) | Update build's description of jenkins. -[fastlane-plugin-humanable_build_number](https://github.com/icyleaf/fastlane-plugin-humanable_build_number) | Automatic generate app build number unque and human readable friendly -[fastlane-plugin-app_info](https://github.com/icyleaf/fastlane-plugin-app_info) | Teardown tool for mobile app(ipa, apk and aab file), analysis metedata like version, name, icon etc. -[fastlane-plugin-android_channels](https://github.com/icyleaf/fastlane-plugin-android_channels) | Package unsign apk with channels and write empty file to META-INF with channel in general way -[fastlane-plugin-ram_disk](https://github.com/icyleaf/fastlane-plugin-ram_disk) | Use a virtual ram disk to do anything else diff --git a/versioned_docs/version-5.2/developer-guide/fastlane/zealot.md b/versioned_docs/version-5.2/developer-guide/fastlane/zealot.md deleted file mode 100644 index c00c6c471..000000000 --- a/versioned_docs/version-5.2/developer-guide/fastlane/zealot.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -sidebar_label: "zealot" ---- - -# Fastlane action: zealot - -Uploading iOS, Android and macOS app, it requires three params: - -```ruby -zealot( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', -) -``` - -## Parameters - -``` -+-----------------+---------------------------------+------------------------+----------+ -| zealot Options | -+-----------------+---------------------------------+------------------------+----------+ -| Key | Description | Env Var | Default | -+-----------------+---------------------------------+------------------------+----------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | The key of app's channel | ZEALOT_CHANNEL_KEY | | -| file | The path of app file. Optional | ZEALOT_FILE | | -| | if you use the `gym`, `ipa`, | | | -| | `xcodebuild` or `gradle` | | | -| | action. | | | -| name | The name of app to display on | ZEALOT_NAME | | -| | zealot | | | -| changelog | The changelog of app | ZEALOT_CHANGELOG | | -| slug | The slug of app | ZEALOT_SLUG | | -| release_type | The release type of app | ZEALOT_RELEASE_TYPE | | -| branch | The name of git branch | ZEALOT_BRANCH | | -| git_commit | The hash of git commit | ZEALOT_GIT_COMMIT | | -| custom_fields | The key-value hash of custom | ZEALOT_CUSTOM_FIELDS | | -| | fields | | | -| password | The password of app to download | ZEALOT_PASSWORD | | -| source | The name of upload source | ZEALOT_SOURCE | fastlane | -| ci_url | The name of upload source | ZEALOT_CI_CURL | | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| hide_user_token | replase user token to *** to | ZEALOT_HIDE_USER_TOKEN | true | -| | keep secret | | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error uploading app | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure | | | -+-----------------+---------------------------------+------------------------+----------+ -* = default value is dependent on the user's system - -+-----------------------+---------------------------------------------+ -| zealot Output Variables | -+-----------------------+---------------------------------------------+ -| Key | Description | -+-----------------------+---------------------------------------------+ -| ZEALOT_APP_ID | The id of app | -| ZEALOT_RELEASE_ID | The id of app's release | -| ZEALOT_RELEASE_URL | The release URL of the newly uploaded build | -| ZEALOT_INSTALL_URL | The install URL of the newly uploaded build | -| ZEALOT_QRCODE_URL | The QRCode URL of the newly uploaded build | -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+---------------------------------------------+ -``` - -## Output Variables - -``` -+-----------------------+---------------------------------------------+ -| zealot Output Variables | -+-----------------------+---------------------------------------------+ -| Key | Description | -+-----------------------+---------------------------------------------+ -| ZEALOT_APP_ID | The id of app | -| ZEALOT_RELEASE_ID | The id of app's release | -| ZEALOT_RELEASE_URL | The release URL of the newly uploaded build | -| ZEALOT_INSTALL_URL | The install URL of the newly uploaded build | -| ZEALOT_QRCODE_URL | The QRCode URL of the newly uploaded build | -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+---------------------------------------------+ -Access the output values using `lane_context[SharedValues::VARIABLE_NAME]` -``` diff --git a/versioned_docs/version-5.2/developer-guide/fastlane/zealot_debug_file.md b/versioned_docs/version-5.2/developer-guide/fastlane/zealot_debug_file.md deleted file mode 100644 index 63017003a..000000000 --- a/versioned_docs/version-5.2/developer-guide/fastlane/zealot_debug_file.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -sidebar_label: "zealot_debug_file" ---- - -# Fastlane action: zealot_debug_file - -Upload iOS dSYM or Android Proguard file(s) to Zealot - -```ruby - # Upload iOS dSYM file - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - platform: :ios, - xcode_scheme: 'AppName', - verify_ssl: false - ) - - # Upload Android Proguard files - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - platform: :android, - android_build_type: 'release', - android_flavor: 'store', - release_version: '1.1.0', - build_version: '1', - overwrite: true - ) - - # Upload given zip file - zealot_debug_file( - endpoint: 'https://zealot.example.com', - token: '...', - channel_key: '...', - zip_file: 'path/to/your/zip_file', - release_version: '1.1.0', - build_version: '1', - verify_ssl: false - ) -``` - -## Parameters - -``` -+--------------------+-----------------------------------+---------------------------+---------+ -| zealot_debug_file Options | -+--------------------+-----------------------------------+---------------------------+---------+ -| Key | Description | Env Var | Default | -+--------------------+-----------------------------------+---------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | Any channel key of app | ZEALOT_CHANNEL_KEY | | -| zip_file | Using given the path of zip file | DF_DSYM_ZIP_FILE | | -| | to direct upload | | | -| platform | The name of platfrom, avaiable | ZEALOT_PLATFORM | | -| | value are | | | -| | ios,mac,macos,osx,android | | | -| path | The path of debug file | ZEALOT_PATH | | -| | (iOS/macOS is archive path for | | | -| | Xcode, Android is path for app | | | -| | project) | | | -| xcode_scheme | The scheme name of app | ZEALOT_XCODE_SCHEME | | -| android_build_type | The build type of app | ZEALOT_ANDROID_BUILD_TYPE | release | -| android_flavor | The product flavor of app | ZEALOT_ANDROID_FLAVOR | | -| extra_files | A set file names | ZEALOT_EXTRA_FILES | [] | -| output_path | The output path of compressed | DF_DSYM_OUTPUT_PATH | . | -| | dSYM file | | | -| release_version | The release version of app | ZEALOT_RELEASE_VERSION | | -| | (Android needs) | | | -| build_version | The build version of app | ZEALOT_BUILD_VERSION | | -| | (Android needs) | | | -| overwrite | Overwrite output compressed file | DF_DSYM_OVERWRITE | false | -| | if it existed | | | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error uploading app | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure? (true/false) | | | -+--------------------+-----------------------------------+---------------------------+---------+ -* = default value is dependent on the user's system - -+-----------------------+-----------------------------------------+ -| zealot_debug_file Output Variables | -+-----------------------+-----------------------------------------+ -| Key | Description | -+-----------------------+-----------------------------------------+ -| ZEAALOT_ERROR_MESSAGE | The error message during upload process | -+-----------------------+-----------------------------------------+ -``` diff --git a/versioned_docs/version-5.2/developer-guide/fastlane/zealot_sync_devices.md b/versioned_docs/version-5.2/developer-guide/fastlane/zealot_sync_devices.md deleted file mode 100644 index 1a61333c7..000000000 --- a/versioned_docs/version-5.2/developer-guide/fastlane/zealot_sync_devices.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -sidebar_label: "zealot_sync_devices" ---- - -# Fastlane action: zealot_sync_devices - -> :bell: Zealot 4.5.0 built in Apple team manage which it use [Apple API Key](https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) -> to sync iOS devices, even CAN registe the device after fetch the UDID, [Check detail](/docs/user-guide/administrator/apple-team) - -Use Apple Developer account to syncing UDIDs and relates the value in Zealot. - -```ruby -# With Apple API Key -zealot_sync_devices( - endpoint: 'https://zealot.example.com', - token: '...', - api_key_path: '/path/to/your/api_key_json_file', - team_id: '...' -) - -# With password (Two-factor Authentication required) -zealot_sync_devices( - endpoint: 'https://zealot.example.com', - token: '...', - username: 'user@example.com', - team_id: '...' -) -``` - -## Parameters - -``` -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| zealot_sync_devices Options | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| Key | Description | Env Var(s) | Default | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| username | The apple id (username) of Apple Developer Portal | ZEALOT_USERNAME | * | -| api_key_path | Path to your App Store Connect API Key JSON file | ZEALOT_API_PATH | | -| | (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key | | | -| | -json-file) | | | -| api_key | Your App Store Connect API Key information | ZEALOT_API_KEY | * | -| | (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key | | | -| | -hash-option) | | | -| team_id | The ID of your Developer Portal team if you're in multiple teams | ZEALOT_APPLE_TEAM_ID | * | -| team_name | The name of your Developer Portal team if you're in multiple teams | ZEALOT_APPLE_TEAM_NAME | * | -| platform | The platform to use (optional) | ZEALOT_APPLE_PLATFORM | ios | -| verify_ssl | Should verify SSL of zealot service | ZEALOT_VERIFY_SSL | true | -| timeout | Request timeout in seconds | ZEALOT_TIMEOUT | | -| fail_on_error | Should an error http request cause a failure? (true/false) | ZEALOT_FAIL_ON_ERROR | false | -+---------------+-----------------------------------------------------------------------------+------------------------+---------+ -``` diff --git a/versioned_docs/version-5.2/developer-guide/fastlane/zealot_version_check.md b/versioned_docs/version-5.2/developer-guide/fastlane/zealot_version_check.md deleted file mode 100644 index ed7100ba0..000000000 --- a/versioned_docs/version-5.2/developer-guide/fastlane/zealot_version_check.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -sidebar_label: "zealot_version_check" ---- - -# Fastlane action: zealot_version_check - -Check given build exists or not on Zealot - -```ruby -zealot_version_check( - endpoint: 'https://zealot.example.com', - token: '...', - bundle_id: 'com.example.app.name', - release_version: '1.0.0', - build_version: '1' -) -``` - -## Parameters - -``` -+-----------------+---------------------------------+------------------------+---------+ -| zealot_version_check Options | -+-----------------+---------------------------------+------------------------+---------+ -| Key | Description | Env Var | Default | -+-----------------+---------------------------------+------------------------+---------+ -| endpoint | The endpoint of zealot | ZEALOT_ENDPOINT | | -| token | The token of user | ZEALOT_TOKEN | | -| channel_key | The key of app's channel | ZEALOT_CHANNEL_KEY | | -| bundle_id | The bundle id(package name) of | ZEALOT_BUNDLE_ID | | -| | app | | | -| release_version | The release version of app | ZEALOT_RELEASE_VERSION | | -| build_version | The build version of app | ZEALOT_BUILD_VERSION | | -| git_commit | The latest git commit of app | ZEALOT_GIT_COMMIT | | -| verify_ssl | Should verify SSL of zealot | ZEALOT_VERIFY_SSL | true | -| | service | | | -| fail_on_error | Should an error http request | ZEALOT_FAIL_ON_ERROR | false | -| | cause a failure? (true/false) | | | -+-----------------+---------------------------------+------------------------+---------+ -``` diff --git a/versioned_docs/version-5.2/developer-guide/index.md b/versioned_docs/version-5.2/developer-guide/index.md deleted file mode 100644 index aac28297e..000000000 --- a/versioned_docs/version-5.2/developer-guide/index.md +++ /dev/null @@ -1,15 +0,0 @@ -# Developer Guide - -Zealot offers a rich set of components for iOS, Android, and all aspects of the packaging process. - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - - diff --git a/versioned_docs/version-5.2/developer-guide/sdk/android.md b/versioned_docs/version-5.2/developer-guide/sdk/android.md deleted file mode 100644 index a0fbc4519..000000000 --- a/versioned_docs/version-5.2/developer-guide/sdk/android.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -sidebar_label: "Android" ---- - -# Zealot Android SDK - -The Android component provides a service to check for new versions and installations for Zealot, supporting both Kotlin and Java. - -## Install - -### JitPack - -Using [jitpack](https://jitpack.io) to install: - -```groovy -allprojects { - repositories { - ... - maven { url 'https://jitpack.io' } - } -} -``` - -In `build.gradle` file of main app project add: - -```groovy -dependencies { - implementation 'com.github.tryzealot:zealot-android:master-SNAPSHOT' -} -``` - -## Permission - -Zealot needs internet permission - -```xml - -``` - -## Usages - -Add the start code to the `onCreate` method block of your `Application` file: - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -``` - -```kotlin -// Single channel -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("...") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch() - -// Multi-channel, such as beta, adhoc versions -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("xxxxxxx", "beta") - .setCHannelKey("yyyyyyy", "test") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch() -``` - -```mdx-code-block - - -``` - -```kotlin -// Single channel -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("...") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch(); - -// Multi-channel, such as beta, adhoc versions -Zealot.create(getActivity()) - .setEndpoint("https://zealot.example.com") - .setChannelKey("xxxxxxx", "beta") - .setCHannelKey("yyyyyyy", "test") - .setBuildType(BuildConfig.BUILD_TYPE) - .launch(); -``` - -```mdx-code-block - - -``` diff --git a/versioned_docs/version-5.2/developer-guide/sdk/ios.md b/versioned_docs/version-5.2/developer-guide/sdk/ios.md deleted file mode 100644 index ecf471c11..000000000 --- a/versioned_docs/version-5.2/developer-guide/sdk/ios.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -sidebar_label: "iOS" ---- - -# Zealot iOS SDK - -The iOS component provides a service to check for new versions and installations for Zealot, -supporting Swift and Objective-C. - -## Install - -### Cocoapods - -Adding below code into `Podfile`: - -```ruby -pod 'Zealot', :git => 'https://github.com/tryzealot/zealot-ios.git', :branch => 'master' -``` - -Install it: - -```bash -pod install -``` - -## Usages - -### Import header - -1. Add the code in your `AppDelegate`: - -```mdx-code-block -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -``` - -```swift -import Zealot -``` - -```mdx-code-block - - -``` - -```objectivec -// Objective-C -#import -``` - -```mdx-code-block - - -``` - -### Configure - -2. Add the following code in `application:didFinishLaunchingWithOptions:` method block: - -```mdx-code-block - - -``` - -```swift -// Single channel -let zealot = Zealot(endpoint: "https://zealot.example.com", channelKey: "...") -zealot.checkVersion() - -// Multi-channel, such as beta, adhoc versions -let zealot = Zealot(endpoint: "https://zealot.example.com", - channelKeys: [ - "beta": "xxxxxxx", - "test": "yyyyyyy"], - default_enviroment: "beta") - -// Active it -zealot.checkVersion() -``` - -```mdx-code-block - - -``` - -```objectivec -// Single channel -Zealot *zealot = [[Zealot alloc] initWithEndpoint:@"https://zealot.example.com" - channelKey:@"..."]; - -// Multi-channel, such as beta, adhoc versions -Zealot *zealot = [[Zealot alloc] initWithEndpoint:@"https://zealot.example.com" - channelKeys:@{ - @"beta": @"xxxxxxx", - @"gray": @"yyyyyyy" - } - default_enviroment:@"beta"]; - -// Active it -[zealot checkVersion]; -``` - -```mdx-code-block - - -``` diff --git a/versioned_docs/version-5.2/developer-guide/sidebars.js b/versioned_docs/version-5.2/developer-guide/sidebars.js deleted file mode 100644 index f0d9c244e..000000000 --- a/versioned_docs/version-5.2/developer-guide/sidebars.js +++ /dev/null @@ -1,47 +0,0 @@ -module.exports = [ - { - label: "Getting Started", - type: "doc", - id: 'developer-guide/index', - }, - { - collapsible: false, - label: "SDKs", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "developer-guide/sdk/ios", - "developer-guide/sdk/android" - ], - }, - { - collapsible: false, - label: "fastlane plugins", - type: "category", - link: { - type: 'doc', - id: 'developer-guide/fastlane', - }, - items: [ - "developer-guide/fastlane/zealot", - "developer-guide/fastlane/zealot_version_check", - "developer-guide/fastlane/zealot_debug_file", - "developer-guide/fastlane/zealot_sync_devices" - ], - }, - { - collapsible: false, - label: "APIs", - type: "category", - link: { - type: 'doc', - id: 'developer-guide/api', - }, - items: [ - "developer-guide/api/apps", - "developer-guide/api/debug_files", - ], - } -]; diff --git a/versioned_docs/version-5.2/self-hosted/configuration/environment-variables.md b/versioned_docs/version-5.2/self-hosted/configuration/environment-variables.md deleted file mode 100644 index 5589b2bb4..000000000 --- a/versioned_docs/version-5.2/self-hosted/configuration/environment-variables.md +++ /dev/null @@ -1,159 +0,0 @@ -# Environment Variables - -## The .env File - -You can set the correct values as per the following options. Once you set the values, you should rename the file to `.env` before you start the server. - -## Configure HTTPS (SSL) - -**Due to Apple's mandatory requirement of mandatory HTTPS for online deployment and download services**, d -ownloading applications will be forced to go HTTPS protocol when redeploying. - -If the deployment is a standalone service on a single machine, it is recommended to enable Let's Encrypt free SSL certificate: - -```bash -ZEALOT_CERT_EMAIL=zealot@example.com -``` - -> The following self-signed certificate file name, can not be set at the same time - -If the deployed machine can only use self-signed certificates, they need to be configured, -but note that iOS downloads require the iOS device to authorize the self-signed certificate before the download and installation is allowed. (Not recommended) - -```bash -ZEALOT_CERT=zealot.example.com.pem -ZEALOT_CERT_KEY=zealot.example.com-key.pem -``` - -## Configure URL (Domain) - -Must be configured otherwise downloaded applications and some static resources will not be accessed correctly - -```bash -# No need http:// or https:// -ZEALOT_DOMAIN=zealot.example.com -``` - -## Database configuration - -If you have reusable postgresql and redis services, -you can also customize the configuration to use them instead of -using the services configured by default with docker-compose. - -### Postgresql - -```bash -ZEALOT_POSTGRES_HOST=127.0.0.1 -ZEALOT_POSTGRES_PORT=5432 -ZEALOT_POSTGRES_USERNAME=postgres -ZEALOT_POSTGRES_PASSWORD=ze@l0t -ZEALOT_POSTGRES_DB_NAME=zealot -``` - -### Redis - -This is a URL connection mainly for most cloud services compatibility - -```bash -REDIS_URL=redis://user:pass@127.0.0.1:6379/0 - -# Redis over SSL -REDIS_URL=rediss://user:pass@127.0.0.1:6379/0 -``` - -## Configure default language - -Packs | Value ----|--- -zh-CN | Simplified Chinese (default) -en | English - -```bash -DEFAULT_LOCALE=en -``` - -## Configure default appearance - -Appearance | Value ----|--- -light | Light mode(default) -dark | Dark mode -auto | System auto - -```bash -ZEALOT_APPEARANCE=dark -``` - -## Configure default Administer - -The default does not configure the following will also generate the following account and -password as an account with administrator privileges, it is recommended to change the password again after configuration. - -```bash -ZEALOT_ADMIN_EMAIL=admin@zealot.com -ZEALOT_ADMIN_PASSWORD=ze@l0t -``` - -## Enable new user registration - -After closing the registration, the administrator can add users manually through the user management in the administration panel. - -```bash -# Open registration -ZEALOT_REGISTER_ENABLED=true - -# Close registration -ZEALOT_REGISTER_ENABLED=false -``` - -## Enable guest mode - -Enable the visitor mode to allow the application to view, download and install, -it is recommended that the company internal reliance on permissions is not high condition to use, -specific permission comparison can [see here for details](/docs/user-guide/administrator/permissions) - -```bash -# Guest mode is ON -ZEALOT_GUEST_MODE=true - -# Guest mode is OFF -ZEALOT_GUEST_MODE=false -``` - -## Configure emails - -Currently, only `smtp` is supported to configure email notification service. -Email notification mainly affects are user registration, sending activation emails and -changing password service, but it does not affect the use if it is not turned on. - -```bash -# SMTP settings -SMTP_DOMAIN=zealot.example.com -SMTP_ADDRESS=smtp.gmail.com -SMTP_PORT=587 -SMTP_USERNAME=you@gmail.com -SMTP_PASSWORD=your_app_password -SMTP_AUTH_METHOD=plain -SMTP_ENABLE_STARTTLS=true - -# Sender and email address by default -ACTION_MAILER_DEFAULT_FROM=notification@zealot.com -ACTION_MAILER_DEFAULT_TO=noreply-to@zealot.com -``` - -:::caution - -Google [blocks sign-ins](https://support.google.com/accounts/answer/6010255) from apps it deems less secure. -You can change your Gmail settings [here](https://www.google.com/settings/security/lesssecureapps) to allow the attempts. -If your Gmail account has 2-factor authentication enabled, then you will need to set an -[app password](https://myaccount.google.com/apppasswords) and use that instead of your regular password. - -::: - -## Disbale Cable request protection - -Experimental: - -```bash -ZEALOT_DISABLE_CABLE_REQUEST_PROTECTION=true -``` diff --git a/versioned_docs/version-5.2/self-hosted/configuration/schedule-jobs.md b/versioned_docs/version-5.2/self-hosted/configuration/schedule-jobs.md deleted file mode 100644 index 9b989d97d..000000000 --- a/versioned_docs/version-5.2/self-hosted/configuration/schedule-jobs.md +++ /dev/null @@ -1,55 +0,0 @@ -# Schedule Jobs - -## Clean old version builds - -A reliable logic for cleaning up old versions is to keep an eye on all uploaded -versions of the current master version, as observed by project maintainers over time. - -Previously uploaded historical versions only need to keep the last uploaded build -version basically to meet the vast majority of cases, for example: - -> Additional: the current logic is relatively trouble-free but inflexible, in fact, -> there is thought to support a variety of processing logic, see https://github.com/tryzealot/zealot/issues/376 - -``` -- 2.0 - - 3 - - 2 - - 1 -- 1.0.1 - - 10 - - 9 - - 8 - ... -- 1.0 - - 5 - - 4 - - 3 - ... -``` - -The task will clean up all versions up to version 1.0.1 containing 9 and version 1.0 containing 4, -leaving the final version file as follows: - -``` -- 2.0 - - 3 - - 2 - - 1 -- 1.0.1 - - 10 -- 1.0 - - 5 -``` - -If disk space is limited, you can enable cleanup of timed tasks by setting the environment variable `ZEALOT_KEEP_UPLOADS=false`. - -:::info - -`ZEALOT_KEEP_UPLOADS` set `true` by default. - -::: - -## Backup - -When you create any backup it will join itself to the schedule job list. diff --git a/versioned_docs/version-5.2/self-hosted/configuration/third-party-authentication.md b/versioned_docs/version-5.2/self-hosted/configuration/third-party-authentication.md deleted file mode 100644 index 66fdeda12..000000000 --- a/versioned_docs/version-5.2/self-hosted/configuration/third-party-authentication.md +++ /dev/null @@ -1,117 +0,0 @@ -# Third-party Authentication - -Zealot supports authorized logins using supported third-party services, which can be currently configured via the following environment variables or in the settings page of the admin panel. - -Service | provider ----|--- -Feishu | `feishu` -Gitlab | `gitlab` -Google | `google_oauth2` -LDAP | `ldap` -OpenID Connect | `openid_connect` - -If the above services need to set the callback address please set it uniformly as follows - -``` -https://zealot.example.com/users/auth/:provider/callback -``` - -where `:provider` is the identifier of the above supported third-party service, for example: - -```bash -# if Google is enabled, then replace `:provider` with `google_oauth2`. -https://zealot.example.com/users/auth/google_oauth2/callback -``` - -## Gitlab - -1. Register a Gitlab [On line](http://gitlab.com) account or use self-host service -1. Create an application in Preferences -> Applications page. -1. Configure `Redirect URI` such like `https://zealot.example.com/users/auth/gitlab/callback` (replace the domain in your case) -1. Check scope: `read_user`,By default zealot only uses this license, if your enable scope is `api` that's fine too - -```bash -GITLAB_ENABLED=true -GITLAB_SITE=https://gitlab.com/api/v4 -GITLAB_SCOPE=read_user -GITLAB_APP_ID= -GITLAB_SECRET= -``` - -## Google - -1. Register a Google account -1. Enable [Google Cloud Platform](https://console.cloud.google.com/apis/dashboard) service -1. Choose or create a Project then go to Credentials page -1. Create OAuth Client ID with Web Application, and configure Authorized redirect URI such like `https://zealot.example.com/users/auth/google_oauth2/callback` (replace the domain in your case) - -```bash -GOOGLE_OAUTH_ENABLED=true -GOOGLE_CLIENT_ID= -GOOGLE_SECRET= -``` - -## Feishu (Lark) - -1. Register a feishu (lark) account and download the Phone app. -1. Enable [Open platform](https://open.feishu.cn/app/) and create application to get app_id, app_secret -1. Configure callback url such like `https://zealot.example.com/users/auth/feishu/callback` (replace the domain in your case) -1. Check user filed information scope: `email address` (Optional) -1. Create a version and publish - -```bash -FEISHU_ENABLED=true -FEISHU_APP_ID= -FEISHU_APP_SECRET= -``` - -## LDAP - -```bash -LDAP_ENABLED=true -LDAP_HOST=10.0.0.1 -LDAP_PORT=389 -LDAP_METHOD=plain -LDAP_BIND_DN="cn=Manager,dc=example,dc=com" -LDAP_PASSWORD=password -LDAP_BASE="ou=People,dc=example,dc=com" -LDAP_UID=uid -``` - -## OpenID Connect - -Supports both auto-discovery mode and manual settings. - -### Auto-discovery - -Turning on auto-discovery mode will automatically fetch the `[OIDC_ISSUER_URL]/.well-known/openid-configuration` configuration. - -```bash -OIDC_ENABLED=true -OIDC_NAME=OIDC Provider -OIDC_CLIENT_ID= -OIDC_CLIENT_SECRET= -OIDC_SCOPE=openid,email,profile -OIDC_RESPONSE_TYPE=code -OIDC_UID_FIELD=preferred_username -OIDC_ISSUER_URL=https://oidc.example.com -OIDC_DISCOVERY=true -``` - -### Manual - -``` -OIDC_ENABLED=true -OIDC_NAME=OIDC Provider -OIDC_CLIENT_ID= -OIDC_CLIENT_SECRET= -OIDC_SCOPE=openid,email,profile -OIDC_RESPONSE_TYPE=code -OIDC_UID_FIELD=preferred_username -OIDC_ISSUER_URL=https://oidc.example.com -OIDC_AUTH_URI=/authorize -OIDC_TOKEN_URI=/token -OIDC_USERINFO_URI=/userinfo -``` - -Above `OIDC_AUTH_URI`, `OIDC_TOKEN_URI`, `OIDC_USERINFO_URI` will use the default path as above if not set. diff --git a/versioned_docs/version-5.2/self-hosted/deployment/architecture.mdx b/versioned_docs/version-5.2/self-hosted/deployment/architecture.mdx deleted file mode 100644 index 9c7011272..000000000 --- a/versioned_docs/version-5.2/self-hosted/deployment/architecture.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_label: "Architecture" ---- - -# Zealot Architecture - -Running Zealot requires the following set of services. - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - - - -- Mostly Linux based on amd86/arm64/armv7. -- Ruby on Rails powered Web and API services -- Sidekiq provides asynchronous background task management -- PostgreSQL database -- Redis cache diff --git a/versioned_docs/version-5.2/self-hosted/deployment/docker.md b/versioned_docs/version-5.2/self-hosted/deployment/docker.md deleted file mode 100644 index 8b3bde0fd..000000000 --- a/versioned_docs/version-5.2/self-hosted/deployment/docker.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -sidebar_label: "On-premise (Docker)" ---- - -# Deploy Zealot with Docker guide - -> :bell: Strongly recommended to deploy Zealot using [Docker](https://www.docker.io/), -> unless you are familiar with the technology stack for this service. -> The app protection policy settings for iOS/iPadOS devices, it needs a public network over SSL, -> free to use [Let's Encrypt](https://letsencrypt.org/). -> -> If you use a self-signed certificate you must [install the self-signed certificate](https://support.apple.com/en-us/HT204477) -> on each iOS device before installing any app. - -## Why support docker image only? - -Deploying a Rails-based application is incredibly complex, and even though you must install many dependenices, -and you still need to worry how to launch and make it as a daemon to run in the background. - -## Software requirements - -- Git 2.0+ -- Docker 20.10.0+ -- Docker Compose 1.28.0+ - -## Install on Docker - -In the principle of one-click installation, but reality is often harsh, -Zealot configuration is dependent on `ENV` environment variables, -you need to configure it and then execute the one-click deployment generation script. - -First you need to clone the [deployment script](https://github.com/tryzealot/zealot-docker.git), -After entering the `zealot-docker` directory, you need to open the `example.env` file to -configure the necessary parameters and then you can directly execute `./deploy.sh` script. - -> By default, the administrator account: `admin@zealot.com` and password `ze@l0t` (you can change it) -> and some demo applications will be generated. - -```bash -$ git clone https://github.com/tryzealot/zealot-docker.git -$ cd zealot-docker -$ ./deploy -``` - -The one-click deployment generation script has three built-in templates by default: - -- Using Let's Encrypt SSL -- Using Self-signed SSL -- Using non-SSL (needs gateway or reverse proxy to manage SSL) - -For those interested in one-click installation deployment scripts, -you can check out the [Deployment Documentation with Docker](/docs/self-hosted/deployment/docker/step-by-step). - -## SSL - -### Let's Encrypt - -> **Best Choice** - -**Step 1**: Execute the deployment script: - -```bash -$ ./deploy -``` - -**Step 2**: Check and configure the `.env` file, mainly whether `ZEALOT_DOMAIN` and `ZEALOT_CERT_EMAIL` are filled in correctly. -Other parts can be adjusted according to the actual situation of the corresponding configuration - -**Step 3**: Run the Zealot service: - -```bash -$ docker-compose up -d -``` - -### Reverse proxy controls SSL - -Check [Reverse Proxies Guide](/docs/self-hosted/reverse-proxies) page. - -### Self-signed untrust SSL - -:::caution - -This solution is not recommended under any circumstance if you can avoid it. - -**iOS devices have to manually install the self-signed certificate on their devices** before the app can -be installed properly and that must be done for any and all web services which the app uses a self-signed certificate. - -::: - -If the domain name is unregistered, you need to tie the host to access it, -usually by modifying the system's `/etc/hosts` file. - -```bash title="/etc/hosts" -$ sudo vim /etc/hosts - -# highlight-start -127.0.0.1 zealot.example.com -# highlight-end -``` - -And you need skip ssl verify to request the API. diff --git a/versioned_docs/version-5.2/self-hosted/deployment/docker/step-by-step.md b/versioned_docs/version-5.2/self-hosted/deployment/docker/step-by-step.md deleted file mode 100644 index f5a58e8b1..000000000 --- a/versioned_docs/version-5.2/self-hosted/deployment/docker/step-by-step.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -sidebar_label: "Step by step" ---- - -# Docker deployment guide - -This is a handy guide to deploying with Docker, as well as a breakdown of the [on-premise deployment guide](/docs/self-hosted/deployment/docker). - -## Versions - -- Stable version - 5.2.3/latest - `ghcr.io/tryzealot/zealot:latest` -- Nightly version - develop - `ghcr.io/tryzealot/zealot:nightly` - Based on branch `develop` builds per commit. - -## Registry - -- Docker Container Registry: https://hub.docker.com/r/tryzealot/zealot/ -- Github Container Registry: https://github.com/tryzealot/zealot/pkgs/container/zealot (**Recommended**) - -## Step by Step - -### Install Docker - -Follows [official tutorial](https://get.docker.com/) to install docker. - -### Install Docker-Compose - -Follows [official tutorial](https://docs.docker.com/compose/install/) to install docker-compose. - -### Configure .env file - -Download a sample [config.env](https://github.com/tryzealot/zealot-docker/blob/master/config.env) file and customize it on your own. - -### Configure site domain - -The secondary verification will remind again if it is not configured - -### Configure SSL certificate - -Provides three ways to do this, even if the last one generates the https protocol header: - -- Using Let's Encrypt SSL -- Using Self-signed SSL -- Using non-SSL with Zealot service (needs gateway or reverse proxy to manage SSL) - -### Generate docker-compose.yml - -The configuration file will generate at least three services, using the first two certificates will add an additional service. - -- `zealot-zealot`: Use reverse-generation gateway services to deliver core Web and API services -- `zealot-postgres`: Database service -- `zealot-redis`: Cache service -- `zealot-web`: Provides a reverse proxy gateway service for (services and certificates), optional. - -### Create docker volumes for persistent storage - -Persistent storage Data: - -- `zealot-uploads`: Uploaded app file with extracted icon, uploaded debugging files. -- `zealot-backup`: backup files. -- `zealot-postgres`: Core database data. -- `zealot-redis`: Hot cache and background jobs data. - -### Pull images - -The first time you use it, you will initialize the database, -load the sample application data and set up the administrator account, -which is required for subsequent zealot updates. - -```bash -docker-compose pull -``` - -### Setup database data - -The first time you use it, you will initialize the database, load the sample application data -and set up the administrator account, which is required for subsequent zealot updates. - -```bash -docker-compose run --rm zealot run_upgrade -``` - -### Launch docker-compose - -Manual execution is required to run the service for security periods and user-defined operations: - -```bash -docker-compose up -d -``` - -## Advanced - -### Custom volumes - -You have two t - -There are two ways to customize the path: (Assuming that the custom path is `/data/zealot`) - -#### 1. Create custom docker volume - -```sh -docker volume create --name zealot-data \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/zealot-data - -docker volume create --name zealot-redis \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/redis - -docker volume create --name zealot-postgres \ - --opt type=none \ - --opt o=bind \ - --opt device=/data/zealot/postgres -``` - -#### 2. Change volumes part of docker-compose file - -Open `docker-compose.yml` file and find `volumes:`: - -```yaml -volumes: - zealot-data: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/data - zealot-redis: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/redis - - zealot-postgres: - driver: local - driver_opts: - o: bind - type: none - device: /data/zealot/postgres -``` - -## Complete example - -```yaml -version: "3.8" - -x-restart-policy: &restart_policy - restart: unless-stopped - -x-defaults: &defaults - <<: *restart_policy - image: ghcr.io/tryzealot/zealot:nightly - depends_on: - - redis - - postgres - env_file: .env - volumes: - - zealot-uploads:/app/public/uploads - - zealot-backup:/app/public/backup - - ./log:/app/log # Optional: persisting log files. - healthcheck: - test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost/health || exit 1"] - -services: - redis: - <<: *restart_policy - image: redis:7-alpine - command: redis-server - volumes: - - zealot-redis:/data - healthcheck: - test: ["CMD", "redis-cli", "ping"] - postgres: - <<: *restart_policy - image: postgres:14-alpine - volumes: - - zealot-postgres:/var/lib/postgresql/data - environment: - POSTGRES_PASSWORD: ze@l0t - healthcheck: - test: ["CMD", "pg_isready", "-U", "postgres"] - zealot: - <<: *defaults - # Port mapping can be enabled without the need for reverse proxy, - # mutually exclusive with the web reverse proxy service below. - ports: - - "80:80" - # Optional: Use a reverse proxy to host SSL certificates and services. - web: - image: caddy:2-alpine - ports: - - "80:80" - - "443:443" - volumes: - - ./caddy/etc/caddy/Caddyfile:/etc/caddy/Caddyfile:ro - - ./caddy/etc/caddy/certs:/etc/caddy/certs:ro - env_file: .env - environment: - ACME_AGREE: "true" - -# There are three methods of persistence: -volumes: - # 1. docker compose inside volumes - - zealot-uploads - - zealot-backup - - zealot-redis - - zealot-postgres - - # 2. docker compose external volumes - zealot-uploads: - external: true - zealot-backup: - external: true - zealot-redis: - external: true - zealot-postgres: - external: true - - # 3. mount local path - zealot-uploads: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/zealot/uploads - zealot-backup: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/zealot/backup - zealot-redis: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/redis - zealot-postgres: - driver: local - driver_opts: - o: bind - type: none - device: /tmp/postgres -``` diff --git a/versioned_docs/version-5.2/self-hosted/deployment/fly.md b/versioned_docs/version-5.2/self-hosted/deployment/fly.md deleted file mode 100644 index eb8714448..000000000 --- a/versioned_docs/version-5.2/self-hosted/deployment/fly.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -sidebar_label: "Fly" ---- - -# Deploy Zealot to Fly guide - -Zealot support use App Configuration (fly.toml) to deploy on [fly.io](https://fly.io). - -## Deploying on Fly - -- Install [flyctl](https://fly.io/docs/flyctl/). -- Copy full content of [app configuration](#app-configuration) save to `fly.toml` then change the `app` value . -- Run `flyctl deploy`. -- Run `fly scale vm shared-cpu-1x --memory 512`. - -### App Configuration - -```toml -app = "[app-name:changeme]" -kill_signal = "SIGINT" -kill_timeout = 120 -processes = [] - -[build] - image = "ghcr.io/tryzealot/zealot:nightly" - -[experimental] - allowed_public_ports = [] - auto_rollback = true - -[[services]] - http_checks = [] - internal_port = 80 - processes = ["app"] - protocol = "tcp" - script_checks = [] - [services.concurrency] - hard_limit = 25 - soft_limit = 20 - type = "connections" - - [[services.ports]] - force_https = true - handlers = ["http"] - port = 80 - - [[services.ports]] - handlers = ["tls", "http"] - port = 443 - - [[services.tcp_checks]] - grace_period = "1s" - interval = "15s" - restart_limit = 0 - timeout = "2s" - -[[statics]] - guest_path = "/app/public" - url_prefix = "/" -``` diff --git a/versioned_docs/version-5.2/self-hosted/deployment/kubernetes.md b/versioned_docs/version-5.2/self-hosted/deployment/kubernetes.md deleted file mode 100644 index db00e95d8..000000000 --- a/versioned_docs/version-5.2/self-hosted/deployment/kubernetes.md +++ /dev/null @@ -1,197 +0,0 @@ ---- -sidebar_label: "Kubernetes" ---- - -# Deploy Zealot with Kubernetes guide - -Zealot support deployments using Kubernetes, but only `.yaml` config files are available currently. - -## Check list - -- `ConfigMap` and `Secret` to configure enviroment variables. -- `PersistentVolumeClaim` to configure `public/uploads`, `public/bakcup`. -- `Deployment` to control `zealot` pod. - -## Steps - -### 10-zealot-namespace.yml - -Zealot namespace. - -```yaml title="10-zealot-namespace.yml" -api Version: v1 -kind: Namespace -metadata: -name: zealot -``` - -### 20-zealot-secrets.yml - -Zealot enviroments secrets. This is loaded all secrets [enviroments](/docs/self-hosted/configuration/environment-variables), **all values need encryt by base64**. - -```yaml title="20-zealot-secrets.yml" -apiVersion: v1 -kind: Secret -metadata: - namespace: zealot - name: zealot-secrets -data: - ZEALOT_ADMIN_EMAIL: V1ZkU2RHRlhOVUZsYlZab1lrYzVNRXh0VG5aaVVUMDk= - ZEALOT_ADMIN_PASSWORD: emVAbDB0 - ZEALOT_POSTGRES_HOST: cG9zdGdyZXM= - ZEALOT_POSTGRES_PORT: NTQzMg== - ZEALOT_POSTGRES_USERNAME: emVhbG90 - ZEALOT_POSTGRES_PASSWORD: emVAbDB0 - ZEALOT_POSTGRES_DB_NAME: emVhbG90 - REDIS_URL: cmVkaXM6Ly9yZWRpczo2Mzc5LzE= - - # echo -n 'secret-key' | sha256sum | awk '{ printf $1 }' | base64 - SECRET_TOKEN: ODVkYmUxNWQ3NWVmOTMwOGM3YWUwZjMzYzdhMzI0Y2M2ZjRiZjUxOWEyZWQyZjMwMjdiZDMzYzE0MGE0ZjlhYQ== -``` - -### 21-zealot-configmap.yml - -Zealot enviroments config map. This is loaded safe [enviroments](/docs/self-hosted/configuration/environment-variables). - -```yaml title="21-zealot-configmap.yml" -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: zealot - name: zealot-config -data: - ZEALOT_DOMAIN: zealot.example.com - DEFAULT_LOCALE: en - ZEALOT_REGISTER_ENABLED: "true" -``` - -### 30-zealot-storage.yml - -The creation of the persistent volume claims for uploaded files (apps/debug files) and backup files. May you want to increase the size. This expects to have a storage class installed. - -```yaml title="30-zealot-storage.yml" -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: zealot-uploads - namespace: zealot - labels: - app: zealot -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: zealot-backup - namespace: zealot - labels: - app: zealot -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 20Gi -``` - -### 40-zealot-deployment.yml - -Create zealot deployment, edit `replicas` and `image` tag. - -```yaml title="40-zealot-deployment.yml" -apiVersion: apps/v1 -kind: Deployment -metadata: - name: zealot - namespace: zealot -spec: - restartPolicy: Always - replicas: 1 - selector: - matchLabels: - app: zealot - template: - metadata: - labels: - app: zealot - spec: - containers: - - name: zealot - image: ghcr.io/tryzealot/zealot:nightly - # imagePullPolicy: Always - ports: - - containerPort: 80 - protocol: TCP - name: http - envFrom: - - configMapRef: - name: zealot-env - - secretRef: - name: zealot-secrets - volumeMounts: - - mountPath: /app/public/uploads - name: uploads - - mountPath: /app/public/backup - name: backup - volumes: - - name: uploads - persistentVolumeClaim: - claimName: zealot-uploads - - name: backup - persistentVolumeClaim: - claimName: zealot-backup -``` - -### 50-zealot-service.yml - -Creating zealot service. - -```yaml title="50-zealot-service.yml" -apiVersion: v1 -kind: Service -metadata: - name: zealot - namespace: zealot - labels: - app: zealot -spec: - selector: - app: zealot - ports: - - port: 80 - targetPort: http - name: http - protocol: TCP -``` - -### 60-zealot-ingress.yml - -Setting up the ingress for the zealot service. - -```yaml title="50-zealot-ingress.yml" -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: zealot - namespace: zealot - annotations: - #cert-manager.io/cluster-issuer: letsencrypt-prod - #kubernetes.io/ingress.class: nginx -spec: - rules: - - host: zealot.example.com - http: - paths: - - web: - service: - name: zealot - port: - number: 80 - path: / - pathType: Prefix -``` diff --git a/versioned_docs/version-5.2/self-hosted/deployment/nomad.md b/versioned_docs/version-5.2/self-hosted/deployment/nomad.md deleted file mode 100644 index 7faf13363..000000000 --- a/versioned_docs/version-5.2/self-hosted/deployment/nomad.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -sidebar_label: "Nomad" ---- - -# Deploy Zealot with Nomad guide - -Zealot support deployments using [Nomad](https://www.nomadproject.io/), it use [HCL](https://developer.hashicorp.com/nomad/docs/job-specification/hcl2) language to configure. - -## Setup - -### Using Nomad - -First, follow the official tutorial to install [nomad](https://developer.hashicorp.com/nomad/docs/install), this binary file contains the client and server. It is recommended to follow the [tutorials](https://developer.hashicorp.com/nomad/tutorials/get-started) to walk through it if you don't know it. - -The following file will create the postgres, redis and zealot services. -For the existing external database and cache services, -you can delete the corresponding `port`, `service` and `task` and edit the template variables in the `zealot` task. - -```hcl title="zealot.nomad" -job "zealot" { - type = "service" - datacenters = "dc1" // modify - - update { - max_parallel = 1 - min_healthy_time = "30s" - auto_revert = true - } - - group "zealot" { - network { - port "zealot" { - to = 80 - } - - port "postgres" { - to = 5678 - } - - port "redis" { - to = 6379 - } - } - - service { - name = "zealot" - port = "zealot" - provider = "nomad" - - // Register to traefik - // tags = [ - // "traefik.enable=true", - // "traefik.http.routers.zealot.entrypoints=web, websecure", - // "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)", - // ] - } - - service { - name = "postgres" - port = "postgres" - provider = "nomad" - - // Register to traefik - // tags = [ - // "traefik.enable=true", - // "traefik.tcp.routers.postgres.rule=HostSNI(`*`)", - // "traefik.tcp.routers.postgres.entrypoints=postgres", - // ] - } - - service { - name = "redis" - port = "redis" - provider = "nomad" - - // Register to traefik - // tags = [ - // "traefik.enable=true", - // "traefik.tcp.routers.redis.rule=HostSNI(`*`)", - // "traefik.tcp.routers.redis.entrypoints=redis", - // ] - } - - task "zealot" { - driver = "docker" - - config { - image = "ghcr.io/tryzealot/zealot:latest" - ports = ["zealot"] - - // modify - volumes = [ - "/tmp/zealot/uploads:/app/public/uploads", - "/tmp/zealot/backups:/app/public/backups", - ] - - // Register to homepage dashboard - // labels = { - // "homepage.group" = "Dev" - // "homepage.name" = "Zealot" - // "homepage.icon" = "mdi-progress-download" - // "homepage.href" = "https://zealot.example.com" - // "homepage.description" = "Beta App Distribution" - // } - } - - // Zealot example config - // https://github.com/tryzealot/zealot-docker/blob/master/config.env - template { - destination = "local/config.env" - change_mode = "restart" - env = true - data = <<-EOF - ZEALOT_APPEARANCE = dark - ZEALOT_DOMAIN = zealot.example.com - - ZEALOT_GUEST_MODE = false - ZEALOT_REGISTER_ENABLED = true - EOF - } - - template { - destination = "secrets/secret.env" - change_mode = "restart" - env = true - data = <<-EOF - # admin account - ZEALOT_ADMIN_EMAIL = admin@zealot.com - ZEALOT_ADMIN_PASSWORD = ze@l0t - - # datbase - ZEALOT_POSTGRES_HOST = {{ env "NOMAD_IP_postgres" }} - ZEALOT_POSTGRES_PORT = {{ env "NOMAD_PORT_postgres" }} - ZEALOT_POSTGRES_USERNAME = "zealot" - ZEALOT_POSTGRES_PASSWORD = "zealot" - ZEALOT_POSTGRES_DB_NAME = "zealot" - - # cache - REDIS_URL = redis://{{ env "NOMAD_ARRR_redis" }}/0 - - # secret token - SECRET_TOKEN = $${ sha256(uuidv5("url", "zealot.ews.im")) } - EOF - } - - resources { - cpu = 500 - memory = 500 - memory_max = 1000 - } - } - - task "postgres" { - driver = "docker" - - lifecycle { - hook = "prestart" - sidecar = true - } - - config { - image = "postgres:15-alpine" - ports = ["postgres"] - volumes = [ - "secrets/init-role.sql:/init-role.sql", - "secrets/init-db.sql:/init-db.sql" - ] - } - - env { - POSTGRES_INITDB_ARGS = "--data-checksums" - POSTGRES_USER = "zealot" - POSTGRES_PASSWORD = "zealot" - POSTGRES_DB = "zealot" - } - - resources{ - cpu = 512 - memory = 200 - memory_max = 512 - } - } - - task "redis" { - driver = "docker" - - lifecycle { - hook = "prestart" - sidecar = true - } - - config { - image = "redis:7-alpine" - ports = ["redis"] - } - - resources { - cpu = 200 - memory = 200 - } - } - } -} -``` - -Save the file and execute the command `nomad job run zealot.nomad`. - -### Using Terraform - -> Both Terraform and Nomad are the same company. - -Following the offical tutorials to install [terraform](https://www.terraform.io/), [nomad plugin](https://registry.terraform.io/providers/hashicorp/nomad/), -copy the `zealot.nomad` in previous step and edit a new file named `main.tf`: - - -```hcl -resource "nomad_job" "jobs" { - jobspec = file("${path.module}/zealot.nomad") -} -``` - -Execute `terraform plan` to ensure, then deploy `terraform apply`. - -## External Storages - -Nomad supports multi-cluster management, and in many cases the storage deployed by the service cannot be mounted directly to the corresponding file system, but is more often placed on top of a shared file storage protocol, such as SMB, NFS, S3, etc. - -### CSI - -Nomad currently supports the [CSI](https://developer.hashicorp.com/nomad/tutorials/stateful-workloads/stateful-workloads-csi-volumes) in [a limited capability](https://github.com/democratic-csi/democratic-csi/blob/master/docs/nomad.md) (Nomad 1.5). -Nomad can utilize CSI volumes, but it can not automatically create, destroy, or manage them in any capacity. Volumes have to be created externally and then registered with Nomad. -You can find a list of plugins in the [Kubernetes CSI Developer Documentation](https://kubernetes-csi.github.io/docs/drivers.html). - -Plugin | Schemes | Compatible | terraform nomad resource ----|---|---|--- -[kubernetes-csi-driver-smb](https://github.com/kubernetes-csi/csi-driver-smb) | smb | Unknown | Unknown -[kubernetes-csi-driver-nfs](https://github.com/kubernetes-csi/csi-driver-nfs) | nfs | Supported | [nomad_csi_volume_registration](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume_registration) -[kubernetes-csi-driver-iscsi](https://github.com/kubernetes-csi/csi-driver-iscsi) | iscsi | Supported | Supported -[democraticcsi/democratic-csi](https://github.com/democratic-csi/democratic-csi) | smb/nfs/iscsi | Supported | [nomad_csi_volume](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume) -[rocketduck/csi-plugin-nfs](https://gitlab.com/rocketduck/csi-plugin-nfs) | nfs | Supported | [nomad_csi_volume](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/csi_volume) diff --git a/versioned_docs/version-5.2/self-hosted/deployment/railway.md b/versioned_docs/version-5.2/self-hosted/deployment/railway.md deleted file mode 100644 index 74bbfae80..000000000 --- a/versioned_docs/version-5.2/self-hosted/deployment/railway.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -sidebar_label: "Railway" ---- - -# Deploy Zealot to Railway guide - -Zealot support use `Dockfile` to deploy on [Railway](https://railway.app/). - -## Deploying on Railway - -- Fork [Zealot](https://github.com/tryzealot/zealot/fork) project to your Github account. -- Create [New Project](https://railway.app/new) with "deploy from Github repo". -- Add [Enviroment](/docs/self-hosted/configuration/environment-variables) to Variables page. diff --git a/versioned_docs/version-5.2/self-hosted/deployment/render.md b/versioned_docs/version-5.2/self-hosted/deployment/render.md deleted file mode 100644 index 9dae672be..000000000 --- a/versioned_docs/version-5.2/self-hosted/deployment/render.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_label: "Render" ---- - -# Deploy Zealot to Render guide - -Zealot support a render [blueprint](https://render.com/docs/blueprint-spec) named `render.yaml` to deploy on [render.com](https://render.com/). - -## Deploying on Render - -* It uses the [Zealot Docker image](https://ghcr.io/tryzealot/zealot). -* It uses [Render Disks](https://render.com/docs/disks) for permanent SSD storage for uploaded files and content. -* It uses [PostgreSQL](https://render.com/docs/databases) as the backing database and [Redis](https://render.com/docs/redis) as cache service. - -### Install button - -[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/tryzealot/zealot) diff --git a/versioned_docs/version-5.2/self-hosted/deployment/requirements.md b/versioned_docs/version-5.2/self-hosted/deployment/requirements.md deleted file mode 100644 index 0abbdaacb..000000000 --- a/versioned_docs/version-5.2/self-hosted/deployment/requirements.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -sidebar_label: "Requirements" ---- - -# Zealot Self Hosted Requirements - -This page incldues useful information on the requirements that are needed to install and run Zealot on your servers. - -## Operating Systems - -Installation of Zealot is possible on most Linux environments, but not officially supported. - -## Hardware requirements - -### Architecture - -Zealot can now run on either x86_64(amd86) or arm64(armv8/arrch) or armv7 based mostly Linux OS, for example: Debian, Ubuntu, CentOS, Arch Linux, Armbian etc. - -### CPU - -CPU requirements are dependent on the usage and expected workload. Your workload is influenced by factors such as - but not limited to - how many apps and debug files are uploaded and parsed, how many apps are downloaded, how many web hooks are triggered, how often Apple developers sync test devices, and how much and how often backup schedule jobs are made. - -The following is the recommended minimum CPU hardware guidance for a handful of example Zealot conversation base sizes. - -- **1 cores** is the **required** minimum number of cores. - -### Memory - -Memory requirements are dependent on the usage and expected workload. Your workload is influenced by factors such as - but not limited to - how many apps and debug files are uploaded and parsed, how many apps are downloaded, how many web hooks are triggered, how often Apple developers sync test devices, and how much and how often backup schedule jobs are made. - -The following is the recommended minimum Memory hardware guidance for a handful of example Zealot conversation base sizes. - -- **512MB RAM** is the **required** minimum memory size. - -### Storage - -The necessary hard drive space largely depends on the size and number of apps and debug files uploaded, also include backup files. - -## Software requirements - -### Ruby versions - -- Ruby 3.0 and later is required. - -You must use the standard MRI implementation of Ruby. Zealot needs several Gems that have native extensions. - -### Node.js versions - -Zealot uses [esbuild](https://esbuild.github.io/) and [sass](https://sass-lang.com/) to compile frontend assets. - -We recommend Node 14.x or higher version, as it's faster. - -You can check which version you're running with `node -v`. If you're running a version older than `v8.0`, -you need to update it to a newer version. You can find instructions to install from community maintained packages or compile from source at the [Node.js website](https://nodejs.org/en/download/). - -## Database - -PostgreSQL is the only supported database. We don't have plans to support any other alternatives as of now. - -### PostgreSQL Requirements - -The server running PostgreSQL should have _at least_ 5-10 GB of storage -available, though the exact requirements depends on the usage on your Zealot Instance. - -We highly recommend using the latest stable PostgreSQL versions as these were used for development and testing. - -### Redis - -Redis stores the background task queue and various Zealot configurations cached. -The storage requirements for Redis are minimal, You can start with 50MB and scale up as required. - -Redis version 6.2 or higher version is recommended - -## Sidekiq - -Sidekiq processes the background jobs with a multi-threaded process. -This process starts with the entire Rails stack but it can grow over time due to memory leaks. -On a very active server the Sidekiq process can use 1GB+ of memory. - -## Supported web browsers - -:::tip - -We don't support running Zealot with JavaScript disabled in the browser. - -::: - -Zealot supports the following web browsers: - -- [x] [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/) -- [x] [Google Chrome](https://www.google.com/chrome/) -- [x] [Chromium](https://www.chromium.org/getting-involved/dev-channel) -- [x] [Apple Safari](https://www.apple.com/safari/) -- [x] [Microsoft Edge](https://www.microsoft.com/en-us/edge) diff --git a/versioned_docs/version-5.2/self-hosted/deployment/source-code.md b/versioned_docs/version-5.2/self-hosted/deployment/source-code.md deleted file mode 100644 index 2299a3be8..000000000 --- a/versioned_docs/version-5.2/self-hosted/deployment/source-code.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar_label: "Source code" ---- - -# Source code - -It had been rewrite to [Contributing Guide](/docs/contributing-guide). diff --git a/versioned_docs/version-5.2/self-hosted/index.md b/versioned_docs/version-5.2/self-hosted/index.md deleted file mode 100644 index 0d2011b45..000000000 --- a/versioned_docs/version-5.2/self-hosted/index.md +++ /dev/null @@ -1,14 +0,0 @@ -# Self-hosted Installation Guide - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -This guide will help you to install and setup a production ready Zealot. - - diff --git a/versioned_docs/version-5.2/self-hosted/reverse-proxies.mdx b/versioned_docs/version-5.2/self-hosted/reverse-proxies.mdx deleted file mode 100644 index 3c27641a9..000000000 --- a/versioned_docs/version-5.2/self-hosted/reverse-proxies.mdx +++ /dev/null @@ -1,278 +0,0 @@ -# Reverse Proxies - -To facilitate the unified management and distribution of SSL certificates, service expansion and access to off-the-shelf gateway services, -we provides several configurations for configuring reverse proxy services to the gateway. - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -## Prepare - -The following data needs to be prepared to configure the reverse proxy: - -Name | Sample value | Description ----|---|--- -Domain | zealot.example.com | -Reverse proxy service IP address | 172.16.56.1 | -Zealot IP address | 172.16.56.100 | Reverse Proxy can be accessed
Change to 127.0.0.1 Reverse Proxy and zealot with one host. -Zealot public port | 8901 | Reverse Proxy can be accessed -Zealot internal port | 80 | No need modify -Let's Encrypt Email address | your-email@example.com - -## Traefik - -[Traefik](https://doc.traefik.io/traefik/) is an open source reverse proxy and load balancing tool, -which provides a variety of Providers can achieve access to the reverse proxy and configure the SSL. - -### Configuration - -Regardless of the type of Provider used the core configuration items are the same and constitute the reverse proxy service configuration consists of three main components: discovery port number, -routing rules (including access port number, domain name binding and SSL) - -### Traefik service - -```mdx-code-block - - -``` - -```yaml -entryPoints: - web: - address: ":80" - - websecure: - address: ":443" - -certificatesResolvers: - letsencrypt: - acme: - email: your-email@example.com - storage: acme.json - httpChallenge: - entryPoint: web -``` - -```mdx-code-block - - -``` - -```toml -[entryPoints] - [entryPoints.web] - address = ":80" - - [entryPoints.websecure] - address = ":443" - -[certificatesResolvers.letsencrypt.acme] - email = "your-email@example.com" - storage = "acme.json" - [certificatesResolvers.letsencrypt.acme.httpChallenge] - # used during the challenge - entryPoint = "web" -``` - -```mdx-code-block - - -``` - -```bash ---entrypoints.web.address=:80 ---entrypoints.websecure.address=:443 - ---certificatesresolvers.letsencrypt.acme.email=your-email@example.com ---certificatesresolvers.letsencrypt.acme.storage=acme.json ---certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web -``` - -```mdx-code-block - - -``` - -### Docker - -Enable [Docker provider](https://doc.traefik.io/traefik/providers/docker/#configuration-examples) then edit the Docker Compose file: - -```yaml title="docker-compose.yml" -version: '3' -services: - zealot: - <<: *defaults - labels: - - "traefik.enable=true" - - "traefik.http.services.zealot.loadbalancer.server.port=80" - - "traefik.http.routers.zealot.service=zealot" - - "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)" - - "traefik.http.routers.zealot.tls=true" - - "traefik.http.routers.zealot.tls.certresolver=letsencrypt" - - "traefik.http.routers.zealot.tls.domains[0].main=icyleaf.dev" - - "traefik.http.routers.zealot.tls.domains[0].sans=zealot.example.com" - # Comment port, no need to public - # ports: - # - "8901:80" - network: - # Change the network what traefik service is - - traefik-services - -networks: - # Change the network what traefik service is - traefik-services: - external: true -``` - -Deployment with Docker is limited to Traefik and Zealot service are usually in the same OS system of the same machine, -cross-machine can not achieve communication, for cross-machine need to refer to the following two configuration options. - -### Consul - -Enable [Consul provider](https://doc.traefik.io/traefik/providers/consul/) or [Consul Catalog provider](https://doc.traefik.io/traefik/providers/consul-catalog/), add key-value below: - -```shell -consul kv put traefik/http/services/zealot/loadbalancer/server/port 5 -consul kv put traefik/http/routers/zealot/service zealot -consul kv put traefik/http/routers/zealot/rule 'Host(`zealot.example.com`)' -consul kv put traefik/http/routers/zealot/tls/certresolver letsencrypt -consul kv put traefik/http/routers/zealot/tls/domains/0/main icyleaf.dev -consul kv put traefik/http/routers/zealot/tls/domains/0/sans zealot.example.com -``` - -### Nomad - -Enable [Nomad provider](https://doc.traefik.io/traefik/providers/nomad/) and make sure Nomad version >= 1.3: - -```hcl title="zealot.nomad" -job "zealot" { - datacenters = ["dc1"] - type = "service" - - group "zealot" { - count = 1 - - network { - port "http"{ - static = 80 - } - } - - service { - name = "zealot-http" - provider = "nomad" - port = "http" - } - - task "server" { - driver = "docker" - config { - image = "ghcr.io/tryzealot/zealot:nightly" - ports = ["http"] - args = [ - - "traefik.http.routers.zealot.rule=Host(`zealot.example.com`)", - - "traefik.http.routers.zealot.tls=true", - - "traefik.http.routers.zealot.tls.certresolver=letsencrypt", - - "traefik.http.routers.zealot.tls.domains[0].main=icyleaf.dev", - - "traefik.http.routers.zealot.tls.domains[0].sans=zealot.example.com" - ] - } - } - } -} -``` - -## Caddy 2 - -The configuration only needs to relate the ip part after `tls` and `proxy`: - -```nginx title="Caddyfile" -:443 - -log - -# Use Let's Encrypt service -tls your-email@example.com - -reverse_proxy 172.16.56.100:8901 -``` - -## Nginx - -The following is the general configuration, if not effects welcome to [file a issue](https://github.com/tryzealot/docs/issues/new): - -```nginx title="conf.d/zealot.conf" -upstream zealot { - zone upstreams 64K; - server 172.16.56.100:8901; - keepalive 32; -} - -map $http_upgrade $connection_upgrade { - default upgrade; - '' close; -} - -server { - listen 80; - listen [::]:80; - server_name zealot.example.com; - location /.well-known/acme-challenge/ { allow all; } - location / { return 301 https://$host$request_uri; } -} - -server { - listen 443 ssl http2; # Optional: http2 may needs install extension - listen [::]:443 ssl http2; - server_name zealot.example.com; - - ssl_certificate /etc/certs/zealot-cert.pem; - ssl_certificate_key /etc/certs/zealot.pem; - - # Optional - # ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA; - # ssl_session_timeout 5m; - # ssl_session_cache shared:SSL:1m; - # ssl_prefer_server_ciphers on; - - location / { - proxy_pass http://zealot; - proxy_redirect off; - - proxy_pass_header Authorization; - proxy_set_header Host $host; - # proxy_set_header X-Forwarded-Ssl on; # Optional - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - - client_max_body_size 0; - proxy_read_timeout 36000s; - } -} -``` - -And you need update max body size in `http` block. Recommended is 200MB, if it's a game, -50% more can be played to make a surplus according to the actual file size. - -```nginx title="nginx.conf" -http { - [...] - - client_max_body_size 200M; -} -``` diff --git a/versioned_docs/version-5.2/self-hosted/sidebars.js b/versioned_docs/version-5.2/self-hosted/sidebars.js deleted file mode 100644 index e0aa8f7e7..000000000 --- a/versioned_docs/version-5.2/self-hosted/sidebars.js +++ /dev/null @@ -1,71 +0,0 @@ -module.exports = [ - { - label: "Getting Started", - type: "doc", - id: 'self-hosted/index', - }, - { - collapsible: false, - label: "Deployment", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "self-hosted/deployment/architecture", - "self-hosted/deployment/requirements", - { - collapsible: true, - label: "Docker", - type: "category", - link: { - type: "doc", - id: "self-hosted/deployment/docker", - }, - items: [ - "self-hosted/deployment/docker/step-by-step", - ], - }, - "self-hosted/deployment/kubernetes", - "self-hosted/deployment/nomad", - "self-hosted/deployment/source-code" - ], - }, - { - type: 'doc', - label: "Reverse Proxies", - id: 'self-hosted/reverse-proxies', - }, - { - collapsible: false, - label: "Cloud Provider Guides", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "self-hosted/deployment/fly", - "self-hosted/deployment/railway", - "self-hosted/deployment/render" - ] - }, - { - collapsible: false, - label: "Configuration", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "self-hosted/configuration/environment-variables", - "self-hosted/configuration/third-party-authentication", - "self-hosted/configuration/schedule-jobs", - ], - }, - { - type: 'doc', - label: "Storage", - id: 'self-hosted/storage', - }, - -]; diff --git a/versioned_docs/version-5.2/self-hosted/storage.md b/versioned_docs/version-5.2/self-hosted/storage.md deleted file mode 100644 index e62e27d16..000000000 --- a/versioned_docs/version-5.2/self-hosted/storage.md +++ /dev/null @@ -1,27 +0,0 @@ -# Data storages - -Here is a list of all the data storages required by the Zealot service, -for those who are able to manually backup and restore data before better backup management tools are available. - -## Postgres - -This is used to store and manage all data related to Zealot, so it goes without saying. - -## Redis - -Currently only the sidekiq asynchronous task service is using it to store some task status and statistics. - -## File storage - -The Zealot service relies on postgresql, redis and some other disk storage for uploaded application and debug files. -It is currently stored in the filesystem in the `public/uploads` directory. - -- apps The directory for uploading applications -- debugs_files directory for uploading debug files - -## Backup storage - -The Zealot service currently supports command-generated backup data, which will contain -the database and binary packages of the uploaded apps and debug files. - -The backup data is currently stored in the file system in the `public/backup` directory. diff --git a/versioned_docs/version-5.2/user-guide/administrator/apple-team.mdx b/versioned_docs/version-5.2/user-guide/administrator/apple-team.mdx deleted file mode 100644 index 8313d8900..000000000 --- a/versioned_docs/version-5.2/user-guide/administrator/apple-team.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -sidebar_label: "Apple Team" ---- - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -# Apple Team (Developer) - -One of the biggest challenges in distributing Ad-Hoc signed applications for iOS is the need to -convey what a UDID is and how to obtain it to a large number of people who may not understand -these concepts. After obtaining the UDID, it then needs to be provided to the developer, -who must then re-sign the certificate, package it, and upload it for installation. - -Zealot can automatically obtain the UDID of Ad-Hoc applications. -Although the UDIDs are usually accompanied by device names during registration, -sometimes it is difficult to understand which device belongs to whom when presented with a -list of UDIDs. To solve this problem, Zealot has tried several solutions. In the early days, -the fastlane plugin zealotsyncdevice was used to synchronize the names and models of testing devices. -With the release of the AppStoreConnect API, Zealot can now completely automate the process, -greatly simplifying the registration process and allowing testing applications to display -recognizable and friendly device names. - - - -Although providing the UDID of a device confirms which applications can be installed, -providing a feature to register a testing device that has not been registered with any application -would greatly improve the efficiency of the team. This is the role of the Apple Developer feature. - - - -The initial feature introduction: https://github.com/tryzealot/zealot/issues/723. diff --git a/versioned_docs/version-5.2/user-guide/administrator/backup.mdx b/versioned_docs/version-5.2/user-guide/administrator/backup.mdx deleted file mode 100644 index 494b0e9f6..000000000 --- a/versioned_docs/version-5.2/user-guide/administrator/backup.mdx +++ /dev/null @@ -1,38 +0,0 @@ ---- -sidebar_label: "Backup" ---- - -# Backup Schedule - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Backup list - - - -## Backup detail - - - -## Create a backup - - diff --git a/versioned_docs/version-5.2/user-guide/administrator/monitoring/background-jobs.mdx b/versioned_docs/version-5.2/user-guide/administrator/monitoring/background-jobs.mdx deleted file mode 100644 index 418dc9c19..000000000 --- a/versioned_docs/version-5.2/user-guide/administrator/monitoring/background-jobs.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Background Jobs - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.2/user-guide/administrator/monitoring/database-analytics.mdx b/versioned_docs/version-5.2/user-guide/administrator/monitoring/database-analytics.mdx deleted file mode 100644 index a18a394cf..000000000 --- a/versioned_docs/version-5.2/user-guide/administrator/monitoring/database-analytics.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Database Analytics - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.2/user-guide/administrator/monitoring/logging.mdx b/versioned_docs/version-5.2/user-guide/administrator/monitoring/logging.mdx deleted file mode 100644 index 546d52ba0..000000000 --- a/versioned_docs/version-5.2/user-guide/administrator/monitoring/logging.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Logging - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.2/user-guide/administrator/monitoring/system-info.mdx b/versioned_docs/version-5.2/user-guide/administrator/monitoring/system-info.mdx deleted file mode 100644 index 31fe466a5..000000000 --- a/versioned_docs/version-5.2/user-guide/administrator/monitoring/system-info.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# System informations - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.2/user-guide/administrator/permissions.md b/versioned_docs/version-5.2/user-guide/administrator/permissions.md deleted file mode 100644 index 6212251f2..000000000 --- a/versioned_docs/version-5.2/user-guide/administrator/permissions.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -sidebar_label: "Permissions" ---- - -# User Permissions and roles - -Zealot offers four types of user permissions. - -- Guest -- User -- Developer -- Administrator - -## Comparison - -Action | Guest[On/Off] | User | Developer | Administrator ----|---|---|---|--- -`Dashboard`
View all data | ✓/✕ | ✓ | ✓ | ✓ -`App`
View app list | ✓/✕ | ✓ | ✓ | ✓ -`App`
View app scheme(s) and channel(s) detail | ✓/✕ | ✓ | ✓ | ✓ -`App`
View the build(release) of app | ✓/✓
Password Auth | ✓ | ✓ | ✓ -`App`
View webhook list | ✓/✕ | ✓ | ✓ | ✓ -`App`
Upload/Install/Download app | ✓ | ✓ | ✓ | ✓ -`App`
Create/Edit/Delete an app | | | ✓ | ✓ -`App`
Create/Edit/Delete a scheme/channel of app | | | ✓ | ✓ -`App`
Delete a given version of app | | | ✓ | ✓ -`App`
Test a webhook network connection | | | ✓ | ✓ -`App`
Enable/Disable webhook | | | ✓ | ✓ -`App`
Delete an app | | | ✓ | ✓ -`DebugFile`
View debug file list | ✓/✕ | ✓ | ✓ | ✓ -`DebugFile`
View debug file detail | ✓ | ✓ | ✓ | ✓ -`DebugFile`
Download debug file | ✓ | ✓ | ✓ | ✓ -`DebugFile`
Upload/Delete a debug file | | | ✓ | ✓ -`Teardown`
View teardown list | ✓/✕ | ✓ | ✓ | ✓ -`Teardown`
View teardown detail | ✓/✕ | ✓ | ✓ | ✓ -`Teardown`
Delete a teardown | | | ✓ | ✓ -`Admin`
View and manage users | | | | ✓ -`Admin`
View and manage webhooks | | | | ✓ -`Admin`
View and manage settings | | | | ✓ -`Admin`
View system informations | | | | ✓ -`Admin`
View and manage background jobs| | | | ✓ -`Admin`
View page analytices | | | | ✓ diff --git a/versioned_docs/version-5.2/user-guide/administrator/settings.mdx b/versioned_docs/version-5.2/user-guide/administrator/settings.mdx deleted file mode 100644 index 295e1e1e8..000000000 --- a/versioned_docs/version-5.2/user-guide/administrator/settings.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Settings - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.2/user-guide/apps/create.mdx b/versioned_docs/version-5.2/user-guide/apps/create.mdx deleted file mode 100644 index c3f4a3145..000000000 --- a/versioned_docs/version-5.2/user-guide/apps/create.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Create an App - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.2/user-guide/apps/detail.mdx b/versioned_docs/version-5.2/user-guide/apps/detail.mdx deleted file mode 100644 index 5beb87eb5..000000000 --- a/versioned_docs/version-5.2/user-guide/apps/detail.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Uploaded releases - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.2/user-guide/apps/index.mdx b/versioned_docs/version-5.2/user-guide/apps/index.mdx deleted file mode 100644 index 7684fd980..000000000 --- a/versioned_docs/version-5.2/user-guide/apps/index.mdx +++ /dev/null @@ -1,54 +0,0 @@ -# Manage apps - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Apps list - - - -## Edit app - - - -## Create a new scheme - - - -## Create a new channel - - - -## Edit channel - - diff --git a/versioned_docs/version-5.2/user-guide/apps/upload.mdx b/versioned_docs/version-5.2/user-guide/apps/upload.mdx deleted file mode 100644 index cf2828c8a..000000000 --- a/versioned_docs/version-5.2/user-guide/apps/upload.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Uploaded a release - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.2/user-guide/best_practices.md b/versioned_docs/version-5.2/user-guide/best_practices.md deleted file mode 100644 index b508db09f..000000000 --- a/versioned_docs/version-5.2/user-guide/best_practices.md +++ /dev/null @@ -1,73 +0,0 @@ -# Best Practices - -## Workflow - -### iOS and Android Apps - -#### Zealot SDKs - -Integration with the Zealot SDK allows non-client development to automatically trigger new version checks, view change logs, and install functionality. - -#### Install fastlane - -In addition to the fastlane-plugin-zealot plugin, which is required to upload applications and debug files, -it is highly recommended to install the following plug-ins in addition to fastlane. - -- [ci_changelog](https://github.com/icyleaf/fastlane-plugin-ci_changelog) | Support for multiple CI systems to automatically generate change history -- [update_jenkins_build](https://github.com/icyleaf/fastlane-plugin-update_jenkins_build) | Automatically Update Jenkins Build Description -- [humanable_build_number](https://github.com/icyleaf/fastlane-plugin-humanable_build_number) | Generate a build version number that is recognizable to development -- [app_info](https://github.com/icyleaf/fastlane-plugin-app_info) | View metadata about the application after successful packaging -- [ram_disk](https://github.com/icyleaf/fastlane-plugin-ram_disk) | Create in-memory virtual disks, mainly used to improve App build speed (consider if memory is large) -- [debug_file](https://github.com/icyleaf/fastlane-plugin-debug_file) | Automated search for iOS/macOS dSYM or Android Proguard (obfuscation) and packaging of Zip files - -```ruby -# Build and upload ipa to zealot service -lane :upload_app do - # Building the package file, using gym in iOS, gradle in Android - gym - - # Uploading to Zealot - zealot( - endpoint: '...', - token: '...', - channel_key: '...' - ) - - # Uploading dSYM file to Zealot - zealot_debug_file( - scheme: 'AppName' - ) -end - -# Build android package file and generate progguard then upload to zealot service -lane :upload_debug_file do - # Building the package file, using gym in iOS, gradle in Android - gradle - - # Automated search for iOS/macOS dSYM or Android Proguard (obfuscation) and packaging of Zip files - debug_file - - # Uploading to Zealot - zealot( - endpoint: '...', - token: '...', - channel_key: '...' - ) - - # Uploading Proguard file to Zealot - zealot_debug_file( - build_type: 'release', - flavor: 'googleplay' - ) -end -``` - -### CI/CD Service - -For example, Jenkins, configure the project, set up the git hook to trigger packaging, nothing to say - -### Zealot Service - -In addition to managing each uploaded application and debug file, each time an uploaded application is received, -a configured web hook is triggered to send a notification to the third-party service that a new version has been received, -and for mobile clients that integrate with the Zealot SDK, they will receive a new version installation alert each time they open the app for the first time. diff --git a/versioned_docs/version-5.2/user-guide/changelog.md b/versioned_docs/version-5.2/user-guide/changelog.md deleted file mode 100644 index ede3132d1..000000000 --- a/versioned_docs/version-5.2/user-guide/changelog.md +++ /dev/null @@ -1,616 +0,0 @@ -# Changelog - -## 5.2.3 (2024-04-29) - -Full [commit changes][5.2.3]. - -#### Fixed - -- `Web` Fixed an issue where the user registration prompt username was empty. [#1479](https://github.com/tryzealot/zealot/pull/1479) thanks to [mlch911](https://github.com/mlch911) - -## 5.2.2 (2024-04-03) - -Full [commit changes][5.2.2]. - -#### Fixed - -- `Web` Fix OIDC redirect_uri. [#1455](https://github.com/tryzealot/zealot/pull/1455) thanks to [yiukamsum](https://github.com/yiukamsum) - -## 5.2.1 (2024-04-02) - -Fixed the pesky bug where the install button would not show on iOS 14.5 and below systems. For detailed [changelog][5.2.1]. - -#### Fixed - -- `Web` Install button not displayed on iOS 13 and below. [#1335](https://github.com/tryzealot/zealot/issues/1335) thanks to [InjoyDeng](https://github.com/InjoyDeng) [mlch911](https://github.com/mlch911) -- `Web` Deleting any sub-level of a new app caused an abnormal app list page. [#1445](https://github.com/tryzealot/zealot/issues/1335) thanks to [InjoyDeng](https://github.com/InjoyDeng) -- `Web` Fixed anomalies with empty channels on the app type detail page. [#1426](https://github.com/tryzealot/zealot/issues/) thanks to [Liberately](https://github.com/Liberately) -- `API` Fixed the wrong logic when getting the latest version without a bundle_id. -- `API` Non-iOS app downloads use a regular download URL for the install_url. - -## 5.2.0 (2024-03-14) - -Minor functional fixes, with minor upgrades to new features. Full [commit changes][5.2.0]. - -#### Added - -- `Web` New setting for maximum number of retained versions added [#1407](https://github.com/tryzealot/zealot/pull/1407) -- `Web` Opened up the feature for macOS systems to retrieve device UDID -- `Web` Allow registration of macOS devices to Apple Developer for testing - -#### Fixed - -- `Web` Exception error for Android unpacking without services storage -- `Web` Failure to create due to validation error on creating webhook format [#1314](https://github.com/tryzealot/zealot/issues/1314) -- `Web` Exception error caused by application version details mismatching debug files query [#1406](https://github.com/tryzealot/zealot/issues/1406) -- `API` Fixed the download debug files endpoint and changed the request to GET [#1416](https://github.com/tryzealot/zealot/issues/1416) - -## 5.1.0 (2023-12-07) - -Mainly functional fixes, with minor upgrades to new features. Full [commit changes][5.1.0]. - -#### Changed - -- `Docker` **Major Change** The minimum version of Redis dependencies has been updated from 5.x to 6.2+. It is recommended to use version 7.x. When upgrading, please manually modify the settings. - -#### Added - -- `Docker` added Redis and PostgreSQL version checks; running below minimum versions may cause malfunction. -- `Docker` service initializes by creating databases during startup. -- `Web` enhanced validation conditions for JSON format settings on the settings page. - -#### Fixed - -- `Web` checks disk space upon upload to determine file existence. -- `Web` fixed debug file association with application versions. -- `Web` resolved issue where the application unpack details page wasn't displaying the list of testing devices. -- `Web` optimized display information on error pages for application versions. -- `Web` improved display for long package names of mobile device applications. -- `Web` optimized some page styles and the display of English language. -- `API/Web` fixed issue where the Android app parsing icon in webp format failed to convert to png. -- `API` resolved GraphQL user authentication. - -## 5.0.0 (2023-09-06) - -Any archived package of application supportted (e.g. `Windows` or `Linux`)). Full [commit changes][5.0.0]. - -#### Changed - -- `Docker` **Major Change** The minimum version of Redis dependencies has been updated from 5.x to 6.2+. It is recommended to use version 7.x. When upgrading, please manually modify the settings. - -#### Added - -- `Web`/`API` supports hosting of general applications (those that can be parsed automatically and those that cannot be parsed are skipped), and Windows and Linux platforms are added by default [#1121](https://github.com/tryzealot/zealot/pull/1121) -- `Web`/`API` adds support for hosting Windows applications (uploading and displaying metadata parsing) [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` has a new debugging file page and adds support for parsing and hosting multiple dSYM debugging files [#1127](https://github.com/tryzealot/zealot/pull/1127) [#1124](https://github.com/tryzealot/zealot/pull/1124) [#961](https://github.com/tryzealot/zealot/issues/961) -- `Web` supports unpacking v1, v2, and v3 signature information for Android applications [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` strengthens X509 certificate information for unpacking Android and iOS applications [#1124](https://github.com/tryzealot/zealot/pull/1124) -- `Web` adds a "Reparse" function to update the metadata of old structure debugging files -- `Web` supports markdown format for change logs of uploaded application versions -- `Web` settings page can configure the global "minimum number of items returned per page" and "maximum number of items" -- `Web` for iOS applications, the application version details page displays the expiration time information of the signing certificate and the logical restriction of installation failure due to expired signing certificate (can be downloaded) -- `Web` adds or updates JSON format verification to network hooks and settings pages. -- `Web` supports registering test devices to Apple developers with custom device names and editing/updating device names after creation. -- `Web` supports downloading private key certificates for Apple developers. - -#### Fixed - -- `Web` fixes the issue of being unable to delete unpacked applications -- `Web` optimizes the style of some pages -- `Web` corrects errors in the English language package (en language i18n) -- `Web` fixes the error page that appears when creating an empty application type -- `Web` fixes the 404 error page that appears when a file is not found. -- `API` fixes the logic optimization of comparing build_version for retrieving the latest version of an application. -- `Web` optimizes the error handling for custom field format during application upload. -- `Web` optimizes the correct redirection for URL injection, empty application history versions, and unregistered devices. -- `Web` optimizes the display of error information for backup tasks. -- `Web` adds type detection for application types and debug files during application upload. -- `Web` fixes the error message of not preselecting the creation of a Distribution Certificate for Apple developers. - -## 4.7.1 (2023-03-10) - -Support for parsing aab applications generated by the latest Android aapt2 build tool, full [commit changes][4.7.1]. - -#### Changed - -- `Docker` **Major Change** The minimum version of Redis dependencies has been updated from 5.x to 6.2+. It is recommended to use version 7.x. When upgrading, please manually modify the settings. - -#### Fixed - -- `Web` upgrades to the latest appt2 model to avoid exceptions when parsing aab files. -- `Web` implements duplicate processing for parsing exceptions. - -#### Added - -- `Web` adds application types to the details page of unpacked Android applications. -- `Web` adjusts the original page after editing an application channel. - -## 4.7.0 (2023-03-03) - -**Major Change** The minimum version of Redis dependencies has been updated from 5.x to 6.2+. Full [commit changes][4.7.0]. - -#### Changed - -- `Docker` **Major Change** The minimum version of Redis dependencies has been updated from 5.x to 6.2+. It is recommended to use version 7.x. When upgrading, please manually modify the settings. - -#### Added - -- `Web` adds a control switch for "New Upload Version Prompt Window" to application types. [#1058](https://github.com/tryzealot/zealot/pull/1058) Thanks to [softwind0214](https://github.com/softwind0214) -- `Web` allows clicking on the application icon on the application list page to jump to the application details page. -- `Web` adds the display of the version number of dependent services to the environment information. -- `Web` adds support for displaying nightly build versions in the version number. - -#### Fixed - -- `Web` downgrades Ruby version to 3.0 temporarily to solve the iOS application parsing crash caused by the high version. See [#1070](https://github.com/tryzealot/zealot/issues/1070) for details. -- `Web` fixes the display order of applications/types/channels, which is now fixed as ascending order of creation time. -- `Web` fixes the issue where there is no confirmation prompt when a user logs out. -- `Web` fixes the issue where the main historical version of an application cannot be deleted. -- `Web` improves the style of multiple pages. -- `Web` no longer displays Javascript debugger logs in production environments. - -## 4.6.0 (2023-01-17) - -The runtime environment has been upgraded to Ruby 3.2 and now supports arm64 platforms. Full [commit changes][4.6.0]. - -#### Fixed - -- `Web` captures the issue of creating an application channel with an empty name. [#968](https://github.com/tryzealot/zealot/issues/968) Thanks to [congpeijun](https://github.com/congpeijun) -- `Web` improves the logic for backup files that do not exist on disk. [#995](https://github.com/tryzealot/zealot/issues/995) - -#### Added - -- `Docker` supports arm64/v8 and armv7 arch. [#970](https://github.com/tryzealot/zealot/pull/970) -- `Web` Adopted a new 50x error page. - -#### Changed - -- `Web` upgrades the Ruby version to 3.2 in development environments, and devcontainers and containers now have the YJIT feature enabled by default. [#1011](https://github.com/tryzealot/zealot/pull/1011) -- `API` updates the data structure of the debug file return and changes the status code from 204 to 200. - -## 4.5.3 (2022-11-22) - -Full [commit changes][4.5.3]. - -#### Fixed - -- `Web` Fixes the issue where third-party login cannot be redirected. [#949](https://github.com/tryzealot/zealot/issues/949) Thanks to [softwind0214](https://github.com/softwind0214) - -#### Added - -- `Docker` Adds a new environment variable to disable the request protection of WebSocket (ActionCable) requests (experimental). [#950](https://github.com/tryzealot/zealot/pull/950) - -## 4.5.2 (2022-11-01) - -Full [commit changes][4.5.2]. - -#### Fixed - -- `Web` fixes the issue where registering a test device is abnormal. [#935](https://github.com/tryzealot/zealot/issues/935) Thanks to [ycy0430](https://github.com/ycy0430) -- `Web` adapts the QR code to support dark mode. -- `Web` corrects the English language pack. - -#### Added - -- `WebHook` Income webhook body structure adds the `username` and `email` fields. [#934](https://github.com/tryzealot/zealot/issues/934) Thanks to [rkonfj](https://github.com/rkonfj) -- `Docker` The `SIDEKIQ_CONCURRENCY` environment variable is now supported to set the concurrency of background tasks, with a default value of 5. - -#### Changed - -- `Docker` reduces security risks by changing the Web service, which includes puma and pumacontrolserver, to listen on `127.0.0.1`. -- `Web` optimizes the wording of the iOS device UDID profile. -- `Web` updates the text at the bottom of the page. Thanks to Rails and the AdminLTE open source project! - -## 4.5.1 (2022-09-14) - -Full [commit changes][4.5.1] - -#### Fixed - -- `Web` Fixes the issue where the application unpacking results in parsing errors. - -## 4.5.0 (2022-08-19) - -Supports the 🌑 dark mode and managing the test devices of an 👨🏻‍🔧 Apple developer account! Full [commit changes][4.5.0]. - -#### Added - -- `Web` supports dark mode. [#816](https://github.com/tryzealot/zealot/pull/816) -- `Web` adds Apple developer management for registering test devices. [#817](https://github.com/tryzealot/zealot/pull/817) -- `Web` adds data backup management. [#835](https://github.com/tryzealot/zealot/pull/835) -- `Web` completes the monitoring of dependent services in the management panel. [#586](https://github.com/tryzealot/zealot/issues/586) -- `API` adds three fields, `platform`, `device_type`, and `custom_fields`, to the release dictionary. - -#### Changed - -- `Web` **Incompatible change** Google Analytics forces an upgrade to version 4, and previous settings need to be reconfigured to take effect. [#815](https://github.com/tryzealot/zealot/pull/815) -- `CLI` **Incompatible change** The data backup and restore functionality is no longer available due to changes in the structure. Please use the data backup function in the admin panel instead. -- `Web` adjusts the display of device UDID acquisition, iOS version installation and download based on the device, no longer displaying all functions. -- `Web` removes the page statistics function in the admin panel. [#814](https://github.com/tryzealot/zealot/pull/814) -- `Web` migrates the front-end technology stack from webpacker to esbuild + sass, and from Turbolinks to Stimulus, bringing a better front-end interaction experience. [#829](https://github.com/tryzealot/zealot/pull/829) -- `Web` due to the complexity of editing application types and channels, only the application name can be modified. - -#### Fixed - -- `Web` fixes the error of selecting a channel that does not exist under an application type. [#795](https://github.com/tryzealot/zealot/issues/795) Thanks to [tasselsd](https://github.com/tasselsd) -- `API` fixes the Android address return error. [#813](https://github.com/tryzealot/zealot/issues/813) Thanks to [denymz](https://github.com/denymz) -- `Web`/`API` fixes the exception caused by some parameters being empty in aab parsing. [tryzealot/fastlane-plugin-zealot#9](https://github.com/tryzealot/fastlane-plugin-zealot/issues/9) Thanks to [tasselsd](https://github.com/tasselsd) -- `Web` fixes the issue of abnormal generation of demo data during the first initialization of the project. [#821](https://github.com/tryzealot/zealot/issues/821) -- `API` fixes the issue of abnormal data when checking the latest version of the application. [#856](https://github.com/tryzealot/zealot/issues/856) Thanks to [denymz](https://github.com/denymz) -- `Web` fixes the issue of an error being thrown due to abnormal data in the associated network hook when viewing the details of an application channel. -- `Web` corrects many spelling errors in the English language pack. - -## 4.4.1 (2022-06-20) - -Full [commit changes][4.4.1] - -#### Fixed - -- `WebHook` fixes the issue where an error is thrown after a successful trigger. [#792](https://github.com/tryzealot/zealot/issues/792) Thanks to [tasselsd](https://github.com/tasselsd) -- `Docker` compatible with Caddy 2.5.0 for proxying from https to http. [#790](https://github.com/tryzealot/zealot/pull/790) Thanks to [VisionBao](https://github.com/VisionBao) [songge1209](https://github.com/songge1209) - -## 4.4.0 (2022-06-09) - -Full [commit changes][4.4.0]. - -#### Changed - -- `Web` adds filtering by version, branch, and packaging type to the list display for users who are not logged in and have not enabled guest mode, in addition to viewing application version details. -- `Web` upgrades the runtime environment to Ruby 3.0 and the service framework to Rails 7.0. -- `Web` is now compatible with the macOS M1 chip. - -#### Added - -- `Web` simplifies and standardizes some application links to facilitate sharing. [#666](https://github.com/tryzealot/zealot/pull/666) -- `Web` completes some missing permission check pages. - -#### Fixed - -- `Job` fixes the issue of abnormal URL Schemes when parsing iOS files. -- `Web` fixes the issue where service logs are not output to the terminal console. -- `Web` adds exception handling for processing debug files uploaded when they are deleted during parsing or cannot be found for other reasons. -- `Web` adapts the UI for ultra-wide screens. -- `Web` fixes security vulnerabilities in third-party login dependencies. -- `API` fixes the issue where uploading Android without channel_key results in an exception. [#779](https://github.com/tryzealot/zealot/issues/779) Thanks to [likfe](https://github.com/likfe) - -## 4.3.1 (2021-12-22) - -Full [commit changes][4.3.1]. - -#### Added - -- `Web` after updating the setting, the original default value can be restored. -- `Web` supports parsing and displaying app links (distinguishing between deep links and URL schemes) for Android in application unpacking. -- `Web` strengthens the visual effect of the open and closed status of the setting page. - -#### Fixed - -- `Web` fixes the issue of asynchronous task methods in demo mode. -- `Web` fixes the issue where selected application types and channels cannot be checked when creating and editing an application. -- `Web` fixes the issue where it is not possible to navigate to the environment page. -- `Web` fixes the issue where aab parsing fails when there are no intent filters. -- `Web` adds error handling for unchecking all application types and channels when updating an application. -- `Web` fixes the issue where the loading strategy causes all third-party logins to be unavailable. - -## 4.3.0 (2021-12-08) - -Supports parsing of the aab format, adds support for multiple languages. Full [commit changes][4.3.0] - -#### Changed - -- `Web` uses the default prompt structure as the data structure for network hooks, instead of a strange structure. -- `Web` no longer provides parameter changes for third-party login authorization on the settings page (requires service restart). -- `API` the upload application interface and version details return the `text_changelog` field in the response body. [650f1ffd](https://github.com/tryzealot/zealot/commit/650f1ffd3731f6a1f4cc703430be1b1b6f5d1cee) -- `API` renames the `changelog_list` field in the response body to `changelog`. [719f0b1e](https://github.com/tryzealot/zealot/commit/719f0b1eff92f358d246ededd6c1e6f9863f7f85) -- `Web` changes the log output format from an array to text format that is compatible with Markdown lists. [719f0b1e](https://github.com/tryzealot/zealot/commit/719f0b1eff92f358d246ededd6c1e6f9863f7f85) -- `Web` some privacy-related configuration keys or tokens are only displayed in plaintext under administrator permissions; other permissions cannot see them; demo mode is read-only and will do some encryption. [#644](https://github.com/tryzealot/zealot/pull/644) -- `Web` does not display the build date and hash value if they cannot be obtained. - -#### Added - -- `Web` supports parsing of the Android App Bundle (aab) file format and webp icons. -- `Web` supports language internationalization, with optional language packs: Simplified Chinese, English (support for page configuration). -- `Web` supports configuring more system settings. [#643](https://github.com/tryzealot/zealot/pull/643) -- `Web` adds editing functionality for network hooks in the management panel. -- `Web` rewrites and optimizes the style layout of the application list. -- `Web` optimizes the basic email template. -- `Web` adjusts the style and error logic of the login window. -- `Web` adds file permission checking to the environment variable page in the management panel. [#608](https://github.com/tryzealot/zealot/pull/608) -- `Web` adds error details display for asynchronous tasks in the management panel, with a maximum of 5000 errors. -- `Web` uses a better log output format. [#646](https://github.com/tryzealot/zealot/pull/646) - -#### Fixed - -- `Web` fixes the issue where the default selection state of boolean type parameters is incorrect on the settings page. -- `Web` fixes the issue where exceptions occur when clicking install or download in the DingTalk app (changed to WeChat logic processing). -- `Web` fixes the issue where the build date (time stamp when building a Docker image) cannot be displayed on the environment page. -- `Web` fixes the issue where the domain scope of asynchronous notifications does not take effect. -- `Web` fixes the issue of exception when getting gems. -- `Web` fixes the issue of abnormal judgment of the expiration time of iOS certificates. -- `Web` fixes the issue where disk space cannot be obtained when developing with a virtual machine mounted. -- `Web` fixes some known errors in demo mode. - -## 4.2.2 (2021-10-15) - -Full [commit changes][4.2.2]. - -#### Fixed - -- `API` fixes the issue where incorrect error messages were not output due to parameter mismatches caused by batch replacements. [#615](https://github.com/tryzealot/zealot/issues/615) Thanks to [gin7758258](https://github.com/gin7758258) -- `Web` fixes the issue of abnormal parsing of some apk Android files. [#587](https://github.com/tryzealot/zealot/pull/529) - -## 4.2.1 (2021-09-14) - -Full [commit changes][4.2.1]. - -#### Changed - -- `Web` application icons are no longer cropped to the preset size, and image processing dependencies have been removed, reducing the Docker image size by nearly 200MB. -- `Docker` the reverse proxy service Caddy no longer outputs logs to STDOUT but directly to files. - -#### Fixed - -- `Web` fixes the issue where icons are not displayed correctly after uploading an application. -- `Web` is compatible with different dSYM zip extraction logics when uploading. -- `Web` fixes the issue where the application icon is not displayed when installing iOS applications. -- `Web` fixes a security vulnerability by disabling the editing of read-only system settings. -- `Web` fixes the issue where the downloaded file suffix is not correct on macOS. -- `Web` fixes the issue where the window showing that an installation is not possible does not pop up in some cases. - -## 4.2.0 (2021-09-01) - -Full [commit changes][4.2.0]. - -#### Changed - -- `Web` changes the default logic for cleaning up old versions to off. To enable, set the environment variable `ZEALOT_KEEP_UPLOADS=false`. [#570](https://github.com/tryzealot/zealot/pull/570) -- `Web` renames File Parsing to Application Unpacking. [#529](https://github.com/tryzealot/zealot/pull/529) -- `Web` removes support for unpacking previously uploaded applications in the application unpacking feature. (now all uploaded applications will automatically trigger additional application unpacking) -- `API` supports fontawesome css values for custom field icons when uploading applications, such as the value `fas fa-flag` for [flag](https://fontawesome.com/v5.15/icons/flag?style=solid). -- `Docker` changes the image to use caddy as a reverse proxy and modifies the volume persistence. Migration is required, see [#540](https://github.com/tryzealot/zealot/pull/540) for details. - -#### Added - -- `Web` supports uploading, parsing, and downloading macOS applications. [#562](https://github.com/tryzealot/zealot/pull/562) -- `Web` adds quick filtering options for application types and channels for mobile devices on the channel details page. [#510](https://github.com/tryzealot/zealot/issues/510) Thanks to [huacnlee](https://github.com/huacnlee) -- `Web` allows the administrator panel to configure application type templates and default registration user permissions. [#562](https://github.com/tryzealot/zealot/pull/562) [#568](https://github.com/tryzealot/zealot/pull/568) -- `Web` partially encrypts environment variables that involve privacy. -- `Web` adds graphical displays for memory and disk usage. -- `Docker` adds support for synchronizing updates with [Github Container Registry](https://github.com/tryzealot/zealot/pkgs/container/zealot) images. -- `Docker` adds support for configuring the postgres port number with environment variables. - -#### Fixed - -- `Web` fixes the issue where the iOS installation button cannot be displayed on iPad and M1 chip macOS. [#519](https://github.com/tryzealot/zealot/issues/519) Thanks to [ohdarling](https://github.com/ohdarling) -- `Web` fixes the issue where using third-party login while registering but not verifying email fails. [#517](https://github.com/tryzealot/zealot/issues/517) Thanks to [huacnlee](https://github.com/huacnlee) -- `Web` fixes the issue where uploading an application through the website does not trigger application unpacking. -- `Web` fixes the issue where the left navigation style is misaligned when tubrolink is enabled. -- `Web` displays the unpacking link when uploading Android applications. -- `Web` optimizes the display prompt for empty unpacking file lists. -- `Web` fixes the issue where LDAP parameters are obtained incorrectly. [#541](https://github.com/tryzealot/zealot/pull/542) Thanks to [Martwu](https://github.com/Martwu) -- `Web` changes the error message for capturing application upload errors to a readable format. -- `Web` fixes the issue where the application type creation error judgment is abnormal. -- `Web` adds an exception judgment for clicking the details page when all channels of an application are deleted. -- `Web` fixes the issue where uploading applications causes variable release errors in the parsing process. -- `Web` fixes the issue where an error occurs when verifying password protection for an application. [#564](https://github.com/tryzealot/zealot/issues/564) Thanks to [EasierLu](https://github.com/EasierLu) -- `Web` fixes the issue where editing user information in the administrator panel causes an error. [#564](https://github.com/tryzealot/zealot/issues/564) Thanks to [EasierLu](https://github.com/EasierLu) -- `Web` fixes the issue where the "Install" button on the application details page is displayed abnormally on incorrect systems and devices (normally only iOS applications are displayed on iOS and macOS devices). -- `Web` optimizes the unpacking of applications for developer certificates that fail to parse due to special character sets (currently known to be Chinese encoding) and UI layout adjustments. -- `Web` fixes the issue where the current user cannot be edited. -- `Web` corrects the duplicate title of debug files. -- `Docker` fixes the logrotate error during image initialization. -- `Docker` fixes the issue where Caddy deployment needs to be confirmed. [#551](https://github.com/tryzealot/zealot/issues/551) Thanks to [ReverseScale](https://github.com/ReverseScale) - -## 4.1.0 (2021-07-17) - -Full [commit changes][4.1.0]. - -#### Changed - -- `Web` changes the display logic for obtaining device UDID due to the similarity of iPad's User-Agent and Desktop. -- `Docker` sets Gihub Container Registry (gcr.io) as the default Docker image source. - -#### Added - -- `Web` supports one-click login authentication for third-party platforms such as Feishu and Gitlab. -- `Web` optimizes the logic for accessing the version details page of an application that cannot be found and allows manual redirection to the latest version. -- `Web` adds the ability to view some system configuration items and modify some parameters without requiring a restart. -- `Web` adds a page statistics report to the management panel. - -#### Fixed - -- `Web` fixes the issue where the network hook cannot obtain the value of the title variable. -- `Web` fixes the abnormal error during application parsing process. -- `Web` fixes the abnormal error that occurs during application creation. -- `Web` fixes the issue where system configuration cannot be edited due to being saved as empty. -- `Job` fixes the issue where the logic for removing old versions causes the deletion logic and document logic to be reversed. - -## 4.0.0 (2020-12-31) - -Full [commit changes][4.0.0]. - -#### Fixed - -- `Web` corrects the display error caused by abnormal judgment of the expiration time of the iOS certificate during file parsing. -- `Web` ignores the default development version number check for new versions. - -## 4.0.0.rc2 (2020-12-25) - -Full [commit changes][4.0.0.rc2]. - -#### Added - -- `Web` newly parsed files will be saved to the list, and a file parsing for uploaded applications will also be synchronized. (asynchronous task) [#346](https://github.com/tryzealot/zealot/pull/346) -- `Web` adds file parsing data statistics to the control panel. -- `Web` adds data statistics for network hooks, background tasks, and disk usage for administrators in the control panel. -- `Web` adds a quick delete function for authorized personnel to the prompt for missing files in the version details. - -#### Changed - -- `API` The debug file version check interface has been renamed, and new check methods based on file fingerprints and dSYM UUID have been added. [#349](https://github.com/tryzealot/zealot/pull/346) - -#### Fixed - -- `Web` fixes the error when disabling LDAP login authentication. (caused by incorrect IP whitelist settings) -- `Web` corrects the wording of the prompt when opening the version details in WeChat for Android. - -## 4.0.0.rc1 (2020-10-29) - -Full [commit changes][4.0.0.rc1]. - -#### Changed - -- `Docker` **major change** merges rails and worker into the same image for deployment. zealot-docker library needs to be updated accordingly [#235](https://github.com/tryzealot/zealot/pull/235) -- `Docker` upgrades Ruby to version 2.7 for deployment. -- `Web` upgrades font-awesome from version 4.7.0 to 5.13.0, which may cause missing icons to display improperly. -- `Web` adjusts the wording of invitation emails. -- `Web` unifies the download path for applications and debugging files to `/download` path. -- `Web` requires login permission for online application parsing. -- `Web` optimizes the logic for automatically redirecting to the latest version when accessing deleted or non-existent version details. -- `Web` adjusts the installation and download logic of applications (mainly due to the inability to distinguish between iPadOS UserAgent and Desktop). - -#### Added - -- `Web` displays a prompt when downloading files that do not exist. -- `Web` supports parsing .mobileprovision format files and enabling the parsing of .ipa files online. -- `Web` allows some system settings to be modified online using the administrator panel. [#245](https://github.com/tryzealot/zealot/pull/245) -- `Web` adds guest mode. [#243](https://github.com/tryzealot/zealot/pull/243) -- `Web` supports displaying the names of iOS AdHoc version test devices. [#211](https://github.com/tryzealot/zealot/pull/211) -- `Web` supports parsing the content of uploaded version installation packages. [#210](https://github.com/tryzealot/zealot/pull/210) -- `Web` supports obtaining the UDID of iOS devices. [#203](https://github.com/tryzealot/zealot/pull/203) -- `Web` supports a demo mode with limited functionality and periodic data initialization. [#198](https://github.com/tryzealot/zealot/pull/198) -- `Web` displays the original name of the application in the version details after uploading the App. -- `Web` allows filtering of the application list by version, Git branch, and packaging type. -- `Web` displays the Git commit link associated with the latest upload in the version details. (if the git URL is set in the channel settings) -- `Web` integrates LDAP login into the existing login interface and no longer uses the crude interface provided by third-party dependencies. -- `Job` supports managing the generation and recovery of data backup using rails commands. (database and uploaded file data) [#207](https://github.com/tryzealot/zealot/pull/207) -- `API` adds an interface to check if the debug file exists `/api/debug_files/version_exist`. - -#### Fixed - -- `Web` fixes the error when parsing changelog during App upload. -- `Web` fixes the issue where the QR code in the version details will exceed the parent view in medium resolution. -- `Web` fixes the issue where some values of the application channel are empty and the default value is not displayed. -- `Web` optimizes the content display when parsing iOS packages online. (and solves the problem of always displaying fake data) -- `Web` fixes the issue where the information of the submitter is not displayed for changelogs generated using [fastlane-plugin-ci_changelog](https://github.com/icyleaf/fastlane-plugin-ci_changelog) in the version details. -- `Web` fixes and optimizes the logic for checking new versions. -- `Web` fixes the issue where the pop-up window for confirming the deletion of debug files displays an empty message. -- `Web` optimizes the display of the device list in the version details on some mobile phones. -- `Web` fixes the error when parsing applications without submitting parameters. -- `Web` optimizes the display of the version list on mobile phones. -- `Web` only displays the bottom pagination for the latest upload dynamics of channel versions, and the top displays the total number of versions. -- `Web` fixes the issue where the administrator editing user prompt for a non-empty password. -- `Web`/`API` fixes the issue where the latest version is used when the requested version for online download and installation does not exist. -- `Web` fixes the issue where the login interface displays the sidebar menu in guest mode. -- `Web` fixes the issue where the same debugging file of the same application and platform is always overwritten when uploaded. -- `Web` optimizes the display of boolean and dictionary types on the system settings page. -- `Job` fixes the issue where old versions were accidentally deleted due to a version judgment error during scheduled cleaning. -- `Docker` fixes the issue where the internal static resources are not updated due to volume storage of the public folder. -- `Docker` fixes the issue where the container version is inconsistent with the external version. - -## 4.0.0.beta4 (2020-05-07) - -Full [commit changes][4.0.0.beta4]. - -#### Added - -- `Docker` supports deployment on Heroku. -- `Web` allows guests to view App details, lists, and upload App details. -- `API` supports custom fields when uploading an App. [#178](https://github.com/tryzealot/zealot/issues/178) -- `Web`/`API` automatically removes the `origin/` prefix when passing the `branch` value during App upload. -- `Web` adds project introduction to user authentication interfaces such as login, registration, password retrieval, and password resetting. - -#### Fixed - -- `Web` corrects user password description text. -- `Web` fixes the URL field error in the WebHook. -- `Web`/`API` fixes the error when uploading iOS dSYM files. -- `API` fixes the abnormal has_password parameter in the App interface. -- `API` fixes the source of uploaded App records always showing as Web. -- `API` fixes and supports uploading changelog in JSON format as a string. -- `Web` fixes the issue where CPU and memory information cannot be retrieved from system information. -- `Web` fixes the occasional error when parsing Android applications online. -- `Web` fixes the error when scanning QR code with WeChat. - -#### Changed - -- `API` adds validation for bundle_id dimension to the latest version interface. (apps/latest) -- `Web` allows guests to access application version details and download operations. -- `Web` shifts the device list on the right-hand side of iOS AdHoc application version details to the left and collapses it by default. -- `Web` removes the GraphQL console functionality from the development environment and recommends using [graphql-playground](https://github.com/prisma-labs/graphql-playground). -- `Web` removes the footbar at the bottom of the page, and the version information can be viewed in the system information. - -## 4.0.0.beta3 (2020-01-16) - -Full [commit changes][4.0.0.beta3]. - -#### Added - -- `Web` prompts and displays a confirmation email link for users added by administrators if their email is not activated. -- `Web` enables the default Sentry anonymous reporting mechanism (can be turned off). - -#### Fixed - -- `API` fixes the issue where uploading an application always creates a new channel. -- `Web`/`API` fixes the issue where the icon of uploaded Android applications cannot be displayed. - -#### Changed - -- `Docker` moves the initialization data out of the image and into [zealot-docker](https://github.com/tryzealot/zealot-docker) image. [#120](https://github.com/tryzealot/zealot/pull/120) -- `Docker` reduces the size of the image from 1.18G to 308M. [#114](https://github.com/tryzealot/zealot/issues/114) -- `Job` uses asynchronous tasks instead of traditional cron jobs to implement scheduled cleaning of old version history package files. (can be turned off) -- `Job` groups asynchronous tasks and sets priority. -- `API` displays all error messages in Chinese because database write operations return specific error messages. -- `Web` standardizes code using Rubocop Lint rules. - -## 4.0.0.beta2 (2020-01-10) - -Full [commit changes][4.0.0.beta2]. - -#### Added - -- `Web` Added the ability to upload a complete version list to a specific application channel, and support deleting operations. - -#### Fixed - -- `Web` provides an error prompt instead of an error message when uploading an application that is not a valid ipa or apk. -- `API` fixes the issue where the latest version list of an application cannot be returned due to the non-existence of the queried version number in the database. -- `API` only requires token verification for interfaces that perform write operations (previously most interfaces required it). - -## 4.0.0.beta1 - -🌈 The first public beta version has been released! - -## Previous Version - -For many years, it was developed and operated internally within the company and was not open source. -It used to undertake many functions, but now it has been separated to focus on providing -application hosting and distribution services - -[Unreleased]: https://github.com/tryzealot/zealot/compare/5.2.3...HEAD -[5.2.3]: https://github.com/tryzealot/zealot/compare/5.2.2...5.2.3 -[5.2.2]: https://github.com/tryzealot/zealot/compare/5.2.1...5.2.2 -[5.2.1]: https://github.com/tryzealot/zealot/compare/5.2.0...5.2.1 -[5.2.0]: https://github.com/tryzealot/zealot/compare/5.1.0...5.2.0 -[5.1.0]: https://github.com/tryzealot/zealot/compare/5.0.0...5.1.0 -[5.0.0]: https://github.com/tryzealot/zealot/compare/4.7.1...5.0.0 -[4.7.0]: https://github.com/tryzealot/zealot/compare/4.6.0...4.7.0 -[4.6.0]: https://github.com/tryzealot/zealot/compare/4.5.3...4.6.0 -[4.5.3]: https://github.com/tryzealot/zealot/compare/4.5.2...4.5.3 -[4.5.2]: https://github.com/tryzealot/zealot/compare/4.5.1...4.5.2 -[4.5.1]: https://github.com/tryzealot/zealot/compare/4.5.0...4.5.1 -[4.5.0]: https://github.com/tryzealot/zealot/compare/4.4.1...4.5.0 -[4.4.1]: https://github.com/tryzealot/zealot/compare/4.4.0...4.4.1 -[4.4.0]: https://github.com/tryzealot/zealot/compare/4.3.1...4.4.0 -[4.3.1]: https://github.com/tryzealot/zealot/compare/4.3.0...4.3.1 -[4.3.0]: https://github.com/tryzealot/zealot/compare/4.2.2...4.3.0 -[4.2.2]: https://github.com/tryzealot/zealot/compare/4.2.1...4.2.2 -[4.2.1]: https://github.com/tryzealot/zealot/compare/4.2.0...4.2.1 -[4.2.0]: https://github.com/tryzealot/zealot/compare/4.1.0...4.2.0 -[4.1.0]: https://github.com/tryzealot/zealot/compare/4.0.0...4.1.0 -[4.0.0]: https://github.com/tryzealot/zealot/compare/4.0.0.rc2...4.0.0 -[4.0.0.rc2]: https://github.com/tryzealot/zealot/compare/4.0.0.rc1...4.0.0.rc2 -[4.0.0.rc1]: https://github.com/tryzealot/zealot/compare/4.0.0.beta4...4.0.0.rc1 -[4.0.0.beta4]: https://github.com/tryzealot/zealot/compare/4.0.0.beta3...4.0.0.beta4 -[4.0.0.beta3]: https://github.com/tryzealot/zealot/compare/4.0.0.beta2...4.0.0.beta3 -[4.0.0.beta2]: https://github.com/tryzealot/zealot/compare/4.0.0.beta1...4.0.0.beta2 diff --git a/versioned_docs/version-5.2/user-guide/credits.md b/versioned_docs/version-5.2/user-guide/credits.md deleted file mode 100644 index 2d31e1821..000000000 --- a/versioned_docs/version-5.2/user-guide/credits.md +++ /dev/null @@ -1,23 +0,0 @@ -# Credits - -## Contributions - -Thank you for making Zealot more useful! - - - - - -## Project name - -Zealot are a type of protoss warrior from Starcraft. - -## Project Logo - -Project history submission resources may be used to for the icon copyright belongs to [Blizzard](https://www.blizzard.com), -later changed to their own design icons, if there are enthusiastic designers can help design better icons, -I represent this project to express my sincere gratitude. - -## License - -Zealot is an open source project released under the MIT distribution protocol (MIT), which can be found at [LICENSE file](https://github.com/tryzealot/zealot/blob/develop/LICENSE)。 diff --git a/versioned_docs/version-5.2/user-guide/dashboard.md b/versioned_docs/version-5.2/user-guide/dashboard.md deleted file mode 100644 index d76e61f32..000000000 --- a/versioned_docs/version-5.2/user-guide/dashboard.md +++ /dev/null @@ -1,3 +0,0 @@ -# Dashboard - -![screenshot](/img/screenshot/product-1.png) diff --git a/versioned_docs/version-5.2/user-guide/debug-files/index.mdx b/versioned_docs/version-5.2/user-guide/debug-files/index.mdx deleted file mode 100644 index 52eb1c756..000000000 --- a/versioned_docs/version-5.2/user-guide/debug-files/index.mdx +++ /dev/null @@ -1,14 +0,0 @@ -# List debug files - -List all uploaded debug files oragiazed by app. - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.2/user-guide/debug-files/review.mdx b/versioned_docs/version-5.2/user-guide/debug-files/review.mdx deleted file mode 100644 index f0ddf22c8..000000000 --- a/versioned_docs/version-5.2/user-guide/debug-files/review.mdx +++ /dev/null @@ -1,48 +0,0 @@ -# Review metadata - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Android - -### Versions list - - - -### Version detail - - - -## iOS - -### Versions list - - - -### Version detail - - diff --git a/versioned_docs/version-5.2/user-guide/debug-files/upload.mdx b/versioned_docs/version-5.2/user-guide/debug-files/upload.mdx deleted file mode 100644 index d2302322b..000000000 --- a/versioned_docs/version-5.2/user-guide/debug-files/upload.mdx +++ /dev/null @@ -1,12 +0,0 @@ -# Create a Debug File - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - - diff --git a/versioned_docs/version-5.2/user-guide/index.mdx b/versioned_docs/version-5.2/user-guide/index.mdx deleted file mode 100644 index 817dbe0eb..000000000 --- a/versioned_docs/version-5.2/user-guide/index.mdx +++ /dev/null @@ -1,48 +0,0 @@ -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -# User Guide - -[![GitHub release](https://img.shields.io/github/v/release/tryzealot/zealot?include_prereleases)](https://github.com/tryzealot/zealot/releases) -[![Docker Pulls](https://img.shields.io/docker/pulls/tryzealot/zealot.svg)](https://hub.docker.com/r/tryzealot/zealot/) -[![Chat on Telegram](https://img.shields.io/badge/chat-on%20telegram-important.svg)](https://img.shields.io/badge/chat-on%20telegram-important.svg) -[![Maintainability](https://codeclimate.com/github/tryzealot/zealot/badges/gpa.svg)](https://codeclimate.com/github/tryzealot/zealot) -[![License](https://img.shields.io/github/license/tryzealot/zealot)](https://github.com/tryzealot/zealot/blob/develop/LICENSE) - -**Self-hosted Beta App Distribution for Android, iOS, macOS, Windows and Linux apps.** - -Continuous everything. Automate the lifecycle of your apps. Connect your CI to build in the cloud, test on thousands of real devices, distribute to beta testers and app stores. All in one place. - - - -## Features - -- 🌏 **Cross-platform hosting**: supports macOS, iOS, Android (apk/**aab**), Windows, Linux extensive platforms. -- 📱 **iOS device in control**: automatically synchronizes iOS test device information and allows for one-click registration of new devices with Apple developers. -- 🧑‍💻 **Full developer toolkit**: provides REST API, [iOS][zealot-ios-sdk], [Android][android-android-sdk] SDKs and [fastlane][fastlane-plugin-zealot] automation plugins for building. -- 💥 **Analyze secrets within applications**: interpret metadata for iOS or Android applications or describe files. -- 🚨 **Multiple notification built-in**: customizable data income WebHook to any notification service. -- 🗄 **Multi-channel classification management**: freely divide application channel management into different scenarios and product forms. -- 🎳 **Multiple Architectures** amd86/arm64/armv7 architectures deployment ready. -- 🔑 **Third-party Auth**: Google, Gitlab, LDAP, OIDC and Lark suppotted. -- 🌑 **Dark mode**: Feel free to switch between day and night. - -## Demo - -Simplified Chinese by default, change the language in [Settings](/docs/user-guide/administrator/settings) page. - -- URL:https://tryzealot.ews.im/ -- Admin account: `admin@zealot.com` -- Password: `ze@l0t` - -> **Notification**: Demo service will RESET ALL DATA daily. - -## About the translation - -The translation powered by [DeepL](https://www.deepl.com/translator) and it inevitably have some defects, please provide feedback in time, thanks! diff --git a/versioned_docs/version-5.2/user-guide/qa.md b/versioned_docs/version-5.2/user-guide/qa.md deleted file mode 100644 index 9587b12d8..000000000 --- a/versioned_docs/version-5.2/user-guide/qa.md +++ /dev/null @@ -1,3 +0,0 @@ -# Q&A - -> TODO diff --git a/versioned_docs/version-5.2/user-guide/sidebars.js b/versioned_docs/version-5.2/user-guide/sidebars.js deleted file mode 100644 index 81d300a77..000000000 --- a/versioned_docs/version-5.2/user-guide/sidebars.js +++ /dev/null @@ -1,99 +0,0 @@ -module.exports = [ - { - label: "Getting Started", - type: "doc", - id: 'user-guide/index', - }, - { - label: "Dashboard", - type: "doc", - id: 'user-guide/dashboard', - }, - { - collapsible: true, - label: "Apps", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "user-guide/apps/create", - "user-guide/apps/index", - "user-guide/apps/detail", - "user-guide/apps/upload", - ], - }, - { - collapsible: true, - label: "Debug Files", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "user-guide/debug-files/index", - "user-guide/debug-files/review", - "user-guide/debug-files/upload", - ], - }, - { - collapsible: true, - label: "Toolkits", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "user-guide/toolkits/teardown", - "user-guide/toolkits/fetch-udid", - ], - }, - { - collapsible: true, - label: "Webhooks", - type: "category", - link: { - type: "doc", - id: 'user-guide/webhooks', - }, - items: [ - "user-guide/webhooks/slack", - "user-guide/webhooks/discord", - "user-guide/webhooks/feishu", - "user-guide/webhooks/dingtalk", - "user-guide/webhooks/wecom", - ], - }, - { - collapsible: true, - label: "Administrator", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "user-guide/administrator/apple-team", - "user-guide/administrator/permissions", - "user-guide/administrator/backup", - "user-guide/administrator/settings", - { - collapsible: true, - label: "Monitoring", - type: "category", - link: { - type: 'generated-index', - }, - items: [ - "user-guide/administrator/monitoring/system-info", - "user-guide/administrator/monitoring/logging", - "user-guide/administrator/monitoring/background-jobs", - "user-guide/administrator/monitoring/database-analytics", - ], - }, - ], - }, - "user-guide/best_practices", - "user-guide/changelog", - "user-guide/qa", - "user-guide/credits", -]; diff --git a/versioned_docs/version-5.2/user-guide/toolkits/fetch-udid.mdx b/versioned_docs/version-5.2/user-guide/toolkits/fetch-udid.mdx deleted file mode 100644 index 821fda99d..000000000 --- a/versioned_docs/version-5.2/user-guide/toolkits/fetch-udid.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -sidebar_label: "Fetch UDID" ---- - -# Fetch iOS Device UDID - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -- List of installable applications based on UDID -- Enable Apple Developer functionality to add unregistered test devices to the corresponding developer account - -## Install profile - -:::info -This feature is only valid for iOS devices. If opened on a computer, -it will prompt you to [scan the QR code](https://support.apple.com/guide/iphone/scan-a-qr-code-iphe8bda8762/ios) with your phone. -::: - -Regardless of the user login mode (including guest mode), you can install the profile by clicking on "获取设备 UDID" in the left sidebar menu to retrieve the UDID of the current iOS device. - -Do not worry about the profile being displayed as "Unsigned". This does not affect the installation, and the profile is disposable and will be destroyed by the system after retrieval, so there is no security risk. - - - -After installing the profile, the browser will open a new page to display the device UDID. At this point, there will be two scenarios: - -- [Unregistered Device](#unregistered-device) -- [Registered Device](#registered-device) - -## Unregistered Device - -For an unregistered device, basic device information is provided, including UDID, internal model, and serial number. If the service administrator has added Apple Developer, it will also display the registration of the test device to the corresponding developer account. - -:::tip -Registering to an Apple Developer account only means that the device is added under -the Devices section of the Apple Developer account. For iOS developers, -you still need to manually or script-automate adding the test device to the -corresponding Ad-Hoc certificate, then install and repackage it before -allowing the device to install the application. -::: - - - -## Registered Device - -For a registered test device, the list of installable applications will be displayed. If the service administrator has added Apple Developer, it will also display the registration of the test device to the corresponding developer account. - - diff --git a/versioned_docs/version-5.2/user-guide/toolkits/teardown.mdx b/versioned_docs/version-5.2/user-guide/toolkits/teardown.mdx deleted file mode 100644 index e2a5a840d..000000000 --- a/versioned_docs/version-5.2/user-guide/toolkits/teardown.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -sidebar_label: "Teardown App" ---- - -# Teardown App view itself metadata - -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -## Android - -Retrieve `AndroidManifest.xml` metadata, v1 to v3 signatures informations. - - - -## iOS - -Retrieve `Info.plist` metadata, Frameworks and signatures informations. - - diff --git a/versioned_docs/version-5.2/user-guide/webhooks.md b/versioned_docs/version-5.2/user-guide/webhooks.md deleted file mode 100644 index 2b102c49b..000000000 --- a/versioned_docs/version-5.2/user-guide/webhooks.md +++ /dev/null @@ -1,50 +0,0 @@ -# Webhooks - -Zealot provides a webhook for message notifications for each application channel. -The webhook is a fully customizable structure that can be used for most notification services, such as Wecom, Dingtalk, Slack, etc. - -## Payload (default) - -Each parameter of the default structure has its value provided as a variable, -and each variable starts with `@`, the default structure will be used if the custom structure is left empty when creating the webhook. -The following variables are all provided. - -```ruby -{ - event: @event, - username: @username, - email: @email, - title: @title, - app_name: @name, - device_type: @device_type, - release_version: @release_version, - build_version: @build_version, - size: @file_size, - changelog: @changelog, - install_url: @install_url, - icon_url: @icon_url, - qrcode_url: @qrcode_url, - uploaded_at: @uploaded_at -} -``` - -Output: - -```json -{ - "event": "upload_events", - "username": "foobar", - "email": "foobar@example.com", - "title": "Zealot upload 1.0.0 version", - "app_name": "Zealot", - "device_type": "iOS", - "release_version": "1.0.0", - "build_version": "1", - "size": "30 MB", - "install_url": "https://zealot.example.com/api/apps/download/12354", - "icon_url": "https://zealot.example.com/api/apps/icon.png", - "qrcode_url": "https://zealot.example.com/api/apps/354/qrcode", - "uploaded_at": "2019-12-30 11:33:00", - "changelog": "- Add feture A\n- Fix issue B\n- Release v1.0.0", -} -``` diff --git a/versioned_docs/version-5.2/user-guide/webhooks/dingtalk.md b/versioned_docs/version-5.2/user-guide/webhooks/dingtalk.md deleted file mode 100644 index fab1b4dfa..000000000 --- a/versioned_docs/version-5.2/user-guide/webhooks/dingtalk.md +++ /dev/null @@ -1,31 +0,0 @@ -# Dingtalk (Dingding) - -[钉钉](https://developers.dingtalk.com/document/robots/custom-robot-access#section-e4x-4y8-9k0) use Incoming Webhooks whose constructs -typically support both text and markdown, and can be configured as follows: - -> Due to system limitations try to use keyword or IP address whitelist mechanism to receive messages. - -## Text format - -```ruby -{ - "msgtype": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\nUplaod at: #{@uploaded_at}" - } -} -``` - -## Markdown format - -The title field is only displayed in the dialog list, the text field is displayed for the chat content entering the dialog. - -```ruby -{ - "msgtype": "markdown", - "markdown": { - "title": @title, - "text": "## #{@title}\nPlatform: #{@device_type}\nUplaod at: #{@uploaded_at}\nInstall QRcode:\n![qrcode](#{@qrcode_url})" - } -} -``` diff --git a/versioned_docs/version-5.2/user-guide/webhooks/discord.md b/versioned_docs/version-5.2/user-guide/webhooks/discord.md deleted file mode 100644 index 262fa9bb0..000000000 --- a/versioned_docs/version-5.2/user-guide/webhooks/discord.md +++ /dev/null @@ -1,64 +0,0 @@ -# Discord - -[Discord](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) should use Slack-Compatible Webhook whose constructs -typically support both text and block rich text, and can be configured as follows: - -## Text format - -```ruby -{ - "text": "##{@title}\nPlatform: #{@device_type}\nUpload at: #{@uploaded_at}" -} -``` - -## Block rich text format - -A simple block with markdown support - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "## #{@title}\nPlatform: #{@device_type}\nUpload at: #{@uploaded_at}\nInstal QRcode:\n![qrcode](#{@qrcode_url})" - } - } - ] -} -``` - -Better look at some of the structures shown in the block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": @title, - } - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*Platform:*\n#{@device_type}" - }, - { - "type": "mrkdwn", - "text": "*Upload at:*\n#{@uploaded_at}" - } - ] - }, - "accessory": { - "type": "image", - "image_url": @qrcode_url, - "alt_text": "install qrcode" - } - ] -} -``` diff --git a/versioned_docs/version-5.2/user-guide/webhooks/feishu.md b/versioned_docs/version-5.2/user-guide/webhooks/feishu.md deleted file mode 100644 index c5d5a6f29..000000000 --- a/versioned_docs/version-5.2/user-guide/webhooks/feishu.md +++ /dev/null @@ -1,96 +0,0 @@ -# Lark (Feishu) - -[飞书](https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN) use Incoming Webhooks whose constructs -typically support both text and interactive card, and can be configured as follows: - -> Due to system limitations try to use keyword or IP address whitelist mechanism to receive messages. - -## Text format - -```ruby -{ - "msg_type": "text", - "text": { - "content": "#{@title}\n\n安装地址:#{@install_url}\nUplaod at: #{@uploaded_at}" - } -} -``` - -## Interactive card format - -Use card format could use partly of markdown syntax: - -```ruby -{ - "msg_type": "interactive", - "card": { - "config": { - "wide_screen_mode": true, - "enable_forward": true - }, - "elements": [ - { - "tag": "div", - "fields": [ - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**Platform**\n#{@device_type}" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**Version**\n#{@release_version} (#{@build_version})" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**Developer**\n#{@username}" - } - }, - { - "is_short": true, - "text": { - "tag": "lark_md", - "content": "**Upload date**\n#{@uploaded_at}" - } - }, - ] - }, - { - "tag": "div", - "text": { - "content": "**Changelog**\n#{@changelog}", - "tag": "lark_md" - } - }, - { - "actions": [ - { - "tag": "button", - "text": { - "content": "🐞 Go to app", - "tag": "lark_md" - }, - "url": "#{@release_url}", - "type": "primary", - "value": {} - } - ], - "tag": "action" - } - ], - "header": { - "title": { - "content": "#{@title}", - "tag": "plain_text" - } - } - } -} -``` diff --git a/versioned_docs/version-5.2/user-guide/webhooks/slack.md b/versioned_docs/version-5.2/user-guide/webhooks/slack.md deleted file mode 100644 index b2ce3477a..000000000 --- a/versioned_docs/version-5.2/user-guide/webhooks/slack.md +++ /dev/null @@ -1,64 +0,0 @@ -# Slack - -[Slack](https://api.slack.com/messaging/webhooks) use Incoming Webhooks whose constructs -typically support both text and block rich text, and can be configured as follows: - -## Text format - -```ruby -{ - "text": "#{@title}\nPlatform: #{@device_type}\nUpload at: #{@uploaded_at}" -} -``` - -## Block rich text format - -A simple block with markdown support - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "## #{@title}\nPlatform: #{@device_type}\nUpload at: #{@uploaded_at}\nInstal QRcode:\n![qrcode](#{@qrcode_url})" - } - } - ] -} -``` - -Better look at some of the structures shown in the block - -```ruby -{ - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": @title, - } - }, - { - "type": "section", - "fields": [ - { - "type": "mrkdwn", - "text": "*Platform:*\n#{@device_type}" - }, - { - "type": "mrkdwn", - "text": "*Upload at:*\n#{@uploaded_at}" - } - ] - }, - "accessory": { - "type": "image", - "image_url": @qrcode_url, - "alt_text": "install qrcode" - } - ] -} -``` diff --git a/versioned_docs/version-5.2/user-guide/webhooks/wecom.md b/versioned_docs/version-5.2/user-guide/webhooks/wecom.md deleted file mode 100644 index b9228312d..000000000 --- a/versioned_docs/version-5.2/user-guide/webhooks/wecom.md +++ /dev/null @@ -1,26 +0,0 @@ -# Wecom (Wechat Work) - -[企业微信](https://work.weixin.qq.com/api/doc/90000/90136/91770) use Incoming Webhooks whose constructs -typically support both text and markdown, and can be configured as follows: - -## Text format - -```ruby -{ - "msgtype": "text", - "text": { - "content": "#{@title}\n\nInstall url:#{@install_url}\nUplaod at: #{@uploaded_at}" - } -} -``` - -## Markdown format - -```ruby -{ - "msgtype": "markdown", - "markdown": { - "content": "## #{@title}\nPlatform: #{@device_type}\nUplaod at: #{@uploaded_at}\nInstall QRcode:\n![qrcode](#{@qrcode_url})" - } -} -``` diff --git a/versioned_sidebars/version-4.x-sidebars.json b/versioned_sidebars/version-4.7.1-sidebars.json similarity index 100% rename from versioned_sidebars/version-4.x-sidebars.json rename to versioned_sidebars/version-4.7.1-sidebars.json diff --git a/versioned_sidebars/version-5.0-sidebars.json b/versioned_sidebars/version-5.0-sidebars.json deleted file mode 100644 index 9647711de..000000000 --- a/versioned_sidebars/version-5.0-sidebars.json +++ /dev/null @@ -1,237 +0,0 @@ -{ - "selfHosted": [ - { - "label": "Getting Started", - "type": "doc", - "id": "self-hosted/index" - }, - { - "collapsible": false, - "label": "Deployment", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "self-hosted/deployment/architecture", - "self-hosted/deployment/requirements", - { - "collapsible": true, - "label": "Docker", - "type": "category", - "link": { - "type": "doc", - "id": "self-hosted/deployment/docker" - }, - "items": [ - "self-hosted/deployment/docker/step-by-step" - ] - }, - "self-hosted/deployment/kubernetes", - "self-hosted/deployment/nomad", - "self-hosted/deployment/source-code" - ] - }, - { - "type": "doc", - "label": "Reverse Proxies", - "id": "self-hosted/reverse-proxies" - }, - { - "collapsible": false, - "label": "Cloud Provider Guides", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "self-hosted/deployment/fly", - "self-hosted/deployment/railway", - "self-hosted/deployment/render" - ] - }, - { - "collapsible": false, - "label": "Configuration", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "self-hosted/configuration/environment-variables", - "self-hosted/configuration/third-party-authentication", - "self-hosted/configuration/schedule-jobs" - ] - }, - { - "type": "doc", - "label": "Storage", - "id": "self-hosted/storage" - } - ], - "userGuide": [ - { - "label": "Getting Started", - "type": "doc", - "id": "user-guide/index" - }, - { - "label": "Dashboard", - "type": "doc", - "id": "user-guide/dashboard" - }, - { - "collapsible": true, - "label": "Apps", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/apps/create", - "user-guide/apps/index", - "user-guide/apps/detail", - "user-guide/apps/upload" - ] - }, - { - "collapsible": true, - "label": "Debug Files", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/debug-files/index", - "user-guide/debug-files/review", - "user-guide/debug-files/upload" - ] - }, - { - "collapsible": true, - "label": "Toolkits", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/toolkits/teardown", - "user-guide/toolkits/fetch-udid" - ] - }, - { - "collapsible": true, - "label": "Webhooks", - "type": "category", - "link": { - "type": "doc", - "id": "user-guide/webhooks" - }, - "items": [ - "user-guide/webhooks/slack", - "user-guide/webhooks/discord", - "user-guide/webhooks/feishu", - "user-guide/webhooks/dingtalk", - "user-guide/webhooks/wecom" - ] - }, - { - "collapsible": true, - "label": "Administrator", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/administrator/apple-team", - "user-guide/administrator/permissions", - "user-guide/administrator/backup", - "user-guide/administrator/settings", - { - "collapsible": true, - "label": "Monitoring", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/administrator/monitoring/system-info", - "user-guide/administrator/monitoring/logging", - "user-guide/administrator/monitoring/background-jobs", - "user-guide/administrator/monitoring/database-analytics" - ] - } - ] - }, - "user-guide/best_practices", - "user-guide/changelog", - "user-guide/qa", - "user-guide/credits" - ], - "developerGuide": [ - { - "label": "Getting Started", - "type": "doc", - "id": "developer-guide/index" - }, - { - "collapsible": false, - "label": "SDKs", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "developer-guide/sdk/ios", - "developer-guide/sdk/android" - ] - }, - { - "collapsible": false, - "label": "fastlane plugins", - "type": "category", - "link": { - "type": "doc", - "id": "developer-guide/fastlane" - }, - "items": [ - "developer-guide/fastlane/zealot", - "developer-guide/fastlane/zealot_version_check", - "developer-guide/fastlane/zealot_debug_file", - "developer-guide/fastlane/zealot_sync_devices" - ] - }, - { - "collapsible": false, - "label": "APIs", - "type": "category", - "link": { - "type": "doc", - "id": "developer-guide/api" - }, - "items": [ - "developer-guide/api/apps", - "developer-guide/api/debug_files" - ] - } - ], - "contributingGuide": [ - { - "label": "Getting Started", - "type": "doc", - "id": "contributing-guide/index" - }, - { - "collapsible": false, - "label": "Local development", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "contributing-guide/local-development/devcontainer", - "contributing-guide/local-development/source-code" - ] - } - ] -} diff --git a/versioned_sidebars/version-5.1-sidebars.json b/versioned_sidebars/version-5.1-sidebars.json deleted file mode 100644 index 9647711de..000000000 --- a/versioned_sidebars/version-5.1-sidebars.json +++ /dev/null @@ -1,237 +0,0 @@ -{ - "selfHosted": [ - { - "label": "Getting Started", - "type": "doc", - "id": "self-hosted/index" - }, - { - "collapsible": false, - "label": "Deployment", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "self-hosted/deployment/architecture", - "self-hosted/deployment/requirements", - { - "collapsible": true, - "label": "Docker", - "type": "category", - "link": { - "type": "doc", - "id": "self-hosted/deployment/docker" - }, - "items": [ - "self-hosted/deployment/docker/step-by-step" - ] - }, - "self-hosted/deployment/kubernetes", - "self-hosted/deployment/nomad", - "self-hosted/deployment/source-code" - ] - }, - { - "type": "doc", - "label": "Reverse Proxies", - "id": "self-hosted/reverse-proxies" - }, - { - "collapsible": false, - "label": "Cloud Provider Guides", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "self-hosted/deployment/fly", - "self-hosted/deployment/railway", - "self-hosted/deployment/render" - ] - }, - { - "collapsible": false, - "label": "Configuration", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "self-hosted/configuration/environment-variables", - "self-hosted/configuration/third-party-authentication", - "self-hosted/configuration/schedule-jobs" - ] - }, - { - "type": "doc", - "label": "Storage", - "id": "self-hosted/storage" - } - ], - "userGuide": [ - { - "label": "Getting Started", - "type": "doc", - "id": "user-guide/index" - }, - { - "label": "Dashboard", - "type": "doc", - "id": "user-guide/dashboard" - }, - { - "collapsible": true, - "label": "Apps", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/apps/create", - "user-guide/apps/index", - "user-guide/apps/detail", - "user-guide/apps/upload" - ] - }, - { - "collapsible": true, - "label": "Debug Files", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/debug-files/index", - "user-guide/debug-files/review", - "user-guide/debug-files/upload" - ] - }, - { - "collapsible": true, - "label": "Toolkits", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/toolkits/teardown", - "user-guide/toolkits/fetch-udid" - ] - }, - { - "collapsible": true, - "label": "Webhooks", - "type": "category", - "link": { - "type": "doc", - "id": "user-guide/webhooks" - }, - "items": [ - "user-guide/webhooks/slack", - "user-guide/webhooks/discord", - "user-guide/webhooks/feishu", - "user-guide/webhooks/dingtalk", - "user-guide/webhooks/wecom" - ] - }, - { - "collapsible": true, - "label": "Administrator", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/administrator/apple-team", - "user-guide/administrator/permissions", - "user-guide/administrator/backup", - "user-guide/administrator/settings", - { - "collapsible": true, - "label": "Monitoring", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/administrator/monitoring/system-info", - "user-guide/administrator/monitoring/logging", - "user-guide/administrator/monitoring/background-jobs", - "user-guide/administrator/monitoring/database-analytics" - ] - } - ] - }, - "user-guide/best_practices", - "user-guide/changelog", - "user-guide/qa", - "user-guide/credits" - ], - "developerGuide": [ - { - "label": "Getting Started", - "type": "doc", - "id": "developer-guide/index" - }, - { - "collapsible": false, - "label": "SDKs", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "developer-guide/sdk/ios", - "developer-guide/sdk/android" - ] - }, - { - "collapsible": false, - "label": "fastlane plugins", - "type": "category", - "link": { - "type": "doc", - "id": "developer-guide/fastlane" - }, - "items": [ - "developer-guide/fastlane/zealot", - "developer-guide/fastlane/zealot_version_check", - "developer-guide/fastlane/zealot_debug_file", - "developer-guide/fastlane/zealot_sync_devices" - ] - }, - { - "collapsible": false, - "label": "APIs", - "type": "category", - "link": { - "type": "doc", - "id": "developer-guide/api" - }, - "items": [ - "developer-guide/api/apps", - "developer-guide/api/debug_files" - ] - } - ], - "contributingGuide": [ - { - "label": "Getting Started", - "type": "doc", - "id": "contributing-guide/index" - }, - { - "collapsible": false, - "label": "Local development", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "contributing-guide/local-development/devcontainer", - "contributing-guide/local-development/source-code" - ] - } - ] -} diff --git a/versioned_sidebars/version-5.2-sidebars.json b/versioned_sidebars/version-5.2-sidebars.json deleted file mode 100644 index 9647711de..000000000 --- a/versioned_sidebars/version-5.2-sidebars.json +++ /dev/null @@ -1,237 +0,0 @@ -{ - "selfHosted": [ - { - "label": "Getting Started", - "type": "doc", - "id": "self-hosted/index" - }, - { - "collapsible": false, - "label": "Deployment", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "self-hosted/deployment/architecture", - "self-hosted/deployment/requirements", - { - "collapsible": true, - "label": "Docker", - "type": "category", - "link": { - "type": "doc", - "id": "self-hosted/deployment/docker" - }, - "items": [ - "self-hosted/deployment/docker/step-by-step" - ] - }, - "self-hosted/deployment/kubernetes", - "self-hosted/deployment/nomad", - "self-hosted/deployment/source-code" - ] - }, - { - "type": "doc", - "label": "Reverse Proxies", - "id": "self-hosted/reverse-proxies" - }, - { - "collapsible": false, - "label": "Cloud Provider Guides", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "self-hosted/deployment/fly", - "self-hosted/deployment/railway", - "self-hosted/deployment/render" - ] - }, - { - "collapsible": false, - "label": "Configuration", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "self-hosted/configuration/environment-variables", - "self-hosted/configuration/third-party-authentication", - "self-hosted/configuration/schedule-jobs" - ] - }, - { - "type": "doc", - "label": "Storage", - "id": "self-hosted/storage" - } - ], - "userGuide": [ - { - "label": "Getting Started", - "type": "doc", - "id": "user-guide/index" - }, - { - "label": "Dashboard", - "type": "doc", - "id": "user-guide/dashboard" - }, - { - "collapsible": true, - "label": "Apps", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/apps/create", - "user-guide/apps/index", - "user-guide/apps/detail", - "user-guide/apps/upload" - ] - }, - { - "collapsible": true, - "label": "Debug Files", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/debug-files/index", - "user-guide/debug-files/review", - "user-guide/debug-files/upload" - ] - }, - { - "collapsible": true, - "label": "Toolkits", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/toolkits/teardown", - "user-guide/toolkits/fetch-udid" - ] - }, - { - "collapsible": true, - "label": "Webhooks", - "type": "category", - "link": { - "type": "doc", - "id": "user-guide/webhooks" - }, - "items": [ - "user-guide/webhooks/slack", - "user-guide/webhooks/discord", - "user-guide/webhooks/feishu", - "user-guide/webhooks/dingtalk", - "user-guide/webhooks/wecom" - ] - }, - { - "collapsible": true, - "label": "Administrator", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/administrator/apple-team", - "user-guide/administrator/permissions", - "user-guide/administrator/backup", - "user-guide/administrator/settings", - { - "collapsible": true, - "label": "Monitoring", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "user-guide/administrator/monitoring/system-info", - "user-guide/administrator/monitoring/logging", - "user-guide/administrator/monitoring/background-jobs", - "user-guide/administrator/monitoring/database-analytics" - ] - } - ] - }, - "user-guide/best_practices", - "user-guide/changelog", - "user-guide/qa", - "user-guide/credits" - ], - "developerGuide": [ - { - "label": "Getting Started", - "type": "doc", - "id": "developer-guide/index" - }, - { - "collapsible": false, - "label": "SDKs", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "developer-guide/sdk/ios", - "developer-guide/sdk/android" - ] - }, - { - "collapsible": false, - "label": "fastlane plugins", - "type": "category", - "link": { - "type": "doc", - "id": "developer-guide/fastlane" - }, - "items": [ - "developer-guide/fastlane/zealot", - "developer-guide/fastlane/zealot_version_check", - "developer-guide/fastlane/zealot_debug_file", - "developer-guide/fastlane/zealot_sync_devices" - ] - }, - { - "collapsible": false, - "label": "APIs", - "type": "category", - "link": { - "type": "doc", - "id": "developer-guide/api" - }, - "items": [ - "developer-guide/api/apps", - "developer-guide/api/debug_files" - ] - } - ], - "contributingGuide": [ - { - "label": "Getting Started", - "type": "doc", - "id": "contributing-guide/index" - }, - { - "collapsible": false, - "label": "Local development", - "type": "category", - "link": { - "type": "generated-index" - }, - "items": [ - "contributing-guide/local-development/devcontainer", - "contributing-guide/local-development/source-code" - ] - } - ] -} diff --git a/versions.json b/versions.json index 581e118f3..dd6ee8105 100644 --- a/versions.json +++ b/versions.json @@ -1,7 +1,4 @@ [ "5.3", - "5.2", - "5.1", - "5.0", - "4.x" + "4.7.1" ]