# SuperSign **Repository Path**: liyangouter/SuperSign ## Basic Information - **Project Name**: SuperSign - **Description**: SuperSign - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: https://gitee.com/raytionwu - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-04-17 - **Last Updated**: 2023-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 微信公众号:gopher云原生 go、云原生技术 ...... 来者不拒,欢迎关注
![gopher云原生](https://lh3.googleusercontent.com/djv6c9L16f4j1i1cXh_MYcCIeaZW_OBahBHf-nls4H8Fy5K9823HCuDWTPgA1H8smoje_6F53WguwEvCWH8wBGlVSXLEbzE8ff8LKEH6p0UONO86no19uw7Ml5dynKsLsFvw6b6ihPNXMVxtJpWtlcxzLRinkm0XxdXfevbZMNsqG0IIXOq5USl6WyTh5-SMvQvb0yP1FAojCEr_tIhz9mPRwftJefnQ7yjdN4gYfMp_4Ymu7DkvuKc2WJ1fKfIBNw4K58ESB-ZxFZWHD5sojvNZ1QZ6HHk92SPUzgr7HLAplMnf0KMfu9trE2tusDq55UHGvQlh_HVqYCZHvcbN6kf6DRDbG3uMrEWXuGU0iCqZ0Z2WiyBqTOJFcGJzTS0atPpjQNDtG14EmWFwUm7PVoLwjeFzj9Ztuek8T8h_AvzuqwjzW58guapvLs4r0eHV6HQRGeaTrbrwpOhaoZdLB8c5MFQ2FczwdZhaeH_G99Ek2j5Gb9wtH9HgfFY3b8ife4v6nio7Y5GUuIIiaS0C4hUijaS_5Gn2heSsm9B7IvxW7HDAm8AU81XxY6qq74X8Z0Nj9enIuoa6au8q20eMS_tbb70qfLMs-17TmjYSV34Hgx3jVhbfq3JDVyzlzBeMSQBxjz3Elxonei-40LsI-mBNdV2XXiLPH9CQuVaLP2Q4V4efaMXckU-FjoDaovBjNgZ_3cT3X5JZSp_iMZ2JHiedfY-1aMzoSJ2xU7ypjSre_ZnYfw3A67XeR5IVbg20HH-jhCSJP1xzOAVhcXcNWIy_qFI8GByuZlnwk3NkLY8AdeIfKmEDrAANDj9VhyduVyiU9jjauAszCOSrbVJKQBirsFtknz2pxelkifaeQGHiFSoNfhb2cYl23Xm6oPNIiqZ6Uf8WonqhJTOXc-rQVnVUqK3bUBfYPhDpn46_1iE=w764-h1018-no?authuser=0)
## 起源 每个客户端开发者都会想独立开发一款自己的 APP 。 但 iOS 不像 Android 那样可以自由的分享应用给其他人安装 (Android 只要把 apk 甩出去就行了) 对于 iOS 开发者来说,苹果开发者账号几乎人手必备(这里只讨论个人账号), 而苹果公司允许我们添加 100 台设备(udid)绑定到账号上,这 100 台设备可以自由安装由账号签名且使用 Ad Hoc 方式打包出的 `.ipa` 本项目就是利用这个规则,来简化 iOS APP 的分享流程。当你开发一款 APP 的过程中,想要给身边的小伙伴体验一下,只需要使用本项目上传你的 IPA 并生成一个二维码链接,扫一扫,即可全程自动绑定设备并签名安装 APP ## 注意事项 本项目核心功能调用 [zsign](https://github.com/zhlynn/zsign) 和 [App Store Connect API](https://developer.apple.com/documentation/appstoreconnectapi) 实现 本项目开源免费,纯技术分享,不提供任何平台支持,仅作为给个人开发者分享自己的测试 APP 使用,严禁使用本项目进行任何商业盈利、损害官方利益、分享任何违法违规的 APP 等行为 本项目添加开发者账号后会占用账号的一个 iOS Development certificate 名额(每个账号最多只能创建两个),所以你可能得预留一个 其中添加开发者账号所需的 iss、kid、P8 文件需要在 https://appstoreconnect.apple.com/access/api 创建 ![image](https://lh3.googleusercontent.com/WPVFtfzWoEAXDv5nvdGEoSWeGmU1HghE3yp9Yp3GQZ585OcekD-OZKFxySoYArHhrFai8S_Kymw5UbETafx_FCQXwxTFseCiWxQqLszDB-GLNDR6PiB9__wPuOYab-EJT76QZaLzevRxn9XAgPT5kT2v5f0EGrty0p0a562xUPEF7ttf3RaD0hOgMnYeguH8L3li-JzmCSmvBEb8EsGLmbimuNgbTgbwCbXOv9C8j1MLxGhPpQdONmrRtsAu2-svOMHqJukMRynfdJdpw5l7jhsRmGDz7Ck7lb3u5u-0WaKh7HEB449gnkBBBA13Wwvr3UC2LTRH2GBGOrtiziDZZs3M_kSTQifQ6SUA96XxjEp0VBNbzhwDIv3Ogjyeb7yK1LGt2ugJrt6oDNb16X4v5oXI18faDxjEuv3cKC6JKyTLOwGw8lnBS4cFNZLE0Xz_Y4535zJDb4H8o11lsBWVdCvFPbqzor5zBlSdSC8yJB7fDVKYqVf6AEOPuI_FKvKQn-q7RJkBiduvTxfCOOlM-VTbOhbyfpAEKQZq-kG8wC16-JBWoAxfjMxazqE8niegxaIs7pzsuriVzWvpQeUX4bhHxS7d8pCvSM1bZIkuOyKWC8bAyjkLmAu_qDPHPfq_2bHHnu7B0-dSJRVFxlTrg5C8t8PAIEmdZgpfHsoGB0EGYWxN1BNGh9_rdBYuTkNurySl7wvFhgm6UnobACmgt2XUhzKI7mw7rDOLIu1WOq___5ZtE450bvZUE8TSHZtrPYibIvis1uCMEyAko6jy_DaKPWM40vPlY18Dkz8YQf3eb59CCZKbYJ2AW6EOcG7cLs93TMsOqHNU5iypc0to0EatmgvPhxyduMlK_dO1kgIjdyzcpFZA81it5FDKv_Z1Yk26xvINGTKJvT0L8Rl4OM_I2jzNfJzaYJYRvGRAYqs=w2880-h852-no?authuser=0) ## 效果预览 | ![login](https://lh3.googleusercontent.com/OLbx2c9XkGQJmmUEllp20izZRldBK7r3-qTaGdgEdzNQ_1YnBVEEun5EWnh3JAQmgTBZdhF-86CwzHBV_8g64HX_lwSaM3Wfs3PGgxyUqEAv3Bz9YPNPFxJ_eXNGKlRbgQYXIZrq0BmR7zb9ybkYb1Iu6M6EoJUlvexJv1PuyBuqNEqIvvZg0bepMgu-5dYEhF1rJeWOnBpdztGFMRdOLF-0Hi1Rn4b9AY-32HVL-B_q60cz0TlB99SlC5HTM0W_Jio6UxLpd1XkWObipdxQijPx0aF2HTu3RH_HaxRtEUEl75IAn82zG65oDgocJiJPVumwc8BS_VSus-CUt9iqE9Cksf176sV8t93iRExrFYPL96XxIioy66i68hbtk9WjVwhsnTiMmmaMRpsNVXMrSIlVThbP5UVYMl8nXndUYaAcf7RlEme2Szoa2BPtu_kSQzAsLGMjbrnZ0vF4aDLxsWuqkjHCHHGNAaMhNOvs_r4EC67w6iNMILB56pkqwrUrsKW5Za34dVnfKWB4J8OnYlgnsnnNoUussdmrRcEpHbkg0T01TTXBXjyKrAS5KGbzK2vUgu_5ceoikQRXwyjrlmvVv0fknAQrXuUbHkZaJNVdg3MdCzaC9EzgF3IWW_ffnq2LKLzBM1JeyMladL40KGK3nuNEmISihQjYQHkgf0LZ7Kxd1f-truAqVz_qadolpap7or8jxAny2CIZh90FCv65qP7hh_BbDKABpcDKDfSno2SD4RSKfr394J74cRX-fp123F_3oHXBeqRA-XHTz1O_-bjkdWPoXoZPXXbttp9jZdqrG2Mj41xU6t06FqbZFBM32hj6o5EblPkC-sIjvC4bN_8DHAV5xUoPcPbXA5hW-dDi8_tJUhWGpXAlTYmKGbtTj6jbcwLCJnJoySd8rjYXTnN5IthE7IKbm31i1HU=w2108-h1274-no?authuser=0) | ![developer](https://lh3.googleusercontent.com/FDANNxirdqfdVv-eQR6GlZgdw1Bu5dQF_VMRt2sTaRYI0rRO3dPp7_mTGTFWEMC5RZFAH66LkpCTlM9ZwQX8rVjYcna2glcYBMuMuCGtcTcBQDK9QN5yo5w-JAmqIX-AD8ihkGpG0sfxr3ER_0YiQlFThkHYHQtb9Ai6SkIGTIBZ8_NRgdBx5DeBJhWtXiMdYXjpTg_g_zqdR4uBTlnz8QHJ-xGYygLM1xwIrcxuYnZN7g1Coam40AapAjADftd4RgEVw1WopCSFzn3Rq_r4LUVV9zlGKVuSc1y_XdTzzcXOcp_jASwcaDYEQ99jWA8z9K6v7KcEiHfrj4S-TymqGacxmln4MtVpprjfaE0dGb3Ba9B1OkTX_3UPryyYL_zuwFPyYfsU9SZ-HtCDisSt19wDm7dZ0XNKcAKTPX75gpYzyy7qfCLsp7gE3P4GqsjtdZ4x5GLTNdtNwBnPQfHvSSjxx2BFlcZeJouQaRh2JOCq8JYMTwDoAOJmKz4vd-IL4i_xP8m4309Ska8JbkT2cjiTlSPh1kBlSemCoPsMTttCx0VDWja2mXfWE8USritwWzXS05kFKN0PSrjl2dRpfwOuH1ig4PLQ0kGd6yhtchD7uxH4w3sxTtA7jy8B6lzj3BLnEg9jY-G27PpYV9zaKwbiHzQm74t4NEeHaL9zk2CiG4bggC0-ZQAs43Z5Uo6eeLXlXBSFNDbILz4E8XsD6DptkFD74jXnWNVyttgC13TGda7sN8jZgufm_sm1bPCZtW_DSV9ASzMoa2tybu2CFCr6TT7fq1VcrIFgt9ps6q9gxwzv1kI8o3_-DSZiaWRI15tB6KmN1oK9JRw1X9dsAIH7wKZYRpjNCm-5c85Snjt5XHtH3IFX-zTRe_srXxlnsInNaph0RNYjNPGJpqF8-kfq4mLxTOj1mgLJtGzrS_Y=w2108-h1274-no?authuser=0) | | :----------------------------------------------------------: | :----------------------------------------------------------: | | 后台管理登录 | 开发者账号管理 | | ![ipalist](https://lh3.googleusercontent.com/TU2AND1MurA2PBGXV0t1_266LiI_wwqxJKvL25Y1pVA-Ar2tCdMKMTJvmMbPjtev7b7XSxU1o7PjGE5p9PY6-AYUKbGbZ8wOSEGvN8XczbIDlma-12V3raSL_DraVktzOMzDFGM_wwCd45OQvhp6UwF3fVQaQHd_rZEMbwvqTqSksl8aCHlqbqqIzIX25Z-6Rur7m06Rs5oXfRrNRs9kVmvnFlHlyAPHgJG2a6puXuIxYBPHX1jpmH0CY_YRVDffbkqqJAmTVlaSoWwk-V39cNE7iXlmqyiiFotDMgoYpDI0NXfMwoIpSy-SE0G4mbOg54Op7ZwYDu1a14z766H58VQmpzwA2D6iU_bA6_J3e_ubGx2wSPGH-Ullc9gqswpazF3UwIFmMXUAW2L4hSu-BAAFuoQzrnLnZTlOkMKua__lwrPE2nBdumzMQyceG-04qU3HSD5nGIUTS_melxgckp6AW6V5JhrsFz3zG75nVm6Kccev83iDJCQUQ1YUEvAWcIKj9VBaXdJ8gT0Vg5tHT57a-VnmpRJSCNWEHovAduwo95SgKDC5Dxtbyrtwk2cgIrvqEVyeBaXu6wNOAohcwxwK_O866p98joaYXBcphZ4sBEWwQiaG1nnCeKBP_Cr-XXbO1CV9pC1SSG33N-R581-ZKEaMrh0MDZNgqUWkW0xwiDn57UQ3kZmtBgFei8OSTa_pYk1Td1KGnJ5pHy5fgL96tPsZ6iUvhfWZL7MA-X6ruEVE0eys618z8gH1kRgy1Lcw9yTWX9-Hkf-mQ6ofSTTVUFiCdVv7MGFkMnMT5jWWxLR7J-YyOZPZLGTRD5SLlLQGJ2AXeC4wg8YHHR44TIC6VYJYyEQP1BB7gL4nYPtxFQbNu4uCbx8aQvkjaYAhpx59FAUdzTuNDPK8sbtNezxy05w6DN7L0maqbCnDagA=w2108-h1274-no?authuser=0) | ![keylist](https://lh3.googleusercontent.com/MJAsqWs2dhXNXn_EVeo2v3cMKFCXaAVmFx_Hzz7Tr7DaS8upN15bgFP4rP_l3WZOlMCfNE7SnZhMh03MCNmmw6cQSkj0HerexFZ_gWzf4wH3GPddtHgbojH4ZXPvbI-LTChOhuI8ZOOt9xfNdD8tJisEeRtHX21qm7bqgBsKaH1uiFu1MGATJepGmGVzhERunOCaMaEr18OueS0vieqd_Z9aCl51zcnIerRGi7WSVIhbnCjZaQv7lffo4tEw05YyXBhHcXED-g4cLDRFS9A-SEfRk8Xf3KpEAsln9ujIwzMeh1HJ6ZgisY95r3vvqEtaxWI0WQ63Ml3JXNCqZLSw4MULPgBH3q0192-r8tmmfNTWf6Tu4qlg1xI48ic_albXqn0IcGstp57STil-jC-r324trxr3Pq4JEcR9fSlkasyJpKT6bYPn4nlWElOg0qcg_OXG2NjL8Wq3dsuyRjlcJ2KI3_kehTfhnmyhOLvJJWyCgCgeGVF0i2-wRe1cc9FRBHHTzfybIu6X_lBcsLZmYeZVUe6irut4nEqjWb1Bf2JxRJeduQKg7d3ExHxgWE9HwacOc2M3tWl_2ZINJCmjAsBcQSOx6pIj835D1q7imP6P436RtRaM06Ob6ifIj9ZJbi-RPbxazeyQOiGWqUnFK3wLfgqSS3tVLPFQ2DGcAa5fZEnDfGfsTqL4EcgCQYC7gCKCe-Mce0KWKFAbB4x1Vq8TVcPxOpC_j2LkXxciWgw_73d_5SaFYCn3Tx7qflGcZmzFm9IoBiKdxqy4Ce_BxjljKMPSvFGleYEU7ImjLPnx29wrAfCUbdQpOJCkbA4exu7VyTR3TxyP9JTatVTRuXFwKgsoy6jm_juWE7-6nw7tlZxnGX89xy9lVSuAbXVkoOH3kTMvda-xyq4K6yavl3WboDNmWYUpfR-k-0jmKlY=w2108-h1274-no?authuser=0) | | 应用管理 | 密钥管理 | | ![oss](https://lh3.googleusercontent.com/KKYGfz5RGpgITqDIOZvLhJ21mVd8QbCqoXUrwjT9hJuek9ebOCT5H4E2KH7zB--dhZarPlYYW50GkDGswIPZho7nJmdb13Ojf1ozxtt_B7Cwylup3QEUnNr7S0w3Pznl0TrPpfkcyM5do9oAjXSziKOwSKk1-A6h0gR9QtRnt5ScDO4EquBp4k-MIbPJILHwITrn1pC13KYhAHUdOR4aU4Rdy_F9YRuZxEYauIlIKTCu61QFzMTpCkD6pTgGA19RDppuupp_pAmG50vA--Ae32ZSFJ8vYSYVwl9jT10za9WW3BfIait1hxsGzm5_vRa0Dljk9PJoBWXEP7xBzF0NCzT1f8Ygcq0vnCQnCHuSrjHqKBWBjVb6dCtkfB5xYpA-1uXkRWMl_wXjgjyQdEjFzpaUOra5yoFrtAGE3DrKEFCMKSv8XdSxr0ZlcRH6_fDOZQN7So-Eh0oXdvfgkslYMaJ3vI_WFidCZ9HOC86bkKypdFuirjFFY1vBq5B9A8ycWZPR1LJJZBDABkINrXjWOC8WyD_wHINPs3HfrNDNFH-avacg9_Z8um5k5RzH6BMkcqB69VKb-sD5xFxtpyYRFCPT5qcYwc5BfH5ChfmBrP0HtB3dmfuk3k9GJojIp5ejbaCxwMeCHUg7OWH-J5JxgsLrs9bO4DT8PQq0WARooclGqkPkFPaEH9r17CsknJxT-gCbjoux7cMiAOt2U-3xml6xvUxI9a5zpQE9ij8G4ahuKDcpHnO8wQ8cO5JaS7cwT-uzrXPPfAqcZu3W8JFFhAGyuJbonQRv6jSDIoVBE9MWG_H9_XsOMYEqJMRj5sRKlV9NjDV-NYoxqMm3L2GBzs8tWutdvqdnRGGoalqd3BBfBmAmlOsv0bvAnjfqZgzBDbfhDYfD5elC2meiMgs7QvvDz7nM_-Xlf9TGkdizA5M=w2108-h1274-no?authuser=0) | ![pw](https://lh3.googleusercontent.com/HAFpTNi4NzZW2DtmwjPOsq2aSJmO82wTcpgC-7V4IOAZrXFnXxjMnm_XUNYHsCdFrDn22X6peXoR_o-oIcRzBsQI0heOKIIWYnVAuzVoyb0yCFVvfwGaBL1ApT3jPiv__m2BC9xwWx5OVyyaby6YD9LO8NJ1z22sJDgn6-uAw9eh0HYLggMlZpQA-RN314BDmuzo1y3Os4mnvIuX9U-pDFxKzrNTL-nfx-AqTSFNwfun4gICfApfU6p9gq9L_B4R72PoV7Vt0olt3OSwF28A7GDYMm_x6oC4o5GQpxkb2UlJD5TM6b_pCLM7XVpukpKyZadIiW61AMOLn4cK_yqSk9rTSJCO4bIK5It2l2Hieop5a5JUg08xXk4bd6YTXNadPpnrb3VYBGKhcTA1JxV6yIwpfIqtst92pBpbweBE-jaLu54pYJXVBEg63546efeeeA30JBRapDWwOldvOWOYOq020qwv3FciLqH1h6OxJA-wEj4z2nmyrFRbDvr2rNKdvyH89LHqLj2pTmUEFOEhMNtYpjoNLTGLS1pLC7A9bCCeS-vdVCBHn_0aIXinpj_jOvvTnKoRzFACHklomlgHsRlmQ4YjPJqBMSE1XZMkLqvEaEM1tn2wIF-PaN75yPjpENV-ZJZvs9iPBSK459x8cw1B8sUktLrvEV33yKK-WBniKoBDkvgzMmnS3qKuQxZKjKn8jpk-cyrPzCQCfJJrqnl-WOkHaZNllXYIDOpJ7lyJNLaLY4WlZX6JQ5KH4aXzw8eQNp8OxYZmBxPR6Nsmt95PEJLNY5d0RC5QjHYCNBjl1r950aUJj9HW6BZP5k7sCyEmQBkL8s0hTgzgN2xIEvha8vZ45kItNnkTrcuFFeGdMc_awyOYZ0o-eaWHywtqTxRmkQFJ9LdTdfG-1Y1mpMj8Ix2mPP7Er2gzZxD4MX8=w2108-h1274-no?authuser=0) | | 阿里云 OSS 设置 | 更改用户名密码 | | ![htdb](https://lh3.googleusercontent.com/Ba1mx24B0SDKS6pBTJjJvEhqS-aAn-792wJFUr2jn34pG-EsV8bMavoyrkukhTCcobqhq7NkSf-f_jG_0olFx7SJrNCJihoN5-LcWh1zMK7lLUy9wCgUmlY2oK7ft9oSmNEwQQf1DCMzUeLSD5kZf8CDjtiPlQsehI7x9D7qx6VjDhA0bvbgpooxnmaxaP0KWkCGzX8u24hqdpOGTsltXdTR7hGLTxjoSfAj8lxArNO-iANxy_qZlLarypbhYPFx7MG32IDcLzObRbf44engBgPNq2azyMst3dSIhCo32RZ3-7ARQ7AVG8fJ9HTmcynw8szdh63JFMgksNvUGUh76mp2K_ArQZ4INYjJjwPumJFGgiCr3w2BDREKPfjk9vbR4_aDblWx_I0K-AoblKW5T01MZ8XEIwyTN2lMAStMLnnaJ3QeRQrYyB4nrxWyO0RwmXDLQTm-CxGTo7KvwD95rn7_Ud2mJYZPcQbi35rsbGhfGXmsyY4iQWnNRa5gnofuo1Mfwmg1MOlUymrxDdfogIymFS22dUOwiT1qiMT3ZsvjYNdmhai0f8U1-o-ntAk5TPjVaDYWDNZsjP06GykZACm-f1jQ64lgjoXD3D26pig8IZFESCUSIMX8KvBj4pwYeQkeki_SQIfRfWTpVLPezav5ewZUII68uFm3moXTJGeH8-QKuRhuggKevoej4A_-F_I_Kh4FjcIy45Ul5V8ecScxZH6zJQeSGfRFeSu2Ss1RmNbRKNcv-FNp41bhAPlau1FsvM_2nrGTMXuugyOYo_CarCJx2_t9aViU3mVLMwgy0DYOmtwQiAt3FyKPaWOFolOR921pQ1H0eV3ShUNnJsIbQJLhXGpDuDLk_GITe4QEkTYtAd4huUXqZ8DpKcnVBmf8V6odPFE4llerSWUBjetDfmKTYE6Yzth-BhM-r94=w628-h1274-no?authuser=0) | ![install](https://lh3.googleusercontent.com/4rA5bMVECk5OzEdRCpof0VvZLqmzTffHFCTlQyp6sPQnEFaRnTX6vB0r7wMWF-lgTte6T0PS5kAgFg6YNe2AVhdYKIe3nL_4sz7ZGyWVBO3q1o1qTqJCt-wBhOefZbXqP0i7NE_XF0nrWhSHyeN313dbPtbNJSQT1ITbxTi22A_CtVtH_A3H2t9W7k5coufgRqtndXbeS5IRGuwFc9b4WKYjXwjgjrlCC-uGuX-GMRMwUr8RXBr0dkRadz1xAysmOge_hSFWpGNJQT8VPfdop-CBqxjszq0o_7_vis26hZVAivqcM2YZhzabvMP1G_javbG95fmnaur-02DOuraKaedxuD4sutLjd-1a1bXo5OgvAr6yKj8gGqt7lh6X8itxfimP7To-c2HtjiQShrgPDP4iLo9MNGLaGqDGzeksU3VjxxMYgsY-GXePqednTZHAgS2qjg6sql2-qvTeAAd4SrrPBhuqTsMw4qydl1PMmIBpE_hzIc_zalTuLi3NgLGQRvhcyimtBpGf3bNuV699yGR8uJHL0JYaREC9344QE6Wj9PVphYFBuFj9jZJNuXP6GQNWqxH_WjfJdrPayD2ThFgLfrKzzsA98gd_n42EW0q27QVAdTaZ1b7tGsX2u1tFKz4bAGfqsqw-MPI3cxBYo_UQrzpppC6kVBINsCzoLWVYFNNftz2o_KH4RSz4ULbmkMAYEnLzgXyBBM0Coa8Hv5PruSv6Z22hZYQ-PXpVzdfX_sEcZ0piW9nWVJNtFe-KyDjsQz68FDCPVaZgMnA6LZt5giL4a3wRtFu6pJQZjNGvftvHLwroNRdKRxt5ga66F3ac8REScbDBpANYBCWU4O9UXZxkh89I5uvd_1sK1rdzD5XnNrrFS-629bDZMX9sVmxfUzE87A9qr0s9cvtkTrYvywf97DLjmNP03nfgbCI=w628-h1274-no?authuser=0) | | 等待 APP 打包中 | 开始安装 APP | ## Docker 部署: 提供了多种部署方案供参考,不同方案的区别仅在于 `docker-compose.yml` 的配置不同,部署时根据实际情况选择其中任意一种即可 ### 配置 1 需要准备的东西: 1. 一个域名,并解析到你的服务器IP地址上,例如:`example.com` 2. 服务器开放 `80` 和 `443` 端口,并确保没有被其它程序占用 3. 一个邮箱地址,用于自动向 Let's Encrypt 申请免费SSL证书,例如:`foo@qq.com` 创建 `docker-compose.yml` ,内容如下: ```yaml version: '3' services: server: image: togettoyou/ipashare:latest ports: - "80:80" - "443:443" volumes: - $PWD/data:/root/togettoyou/data - /etc/timezone:/etc/timezone - /etc/localtime:/etc/localtime environment: - SERVER_URL=https://example.com - SERVER_TLS=true - SERVER_AUTOTLS=true - SERVER_ACMEEMAIL=foo@qq.com - SERVER_MAXJOB=10 - SERVER_RUNMODE=release - LOG_LEVEL=info ``` 优点:快速部署,自动配置SSL证书 缺点:需要占用 `80` 和 `443` 端口 ### 配置 2 需要准备的东西: 1. 一个域名,并解析到你的服务器IP地址上,例如:`example.com` 2. 服务器开放 `80` 和 `443` 端口,并确保没有被其它程序占用 3. 自行准备域名的SSL证书,例如:`ssl.crt` 和 `ssl.key` 创建 `docker-compose.yml` ,内容如下: ```yaml version: '3' services: server: image: togettoyou/ipashare:latest ports: - "80:80" - "443:443" volumes: - $PWD/data:/root/togettoyou/data - $PWD/ssl.crt:/root/togettoyou/ssl.crt - $PWD/ssl.key:/root/togettoyou/ssl.key - /etc/timezone:/etc/timezone - /etc/localtime:/etc/localtime environment: - SERVER_URL=https://example.com - SERVER_TLS=true - SERVER_AUTOTLS=false - SERVER_CRT=ssl.crt - SERVER_KEY=ssl.key - SERVER_MAXJOB=10 - SERVER_RUNMODE=release - LOG_LEVEL=info ``` 优点:快速部署 缺点:需要占用 `80` 和 `443` 端口,需要自己准备SSL证书 ### 配置 3 需要准备的东西: 1. 一个域名,并解析到你的服务器IP地址上,例如:`example.com` 2. 指定一个任意空闲端口,例如:`8888` 3. 服务器需要部署其它能够支持反向代理和SSL的网关服务,例如:Nginx 创建 `docker-compose.yml` ,内容如下: ```yaml version: '3' services: server: image: togettoyou/ipashare:latest ports: - "8888:8888" volumes: - $PWD/data:/root/togettoyou/data - /etc/timezone:/etc/timezone - /etc/localtime:/etc/localtime environment: - SERVER_URL=https://example.com - SERVER_HTTPPORT=8888 - SERVER_MAXJOB=10 - SERVER_RUNMODE=release - LOG_LEVEL=info ``` 此方案需要你额外在网关服务上配置反向代理以及SSL证书,以 Nginx 配置为例: ```nginx configuration server { listen 80; server_name example.com; rewrite ^(.*)$ https://$host$1 permanent; } server { listen 443 ssl; server_name example.com; client_max_body_size 300m; client_body_buffer_size 50m; location / { proxy_pass http://127.0.0.1:8888; proxy_http_version 1.1; proxy_set_header Host $proxy_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } ssl on; ssl_certificate /etc/nginx/ssl/domain.crt; ssl_certificate_key /etc/nginx/ssl/domain.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE; ssl_prefer_server_ciphers on; } ``` 优点:不需要占用 `80` 和 `443` 端口、可利用网关强大的能力(上传大小限制等) ### 启动和停止 ```shell # 前台运行服务 docker-compose up # 后台运行服务 docker-compose up -d # 查看服务日志 docker-compose logs -f --tail 100 # 停止服务 docker-compose stop # 启动服务 docker-compose start # 重启服务 docker-compose restart # 删除服务 docker-compose down -v ``` 启动成功后可通过 `域名/admin` 例如 `https://example.com/admin` 访问后台管理 ### 持久化 项目启动后所有文件保存在 `data` 目录,请妥善保管 - `apple_developer` : 苹果开发者账号相关证书 - `temporary_file_path` : 临时文件存放路径(打包后的 IPA,1小时后会自动删除) - `upload_file_path` : 文件上传路径(上传的 IPA) - `sqlite.db` : 默认的sqlite数据库文件 数据库支持更换为 MySQL ,在 `docker-compose.yml` 加入以下环境变量 : ```yaml - MYSQL_ENABLE=true - MYSQL_DSN=root:123456@tcp(127.0.0.1:3306)/db_default?charset=utf8mb4&parseTime=True&loc=Local ``` 更多环境变量可参考:[server/conf/default.yaml](server/conf/default.yaml) ,变量层级使用 `_` 连接,如 `MYSQL_MAXIDLE` 代表 mysql 配置中的空闲连接池中连接的最大数量 ## 宝塔部署 使用宝塔部署,本质上是使用 Docker + Nginx,即 Docker 部署中的配置 3 方式,区别只是在于提供了一种可视化的操作。 ### 软件商店搜索安装 Docker管理器 ![image](https://lh3.googleusercontent.com/kMziP19vkd5IvGuuBfXRhfZO9cww8_UcRQpU5Rr2laYxew1hF4O_UQ0kMVPVkuFH6B91Qe3PVOKBRIrOfiQ-X6Jzi63Fd-PVhLzOKqM-N_2T-QqAyhOR01PlqzHuZj1md3yQZ2YOL3n3ZYpbtb0f3ucSHIeoFFHRqb9XmJ3aZ0uIabsNJt9TDUEwwVAJgYepGDhQtHUX0uGRAzLwBaPjoeMTtX41eOVkDnTx2faeB7R9aCKZer_EDp_Fhoy7sOPLRzecuKHSP_wGxTvxN03Kr6gAgtb06AHspA94cUen0gLC4NJRA-d91EQvWB0MUzaQoIy6rStspUH_LoYoLwdiS2zs5VKB9KF2XypO4u_W_vK-61Yuqa6atQggyOJPyS-4Q3JMAt73QE6azdcY-PKpmUeHQRE5c0MYmPlYfcNsjpNbiNibojAE71r1CUtDeQCTyIwG5VTbMwGTTHpWY2HrPxD9xVEBP-CoNy3_MYdaF6SNj5WZ2n3PqX0bUEH9L4_CdX9M-vqjPKau4gSEi36KtPJJjASR_veqH4Oh9eFs3vpdeNNLOhLc328KvfwQ3sMXe0ejzfqPun_XSZ16jsahNOYoe0N70hr3iEghw_PW3Gf9Eolr3MUoC_FBi12h-A3l2N3PaKdxm2odjETKTKnkfVw1eM7EAHnyw1rMqz0xrafzPfbT45IGngK_h_Gqm31soczkOzV9l8WRtNpg83F4tQgZjtCVuZUuyKJVCwpSEdABjwcK7nJAm2dT4Y8roj226mezp-fxwi-nJGS1qd2n7WMRNXeLnTkWFliI0R6ul50Gn6hPo0ah56vCO0PVk-BLUF4hhk6Sbk2BuoDlFqo5oxdTvNC54h3FZ2K7vNU-kcgMwZvoI6T_cjSwJUN_THKovfPXSZJDZEiDRwBqnV7GoVDfV7vDDzDMu9bDoOmxhmo=w2072-h1274-no?authuser=0) ### 进入 Docker管理器-镜像管理-获取镜像 `togettoyou/ipashare:latest` ![image](https://lh3.googleusercontent.com/InFyoiWGGPd82rMkYJjH8BV-CfGMtm2pXCB6DRP3Pss8FnTb-4TafOZoqWBqznhLOa_aNBc2upu3SShexEQ6bt_OPxUqp81HFQOBPpokQCi_xFLKluaN0A2L6Yk1UdSjk9QBOhDPIEh7Utr-uBBlkKPsy4UwoEmu1jgkXYUTIIrCNhtcS2jyp02AohxO9Gk9d3VwqbOFkcIYprgaAnRzZlmehO6WF_uIBflo62zIiNansqyvkYD2cpn_GQrLnPZePY8vRyDpQbFEVJ17g4RMr7ZIZ6LcAs8A8hl9qtbxy-9Xg_frUYzTVJhCOz0pJTlSyxkBsOSr51iTIRvRMhZfgED2PPaUBMXLH1aK2KPuu-Kyvl-F3iN8tHdxWsyV2XTqXTwXhCRSYDF2Ye1V-3CJBWkBNC1V12y1a-auc-5U65dEbvcjrVx6cvYdxE7yfERnK7qS0eqMSBqpwfQB6DLcmKIjPHTFH_N6cxDXtBbPuFRxGdOmP2Ee0I2Ti1fku1YD00rR5nAbampp_cLXd4eqNHIl9cTSgUWlBAblOeCPDjT_ssRCZpH1srqRrZXlPpDTRrkpp7n6ZOvw7KVolkdoBQvu98lsL9TIQ8Z9_PUMJDq5XpuaQ_gDUzixjGLqiB_lr5N-Cj5F-YzzSJMz5VCmkFtR5Yv8JiWy-t9HwIrFhD0vrfWW0j9epmYZml3pOjSEAst_A6p4Oq7eLFh8nUgsmdMm2zV6Zdtmom7FogoMGFxah8qx5glaxCyNLPa7lly931xTzEotqH8qdFqgB4S0Nd0Y-V7LJfQ3OsHnQMJCqLev0ZeqfpQO07pzfGDl_vPil9lfI5QhQLuhX-2P2DuyXcwzE6gT7P_pCTO13hrhz941ewVp72urjfkJXid1OOzpa2kqiVisNh4imzKUl-4MhcqctoLSTXnM5vk6h1ycqGs=w2198-h1202-no?authuser=0) 如果下载较慢,可以试试镜像加速 ### 进入 Docker管理器-容器列表-创建容器 ![image](https://lh3.googleusercontent.com/RhhKlfno-lgppk2h9Fo9tslNijAHX_CI_Zo0eEf0MSYy2OARQR9CecwKhwMEW9J87BdChrwujFnuBwG5o2jDCoiNYoZnsFAWWh02YI6sqoWDu5_Dh8_QDLsAE11Of2cqRSr9R0tRDdGEI7wzlGAf5SvpzJIgTr-U1nv34DDW3yZwip6M1IHIs9HdgMRhO0xQueGa_lunUOQZaRY5F5NoWoO8wRuD-93gjkKMG4YtnUVZC07y5gHE5p_Iqq2RVKOT9qypAGmYwr23e2HovIfbVCEzBGJCSQPotAjdU8fxhm2syDRi6dnhbARlG5w14W4pMkmcyaup5zL_fKqWTTyqMnukyyFw0Iw_8nRYusVkFEnQcSlYyH-R263jQNrj-CgIEgTnf0r4nPQ4008TDhOdc7YU5olw2aYRrDnJ91_JEt8NgsmpDsCu4CvObqP2O64kLYJLiFkEgmcXxIolBb_1k59fnuuj_hkuXC6CMACNw93WcDVHbJhbSfHksfGR6WCLDT9Px1FHz6OOfcAYWFzUqKMTzhZkkYXmycFwOZJ6oaEHl9IonKMbfB6PGeCdiJVv0Bcb6JaFilp19WO3WKIlC2Y_6jPiDFayqrqXwk3zds4dcZeB2dADXt41lrR1ic0Z5Z72n6x37ZwaFvJxvt2NJgSkxy9DpmKom8TmQ16vpt4vELvpUliBFNGRoZT4antN2o4-1TPJH2RaG7E3309tMvhGWtfqnR-kHUUrYT9HNyUI1p7y80k59C1ZdsSTbkCGyBUWPZrWzJLFNS7w4pp3loxx68UwSyvfHUR_IpIlNwmJfRCDTjUg8FSHLXsUp0tv_NqgzWsuyz6e2ceXmb5IR3wckWxpMFK73aomVMSuzYCQxNjwlY_Apa0QAl15KrXP_sUHteYsOrQuJ7H0HZkqCX3cxraSkArIwBtMOX-RJBs=w1752-h1274-no?authuser=0) 其中具体的配置可以参考配置 3 ### 配置反向代理以及 SSL 证书 网站-添加站点-纯静态即可 ![image](https://lh3.googleusercontent.com/Y9gPSb6kNC8R8aXjXAiFfqh5fxpIaHMGkm-ez0HPvz6zm_XZsgGA3G7JxP7hsLwLX0WoRCezB8VZu3TV5PUy1YVRouHM1jSG8Rgv97nTgOyvFRoCnGJw8uji5_yXIfD6ZKro0ydkdew4q1pbVTsuAPyzoQuRrF5Xu-n7jkEV7ZXG01Zi0m3rOx_SCI2tstQHVrQBE__E4wL5fBaYo8CzRYUO014bnqCkoKBX04ZqnNjt3W0tL00TsNBkAdF6lzBDzQ1vMx8ahbA0L8WkqdS2WQEyV1DRuxgpMl3gm6Ov1wdiYtXnsYoTtme7BeO1-cPubsowuLFVUJpFnjwXYueAU9TSiYu6NXGJMsxMsK0q51EnpluYGwy5nGFERObsGR4jjXkkP6mNIPnKyCiuDWr79AVpC3Sv0nLOxvWTUr-kICgnWUwhB5_wme4p3wFK12eKUhJZDaT_QmqQYc7F__p7gL5_qqhb0-y0NC0-9FPl0YoW4DacoTN7gCDm24sDzuwEqg_P5SRFi32RK1EIyWOOlNFD1XEhTCwkJvhsAvKieB8dMDcJdBpSC5mzJEXushGTM1vxJpsVG13S4lB0ZrUMkucX7YCvAyS02EPTZk_nZlO1UcsxF2C6gR2GF84hjSo7jt2l1Ix57-1CLkqigMh2h41pzKdu2e4ceyXuevzgJ_ZvFR5jmCyolBwj77KsmeVzuBlKEzEA72USFz6R-HMwV3C9_IxG_ObJ_-Kv0rvMui4QrGQ_YQ-CEOAFIJqn0T14cNM1B2ad2YUM2hN44RzWOhQCOydbFVneGofXo92TSrWtz3BFT3WUv2YMfSSEgE0ouA5UO5kCthdnpibGTq6eQeId51lJ3zJuG-1Ym94bTJ2kf_PzhT51yjIsEWI8dheKsoYKmGR8dv_z6dK0LrXvAVwYSociFSiUeY9EFh-FOMc=w2078-h1274-no?authuser=0) 创建反向代理 ![image](https://lh3.googleusercontent.com/EgdrYvFMFZAHoZ5GomK8PiFt__PC9yjKHk3lN8oAB3k2xLNnclhQCPjNIOry1sV_OFANRT2JfOrIEDrtt6r7Kc7r6QjNVcozYAp6F3CoZcEEinvHutGUFqxnfMAv-QvaaoJ-mpGg6VN5m0di-zFTdQGtDPtUyPcsAAmEL3s-wqmP3lOQV2-kj6rjhiKufhgovdzMAKGRAJ9LinNXskgO65JwIDyMl04JkQV_hnxa4ZYiTXezxkrPiIhu3425L7wx2UEwLc6Aa9WHQ1rS959_f4XoMu612976XipMwjF19Mc0PD5xtX8kaGJh3lqN3Qnv62XeE8lB-nrDKhxvYSqscAYVsfrcHpNVgeIK1686WpDLnUYfJli85NQ9wwtO_lG-EKsI8IH61_kyEa09ryElOJ6jVER88fbaGa2nKw4kEAZ2AuS6b38n4y2VYNdInB-MBIR6mXMCEldz0mFI1PtH9E8Dz74jwwJaD76qY4B21crZFszoUdGfkVXRH5Fro8dHidgtXHCzeyYZA_96Vs_75FcHoT1tGdoxNX3Sdd_NdUYu0vGWrApELCaIRZB1bwsdi3A_TGqrvjZ9wi89TtEkUu33je5vq_FspP1NsABtZmcOwF6-aL0QPt2YPuQbPYxWTgNMTbI5C5LGDpLNvkybwIXu4CiKOvqvh0t8igx6mKEfPWz-OLc5lsyxQ-GxJTj-qNlXRIHX2hSRImGZATIoJk4dK_aOAmKRus3tnq0TKz8X9U7DqVJP7eSZVr-KncpffbJ_rC7CcwyahHG_tFbxA4WzY8E9CBv9Y55GVxkj05cSFrSCLJDucmnF9kl0cbhfrN9DCEsiDBDQcH_RzVOw6m2tD3TztuuLvv6JmN9HbsCvBOPZy2OPhI_8V1pqRvblVQPln62xKuiyR8Pi26qDjFLvOKw01aiz5qqucR0EBb4=w1448-h1274-no?authuser=0) 开启 SSL ,根据自己需求申请,需要开启强制 HTTPS ![image](https://lh3.googleusercontent.com/oEP8zAB2yjC8USldSXeRlsATFHyvv8ZWVJu7QpUmPVAUuPzsj0GQe719RLU8DJ-5iFieqIEYj13Q5AA_xMIbBL2LPX5WjpFsvmg0uafckOfKiEwkB0ZWIW13WHtZ-fBZP0bAYEZFCMRtuMh4NumbAv-dXa7b7S1FVyhC3TJVL4bdGMXaLRL-6TYqe0smMY1CGOcQ_H_1-LWXM4XVmIdts6lDlFkhgDEPAkEt0pZA7fDxF3kGcitide8AXWcKnwar_S7wksRxmFtvLOieroIzlf_Lh30JO6N4h9J0dD2kYeD_7LkkDoL-_pFJDYm8r_9et0jBECfUwxF5Dy9f7KzQzlRkQShw5hKn1VKONAtgSNyOkqCqPuEdDNj09LOumdbNetKplyprCnpegy1rnlE_bTbCCRExPZqoPW7ktFmqy4wnRIfjaDxFl9sIuZAap04aytYRDH7T9DpwxBx4U6U9Hpm8xVG0pnUEb_QgimOiW6fqvDlf7giY8CmCcja2W1qxG5eyBE9OCuWMOOyIIvvrW8SPVx1ysVRr8b8SvTCZCLWK2p7Fpj4DJfmF9OsCBCHQvU2wzIpp09qq4ah7klcfqYbQG8LWWLGTGgb2WtvyCn6UBmlaqVG6Mka0FDylLL9Ya9IzOKjpmeAtXwo-PfTsNO1FZfVO6YvlI2kRY19fS9fJuKZSOU8loIH3-CqlLXKrABMalUhqZA1QsWhWqS3y4l9Jp_UBtWj81GNhQMaB6hnUzxRP3e6CFM4Ad87upugcZqz0d-puSU2Zyxn0Ov-rYIkF4eR1Wyc5HmDz-R8QSrJygmWWztXCAi-ycgM9bep9ooj2Z2l8lfeC681HOYUwzPSFdJv5wrnN69uUPozz0ks_vCyWXtAHKqrGlShUKGlmn6ctqtDIF5yklEPhJ92U-ul77yiBcb2c6NtHk7yXWrA=w1462-h1274-no?authuser=0) 启动成功后同样通过 `域名/admin` 例如 `https://example.com/admin` 访问后台管理 ## JetBrains 开源证书支持 本项目使用 GoLand 开发,感谢 JetBrains 提供的免费授权 ## 喝杯奶茶 如有帮助,可以打赏支持,一分也是爱! | ![微信打赏](https://lh3.googleusercontent.com/vgqKSXpURo3Xgnz-Hrxfy0fDgG6Tb8IgHf5J3DIehGbYENbBp0SE1fz-JWM2t13r8h9NfhAMbjls5V5U8bxzrJVUXzFT0K_ca1SltfcwHiGETd7QLCQzAHoKpl6ONazOpfCzcjT7PzTNyR4AO2DwZ22QUP-x69h9YaiMuZFHLTy2OCBMU5VErFFOhjpMFTiTyeTf3PNg47Iko3GucJSZQro28rWdSM8GtrIpifbKBOZ4jd2U3AfA5gsB7WZmwru_R_FDAuVaJ6DtU22tXZzykUmped76fY83Mu8hIxe7548ywgyupiUzOZHtraPpt7nYfXTknW6rsaQc1PbB82eyWt7q-qtsD3S-BoGpTYbGRhlPzfRAcPnrzUvcFmlBSXX3zPtYJoPbkl6TnQenmnmeL5kDk1oNAKKWIoGj26a0nQup_3tdBeVHMccQJVXGGfZDx5X8jcjCjdNoAIdjOOqZ2gsQcmidTjTMKta6UtTpjoryTOXrGvHAM4Px1n3mDqz4hCjd39_GZsn821dj5b8esQsHyN4s1shMMWqjIpj2lr4C7eYoBCSbEWGMEFilVZHZhfDHxw6N8aaKGXOUO2Rjl6UBOjLUq7RJAdjGQoVky9pVcK5tO0auSoP3j7JSjlzCOIw0Cc3C8Ax9h955IAAtYapqy1fx0ep4gV_A2gVbNueFDtJBpXJhfGzJyB0D1-6aOuIwIYd6DvtRx_FsOnuiivERzFAEE9FIO1WxCxQ2BVQ3_Glzta3UvaNUcYGOew_2e__FBf93ZfiqstK3kHQwFDPwDzmI9f46BlCqc2Y9l7mePpRfrFKYHaklLkqf9gXZh1ZmOUXeL2XNuZ8u-Gnd1zgmtilBmQvmqQrVgjptIDKeAo09Gpk8x7NREc-nGH41bPbetxXfhal5Zn3BU_A1SVMxDLB9rUaUCpjY-S-iEWg=w828-h1124-no?authuser=0) | ![支付宝打赏](https://lh3.googleusercontent.com/DiCE1-w9h2ANtDaSjGr0YjdxyHmlXkhg1WijcNGMThuBLXIm3MpaorfYsw6OjNl61SB2YPa3pH15-v9UkXPqlU5lMIro4xv9FUiN729Ph30vzTFAo4y-KtRvAerUrrKIqm75FS30KynrvGJsF6ZYgXqMhjjvo5Ov95-AYUYaOQIoHk-2x4RK2S8sdSILGpV3XzWAmZM74haI9qzHpgZdSEJaLg4d5KebR1wbxgfsnK_8dm9MgmNnu9Nw6jUquNXUNNpp0Ick8BnHfl8Szu1MymUVSEhmbXSYSOl9KjVX2UZAodEYvMeJqaMSyEG_pfzVPHdKIZAyGGKAdNysirdPt9ePFCxHsqwYxjzGeA9UtU1lbHCRV03-V976KsEuEWG_eJnFlMeK_s_QsbWy2UBuWP2VBfwr2FvawHclCb2VhJn7IM_lv_8e_ldQuSqzROyI05pTzVH4qtinc42l2VOp6T3QxVo5vkp86AXGmkj9Q913KJfMqsiArTb9cxyer3tnx-MagRUX6W04jn7MKOypVhgka6p6a2H_L9_1_VLucIXi0RXGZmu5x99vMpIvKcCMd463M8CnD4iVCHCeD78a14fQFP1M7wvCMBH7AGb6iclAEQT1VLqfZ4jHqB9pRPvuh7vNmtSCCyu4JNdlVHp9p6FMUKrz67gWXEye9MHIf06ffOadiigj12_eg478Dussb-_go4OQKEynwpvyOWV5_Vjq0r1LTrnyXasfX3aO48q6iMYJCc5aB3pwDUvIx5N6-Rgpw8cCIAw4aTlFylvVKeEzmPGcDnhd5Tzn836VL40HzSk3Dg9DycqOALBfgUBysk9s5qoanqixVQNvQ88gzYkWoMt6jo4wMqYKO2XDnPoTTYZNOZAzpi5N3JNsW3AgE9JzqyfNtDKLydQrPAkXsTXNM6BBeY826hA94b1t7iM=w850-h1274-no?authuser=0) | | ---- | ---- | | 微信 | 支付宝 |