mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-05-13 21:45:58 +08:00
Compare commits
1503 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| db081e6a4c | |||
| 6b0a2c9464 | |||
| 775aba52bd | |||
| e1770173ef | |||
| c73ce45e9e | |||
| 7aefb7fa2b | |||
| baece7eb3a | |||
| 1b31a07b40 | |||
| 83ba487c61 | |||
| 8dc0b639a2 | |||
| 9a636a15de | |||
| 7b12a8755a | |||
| b67c244bbd | |||
| 0bd2c00088 | |||
| cb1487109a | |||
| c9d8625274 | |||
| d0b659ccea | |||
| c182001fcf | |||
| c8038213c7 | |||
| 40a7bb9d48 | |||
| 7e48d1a00f | |||
| a64e5a776a | |||
| 9dc798bc53 | |||
| c6ea841064 | |||
| 0e03c5f89e | |||
| 70502685ce | |||
| a2fe6ffc7a | |||
| 1c724aa89b | |||
| 5d307c16b4 | |||
| 96c264981e | |||
| 60c507ff10 | |||
| 33ee58904b | |||
| 0938b11f83 | |||
| c0d633bc34 | |||
| 7a9506f616 | |||
| 36afd67a2c | |||
| 59d1090a6d | |||
| f384bb2aff | |||
| 4411ba3482 | |||
| 379118e481 | |||
| 661b1a5e6a | |||
| fd2d5252c5 | |||
| 284e89d410 | |||
| d7a649f699 | |||
| c758628701 | |||
| 28614e4c13 | |||
| beb9a37649 | |||
| 0e9810e9ff | |||
| 0c5cec8413 | |||
| 6135ce0919 | |||
| fdd765f982 | |||
| 529821475e | |||
| f2b21cbce6 | |||
| 061ee3abd2 | |||
| e2c53754b5 | |||
| f328ebc300 | |||
| 135c2c36aa | |||
| 16cf98213c | |||
| 094911bab2 | |||
| 6ee90b60c3 | |||
| c80b625977 | |||
| cc4ae8648e | |||
| 4f7eead38c | |||
| 386a99edbd | |||
| 982506c2fb | |||
| 5767a0fadc | |||
| a01fec538e | |||
| d451c36b2d | |||
| 0ae8433436 | |||
| 863c90e8bd | |||
| 396a87ab71 | |||
| a60b584dca | |||
| 3cb3b6ba2d | |||
| 16fbf7c63e | |||
| b980c9e751 | |||
| 127d45abc9 | |||
| e99f441e50 | |||
| 186cfa7226 | |||
| 7627ebed5c | |||
| 1be159b47c | |||
| 4e3ab62f6c | |||
| 85cb95602d | |||
| ff917466eb | |||
| 1235715c22 | |||
| 1393e40eb9 | |||
| 442c838bda | |||
| ea5039d2ae | |||
| 8f2e9f5261 | |||
| e1147aff9e | |||
| f9b39e91ee | |||
| 4bf73b0a47 | |||
| 05ee20613b | |||
| 286163ce18 | |||
| f0976c9ade | |||
| 1ab7660f0d | |||
| 84c7b8827e | |||
| 5e1aa43793 | |||
| a9b71e5a96 | |||
| 08ed131e19 | |||
| 85e3a81419 | |||
| 818ed107c6 | |||
| 4f322254b0 | |||
| decd6a98be | |||
| 5ae35bfee1 | |||
| a6ba349cb6 | |||
| 3e3818d4b5 | |||
| 6661c5baac | |||
| e813016402 | |||
| 924aa8ecb5 | |||
| 64edd9b7ea | |||
| 4400423fca | |||
| 0554778c83 | |||
| 2bc6d77d10 | |||
| 7ac790e4d0 | |||
| 0732fe6171 | |||
| d7b3ea0a6e | |||
| 0a2b6605d7 | |||
| f559795ba3 | |||
| 6b8b5f7896 | |||
| 1bf4fa0d87 | |||
| d53507b7b6 | |||
| 787bfccc2c | |||
| 955bfe3f40 | |||
| 78d7588af7 | |||
| bbde362570 | |||
| 972dd5f531 | |||
| 464320a3ec | |||
| 2aa49f080e | |||
| 9dac12cf2b | |||
| d1f3266383 | |||
| 1e2a60c802 | |||
| ee9c3cbde3 | |||
| 235be5da0c | |||
| 29adb5de07 | |||
| 4618bf990d | |||
| 0a57830925 | |||
| 71a2090363 | |||
| e420871e1f | |||
| 01b2de80ae | |||
| cdd86349d0 | |||
| 45293152bb | |||
| 7bf7686314 | |||
| 5888dc3b5d | |||
| 3d9355848b | |||
| 7033b603ca | |||
| 71ad683614 | |||
| 1fdc4d06d1 | |||
| cff9ee39be | |||
| 458f872fe3 | |||
| ac99da044a | |||
| a6bd8e5205 | |||
| f9fdd540f9 | |||
| 1706f5df07 | |||
| 40fc3e6c08 | |||
| 2608ae58df | |||
| 0e62deed0a | |||
| e588091bf6 | |||
| eb49b27e16 | |||
| 4fd31e4367 | |||
| aaad0c03a6 | |||
| 1026a6b2b6 | |||
| f5ed0be023 | |||
| a7f44b6ce7 | |||
| 481f12af5e | |||
| 16a7bc63f2 | |||
| e8dc5ce085 | |||
| 98ce12d74e | |||
| edb09f2081 | |||
| 86fc0e4101 | |||
| fb72f4b1ae | |||
| 6bf0a3a804 | |||
| 4bcaa5eaca | |||
| 8ca6584299 | |||
| e86e8820f3 | |||
| 07c300f35f | |||
| b08936c27e | |||
| 0b4b408552 | |||
| 36e37052e0 | |||
| 9a3373a43d | |||
| 428e5a7a4e | |||
| 7445b84756 | |||
| fa5be03fc3 | |||
| 49b21fb577 | |||
| 1f7e788585 | |||
| 43ac9de714 | |||
| e80afa610d | |||
| 20a2cb3d3c | |||
| 26b3f742ce | |||
| 2ccbade642 | |||
| fc8523da46 | |||
| b67ad01d97 | |||
| cdf49b2e37 | |||
| 920a7cfdac | |||
| 023ec9e53e | |||
| 7c9b4576f0 | |||
| 4f2d543651 | |||
| 25aa6a4345 | |||
| 0b9d9fa8d7 | |||
| a01781d5b7 | |||
| b15ae542aa | |||
| b68f69dfc7 | |||
| 7d1cafc3d3 | |||
| 386c837f1a | |||
| be8c544da3 | |||
| a78e43bfe3 | |||
| 7b57b924ee | |||
| 46ee4e41a1 | |||
| f87eed1336 | |||
| e4964b050b | |||
| 83f128ddcc | |||
| 13b2aa675f | |||
| a98f89a4e7 | |||
| d42d4308e5 | |||
| 0608649961 | |||
| 3013af8e62 | |||
| 915118140f | |||
| a662414b7f | |||
| 112ce9b450 | |||
| 0f1208dba9 | |||
| 21dcb55c82 | |||
| 25871aea49 | |||
| 63d75bb68b | |||
| 8e95e8c4f8 | |||
| 2b0a997573 | |||
| 84df956293 | |||
| 1acf21371b | |||
| acee47e861 | |||
| 2dab70697c | |||
| b3f5c2f185 | |||
| 25a848c4e4 | |||
| ad814b6cbb | |||
| ac55951c74 | |||
| a0520ce5d8 | |||
| 6f20cdd905 | |||
| 6d45f0730c | |||
| 24288aa597 | |||
| 66f49feebb | |||
| b77bbe6a66 | |||
| 084fe0e00f | |||
| 7f449aed5b | |||
| 9cb30e0ec6 | |||
| 1d78b68831 | |||
| 0fbf882059 | |||
| 4d56dfdfa2 | |||
| 53cd4205e8 | |||
| a4e2e23fbe | |||
| 0e726a20ba | |||
| be01c4da0c | |||
| f190611bcc | |||
| c0a2abeae9 | |||
| 5d4600a080 | |||
| e6136cac08 | |||
| f2a35fb833 | |||
| 11342a54c9 | |||
| ab176b5b1d | |||
| 189911c77f | |||
| 4c9859a1ac | |||
| 01b1116017 | |||
| d3af2e6547 | |||
| b5a031be9f | |||
| c24b0e1425 | |||
| 4272955097 | |||
| 0a267f69e6 | |||
| 5d5788e67e | |||
| 10ec7e8708 | |||
| 233ecf8b5f | |||
| 156c6429d3 | |||
| d5e7d3298a | |||
| 837efc90b6 | |||
| 9394d340a2 | |||
| be820e8401 | |||
| 75629ba5ea | |||
| 7e428e8f94 | |||
| 5a69eb2dd3 | |||
| 5b5abd2601 | |||
| 7c302cb19c | |||
| 71c836ae1a | |||
| b2be663ba6 | |||
| f6533b2ca4 | |||
| a499112ece | |||
| df78d87ec5 | |||
| a9edd036e0 | |||
| b75507396b | |||
| 6f69653a8b | |||
| 14fd7444e8 | |||
| 8d66128009 | |||
| d9ecfddecd | |||
| 19da03dfa4 | |||
| 271934ef4b | |||
| 6f22b37e1d | |||
| ad2df2f36f | |||
| 99739810a0 | |||
| d2c1daf4e3 | |||
| a30c8953c8 | |||
| a6d676700d | |||
| 66aa690104 | |||
| 05b6fb4a7d | |||
| c1c72927c1 | |||
| d78bf6d1e1 | |||
| 86512f0dcb | |||
| f738113020 | |||
| 1be16380da | |||
| a9bb365760 | |||
| 10a0666de9 | |||
| cf8dc4e529 | |||
| ebed875c46 | |||
| 8ac36526a8 | |||
| dce0e370cf | |||
| 067d23e2bc | |||
| e494d21a57 | |||
| 0654ecc9bb | |||
| b235c71c76 | |||
| 07842b0fa7 | |||
| e0ad4e6e7b | |||
| 9be70d640e | |||
| 44a9724827 | |||
| 9065e8ed25 | |||
| e1c7c11bdf | |||
| 56436adf4d | |||
| 1a8197aef1 | |||
| e9f6521c6a | |||
| 07cdd8bbab | |||
| 53d7f60ebc | |||
| 819ebf0ede | |||
| 157f858975 | |||
| a1a79ea619 | |||
| 672de78c81 | |||
| d446bbb451 | |||
| 135973de09 | |||
| 9fddf6819b | |||
| 7f9812a488 | |||
| f3a16e1ecd | |||
| 11405adcf6 | |||
| c0d7f0f5fd | |||
| 68ad1e9645 | |||
| 4b0a95fc1b | |||
| fdb0ba4349 | |||
| 4a3f168720 | |||
| 05d83ebe8b | |||
| 9aaee04a69 | |||
| 3f5dd5bad8 | |||
| e53a895471 | |||
| bfc8314f52 | |||
| 199d2e8298 | |||
| 4c7d7fad1b | |||
| df58abfcdb | |||
| 710d37c640 | |||
| 56c63fb1a1 | |||
| 3e21c841be | |||
| 298763a4a7 | |||
| d6f8f9704c | |||
| f3e5b03af2 | |||
| 603f0d289a | |||
| e7f0979c9e | |||
| 9b69a5c8f2 | |||
| 99b445e7bc | |||
| a85bbc8ce8 | |||
| ea85628389 | |||
| bafd2f3b86 | |||
| bd7009732f | |||
| 051f73013c | |||
| 6484b796cd | |||
| 7a5a308c9b | |||
| 4709e536ee | |||
| 4eb5df3f28 | |||
| d3751da0e4 | |||
| de90205b66 | |||
| 5d54225f9d | |||
| a556cfcd40 | |||
| 405a60c4f8 | |||
| de528270a2 | |||
| ea0365b9da | |||
| f8ca38b7e3 | |||
| bfeb434920 | |||
| 7101ba472d | |||
| a314f2d1cb | |||
| 99e1c53a41 | |||
| b21cc930af | |||
| ccad06b7b6 | |||
| 7364dc1989 | |||
| 5b816b095d | |||
| 08a4b92f3a | |||
| 3c8a0bb011 | |||
| d6e14eafef | |||
| 15df8e0a08 | |||
| 42d9e7175f | |||
| 2aa7d6095d | |||
| 31aa75d745 | |||
| dfd2847c12 | |||
| db5f9572b1 | |||
| cb9db10052 | |||
| 66960b147a | |||
| 8ec4f2e814 | |||
| 081e34f953 | |||
| 2800eef199 | |||
| 08f3a79e6e | |||
| 1c528b0f04 | |||
| c5d144bcc4 | |||
| 9a9d6ac524 | |||
| 6ced618c1c | |||
| bb1babad11 | |||
| 1a93592253 | |||
| e52be45659 | |||
| e7e08a94a9 | |||
| d22c3867c1 | |||
| e52f65f690 | |||
| dfcfa643f0 | |||
| a986068cbb | |||
| af6915b1b0 | |||
| af46999a16 | |||
| 322ec26829 | |||
| 935f80cd8a | |||
| 8379652ad5 | |||
| decef23751 | |||
| c639cf7162 | |||
| 2785ab6913 | |||
| d92aca5b16 | |||
| 4cf00a4198 | |||
| f6b549678d | |||
| 978a7e209e | |||
| b06b8e4d2b | |||
| 3a3412486a | |||
| 624014572c | |||
| 24d917bb2d | |||
| 2a4fae4718 | |||
| 9f4a8952a4 | |||
| 029c020fe0 | |||
| 1f0040ceb6 | |||
| 76a3334f9d | |||
| 22d0d80bfe | |||
| de13f5edbd | |||
| 953e284566 | |||
| 1b3fbf56d0 | |||
| 83779a684b | |||
| d33e15a2bb | |||
| a9b60b8052 | |||
| 329d475106 | |||
| 2cbecf439e | |||
| 389271c00d | |||
| 8839c36917 | |||
| 3649846423 | |||
| f3858e8300 | |||
| 741cfec1ec | |||
| 9326b10d3a | |||
| 6d90cd59f2 | |||
| 5c503e71ed | |||
| cdf851d196 | |||
| bf09e49164 | |||
| d391a4d023 | |||
| 9182f15ee0 | |||
| be6811ddbd | |||
| 10d299d1b3 | |||
| 4989bb07f6 | |||
| 0d46349386 | |||
| 267e7c3b08 | |||
| cad689b337 | |||
| e54d5a13e8 | |||
| ac7619de55 | |||
| c75e258f81 | |||
| e4ed6dde0c | |||
| 9025d8bd90 | |||
| 2433e27eb5 | |||
| 2610a27894 | |||
| eba25f1bb8 | |||
| 59b625b7c0 | |||
| 0eeb2f6752 | |||
| cd7b484fc2 | |||
| 16b3ea8b7e | |||
| 942afd7fec | |||
| de271d5b76 | |||
| 7e826c70df | |||
| 162478563c | |||
| 8d0ae922b8 | |||
| 2200f757dc | |||
| 4f65882b5d | |||
| 5ba67af0e3 | |||
| efeb394f3e | |||
| 9a0ee3516b | |||
| 55a873d0ef | |||
| 0561f3e398 | |||
| 68d587e484 | |||
| c026754a68 | |||
| 32561b5616 | |||
| 6b30097bde | |||
| 7dc1f9b81b | |||
| 9964650014 | |||
| a705f6a8b7 | |||
| 151cf3daf2 | |||
| 5758f1701d | |||
| ac631f7c49 | |||
| e814d9ea63 | |||
| d7e88a3213 | |||
| 9b3dee6aa4 | |||
| 879ad86e0f | |||
| ed63b9f3cc | |||
| ef3f41bb69 | |||
| 4d9ed1a6cb | |||
| 4b8f6f1f66 | |||
| cf57f999c5 | |||
| fd9630ea84 | |||
| 9fed812872 | |||
| 41b7e5f32d | |||
| 3345b6e242 | |||
| 52a4577b4c | |||
| 267d93168d | |||
| 78895288d0 | |||
| 249d5e2788 | |||
| 488346979d | |||
| cadecdb3b8 | |||
| 9d9d3db701 | |||
| 5b216e6a3a | |||
| c03e26ee5e | |||
| bcc2f05aa5 | |||
| b18813689d | |||
| 79999edcea | |||
| 764b34d947 | |||
| 51fa675e90 | |||
| e000dc18aa | |||
| 1f81c7ba2d | |||
| c1811463cb | |||
| 7a1dc6da01 | |||
| 0a28bcfbe9 | |||
| 93f3dd14a5 | |||
| 6d82c9c3db | |||
| 3714873b7b | |||
| 5534c2a8f8 | |||
| cad23f1672 | |||
| 2bf50bb8c2 | |||
| 6ad50e4e04 | |||
| 1c5aae2301 | |||
| aed95ed4fc | |||
| 2a97801aae | |||
| c6aefa984d | |||
| 5e9f1ac00f | |||
| 0a83470019 | |||
| 0ed1f6c341 | |||
| e85463c4a1 | |||
| 31c18bf856 | |||
| ca1d36556b | |||
| 3085bc1443 | |||
| 7843d81c18 | |||
| 8155551464 | |||
| 168dd1d01f | |||
| 18e92ccbd3 | |||
| 2ad71fc4ac | |||
| 29380b93ef | |||
| 00d2ff810b | |||
| a99295f594 | |||
| cc8a2e5fce | |||
| 7137320f1a | |||
| 376c9bbdc7 | |||
| 49d57f46ae | |||
| a4fe45d58c | |||
| db8763b610 | |||
| 1a61598322 | |||
| d971397c8b | |||
| 427a598385 | |||
| 4c0b96d81a | |||
| af2baba1e3 | |||
| 93cb01e7e6 | |||
| 139285c46a | |||
| dc401c784a | |||
| bb0f5e97a2 | |||
| 82cd3fd9f1 | |||
| 06117c98b1 | |||
| aa41dc3650 | |||
| 98fe00a171 | |||
| 3bdafc2a11 | |||
| 3c4227696c | |||
| 5d78fa9519 | |||
| eb2a9d540e | |||
| 665e2e3e83 | |||
| c025d0d030 | |||
| 1ce0a3b5d3 | |||
| 7c79d10f5d | |||
| eeb5ba4c7b | |||
| 5d32627553 | |||
| 07a038503e | |||
| 3a878f8426 | |||
| 1cfa55817a | |||
| 78ce5c3f69 | |||
| 97187af0c7 | |||
| d26076c0e4 | |||
| 1f81bd121f | |||
| 02fa9142fe | |||
| 6759e0c25b | |||
| 46e233ccbb | |||
| 1b31de18e4 | |||
| ccc65c846f | |||
| 9d73fc9932 | |||
| d6abbacbf7 | |||
| 979100850c | |||
| a0a2b6c340 | |||
| 7f1acb4532 | |||
| 9afaba4382 | |||
| 355c672ed1 | |||
| 144cf279f9 | |||
| c1a94a1b6c | |||
| c091b5f385 | |||
| aa6b439e8c | |||
| 07170135e6 | |||
| 024ee6e602 | |||
| a1f79f4508 | |||
| 6a6009827c | |||
| 375fc0c89e | |||
| a110b4c26b | |||
| ebdb875c56 | |||
| 266a2b4c76 | |||
| 7e5b62377f | |||
| 8dce5396b0 | |||
| e78f7a2a37 | |||
| aafbda47d4 | |||
| e1b1af9a48 | |||
| 19f725965d | |||
| 5ce0cf1aad | |||
| 88bcb35a14 | |||
| d534f026b0 | |||
| 939eb95cdc | |||
| 46d3dd409a | |||
| 398be73f5b | |||
| e7ab59a932 | |||
| 285cb346b9 | |||
| 72d0920458 | |||
| 4aaa1a7afa | |||
| f2f35e115c | |||
| 7295f39d68 | |||
| 685cacf490 | |||
| 1f36d970f9 | |||
| 60f0c80c36 | |||
| c018d63117 | |||
| 88af048e90 | |||
| c0190e21c6 | |||
| 2368a8fba3 | |||
| e9ad462f9e | |||
| 4ac9d0410c | |||
| 1c53c90ab5 | |||
| 4d6e05989e | |||
| 54a3a755d6 | |||
| e32a3fbfca | |||
| f498f67f1e | |||
| d491c482a5 | |||
| 7062676f9a | |||
| 0d52759455 | |||
| 9a5c0bae50 | |||
| eb30e54dc8 | |||
| 4ea97ab23f | |||
| 82f2ec24fb | |||
| d487465b2a | |||
| 899e88babe | |||
| 83f923aa10 | |||
| 04a0614319 | |||
| 632ff783c6 | |||
| e4f86ee823 | |||
| f7390c757b | |||
| 7a9b45d257 | |||
| b699ce3512 | |||
| da9003ec46 | |||
| 30a0743c8c | |||
| a4fc493ea5 | |||
| f5f6e9a882 | |||
| 21cda37380 | |||
| 941670a420 | |||
| 15b01a07b5 | |||
| 85565dc137 | |||
| d59f699937 | |||
| ef66b10501 | |||
| 081c47aba9 | |||
| 6cdb64fb8b | |||
| 765e8d4f79 | |||
| 8e7e496b44 | |||
| cf14b19bf6 | |||
| 2131061482 | |||
| 692cebe659 | |||
| 189d5aed69 | |||
| ea38953b47 | |||
| 9130881875 | |||
| 46b1803086 | |||
| 98dde67f65 | |||
| 34eedd7955 | |||
| 98d7c7bb86 | |||
| 74c2bafc9b | |||
| 912da395c9 | |||
| 061ad6df2c | |||
| b5deceaa3b | |||
| 22099d82be | |||
| 07e1de2f62 | |||
| 2203638fc5 | |||
| 5ef7123f78 | |||
| 5ae9b84cce | |||
| f41cebe776 | |||
| dd47dbffe8 | |||
| aebcd1db2e | |||
| 4af9d88771 | |||
| 6f706d9aaf | |||
| 700f1e0001 | |||
| 9cc0825185 | |||
| 26c65d0da8 | |||
| 602ac1ffb8 | |||
| 947609a3b3 | |||
| db38a64a30 | |||
| 783a4d33b4 | |||
| c80b4c1d32 | |||
| b1f1ec5fbb | |||
| 2cad8a879d | |||
| 95910f5c17 | |||
| f3a9c47c2a | |||
| 3d184c95ba | |||
| 6754fdb580 | |||
| 9842e5624e | |||
| d00b265347 | |||
| c72f898238 | |||
| 4a2a9eb997 | |||
| 5b399d0d06 | |||
| 8edacbff2f | |||
| 156e9e2fc7 | |||
| 4682abf4c1 | |||
| 6871c7e665 | |||
| a508dd2c0f | |||
| 5469bb6508 | |||
| 099461dbbf | |||
| 5233e4c097 | |||
| 70e8811d5c | |||
| 7208dd6b2a | |||
| 44af6740c7 | |||
| 8d1dd92df7 | |||
| a5cacaceda | |||
| 821e704b5b | |||
| 82c79bd91c | |||
| bde0adfbd0 | |||
| 6c8b115479 | |||
| 82a8f18e88 | |||
| bdae1f10d4 | |||
| 05b5a0ada3 | |||
| 3fcc2c2678 | |||
| 6af9d3129e | |||
| d7cff79ac7 | |||
| f6137dfc34 | |||
| 6dfbb90b80 | |||
| 72aff32024 | |||
| 9f4c367249 | |||
| 3f87958328 | |||
| a0e689c437 | |||
| 49f05d334d | |||
| a372ef3faa | |||
| 06e48516bb | |||
| a317ebd8e7 | |||
| 6774a8594f | |||
| 56fb579da2 | |||
| b401917c19 | |||
| e990118475 | |||
| ac2cc154b4 | |||
| 99ec0ed8df | |||
| 32daea25de | |||
| 946dbc5efc | |||
| 714dd597f1 | |||
| c36dfd9eea | |||
| 67e5e3b56b | |||
| fdc1cd26e7 | |||
| 988824f3f1 | |||
| 15ef064fc3 | |||
| c7d544685e | |||
| d622f1df3d | |||
| c7e1302377 | |||
| caea072f7d | |||
| 04b22c1a76 | |||
| 26d9d7630c | |||
| 4529047349 | |||
| af110f75d6 | |||
| 1da5ad8830 | |||
| 8e063f6e59 | |||
| d16ceac149 | |||
| c2831e6676 | |||
| a4b95cb7cf | |||
| e5a7810d6e | |||
| 99e913637a | |||
| 9ff80466fc | |||
| 67319031ea | |||
| 5134faeefd | |||
| 77327f59b9 | |||
| 5b68d86052 | |||
| 54c56037e7 | |||
| 8f31bd93fa | |||
| 87dfdb2ddc | |||
| 2c2d3e4641 | |||
| 2a8b19d319 | |||
| f43c042223 | |||
| b75b46f415 | |||
| 42f7af3d52 | |||
| a4767bc7e3 | |||
| 8d4e5ad3f1 | |||
| 49a127d97d | |||
| 8cfb604a0d | |||
| da9918b655 | |||
| c41464b974 | |||
| 5657f617e7 | |||
| 12e6cbb9e5 | |||
| bc1cfed389 | |||
| 9b5e1465c3 | |||
| 7f5b12d4d2 | |||
| c3d3f0986e | |||
| 8c21d0360f | |||
| 650141a498 | |||
| 6ff8fc7f87 | |||
| 0f0e99b42e | |||
| 96814109dc | |||
| 39720d401f | |||
| 5e6e30a5b3 | |||
| a92c0ffac3 | |||
| 43f7ecc75a | |||
| d598ec1852 | |||
| fad61a0a2a | |||
| 3886d49b0a | |||
| 93f8ed223e | |||
| 96e0851563 | |||
| 9d1eb469b5 | |||
| 4001897338 | |||
| 27dd574c4d | |||
| 06a75a0a0e | |||
| 8cf7282f46 | |||
| dd8e42ef71 | |||
| 221b4587d4 | |||
| 4203c4d30c | |||
| 059dd1993a | |||
| e172364e86 | |||
| 0941a8e016 | |||
| de67b9465a | |||
| a2a71ff8f5 | |||
| 0befceef9a | |||
| 203bfbe411 | |||
| 1f4eeaa269 | |||
| aa2d07ca8d | |||
| 3739127044 | |||
| 2dab179166 | |||
| 9590d2865a | |||
| d542cdd898 | |||
| 1d0d063a6c | |||
| 9f15f50f9d | |||
| f0ebc151db | |||
| f0a9c63cd3 | |||
| ec0cd9a348 | |||
| b5afd304d0 | |||
| 4bd4e0863c | |||
| 463a5451e1 | |||
| cb881e81a8 | |||
| 92fc43cb3d | |||
| 73a73b7bc7 | |||
| 3391bd8322 | |||
| 3d5876a8c0 | |||
| 7d04f06f7d | |||
| 24137bffdd | |||
| 621051cfb9 | |||
| 2c21bf3e0e | |||
| c1a2dee0e9 | |||
| 782ad07940 | |||
| d57729d3d7 | |||
| 1f8c2ba8c5 | |||
| b176701e51 | |||
| 7dd6869cd1 | |||
| 33886f106c | |||
| 94ed160eee | |||
| 066eeb6ba6 | |||
| 402b3f5535 | |||
| d4d9e08ae2 | |||
| 6553ada66f | |||
| c0b49ff219 | |||
| d20c89ba21 | |||
| ee577cae4c | |||
| ed5b215bbb | |||
| a5f8e833ba | |||
| decd70ff21 | |||
| 9f002172db | |||
| 5d661f2fc6 | |||
| 9a82dd356c | |||
| 840e08fc8a | |||
| 761b8c40d6 | |||
| 40b7314f6d | |||
| 5c3a43f602 | |||
| dd001ab0e7 | |||
| 30b55ce25e | |||
| 943a5b36e3 | |||
| 0ebaefb8be | |||
| 5a995a8624 | |||
| eee98c5175 | |||
| 4614107b2b | |||
| d6dd99bb4a | |||
| d0a200f652 | |||
| 9138f90843 | |||
| 766a8fa4dd | |||
| 6f2451edd3 | |||
| 864fccbdb2 | |||
| 8956df9599 | |||
| a3daaa55b5 | |||
| 85a52f5d6b | |||
| 92d7ecdf68 | |||
| cdf09aa1bd | |||
| 63a830cc95 | |||
| 3b9cc61669 | |||
| b5166acada | |||
| a38291fc17 | |||
| 723e304ed8 | |||
| 63ac7738bb | |||
| bda96a2175 | |||
| 5b06791a6c | |||
| 64e1361ef5 | |||
| 2f6eb5969e | |||
| 125b6fa779 | |||
| 5e78871c00 | |||
| 487d9a6449 | |||
| 97b1a774fb | |||
| 12a4c12753 | |||
| e8fdc454db | |||
| 69da4410dc | |||
| 5fc6f78555 | |||
| 15e0a7aa38 | |||
| 0d62bfb0c6 | |||
| a37d82e2dd | |||
| 0a14c8b3e6 | |||
| e779280428 | |||
| 753cd95a18 | |||
| 5bd34f19fe | |||
| 0e5b17adcc | |||
| b23f10ecde | |||
| 08d6e142c3 | |||
| 2016a1656b | |||
| 5a44618289 | |||
| 338d7f0df6 | |||
| fd19dd1a03 | |||
| 6d19af02c9 | |||
| 1deb7e9f95 | |||
| 5a6f96f84b | |||
| 3f74022142 | |||
| ccd2ed8ac2 | |||
| a72e422684 | |||
| da8755fcb7 | |||
| 3be284c129 | |||
| 15e2d172a4 | |||
| 4e54cb56e5 | |||
| ad1015c8b0 | |||
| 1dbe80afc4 | |||
| 0683352c4b | |||
| d666f0245d | |||
| 7f252909fc | |||
| 7b9d0b4f1f | |||
| 37193c48d9 | |||
| 1747ae8984 | |||
| dfee8891d3 | |||
| cb10df7c9f | |||
| c6b669eb9d | |||
| 919e2543ca | |||
| b705ac24fa | |||
| 9aa7ba77f5 | |||
| d5b873b70b | |||
| 4ec255917d | |||
| 9b86a18752 | |||
| 630fef29a2 | |||
| 05d45c94d5 | |||
| 44e4c59493 | |||
| 24e7076423 | |||
| 1f8a965b7a | |||
| 8b491f4c94 | |||
| 8b857f9980 | |||
| 7d1707ca7c | |||
| 5e3a3c61f3 | |||
| 073b6d200a | |||
| 652d560a21 | |||
| be69ee8b1d | |||
| fc5aefe435 | |||
| d5239365be | |||
| ac7f905248 | |||
| 1a2ea05361 | |||
| 39606248a1 | |||
| 73118ce447 | |||
| 4e5c1606f3 | |||
| b8aa54a159 | |||
| 7caccce907 | |||
| 82777d641c | |||
| 5b248c82f5 | |||
| 9c7ae3b0ef | |||
| 9b130ae56c | |||
| a48b2e9edb | |||
| e4bbd57c41 | |||
| 0dba30977d | |||
| 69008e08be | |||
| 06236546a8 | |||
| 60029fc618 | |||
| f3e71fec91 | |||
| 54cdb24cec | |||
| 206140c3fa | |||
| c2bd1d0d83 | |||
| 5cb3b8cfbf | |||
| f363722779 | |||
| 5e09e3e072 | |||
| cc3f53d572 | |||
| a2ddf3567c | |||
| aa7ba6d659 | |||
| c53bcd990d | |||
| 78c807a514 | |||
| c4084cbcec | |||
| 062c4b53b6 | |||
| c9d7b63ef7 | |||
| 06729c4e84 | |||
| 5c5f80691a | |||
| 5a0340e927 | |||
| eb7e6a566b | |||
| 079fe089de | |||
| 5f83acf3ad | |||
| 0d16fbe4ab | |||
| c1184fd7d2 | |||
| 429bee7e6c | |||
| 56e2df75b9 | |||
| 547ad7a2c7 | |||
| e2c75f6836 | |||
| ce591227ae | |||
| ace424e78a | |||
| 10223c944c | |||
| 9e190cb5aa | |||
| 5d57e93ee1 | |||
| 75805e3c69 | |||
| 327ae4ac79 | |||
| 911614673b | |||
| e80d3e7dac | |||
| 7b820ebb94 | |||
| 6bfa8643d6 | |||
| 25de6b58c3 | |||
| cdc60ef5f0 | |||
| edeb228315 | |||
| f6c6d58045 | |||
| b1d0ca76c9 | |||
| 5a058d9b97 | |||
| 2892add766 | |||
| 281f4b38d2 | |||
| 7b590e4bd6 | |||
| 923a035e6e | |||
| a2a56980d9 | |||
| 2ee0943115 | |||
| cfe218b8a4 | |||
| 4c10164970 | |||
| a74168d1e1 | |||
| 6c0922a6d8 | |||
| f279b9173e | |||
| 706f6c6747 | |||
| dd6c2df5d2 | |||
| bcc0c7c2df | |||
| 2c0a2d7877 | |||
| 7bd7edfec9 | |||
| db8c4f369c | |||
| 569d5d2d89 | |||
| 5cbea2cab5 | |||
| 57a21ab8e6 | |||
| c52bdce621 | |||
| 9358aa1bd8 | |||
| c304de9288 | |||
| 52e57cf547 | |||
| e33af2a316 | |||
| ffc4da1589 | |||
| 4cfa8d880f | |||
| cd65d42004 | |||
| bba5e7db0c | |||
| eb960f2606 | |||
| 92a68108a6 | |||
| ae8acc6eba | |||
| 1e1381df8e | |||
| 2ba7fcd628 | |||
| 12cbb1f6f9 | |||
| 1f8e161001 | |||
| b4b215a3f8 | |||
| e2ff7ef113 | |||
| 73c998f510 | |||
| 11f29280b1 | |||
| de752c69f4 | |||
| 2cf10fce38 | |||
| 4ba248a101 | |||
| faae01cb8a | |||
| 600c5243dd | |||
| 00bddd5e57 | |||
| 2436ea6ff9 | |||
| 403489865c | |||
| c8590b9e9c | |||
| d1ffa9b330 | |||
| 37799ca0be | |||
| ba5edabb2c | |||
| 1dfe8f866a | |||
| e77b4f334d | |||
| 87c64bdb2b | |||
| 68eed69221 | |||
| 5db5bf17cb | |||
| 319631b5c4 | |||
| 0489c35417 | |||
| 10c0f3075a | |||
| 91a767b4fb | |||
| 4e69ff196a | |||
| 576348b1f2 | |||
| db547d60df | |||
| 0f655e9292 | |||
| 3d0827a6da | |||
| 231d4db71d | |||
| 0117e96d5b | |||
| ca7bba33e6 | |||
| b294a8138c | |||
| a99dbf634b | |||
| cda0fb6a10 | |||
| a1392a7677 | |||
| e9da7f28cc | |||
| c4ee293388 | |||
| 6417977617 | |||
| f687f2eafb | |||
| 7057d7fffb | |||
| d99b0893df | |||
| b32463df53 | |||
| f202d5f54a | |||
| 18891c554d | |||
| 22a39ed4d3 | |||
| 4003befc2a | |||
| c17ca47e7d | |||
| e2e5ab656f | |||
| 8e445caf26 | |||
| b4d82579b7 | |||
| 6734c714d7 | |||
| 526aa15ff6 | |||
| bc0e9eb74e | |||
| a425c62156 | |||
| d99375a536 | |||
| 4c610abd44 | |||
| e1a941b998 | |||
| a8a91fe945 | |||
| 9136838b63 | |||
| ef9c291d9a | |||
| 6f968342dc | |||
| 4930906b62 | |||
| c39df537b4 | |||
| cfa9f2d13f | |||
| 0a8a248349 | |||
| 146cf8750f | |||
| c25352b660 | |||
| e8f7ad6c09 | |||
| 7cc9d6707c | |||
| dca2f9323b | |||
| 7cf2fec3ea | |||
| ab6b1f0fca | |||
| 0b08bfdcba | |||
| 4701300ed8 | |||
| 9d6d28dcae | |||
| 147e8d5f9e | |||
| 79a974946e | |||
| 151fec445e | |||
| d653e139d3 | |||
| 04e826ff09 | |||
| 3681bea8b7 | |||
| e09d8fc5f5 | |||
| b29f93dcd2 | |||
| 1c85424488 | |||
| b753536437 | |||
| 490c94fa95 | |||
| 1b92774778 | |||
| 34588f9da3 | |||
| 0811999081 | |||
| cf7e1c7767 | |||
| ba4988bb9b | |||
| cd3778a620 | |||
| 5b065ee68d | |||
| ee79728f9d | |||
| 482c502356 | |||
| 92cdff3043 | |||
| b01474523e | |||
| 9121063ebc | |||
| 2c34b11980 | |||
| e1af587040 | |||
| 2b54f0a7ae | |||
| 6def5bd3cf | |||
| efe727ec71 | |||
| d278dfb996 | |||
| 9ed6afd836 | |||
| 6a19c8130c | |||
| c43290338d | |||
| da540522ac | |||
| 64bfff5690 | |||
| 73c5dc159b | |||
| 783a982ca8 | |||
| 86d652f1eb | |||
| 766d9c2641 | |||
| 6e826cf369 | |||
| 8f12fa52b4 | |||
| 6d15e5b5a1 | |||
| 51679b47a6 | |||
| 1eda0ebea7 | |||
| 787cef54f5 | |||
| 36885b4f9e | |||
| 4b6332dbfa | |||
| bbc62ef907 | |||
| 4c53023ebc | |||
| 17494b45bd | |||
| 90401d4d12 | |||
| 9730ada805 | |||
| 5a626e9dab | |||
| 14d5b3b316 | |||
| 0ddf5eadb6 | |||
| 803135ae46 | |||
| 641ac7c503 | |||
| b1377218b1 | |||
| 80d74f6f38 | |||
| 5a262880b9 | |||
| 192c764c8c | |||
| f84cc0554f | |||
| 2d20c4ee4c | |||
| 041a35e3c8 | |||
| cf205c2480 | |||
| 09b830bcf9 | |||
| 8dca55aac8 | |||
| adade8fcf1 | |||
| 589ac2863c | |||
| 5e7b2fbdcf | |||
| bb9f7bb27b | |||
| 7561831624 | |||
| ccf6ef6140 | |||
| a3530be7b4 | |||
| 76505bd0e7 | |||
| e61434347e | |||
| 84c068783d | |||
| 3bd42defaf | |||
| a71b42c335 | |||
| 456e2f5693 | |||
| f3ed48e0ac | |||
| 55cc8cead1 | |||
| 0d24078ee4 | |||
| 18db5c500f | |||
| f87806edb4 | |||
| a3f62e2246 | |||
| a5ef78fd1e | |||
| 337d01008b | |||
| 92dc36f480 | |||
| a937a94e43 | |||
| 8bb82be2b9 | |||
| a6cf407a8f | |||
| eec8eb4766 | |||
| 52c71e3843 | |||
| b5ea79e3ea | |||
| 960e3d34eb | |||
| cbb127ff38 | |||
| db1a043261 | |||
| f9eee19cbe | |||
| eb1aeefc8c | |||
| e64cf47d31 | |||
| 3f79409a11 | |||
| dd0d518ecd | |||
| 6d236a2dd6 | |||
| 663db12594 | |||
| f383d6c636 | |||
| 2b3bb92357 | |||
| 87a2944837 | |||
| ea32c88d85 | |||
| 725f8ce761 | |||
| 3f42390f2f | |||
| 4d3343d0d0 | |||
| 4b22eb946c | |||
| 53eebb0638 | |||
| 4546e77d5b | |||
| 7d2eb31f05 | |||
| 7c15a53a62 | |||
| 1531db0a35 | |||
| 6d91f766e7 | |||
| bf5bce9e64 | |||
| 5afa3380a6 | |||
| 85f5c59781 | |||
| 8ee4ca0357 | |||
| 656241c23f | |||
| 5936492f76 | |||
| abe06b8753 | |||
| ac536c48cd | |||
| 1b4b2b9bb1 | |||
| ad1d759840 | |||
| a55134ae63 | |||
| 67b20d073e | |||
| 2187f44ed7 | |||
| 026f61126a | |||
| 8a8fce927e | |||
| 99873e2136 | |||
| e904651541 | |||
| d65a0dbbc7 | |||
| 2b2ecad437 | |||
| 89406f1c57 | |||
| ea93e97e79 | |||
| 1e6a93b4b6 | |||
| 8ad22f8148 | |||
| e667ec944b | |||
| b064244907 | |||
| a01156feb6 | |||
| af1d8fa834 | |||
| 0234795200 | |||
| 58f4ebe411 | |||
| d4e575f777 | |||
| 2d110deb09 | |||
| 2e552e8711 | |||
| fb4cef7ccb | |||
| 3b6b88fd62 | |||
| 95630c6d61 | |||
| 33222d59c2 | |||
| adb7da7aaf | |||
| 04eb85d279 | |||
| 58847c7fb6 | |||
| 504e4cc6a3 | |||
| ec5177342e | |||
| 4d982ab816 | |||
| c390617151 | |||
| fff7f30005 | |||
| ca72d4840a | |||
| 7ccb1b6a6f | |||
| 126e1f44ca | |||
| 84a4382532 | |||
| 40f7048eee | |||
| c94fb80cb0 | |||
| 2db194b9d1 | |||
| 34420c1265 | |||
| 9e0e2fe124 | |||
| 9cfbd8107e | |||
| b70a4070f2 | |||
| d3b302ce66 | |||
| 5a423f88dd | |||
| b47877235f | |||
| f89c1edadf | |||
| bc5774c934 | |||
| 9e885c2379 | |||
| 1380d2c1e9 | |||
| 4895323200 | |||
| f737d2e8ce | |||
| 3157f97ae6 | |||
| 278329b73c | |||
| 033ec6bc76 | |||
| 1aa106ba4a | |||
| c638072902 | |||
| 6eb9041df4 | |||
| 4035f037d2 | |||
| 2b6f861f3b | |||
| 9a813030a3 | |||
| 04b7dd719c | |||
| 3ad3b30d97 | |||
| d0e7147911 | |||
| b0669b7eea | |||
| a504961e93 | |||
| b14bcf966d | |||
| 7ef37a9fa2 | |||
| d7ce455f2f | |||
| 7ffe857f52 | |||
| f2b0f54c0b | |||
| a1025d8eee | |||
| 047ee6454b | |||
| 71dd28eabd | |||
| b8cd9484dc | |||
| 2c823e094f | |||
| a1bb9630d0 | |||
| e23d5926dd | |||
| 5c4982a3f1 | |||
| 7d172d718f | |||
| 804b5423e5 | |||
| 5a825df6a1 | |||
| 50d1646ce0 | |||
| 1d01e61148 | |||
| 21e9958da9 | |||
| 7c18012ef2 | |||
| cbeae74fc0 | |||
| f3144f92c5 | |||
| 3dd9d51ca5 | |||
| 5f0873221a | |||
| 49cbb42d0d | |||
| 519a8bee71 | |||
| 834b88f68f | |||
| e02150cdb0 | |||
| 5b4f94832d | |||
| 566d5e832c | |||
| 36667b8649 | |||
| 088f9dae9b | |||
| 813b6a6a68 | |||
| c8d9fc7311 | |||
| e555a047e6 | |||
| ed52ecb259 | |||
| f993ddf876 | |||
| 54566997b2 | |||
| 4783e3d061 | |||
| 658d97ff4e | |||
| 3373925acf | |||
| 9d84bf8f4c | |||
| 1650165f4b | |||
| 8849cd46c9 | |||
| 0835ecf0ed | |||
| 8bedfca646 | |||
| 1fa38a24b6 | |||
| 1d105dd345 | |||
| 7823306045 | |||
| 53b0d13342 | |||
| f51fbecfee | |||
| 1f968a606b | |||
| a13397bc17 | |||
| 323e8e72cc | |||
| 80a67d0970 | |||
| 4e22970784 | |||
| ddc07ee160 | |||
| e96b9b8bf8 | |||
| 013828eb03 | |||
| 10132879f2 | |||
| 832871d49d | |||
| e5ccc1dd36 | |||
| 61951863ad | |||
| 64c6a68d34 | |||
| 0054c4cc58 | |||
| 5bf494ca7d | |||
| da81f70161 | |||
| f3e21ac814 | |||
| 2314c99c36 | |||
| 2907cac50f | |||
| 536c62c137 | |||
| c1b855ebf7 | |||
| 84d76f0749 | |||
| 3ae0a05422 | |||
| f700c15bc7 | |||
| 46e24556ef | |||
| e20f953c7f | |||
| 3c24d50bde | |||
| 204d80d86f | |||
| 4eeef63724 | |||
| 0c7f57d55d | |||
| 3a55f50723 | |||
| 6853c64479 | |||
| 3da6597643 | |||
| 26bd3bf76d | |||
| d17d7a792a | |||
| dc9f7dc294 | |||
| 92b219769d | |||
| 3e630a3882 | |||
| de32c46ea4 | |||
| 722b5d0726 | |||
| d51af59f85 | |||
| 5102f83290 | |||
| 9da4da5fd6 | |||
| 5213860919 | |||
| 20f78d214f | |||
| 5207e268de | |||
| 226108f558 | |||
| 7280ef42a9 | |||
| 919eacc0a9 | |||
| ccd7be7276 | |||
| 5bdf4e51de | |||
| 25704e5ddd | |||
| cf15bd3697 | |||
| 14b53276b9 | |||
| a6c63e7968 | |||
| 57e11c781b | |||
| 1d2da05f66 | |||
| ceb0f778b8 | |||
| d8717bd0b4 | |||
| cfcc5c1095 | |||
| 79b1a801b5 | |||
| 79907b374a | |||
| 278d09e4db | |||
| 189a7d09a1 | |||
| 99062805ec | |||
| 87dbdc07d1 | |||
| db7ef3ac4b | |||
| 5b8ef3a17c | |||
| b7f257daf1 | |||
| c27560ed44 | |||
| ddddbf6987 | |||
| 2f5d8dfb80 | |||
| 218340e138 | |||
| c4ea10d0af | |||
| bb8dcd8b61 | |||
| 2372340e0d | |||
| f78f7e97ee | |||
| 6b78b75638 | |||
| 2f2f72fe4b | |||
| 34fe9596a9 | |||
| e4d35c2a86 | |||
| af7dde61d6 | |||
| a62388759a | |||
| 9337d150b9 | |||
| 910876f323 | |||
| af152aa9b9 | |||
| f34fedd822 | |||
| ac7c0015db | |||
| 1a3b5d018a | |||
| 86c26793b7 | |||
| d99d7ac63c | |||
| 5646db52a9 | |||
| 0fe838d588 | |||
| c2686beb9b | |||
| 1bfae7627e | |||
| 06c523ea81 | |||
| 7f4e21d4ba | |||
| c993bb2f5e | |||
| 5527f7c78a | |||
| 8e9ad57173 | |||
| 30ae608863 | |||
| 68e611794b | |||
| b5c20f5be9 | |||
| 59a53c7c73 | |||
| 9b76eb6b55 | |||
| 08d9551230 | |||
| c3bdd2f288 | |||
| fae881c080 | |||
| 49797ce6ab | |||
| 7783e5b7cf | |||
| b242aac7cd | |||
| 127ad802ff | |||
| f42a2c9434 | |||
| b80f510de5 |
@@ -0,0 +1,4 @@
|
|||||||
|
USER=root
|
||||||
|
PASSWORD=openIM123
|
||||||
|
MINIO_ENDPOINT=http://127.0.0.1:10005
|
||||||
|
DATA_DIR=./
|
||||||
+396
-15
@@ -1,22 +1,403 @@
|
|||||||
bin
|
# Copyright © 2023 OpenIMSDK.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# For the entire design of.gitignore, ignore git commits and ignore files
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
|
||||||
|
### OpenIM developer supplement ###
|
||||||
logs
|
logs
|
||||||
.devcontainer
|
.devcontainer
|
||||||
components
|
components
|
||||||
logs
|
|
||||||
out-test
|
out-test
|
||||||
.github
|
Dockerfile.cross
|
||||||
.idea
|
|
||||||
|
|
||||||
|
### Makefile ###
|
||||||
|
tmp/
|
||||||
|
bin/
|
||||||
|
output/
|
||||||
|
_output/
|
||||||
|
|
||||||
deploy/open_im_demo
|
### OpenIM Config ###
|
||||||
deploy/open_im_api
|
config/config.yaml
|
||||||
deploy/open_im_msg_gateway
|
./config/config.yaml
|
||||||
deploy/open_im_msg_transfer
|
.env
|
||||||
deploy/open_im_push
|
./.env
|
||||||
deploy/open_im_timer_task
|
|
||||||
deploy/open_im_rpc_user
|
### OpenIM deploy ###
|
||||||
deploy/open_im_rpc_friend
|
deploy/openim_demo
|
||||||
deploy/open_im_rpc_group
|
deploy/openim-api
|
||||||
deploy/open_im_rpc_msg
|
deploy/openim-rpc-msg_gateway
|
||||||
deploy/open_im_rpc_auth
|
deploy/openim-msgtransfer
|
||||||
|
deploy/openim-push
|
||||||
|
deploy/openim_timer_task
|
||||||
|
deploy/openim-rpc-user
|
||||||
|
deploy/openim-rpc-friend
|
||||||
|
deploy/openim-rpc-group
|
||||||
|
deploy/openim-rpc-msg
|
||||||
|
deploy/openim-rpc-auth
|
||||||
deploy/Open-IM-SDK-Core
|
deploy/Open-IM-SDK-Core
|
||||||
|
|
||||||
|
# files used by the developer
|
||||||
|
.idea.md
|
||||||
|
.todo.md
|
||||||
|
.note.md
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# Created by https://www.toptal.com/developers/gitignore/api/go,git,vim,tags,test,emacs,backup,jetbrains
|
||||||
|
# Edit at https://www.toptal.com/developers/gitignore?templates=go,git,vim,tags,test,emacs,backup,jetbrains
|
||||||
|
|
||||||
|
### Backup ###
|
||||||
|
*.bak
|
||||||
|
*.gho
|
||||||
|
*.ori
|
||||||
|
*.orig
|
||||||
|
*.tmp
|
||||||
|
|
||||||
|
### Emacs ###
|
||||||
|
# -*- mode: gitignore; -*-
|
||||||
|
*~
|
||||||
|
\#*\#
|
||||||
|
/.emacs.desktop
|
||||||
|
/.emacs.desktop.lock
|
||||||
|
*.elc
|
||||||
|
auto-save-list
|
||||||
|
tramp
|
||||||
|
.\#*
|
||||||
|
|
||||||
|
# Org-mode
|
||||||
|
.org-id-locations
|
||||||
|
*_archive
|
||||||
|
|
||||||
|
# flymake-mode
|
||||||
|
*_flymake.*
|
||||||
|
|
||||||
|
# eshell files
|
||||||
|
/eshell/history
|
||||||
|
/eshell/lastdir
|
||||||
|
|
||||||
|
# elpa packages
|
||||||
|
/elpa/
|
||||||
|
|
||||||
|
# reftex files
|
||||||
|
*.rel
|
||||||
|
|
||||||
|
# AUCTeX auto folder
|
||||||
|
/auto/
|
||||||
|
|
||||||
|
# cask packages
|
||||||
|
.cask/
|
||||||
|
dist/
|
||||||
|
|
||||||
|
# Flycheck
|
||||||
|
flycheck_*.el
|
||||||
|
|
||||||
|
# server auth directory
|
||||||
|
/server/
|
||||||
|
|
||||||
|
# projectiles files
|
||||||
|
.projectile
|
||||||
|
|
||||||
|
# directory configuration
|
||||||
|
.dir-locals.el
|
||||||
|
|
||||||
|
# network security
|
||||||
|
/network-security.data
|
||||||
|
|
||||||
|
### vscode ###
|
||||||
|
.vscode
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/extensions.json
|
||||||
|
*.code-workspace
|
||||||
|
|
||||||
|
# End of https://www.toptal.com/developers/gitignore/api/vim,jetbrains,vscode,git,go,tags,backup,test
|
||||||
|
|
||||||
|
### Git ###
|
||||||
|
# Created by git for backups. To disable backups in Git:
|
||||||
|
# $ git config --global mergetool.keepBackup false
|
||||||
|
|
||||||
|
# Created by git when using merge tools for conflicts
|
||||||
|
*.BACKUP.*
|
||||||
|
*.BASE.*
|
||||||
|
*.LOCAL.*
|
||||||
|
*.REMOTE.*
|
||||||
|
*_BACKUP_*.txt
|
||||||
|
*_BASE_*.txt
|
||||||
|
*_LOCAL_*.txt
|
||||||
|
*_REMOTE_*.txt
|
||||||
|
|
||||||
|
### Go ###
|
||||||
|
# If you prefer the allow list template instead of the deny list, see community template:
|
||||||
|
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
|
||||||
|
#
|
||||||
|
# Binaries for programs and plugins
|
||||||
|
*.exe
|
||||||
|
*.exe~
|
||||||
|
*.dll
|
||||||
|
*.so
|
||||||
|
*.dylib
|
||||||
|
|
||||||
|
# Test binary, built with `go test -c`
|
||||||
|
*.test
|
||||||
|
|
||||||
|
# Output of the go coverage tool, specifically when used with LiteIDE
|
||||||
|
*.out
|
||||||
|
|
||||||
|
# Dependency directories (remove the comment below to include it)
|
||||||
|
vendor/
|
||||||
|
|
||||||
|
# Go workspace file
|
||||||
|
# go.work
|
||||||
|
go.work.sum
|
||||||
|
|
||||||
|
### JetBrains ###
|
||||||
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||||
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||||
|
|
||||||
|
# User-specific stuff
|
||||||
|
.idea/
|
||||||
|
.idea/**/workspace.xml
|
||||||
|
.idea/**/tasks.xml
|
||||||
|
.idea/**/usage.statistics.xml
|
||||||
|
.idea/**/dictionaries
|
||||||
|
.idea/**/shelf
|
||||||
|
|
||||||
|
# AWS User-specific
|
||||||
|
.idea/**/aws.xml
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
.idea/**/contentModel.xml
|
||||||
|
|
||||||
|
# Sensitive or high-churn files
|
||||||
|
.idea/**/dataSources/
|
||||||
|
.idea/**/dataSources.ids
|
||||||
|
.idea/**/dataSources.local.xml
|
||||||
|
.idea/**/sqlDataSources.xml
|
||||||
|
.idea/**/dynamic.xml
|
||||||
|
.idea/**/uiDesigner.xml
|
||||||
|
.idea/**/dbnavigator.xml
|
||||||
|
|
||||||
|
# Gradle
|
||||||
|
.idea/**/gradle.xml
|
||||||
|
.idea/**/libraries
|
||||||
|
|
||||||
|
# Gradle and Maven with auto-import
|
||||||
|
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||||
|
# since they will be recreated, and may cause churn. Uncomment if using
|
||||||
|
# auto-import.
|
||||||
|
# .idea/artifacts
|
||||||
|
# .idea/compiler.xml
|
||||||
|
# .idea/jarRepositories.xml
|
||||||
|
# .idea/modules.xml
|
||||||
|
# .idea/*.iml
|
||||||
|
# .idea/modules
|
||||||
|
# *.iml
|
||||||
|
# *.ipr
|
||||||
|
|
||||||
|
# CMake
|
||||||
|
cmake-build-*/
|
||||||
|
|
||||||
|
# Mongo Explorer plugin
|
||||||
|
.idea/**/mongoSettings.xml
|
||||||
|
|
||||||
|
# File-based project format
|
||||||
|
*.iws
|
||||||
|
|
||||||
|
# IntelliJ
|
||||||
|
out/
|
||||||
|
|
||||||
|
# mpeltonen/sbt-idea plugin
|
||||||
|
.idea_modules/
|
||||||
|
|
||||||
|
# JIRA plugin
|
||||||
|
atlassian-ide-plugin.xml
|
||||||
|
|
||||||
|
# Cursive Clojure plugin
|
||||||
|
.idea/replstate.xml
|
||||||
|
|
||||||
|
# SonarLint plugin
|
||||||
|
.idea/sonarlint/
|
||||||
|
|
||||||
|
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
crashlytics.properties
|
||||||
|
crashlytics-build.properties
|
||||||
|
fabric.properties
|
||||||
|
|
||||||
|
# Editor-based Rest Client
|
||||||
|
.idea/httpRequests
|
||||||
|
|
||||||
|
# Android studio 3.1+ serialized cache file
|
||||||
|
.idea/caches/build_file_checksums.ser
|
||||||
|
|
||||||
|
### JetBrains Patch ###
|
||||||
|
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
|
||||||
|
|
||||||
|
# *.iml
|
||||||
|
# modules.xml
|
||||||
|
# .idea/misc.xml
|
||||||
|
# *.ipr
|
||||||
|
|
||||||
|
# Sonarlint plugin
|
||||||
|
# https://plugins.jetbrains.com/plugin/7973-sonarlint
|
||||||
|
.idea/**/sonarlint/
|
||||||
|
|
||||||
|
# SonarQube Plugin
|
||||||
|
# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
|
||||||
|
.idea/**/sonarIssues.xml
|
||||||
|
|
||||||
|
# Markdown Navigator plugin
|
||||||
|
# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
|
||||||
|
.idea/**/markdown-navigator.xml
|
||||||
|
.idea/**/markdown-navigator-enh.xml
|
||||||
|
.idea/**/markdown-navigator/
|
||||||
|
|
||||||
|
# Cache file creation bug
|
||||||
|
# See https://youtrack.jetbrains.com/issue/JBR-2257
|
||||||
|
.idea/$CACHE_FILE$
|
||||||
|
|
||||||
|
# CodeStream plugin
|
||||||
|
# https://plugins.jetbrains.com/plugin/12206-codestream
|
||||||
|
.idea/codestream.xml
|
||||||
|
|
||||||
|
# Azure Toolkit for IntelliJ plugin
|
||||||
|
# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
|
||||||
|
.idea/**/azureSettings.xml
|
||||||
|
|
||||||
|
### Tags ###
|
||||||
|
# Ignore tags created by etags, ctags, gtags (GNU global) and cscope
|
||||||
|
TAGS
|
||||||
|
.TAGS
|
||||||
|
!TAGS/
|
||||||
|
tags
|
||||||
|
.tags
|
||||||
|
!tags/
|
||||||
|
gtags.files
|
||||||
|
GTAGS
|
||||||
|
GRTAGS
|
||||||
|
GPATH
|
||||||
|
GSYMS
|
||||||
|
cscope.files
|
||||||
|
cscope.out
|
||||||
|
cscope.in.out
|
||||||
|
cscope.po.out
|
||||||
|
|
||||||
|
|
||||||
|
### Test ###
|
||||||
|
### Ignore all files that could be used to test your code and
|
||||||
|
### you wouldn't want to push
|
||||||
|
|
||||||
|
# Reference https://en.wikipedia.org/wiki/Metasyntactic_variable
|
||||||
|
|
||||||
|
# Most common
|
||||||
|
*foo
|
||||||
|
*bar
|
||||||
|
*fubar
|
||||||
|
*foobar
|
||||||
|
*baz
|
||||||
|
|
||||||
|
# Less common
|
||||||
|
*qux
|
||||||
|
*quux
|
||||||
|
*bongo
|
||||||
|
*bazola
|
||||||
|
*ztesch
|
||||||
|
|
||||||
|
# UK, Australia
|
||||||
|
*wibble
|
||||||
|
*wobble
|
||||||
|
*wubble
|
||||||
|
*flob
|
||||||
|
*blep
|
||||||
|
*blah
|
||||||
|
*boop
|
||||||
|
*beep
|
||||||
|
|
||||||
|
# Japanese
|
||||||
|
*hoge
|
||||||
|
*piyo
|
||||||
|
*fuga
|
||||||
|
*hogera
|
||||||
|
*hogehoge
|
||||||
|
|
||||||
|
# Portugal, Spain
|
||||||
|
*fulano
|
||||||
|
*sicrano
|
||||||
|
*beltrano
|
||||||
|
*mengano
|
||||||
|
*perengano
|
||||||
|
*zutano
|
||||||
|
|
||||||
|
# France, Italy, the Netherlands
|
||||||
|
*toto
|
||||||
|
*titi
|
||||||
|
*tata
|
||||||
|
*tutu
|
||||||
|
*pipppo
|
||||||
|
*pluto
|
||||||
|
*paperino
|
||||||
|
*aap
|
||||||
|
*noot
|
||||||
|
*mies
|
||||||
|
|
||||||
|
# Other names that would make sense
|
||||||
|
*tests
|
||||||
|
*testsdir
|
||||||
|
*testsfile
|
||||||
|
*testsfiles
|
||||||
|
*testdir
|
||||||
|
*testfile
|
||||||
|
*testfiles
|
||||||
|
*testing
|
||||||
|
*testingdir
|
||||||
|
*testingfile
|
||||||
|
*testingfiles
|
||||||
|
*temp
|
||||||
|
*tempdir
|
||||||
|
*tempfile
|
||||||
|
*tempfiles
|
||||||
|
*tmp
|
||||||
|
*tmpdir
|
||||||
|
*tmpfile
|
||||||
|
*tmpfiles
|
||||||
|
*lol
|
||||||
|
|
||||||
|
### Vim ###
|
||||||
|
# Swap
|
||||||
|
[._]*.s[a-v][a-z]
|
||||||
|
!*.svg # comment out if you don't need vector files
|
||||||
|
[._]*.sw[a-p]
|
||||||
|
[._]s[a-rt-v][a-z]
|
||||||
|
[._]ss[a-gi-z]
|
||||||
|
[._]sw[a-p]
|
||||||
|
|
||||||
|
# Session
|
||||||
|
Session.vim
|
||||||
|
Sessionx.vim
|
||||||
|
|
||||||
|
# Temporary
|
||||||
|
.netrwhist
|
||||||
|
# Auto-generated tag files
|
||||||
|
# Persistent undo
|
||||||
|
[._]*.un~
|
||||||
|
|
||||||
|
# End of https://www.toptal.com/developers/gitignore/api/go,git,vim,tags,test,emacs,backup,jetbrains
|
||||||
|
.idea
|
||||||
|
dist/
|
||||||
|
.env
|
||||||
|
config/config.yaml
|
||||||
|
|||||||
@@ -26,8 +26,6 @@ By deployment of the Open-IM-Server on the customer's server, developers can int
|
|||||||
- Supports multiple protocols
|
- Supports multiple protocols
|
||||||
|
|
||||||
## Community
|
## Community
|
||||||
|
|
||||||
- Join the Telegram-OpenIM group: https://t.me/joinchat/zSJLPaHBNLZmODI1
|
|
||||||
- 中文官网访问这里:[Open-IM中文开发文档](https://doc.rentsoft.cn/)
|
- 中文官网访问这里:[Open-IM中文开发文档](https://doc.rentsoft.cn/)
|
||||||
|
|
||||||
## Quick start
|
## Quick start
|
||||||
@@ -36,75 +34,69 @@ By deployment of the Open-IM-Server on the customer's server, developers can int
|
|||||||
|
|
||||||
> Open-IM relies on five open source high-performance components: ETCD, MySQL, MongoDB, Redis, and Kafka. Privatization deployment Before Open-IM-Server, please make sure that the above five components have been installed. If your server does not have the above components, you must first install Missing components. If you have the above components, it is recommended to use them directly. If not, it is recommended to use Docker-compose, no To install dependencies, one-click deployment, faster and more convenient.
|
> Open-IM relies on five open source high-performance components: ETCD, MySQL, MongoDB, Redis, and Kafka. Privatization deployment Before Open-IM-Server, please make sure that the above five components have been installed. If your server does not have the above components, you must first install Missing components. If you have the above components, it is recommended to use them directly. If not, it is recommended to use Docker-compose, no To install dependencies, one-click deployment, faster and more convenient.
|
||||||
|
|
||||||
#### Source code deployment
|
#### Deploy using Docker
|
||||||
|
|
||||||
1. Install [Go environment](https://golang.org/doc/install). Make sure Go version is at least 1.15.
|
1. Install [Go environment](https://golang.org/doc/install). Make sure Go version is at least 1.17
|
||||||
|
|
||||||
2. Clone the Open-IM project to your server.
|
2. Clone the Open-IM project to your server
|
||||||
|
|
||||||
```
|
```
|
||||||
git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive
|
git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Build and start Service.
|
3. Deploy
|
||||||
|
|
||||||
1. Shell authorization
|
1. Modify env
|
||||||
|
|
||||||
```
|
```
|
||||||
#cd Open-IM-server/script
|
#cd Open-IM-server
|
||||||
|
USER=root
|
||||||
chmod +x *.sh
|
PASSWORD=openIM123 #Password with more than 8 digits, excluding special characters
|
||||||
|
ENDPOINT=http://127.0.0.1:10005 #Replace 127.0.0.1 with Internet IP
|
||||||
|
DATA_DIR=./
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Execute the build shell
|
2. Deploy && Start
|
||||||
|
|
||||||
```
|
```
|
||||||
./build_all_service.sh
|
chmod +x install_im_server.sh;
|
||||||
```
|
./install_im_server.sh;
|
||||||
|
|
||||||
3. Start service
|
|
||||||
|
|
||||||
```
|
|
||||||
./start_all.sh
|
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Check service
|
4. Check service
|
||||||
|
|
||||||
```
|
```
|
||||||
./check_all.sh
|
cd script;
|
||||||
|
./docker_check_service.sh./check_all.sh
|
||||||
```
|
```
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
#### Docker deployment
|
#### Deploy using source code
|
||||||
|
|
||||||
All images are available at https://hub.docker.com/r/lyt1123/open_im_server
|
1. Go 1.17 or above。
|
||||||
|
2. Clone
|
||||||
|
|
||||||
1. [Install Docker](https://docs.docker.com/install/) 1.13 or above.
|
```shell
|
||||||
|
git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive
|
||||||
|
cd cmd/Open-IM-SDK-Core
|
||||||
|
git checkout main
|
||||||
|
```
|
||||||
|
|
||||||
2. [Install Docker Compose](https://docs.docker.com/compose/install/) 1.22 or above.
|
1. Set executable permissions
|
||||||
|
|
||||||
3. Clone the Open-IM project to your server.
|
```shell
|
||||||
|
cd ../../script/
|
||||||
|
chmod +x *.sh
|
||||||
|
```
|
||||||
|
|
||||||
```
|
1. build
|
||||||
git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive
|
|
||||||
```
|
|
||||||
|
|
||||||
4. Start docker-compose with one click(Docker automatically pulls all images)
|
```shell
|
||||||
|
./batch_build_all_service.sh
|
||||||
|
```
|
||||||
|
|
||||||
```
|
all services build success
|
||||||
cd Open-IM-Server
|
|
||||||
docker-compose up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
5. Check service
|
|
||||||
|
|
||||||
```
|
|
||||||
./docker_check_service.sh
|
|
||||||
./check_all.sh
|
|
||||||
```
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### CONFIGURATION INSTRUCTIONS
|
### CONFIGURATION INSTRUCTIONS
|
||||||
|
|
||||||
|
|||||||
+1
-1
Submodule cmd/Open-IM-SDK-Core updated: 588c9bb77b...e731cb86ec
@@ -1,13 +1,24 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_api
|
NAME=open_im_api
|
||||||
BIN_DIR=../../bin/
|
BIN_DIR=../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -16,8 +27,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+66
-23
@@ -1,51 +1,79 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
_ "Open_IM/cmd/open_im_api/docs"
|
||||||
apiAuth "Open_IM/internal/api/auth"
|
apiAuth "Open_IM/internal/api/auth"
|
||||||
apiChat "Open_IM/internal/api/chat"
|
clientInit "Open_IM/internal/api/client_init"
|
||||||
"Open_IM/internal/api/conversation"
|
"Open_IM/internal/api/conversation"
|
||||||
"Open_IM/internal/api/friend"
|
"Open_IM/internal/api/friend"
|
||||||
"Open_IM/internal/api/group"
|
"Open_IM/internal/api/group"
|
||||||
"Open_IM/internal/api/manage"
|
"Open_IM/internal/api/manage"
|
||||||
|
apiChat "Open_IM/internal/api/msg"
|
||||||
"Open_IM/internal/api/office"
|
"Open_IM/internal/api/office"
|
||||||
"Open_IM/internal/api/organization"
|
"Open_IM/internal/api/organization"
|
||||||
apiThird "Open_IM/internal/api/third"
|
apiThird "Open_IM/internal/api/third"
|
||||||
"Open_IM/internal/api/user"
|
"Open_IM/internal/api/user"
|
||||||
"Open_IM/pkg/common/config"
|
"Open_IM/pkg/common/config"
|
||||||
"Open_IM/pkg/common/log"
|
"Open_IM/pkg/common/log"
|
||||||
|
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
||||||
"Open_IM/pkg/utils"
|
"Open_IM/pkg/utils"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
//_ "github.com/razeencheng/demo-go/swaggo-gin/docs"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
|
swaggerFiles "github.com/swaggo/files"
|
||||||
|
ginSwagger "github.com/swaggo/gin-swagger"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
//"syscall"
|
//"syscall"
|
||||||
"Open_IM/pkg/common/constant"
|
"Open_IM/pkg/common/constant"
|
||||||
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// @title open-IM-Server API
|
||||||
|
// @version 1.0
|
||||||
|
// @description open-IM-Server 的API服务器文档, 文档中所有请求都有一个operationID字段用于链路追踪
|
||||||
|
|
||||||
|
// @license.name Apache 2.0
|
||||||
|
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
// @BasePath /
|
||||||
func main() {
|
func main() {
|
||||||
log.NewPrivateLog(constant.LogFileName)
|
log.NewPrivateLog(constant.LogFileName)
|
||||||
gin.SetMode(gin.ReleaseMode)
|
gin.SetMode(gin.ReleaseMode)
|
||||||
f, _ := os.Create("../logs/api.log")
|
f, _ := os.Create("../logs/api.log")
|
||||||
gin.DefaultWriter = io.MultiWriter(f)
|
gin.DefaultWriter = io.MultiWriter(f)
|
||||||
gin.SetMode(gin.DebugMode)
|
// gin.SetMode(gin.DebugMode)
|
||||||
r := gin.Default()
|
r := gin.New()
|
||||||
|
r.Use(gin.Recovery())
|
||||||
r.Use(utils.CorsHandler())
|
r.Use(utils.CorsHandler())
|
||||||
|
log.Info("load config: ", config.Config)
|
||||||
log.Info("load config: ", config.Config)
|
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||||
|
if config.Config.Prometheus.Enable {
|
||||||
|
promePkg.NewApiRequestCounter()
|
||||||
|
promePkg.NewApiRequestFailedCounter()
|
||||||
|
promePkg.NewApiRequestSuccessCounter()
|
||||||
|
r.Use(promePkg.PromeTheusMiddleware)
|
||||||
|
r.GET("/metrics", promePkg.PrometheusHandler())
|
||||||
|
}
|
||||||
// user routing group, which handles user registration and login services
|
// user routing group, which handles user registration and login services
|
||||||
userRouterGroup := r.Group("/user")
|
userRouterGroup := r.Group("/user")
|
||||||
{
|
{
|
||||||
userRouterGroup.POST("/update_user_info", user.UpdateUserInfo) //1
|
userRouterGroup.POST("/update_user_info", user.UpdateUserInfo) //1
|
||||||
userRouterGroup.POST("/set_global_msg_recv_opt", user.SetGlobalRecvMessageOpt)
|
userRouterGroup.POST("/set_global_msg_recv_opt", user.SetGlobalRecvMessageOpt)
|
||||||
userRouterGroup.POST("/get_users_info", user.GetUsersInfo) //1
|
userRouterGroup.POST("/get_users_info", user.GetUsersPublicInfo) //1
|
||||||
userRouterGroup.POST("/get_self_user_info", user.GetSelfUserInfo) //1
|
userRouterGroup.POST("/get_self_user_info", user.GetSelfUserInfo) //1
|
||||||
userRouterGroup.POST("/get_users_online_status", user.GetUsersOnlineStatus) //1
|
userRouterGroup.POST("/get_users_online_status", user.GetUsersOnlineStatus) //1
|
||||||
userRouterGroup.POST("/get_users_info_from_cache", user.GetUsersInfoFromCache)
|
userRouterGroup.POST("/get_users_info_from_cache", user.GetUsersInfoFromCache)
|
||||||
userRouterGroup.POST("/get_user_friend_from_cache", user.GetFriendIDListFromCache)
|
userRouterGroup.POST("/get_user_friend_from_cache", user.GetFriendIDListFromCache)
|
||||||
userRouterGroup.POST("/get_black_list_from_cache", user.GetBlackIDListFromCache)
|
userRouterGroup.POST("/get_black_list_from_cache", user.GetBlackIDListFromCache)
|
||||||
|
userRouterGroup.POST("/get_all_users_uid", manage.GetAllUsersUid) //1
|
||||||
|
userRouterGroup.POST("/account_check", manage.AccountCheck) //1
|
||||||
|
// userRouterGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) //1
|
||||||
|
userRouterGroup.POST("/get_users", user.GetUsers)
|
||||||
}
|
}
|
||||||
//friend routing group
|
//friend routing group
|
||||||
friendRouterGroup := r.Group("/friend")
|
friendRouterGroup := r.Group("/friend")
|
||||||
@@ -77,12 +105,14 @@ func main() {
|
|||||||
groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) //1
|
groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) //1
|
||||||
groupRouterGroup.POST("/get_recv_group_applicationList", group.GetRecvGroupApplicationList) //1
|
groupRouterGroup.POST("/get_recv_group_applicationList", group.GetRecvGroupApplicationList) //1
|
||||||
groupRouterGroup.POST("/get_user_req_group_applicationList", group.GetUserReqGroupApplicationList)
|
groupRouterGroup.POST("/get_user_req_group_applicationList", group.GetUserReqGroupApplicationList)
|
||||||
groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1
|
groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1
|
||||||
groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1
|
groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1
|
||||||
groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use
|
// groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use
|
||||||
groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMemberList) //1
|
groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMemberList) //1
|
||||||
groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1
|
groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1
|
||||||
groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1
|
groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1
|
||||||
|
//only for supergroup
|
||||||
|
groupRouterGroup.POST("/invite_user_to_groups", group.InviteUserToGroups)
|
||||||
groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList)
|
groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList)
|
||||||
groupRouterGroup.POST("/dismiss_group", group.DismissGroup) //
|
groupRouterGroup.POST("/dismiss_group", group.DismissGroup) //
|
||||||
groupRouterGroup.POST("/mute_group_member", group.MuteGroupMember)
|
groupRouterGroup.POST("/mute_group_member", group.MuteGroupMember)
|
||||||
@@ -91,6 +121,8 @@ func main() {
|
|||||||
groupRouterGroup.POST("/cancel_mute_group", group.CancelMuteGroup)
|
groupRouterGroup.POST("/cancel_mute_group", group.CancelMuteGroup)
|
||||||
groupRouterGroup.POST("/set_group_member_nickname", group.SetGroupMemberNickname)
|
groupRouterGroup.POST("/set_group_member_nickname", group.SetGroupMemberNickname)
|
||||||
groupRouterGroup.POST("/set_group_member_info", group.SetGroupMemberInfo)
|
groupRouterGroup.POST("/set_group_member_info", group.SetGroupMemberInfo)
|
||||||
|
groupRouterGroup.POST("/get_group_abstract_info", group.GetGroupAbstractInfo)
|
||||||
|
//groupRouterGroup.POST("/get_group_all_member_list_by_split", group.GetGroupAllMemberListBySplit)
|
||||||
}
|
}
|
||||||
superGroupRouterGroup := r.Group("/super_group")
|
superGroupRouterGroup := r.Group("/super_group")
|
||||||
{
|
{
|
||||||
@@ -116,6 +148,9 @@ func main() {
|
|||||||
thirdGroup.POST("/get_download_url", apiThird.GetDownloadURL)
|
thirdGroup.POST("/get_download_url", apiThird.GetDownloadURL)
|
||||||
thirdGroup.POST("/get_rtc_invitation_info", apiThird.GetRTCInvitationInfo)
|
thirdGroup.POST("/get_rtc_invitation_info", apiThird.GetRTCInvitationInfo)
|
||||||
thirdGroup.POST("/get_rtc_invitation_start_app", apiThird.GetRTCInvitationInfoStartApp)
|
thirdGroup.POST("/get_rtc_invitation_start_app", apiThird.GetRTCInvitationInfoStartApp)
|
||||||
|
thirdGroup.POST("/fcm_update_token", apiThird.FcmUpdateToken)
|
||||||
|
thirdGroup.POST("/aws_storage_credential", apiThird.AwsStorageCredential)
|
||||||
|
thirdGroup.POST("/set_app_badge", apiThird.SetAppBadge)
|
||||||
}
|
}
|
||||||
//Message
|
//Message
|
||||||
chatGroup := r.Group("/msg")
|
chatGroup := r.Group("/msg")
|
||||||
@@ -124,17 +159,17 @@ func main() {
|
|||||||
chatGroup.POST("/send_msg", apiChat.SendMsg)
|
chatGroup.POST("/send_msg", apiChat.SendMsg)
|
||||||
chatGroup.POST("/pull_msg_by_seq", apiChat.PullMsgBySeqList)
|
chatGroup.POST("/pull_msg_by_seq", apiChat.PullMsgBySeqList)
|
||||||
chatGroup.POST("/del_msg", apiChat.DelMsg)
|
chatGroup.POST("/del_msg", apiChat.DelMsg)
|
||||||
|
chatGroup.POST("/del_super_group_msg", apiChat.DelSuperGroupMsg)
|
||||||
chatGroup.POST("/clear_msg", apiChat.ClearMsg)
|
chatGroup.POST("/clear_msg", apiChat.ClearMsg)
|
||||||
}
|
chatGroup.POST("/manage_send_msg", manage.ManagementSendMsg)
|
||||||
//Manager
|
chatGroup.POST("/batch_send_msg", manage.ManagementBatchSendMsg)
|
||||||
managementGroup := r.Group("/manager")
|
chatGroup.POST("/check_msg_is_send_success", manage.CheckMsgIsSendSuccess)
|
||||||
{
|
chatGroup.POST("/set_msg_min_seq", apiChat.SetMsgMinSeq)
|
||||||
managementGroup.POST("/delete_user", manage.DeleteUser) //1
|
|
||||||
managementGroup.POST("/send_msg", manage.ManagementSendMsg)
|
chatGroup.POST("/set_message_reaction_extensions", apiChat.SetMessageReactionExtensions)
|
||||||
managementGroup.POST("/batch_send_msg", manage.ManagementBatchSendMsg)
|
chatGroup.POST("/get_message_list_reaction_extensions", apiChat.GetMessageListReactionExtensions)
|
||||||
managementGroup.POST("/get_all_users_uid", manage.GetAllUsersUid) //1
|
chatGroup.POST("/add_message_reaction_extensions", apiChat.AddMessageReactionExtensions)
|
||||||
managementGroup.POST("/account_check", manage.AccountCheck) //1
|
chatGroup.POST("/delete_message_reaction_extensions", apiChat.DeleteMessageReactionExtensions)
|
||||||
managementGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) //1
|
|
||||||
}
|
}
|
||||||
//Conversation
|
//Conversation
|
||||||
conversationGroup := r.Group("/conversation")
|
conversationGroup := r.Group("/conversation")
|
||||||
@@ -142,8 +177,10 @@ func main() {
|
|||||||
conversationGroup.POST("/get_all_conversations", conversation.GetAllConversations)
|
conversationGroup.POST("/get_all_conversations", conversation.GetAllConversations)
|
||||||
conversationGroup.POST("/get_conversation", conversation.GetConversation)
|
conversationGroup.POST("/get_conversation", conversation.GetConversation)
|
||||||
conversationGroup.POST("/get_conversations", conversation.GetConversations)
|
conversationGroup.POST("/get_conversations", conversation.GetConversations)
|
||||||
|
//deprecated
|
||||||
conversationGroup.POST("/set_conversation", conversation.SetConversation)
|
conversationGroup.POST("/set_conversation", conversation.SetConversation)
|
||||||
conversationGroup.POST("/batch_set_conversation", conversation.BatchSetConversations)
|
conversationGroup.POST("/batch_set_conversation", conversation.BatchSetConversations)
|
||||||
|
//deprecated
|
||||||
conversationGroup.POST("/set_recv_msg_opt", conversation.SetRecvMsgOpt)
|
conversationGroup.POST("/set_recv_msg_opt", conversation.SetRecvMsgOpt)
|
||||||
conversationGroup.POST("/modify_conversation_field", conversation.ModifyConversationField)
|
conversationGroup.POST("/modify_conversation_field", conversation.ModifyConversationField)
|
||||||
}
|
}
|
||||||
@@ -187,9 +224,15 @@ func main() {
|
|||||||
|
|
||||||
organizationGroup.POST("/get_department_member", organization.GetDepartmentMember)
|
organizationGroup.POST("/get_department_member", organization.GetDepartmentMember)
|
||||||
organizationGroup.POST("/delete_user_in_department", organization.DeleteUserInDepartment)
|
organizationGroup.POST("/delete_user_in_department", organization.DeleteUserInDepartment)
|
||||||
|
organizationGroup.POST("/get_user_in_organization", organization.GetUserInOrganization)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
initGroup := r.Group("/init")
|
||||||
|
{
|
||||||
|
initGroup.POST("/set_client_config", clientInit.SetClientInitConfig)
|
||||||
|
initGroup.POST("/get_client_config", clientInit.GetClientInitConfig)
|
||||||
|
}
|
||||||
|
go getcdv3.RegisterConf()
|
||||||
go apiThird.MinioInit()
|
go apiThird.MinioInit()
|
||||||
defaultPorts := config.Config.Api.GinPort
|
defaultPorts := config.Config.Api.GinPort
|
||||||
ginPort := flag.Int("port", defaultPorts[0], "get ginServerPort from cmd,default 10002 as port")
|
ginPort := flag.Int("port", defaultPorts[0], "get ginServerPort from cmd,default 10002 as port")
|
||||||
@@ -198,10 +241,10 @@ func main() {
|
|||||||
if config.Config.Api.ListenIP != "" {
|
if config.Config.Api.ListenIP != "" {
|
||||||
address = config.Config.Api.ListenIP + ":" + strconv.Itoa(*ginPort)
|
address = config.Config.Api.ListenIP + ":" + strconv.Itoa(*ginPort)
|
||||||
}
|
}
|
||||||
address = config.Config.Api.ListenIP + ":" + strconv.Itoa(*ginPort)
|
fmt.Println("start api server, address: ", address, ", OpenIM version: ", constant.CurrentVersion)
|
||||||
fmt.Println("start api server, address: ", address)
|
|
||||||
err := r.Run(address)
|
err := r.Run(address)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("", "run failed ", *ginPort, err.Error())
|
log.Error("", "api run failed ", address, err.Error())
|
||||||
|
panic("api start failed " + err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,25 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_cms_api
|
NAME=open_im_cms_api
|
||||||
BIN_DIR=../../bin/
|
BIN_DIR=../../bin/
|
||||||
|
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -16,8 +28,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -2,12 +2,14 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"Open_IM/internal/cms_api"
|
"Open_IM/internal/cms_api"
|
||||||
|
"Open_IM/pkg/common/constant"
|
||||||
"Open_IM/pkg/utils"
|
"Open_IM/pkg/utils"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"Open_IM/pkg/common/config"
|
"Open_IM/pkg/common/config"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -23,6 +25,6 @@ func main() {
|
|||||||
address = config.Config.Api.ListenIP + ":" + strconv.Itoa(*ginPort)
|
address = config.Config.Api.ListenIP + ":" + strconv.Itoa(*ginPort)
|
||||||
}
|
}
|
||||||
address = config.Config.CmsApi.ListenIP + ":" + strconv.Itoa(*ginPort)
|
address = config.Config.CmsApi.ListenIP + ":" + strconv.Itoa(*ginPort)
|
||||||
fmt.Println("start cms api server, address: ", address)
|
fmt.Println("start cms api server, address: ", address, ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
router.Run(address)
|
router.Run(address)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
|
NAME=open_im_cron_task
|
||||||
|
BIN_DIR=../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
build:
|
||||||
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
|
run:
|
||||||
|
@go run ./
|
||||||
|
|
||||||
|
gotool:
|
||||||
|
go fmt ./
|
||||||
|
go vet ./
|
||||||
|
|
||||||
|
install:build
|
||||||
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@if [ -f ${BINARY_NAME} ] ; then rm ${BINARY_NAME} ; fi
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"Open_IM/internal/cron_task"
|
||||||
|
"flag"
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
var userID = flag.String("userID", "", "userID to clear msg and reset seq")
|
||||||
|
var workingGroupID = flag.String("workingGroupID", "", "workingGroupID to clear msg and reset seq")
|
||||||
|
flag.Parse()
|
||||||
|
fmt.Println(time.Now(), "start cronTask", *userID, *workingGroupID)
|
||||||
|
cronTask.StartCronTask(*userID, *workingGroupID)
|
||||||
|
}
|
||||||
@@ -1,13 +1,25 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_demo
|
NAME=open_im_demo
|
||||||
BIN_DIR=../../bin/
|
BIN_DIR=../../bin/
|
||||||
|
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -16,8 +28,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ import (
|
|||||||
"Open_IM/pkg/common/config"
|
"Open_IM/pkg/common/config"
|
||||||
"Open_IM/pkg/common/constant"
|
"Open_IM/pkg/common/constant"
|
||||||
"Open_IM/pkg/common/log"
|
"Open_IM/pkg/common/log"
|
||||||
|
|
||||||
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -20,10 +23,11 @@ func main() {
|
|||||||
gin.SetMode(gin.ReleaseMode)
|
gin.SetMode(gin.ReleaseMode)
|
||||||
f, _ := os.Create("../logs/api.log")
|
f, _ := os.Create("../logs/api.log")
|
||||||
gin.DefaultWriter = io.MultiWriter(f)
|
gin.DefaultWriter = io.MultiWriter(f)
|
||||||
|
|
||||||
r := gin.Default()
|
r := gin.Default()
|
||||||
r.Use(utils.CorsHandler())
|
r.Use(utils.CorsHandler())
|
||||||
|
if config.Config.Prometheus.Enable {
|
||||||
|
r.GET("/metrics", promePkg.PrometheusHandler())
|
||||||
|
}
|
||||||
authRouterGroup := r.Group("/demo")
|
authRouterGroup := r.Group("/demo")
|
||||||
{
|
{
|
||||||
authRouterGroup.POST("/code", register.SendVerificationCode)
|
authRouterGroup.POST("/code", register.SendVerificationCode)
|
||||||
@@ -31,17 +35,44 @@ func main() {
|
|||||||
authRouterGroup.POST("/password", register.SetPassword)
|
authRouterGroup.POST("/password", register.SetPassword)
|
||||||
authRouterGroup.POST("/login", register.Login)
|
authRouterGroup.POST("/login", register.Login)
|
||||||
authRouterGroup.POST("/reset_password", register.ResetPassword)
|
authRouterGroup.POST("/reset_password", register.ResetPassword)
|
||||||
|
authRouterGroup.POST("/check_login", register.CheckLoginLimit)
|
||||||
|
}
|
||||||
|
demoRouterGroup := r.Group("/auth")
|
||||||
|
{
|
||||||
|
demoRouterGroup.POST("/code", register.SendVerificationCode)
|
||||||
|
demoRouterGroup.POST("/verify", register.Verify)
|
||||||
|
demoRouterGroup.POST("/password", register.SetPassword)
|
||||||
|
demoRouterGroup.POST("/login", register.Login)
|
||||||
|
demoRouterGroup.POST("/reset_password", register.ResetPassword)
|
||||||
|
demoRouterGroup.POST("/check_login", register.CheckLoginLimit)
|
||||||
|
}
|
||||||
|
|
||||||
|
//deprecated
|
||||||
|
cmsRouterGroup := r.Group("/cms_admin")
|
||||||
|
{
|
||||||
|
cmsRouterGroup.POST("/generate_invitation_code", register.GenerateInvitationCode)
|
||||||
|
cmsRouterGroup.POST("/query_invitation_code", register.QueryInvitationCode)
|
||||||
|
cmsRouterGroup.POST("/get_invitation_codes", register.GetInvitationCodes)
|
||||||
|
|
||||||
|
cmsRouterGroup.POST("/query_user_ip_limit_login", register.QueryUserIDLimitLogin)
|
||||||
|
cmsRouterGroup.POST("/add_user_ip_limit_login", register.AddUserIPLimitLogin)
|
||||||
|
cmsRouterGroup.POST("/remove_user_ip_limit_login", register.RemoveUserIPLimitLogin)
|
||||||
|
|
||||||
|
cmsRouterGroup.POST("/query_ip_register", register.QueryIPRegister)
|
||||||
|
cmsRouterGroup.POST("/add_ip_limit", register.AddIPLimit)
|
||||||
|
cmsRouterGroup.POST("/remove_ip_Limit", register.RemoveIPLimit)
|
||||||
}
|
}
|
||||||
defaultPorts := config.Config.Demo.Port
|
defaultPorts := config.Config.Demo.Port
|
||||||
ginPort := flag.Int("port", defaultPorts[0], "get ginServerPort from cmd,default 42233 as port")
|
ginPort := flag.Int("port", defaultPorts[0], "get ginServerPort from cmd,default 10004 as port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
fmt.Println("start demo api server, port: ", *ginPort)
|
|
||||||
address := "0.0.0.0:" + strconv.Itoa(*ginPort)
|
address := "0.0.0.0:" + strconv.Itoa(*ginPort)
|
||||||
if config.Config.Api.ListenIP != "" {
|
if config.Config.Api.ListenIP != "" {
|
||||||
address = config.Config.Api.ListenIP + ":" + strconv.Itoa(*ginPort)
|
address = config.Config.Api.ListenIP + ":" + strconv.Itoa(*ginPort)
|
||||||
}
|
}
|
||||||
address = config.Config.CmsApi.ListenIP + ":" + strconv.Itoa(*ginPort)
|
address = config.Config.CmsApi.ListenIP + ":" + strconv.Itoa(*ginPort)
|
||||||
fmt.Println("start demo api server address: ", address)
|
fmt.Println("start demo api server address: ", address, ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
|
go register.OnboardingProcessRoutine()
|
||||||
|
go register.ImportFriendRoutine()
|
||||||
err := r.Run(address)
|
err := r.Run(address)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("", "run failed ", *ginPort, err.Error())
|
log.Error("", "run failed ", *ginPort, err.Error())
|
||||||
|
|||||||
@@ -1,12 +1,24 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_msg_gateway
|
NAME=open_im_msg_gateway
|
||||||
BIN_DIR=../../bin/
|
BIN_DIR=../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -15,8 +27,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -14,13 +14,15 @@ func main() {
|
|||||||
log.NewPrivateLog(constant.LogFileName)
|
log.NewPrivateLog(constant.LogFileName)
|
||||||
defaultRpcPorts := config.Config.RpcPort.OpenImMessageGatewayPort
|
defaultRpcPorts := config.Config.RpcPort.OpenImMessageGatewayPort
|
||||||
defaultWsPorts := config.Config.LongConnSvr.WebsocketPort
|
defaultWsPorts := config.Config.LongConnSvr.WebsocketPort
|
||||||
|
defaultPromePorts := config.Config.Prometheus.MessageGatewayPrometheusPort
|
||||||
rpcPort := flag.Int("rpc_port", defaultRpcPorts[0], "rpc listening port")
|
rpcPort := flag.Int("rpc_port", defaultRpcPorts[0], "rpc listening port")
|
||||||
wsPort := flag.Int("ws_port", defaultWsPorts[0], "ws listening port")
|
wsPort := flag.Int("ws_port", defaultWsPorts[0], "ws listening port")
|
||||||
|
prometheusPort := flag.Int("prometheus_port", defaultPromePorts[0], "PushrometheusPort default listen port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
fmt.Println("start rpc/msg_gateway server, port: ", *rpcPort, *wsPort)
|
fmt.Println("start rpc/msg_gateway server, port: ", *rpcPort, *wsPort, *prometheusPort, ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
gate.Init(*rpcPort, *wsPort)
|
gate.Init(*rpcPort, *wsPort)
|
||||||
gate.Run()
|
gate.Run(*prometheusPort)
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,25 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_msg_transfer
|
NAME=open_im_msg_transfer
|
||||||
BIN_DIR=../../bin/
|
BIN_DIR=../../bin/
|
||||||
|
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -16,8 +28,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"Open_IM/internal/msg_transfer/logic"
|
"Open_IM/internal/msg_transfer/logic"
|
||||||
|
"Open_IM/pkg/common/config"
|
||||||
"Open_IM/pkg/common/constant"
|
"Open_IM/pkg/common/constant"
|
||||||
"Open_IM/pkg/common/log"
|
"Open_IM/pkg/common/log"
|
||||||
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
@@ -11,9 +13,11 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
|
prometheusPort := flag.Int("prometheus_port", config.Config.Prometheus.MessageTransferPrometheusPort[0], "MessageTransferPrometheusPort default listen port")
|
||||||
|
flag.Parse()
|
||||||
log.NewPrivateLog(constant.LogFileName)
|
log.NewPrivateLog(constant.LogFileName)
|
||||||
logic.Init()
|
logic.Init()
|
||||||
fmt.Println("start msg_transfer server")
|
fmt.Println("start msg_transfer server ", ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
logic.Run()
|
logic.Run(*prometheusPort)
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,24 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_push
|
NAME=open_im_push
|
||||||
BIN_DIR=../../bin/
|
BIN_DIR=../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -15,8 +27,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -13,12 +13,13 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
defaultPorts := config.Config.RpcPort.OpenImPushPort
|
defaultPorts := config.Config.RpcPort.OpenImPushPort
|
||||||
rpcPort := flag.Int("port", defaultPorts[0], "rpc listening port")
|
rpcPort := flag.Int("port", defaultPorts[0], "rpc listening port")
|
||||||
|
prometheusPort := flag.Int("prometheus_port", config.Config.Prometheus.MessageTransferPrometheusPort[0], "PushrometheusPort default listen port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
log.NewPrivateLog(constant.LogFileName)
|
log.NewPrivateLog(constant.LogFileName)
|
||||||
fmt.Println("start push rpc server, port: ", *rpcPort)
|
fmt.Println("start push rpc server, port: ", *rpcPort, ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
logic.Init(*rpcPort)
|
logic.Init(*rpcPort)
|
||||||
logic.Run()
|
logic.Run(*prometheusPort)
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,24 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_admin_cms
|
NAME=open_im_admin_cms
|
||||||
BIN_DIR=../../../bin/
|
BIN_DIR=../../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -15,8 +27,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package main
|
|||||||
import (
|
import (
|
||||||
rpcMessageCMS "Open_IM/internal/rpc/admin_cms"
|
rpcMessageCMS "Open_IM/internal/rpc/admin_cms"
|
||||||
"Open_IM/pkg/common/config"
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/constant"
|
||||||
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
@@ -10,8 +12,15 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
defaultPorts := config.Config.RpcPort.OpenImAdminCmsPort
|
defaultPorts := config.Config.RpcPort.OpenImAdminCmsPort
|
||||||
rpcPort := flag.Int("port", defaultPorts[0], "rpc listening port")
|
rpcPort := flag.Int("port", defaultPorts[0], "rpc listening port")
|
||||||
|
prometheusPort := flag.Int("prometheus_port", config.Config.Prometheus.AdminCmsPrometheusPort[0], "adminCMSPrometheusPort default listen port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
fmt.Println("start cms rpc server, port: ", *rpcPort)
|
fmt.Println("start cms rpc server, port: ", *rpcPort, ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
rpcServer := rpcMessageCMS.NewAdminCMSServer(*rpcPort)
|
rpcServer := rpcMessageCMS.NewAdminCMSServer(*rpcPort)
|
||||||
|
go func() {
|
||||||
|
err := promePkg.StartPromeSrv(*prometheusPort)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
rpcServer.Run()
|
rpcServer.Run()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,24 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_auth
|
NAME=open_im_auth
|
||||||
BIN_DIR=../../../bin/
|
BIN_DIR=../../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -15,8 +27,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package main
|
|||||||
import (
|
import (
|
||||||
rpcAuth "Open_IM/internal/rpc/auth"
|
rpcAuth "Open_IM/internal/rpc/auth"
|
||||||
"Open_IM/pkg/common/config"
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/constant"
|
||||||
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
@@ -10,9 +12,15 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
defaultPorts := config.Config.RpcPort.OpenImAuthPort
|
defaultPorts := config.Config.RpcPort.OpenImAuthPort
|
||||||
rpcPort := flag.Int("port", defaultPorts[0], "RpcToken default listen port 10800")
|
rpcPort := flag.Int("port", defaultPorts[0], "RpcToken default listen port 10800")
|
||||||
|
prometheusPort := flag.Int("prometheus_port", config.Config.Prometheus.AuthPrometheusPort[0], "authPrometheusPort default listen port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
fmt.Println("start auth rpc server, port: ", *rpcPort)
|
fmt.Println("start auth rpc server, port: ", *rpcPort, ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
rpcServer := rpcAuth.NewRpcAuthServer(*rpcPort)
|
rpcServer := rpcAuth.NewRpcAuthServer(*rpcPort)
|
||||||
|
go func() {
|
||||||
|
err := promePkg.StartPromeSrv(*prometheusPort)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
rpcServer.Run()
|
rpcServer.Run()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,24 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_cache
|
NAME=open_im_cache
|
||||||
BIN_DIR=../../../bin/
|
BIN_DIR=../../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -15,8 +27,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
rpcCache "Open_IM/internal/rpc/cache"
|
rpcCache "Open_IM/internal/rpc/cache"
|
||||||
"Open_IM/pkg/common/config"
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/constant"
|
||||||
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
|
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
@@ -10,9 +13,15 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
defaultPorts := config.Config.RpcPort.OpenImCachePort
|
defaultPorts := config.Config.RpcPort.OpenImCachePort
|
||||||
rpcPort := flag.Int("port", defaultPorts[0], "RpcToken default listen port 10800")
|
rpcPort := flag.Int("port", defaultPorts[0], "RpcToken default listen port 10800")
|
||||||
|
prometheusPort := flag.Int("prometheus_port", config.Config.Prometheus.CachePrometheusPort[0], "cachePrometheusPort default listen port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
fmt.Println("start auth rpc server, port: ", *rpcPort)
|
fmt.Println("start cache rpc server, port: ", *rpcPort, ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
rpcServer := rpcCache.NewCacheServer(*rpcPort)
|
rpcServer := rpcCache.NewCacheServer(*rpcPort)
|
||||||
|
go func() {
|
||||||
|
err := promePkg.StartPromeSrv(*prometheusPort)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
rpcServer.Run()
|
rpcServer.Run()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,24 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_conversation
|
NAME=open_im_conversation
|
||||||
BIN_DIR=../../../bin/
|
BIN_DIR=../../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -15,8 +27,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package main
|
|||||||
import (
|
import (
|
||||||
rpcConversation "Open_IM/internal/rpc/conversation"
|
rpcConversation "Open_IM/internal/rpc/conversation"
|
||||||
"Open_IM/pkg/common/config"
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/constant"
|
||||||
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
@@ -10,9 +12,16 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
defaultPorts := config.Config.RpcPort.OpenImConversationPort
|
defaultPorts := config.Config.RpcPort.OpenImConversationPort
|
||||||
rpcPort := flag.Int("port", defaultPorts[0], "RpcConversation default listen port 11300")
|
rpcPort := flag.Int("port", defaultPorts[0], "RpcConversation default listen port 11300")
|
||||||
|
prometheusPort := flag.Int("prometheus_port", config.Config.Prometheus.ConversationPrometheusPort[0], "conversationPrometheusPort default listen port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
fmt.Println("start conversation rpc server, port: ", *rpcPort)
|
fmt.Println("start conversation rpc server, port: ", *rpcPort, ", OpenIM version: ", constant.CurrentVersion)
|
||||||
rpcServer := rpcConversation.NewRpcConversationServer(*rpcPort)
|
rpcServer := rpcConversation.NewRpcConversationServer(*rpcPort)
|
||||||
|
go func() {
|
||||||
|
err := promePkg.StartPromeSrv(*prometheusPort)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
rpcServer.Run()
|
rpcServer.Run()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,25 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_friend
|
NAME=open_im_friend
|
||||||
BIN_DIR=../../../bin/
|
BIN_DIR=../../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -15,8 +28,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package main
|
|||||||
import (
|
import (
|
||||||
"Open_IM/internal/rpc/friend"
|
"Open_IM/internal/rpc/friend"
|
||||||
"Open_IM/pkg/common/config"
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/constant"
|
||||||
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
@@ -10,8 +12,15 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
defaultPorts := config.Config.RpcPort.OpenImFriendPort
|
defaultPorts := config.Config.RpcPort.OpenImFriendPort
|
||||||
rpcPort := flag.Int("port", defaultPorts[0], "get RpcFriendPort from cmd,default 12000 as port")
|
rpcPort := flag.Int("port", defaultPorts[0], "get RpcFriendPort from cmd,default 12000 as port")
|
||||||
|
prometheusPort := flag.Int("prometheus_port", config.Config.Prometheus.FriendPrometheusPort[0], "friendPrometheusPort default listen port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
fmt.Println("start friend rpc server, port: ", *rpcPort)
|
fmt.Println("start friend rpc server, port: ", *rpcPort, ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
rpcServer := friend.NewFriendServer(*rpcPort)
|
rpcServer := friend.NewFriendServer(*rpcPort)
|
||||||
|
go func() {
|
||||||
|
err := promePkg.StartPromeSrv(*prometheusPort)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
rpcServer.Run()
|
rpcServer.Run()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,25 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_group
|
NAME=open_im_group
|
||||||
BIN_DIR=../../../bin/
|
BIN_DIR=../../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -15,8 +28,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package main
|
|||||||
import (
|
import (
|
||||||
"Open_IM/internal/rpc/group"
|
"Open_IM/internal/rpc/group"
|
||||||
"Open_IM/pkg/common/config"
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/constant"
|
||||||
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
@@ -10,8 +12,15 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
defaultPorts := config.Config.RpcPort.OpenImGroupPort
|
defaultPorts := config.Config.RpcPort.OpenImGroupPort
|
||||||
rpcPort := flag.Int("port", defaultPorts[0], "get RpcGroupPort from cmd,default 16000 as port")
|
rpcPort := flag.Int("port", defaultPorts[0], "get RpcGroupPort from cmd,default 16000 as port")
|
||||||
|
prometheusPort := flag.Int("prometheus_port", config.Config.Prometheus.GroupPrometheusPort[0], "groupPrometheusPort default listen port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
fmt.Println("start group rpc server, port: ", *rpcPort)
|
fmt.Println("start group rpc server, port: ", *rpcPort, ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
rpcServer := group.NewGroupServer(*rpcPort)
|
rpcServer := group.NewGroupServer(*rpcPort)
|
||||||
|
go func() {
|
||||||
|
err := promePkg.StartPromeSrv(*prometheusPort)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
rpcServer.Run()
|
rpcServer.Run()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
|
||||||
|
|
||||||
BINARY_NAME=open_im_message_cms
|
|
||||||
BIN_DIR=../../../bin/
|
|
||||||
|
|
||||||
all: gotool build
|
|
||||||
|
|
||||||
build:
|
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
|
||||||
|
|
||||||
run:
|
|
||||||
@go run ./
|
|
||||||
|
|
||||||
gotool:
|
|
||||||
go fmt ./
|
|
||||||
go vet ./
|
|
||||||
|
|
||||||
install:
|
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@if [ -f ${BINARY_NAME} ] ; then rm ${BINARY_NAME} ; fi
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
rpcMessageCMS "Open_IM/internal/rpc/message_cms"
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"flag"
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
defaultPorts := config.Config.RpcPort.OpenImMessageCmsPort[0]
|
|
||||||
rpcPort := flag.Int("port", defaultPorts, "rpc listening port")
|
|
||||||
flag.Parse()
|
|
||||||
fmt.Println("start msg cms rpc server, port: ", *rpcPort)
|
|
||||||
rpcServer := rpcMessageCMS.NewMessageCMSServer(*rpcPort)
|
|
||||||
rpcServer.Run()
|
|
||||||
}
|
|
||||||
@@ -1,12 +1,24 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_msg
|
NAME=open_im_msg
|
||||||
BIN_DIR=../../../bin/
|
BIN_DIR=../../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -15,8 +27,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
rpcChat "Open_IM/internal/rpc/msg"
|
"Open_IM/internal/rpc/msg"
|
||||||
"Open_IM/pkg/common/config"
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/constant"
|
||||||
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
@@ -10,8 +12,15 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
defaultPorts := config.Config.RpcPort.OpenImMessagePort
|
defaultPorts := config.Config.RpcPort.OpenImMessagePort
|
||||||
rpcPort := flag.Int("port", defaultPorts[0], "rpc listening port")
|
rpcPort := flag.Int("port", defaultPorts[0], "rpc listening port")
|
||||||
|
prometheusPort := flag.Int("prometheus_port", config.Config.Prometheus.MessagePrometheusPort[0], "msgPrometheusPort default listen port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
fmt.Println("start msg rpc server, port: ", *rpcPort)
|
fmt.Println("start msg rpc server, port: ", *rpcPort, ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
rpcServer := rpcChat.NewRpcChatServer(*rpcPort)
|
rpcServer := msg.NewRpcChatServer(*rpcPort)
|
||||||
|
go func() {
|
||||||
|
err := promePkg.StartPromeSrv(*prometheusPort)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
rpcServer.Run()
|
rpcServer.Run()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,24 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_office
|
NAME=open_im_office
|
||||||
BIN_DIR=../../../bin/
|
BIN_DIR=../../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -15,8 +27,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package main
|
|||||||
import (
|
import (
|
||||||
rpc "Open_IM/internal/rpc/office"
|
rpc "Open_IM/internal/rpc/office"
|
||||||
"Open_IM/pkg/common/config"
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/constant"
|
||||||
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
@@ -10,8 +12,15 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
defaultPorts := config.Config.RpcPort.OpenImOfficePort
|
defaultPorts := config.Config.RpcPort.OpenImOfficePort
|
||||||
rpcPort := flag.Int("port", defaultPorts[0], "rpc listening port")
|
rpcPort := flag.Int("port", defaultPorts[0], "rpc listening port")
|
||||||
|
prometheusPort := flag.Int("prometheus_port", config.Config.Prometheus.OfficePrometheusPort[0], "officePrometheusPort default listen port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
fmt.Println("start office rpc server, port: ", *rpcPort)
|
fmt.Println("start office rpc server, port: ", *rpcPort, ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
rpcServer := rpc.NewOfficeServer(*rpcPort)
|
rpcServer := rpc.NewOfficeServer(*rpcPort)
|
||||||
|
go func() {
|
||||||
|
err := promePkg.StartPromeSrv(*prometheusPort)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
rpcServer.Run()
|
rpcServer.Run()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,24 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_organization
|
NAME=open_im_organization
|
||||||
BIN_DIR=../../../bin/
|
BIN_DIR=../../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -15,8 +27,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package main
|
|||||||
import (
|
import (
|
||||||
"Open_IM/internal/rpc/organization"
|
"Open_IM/internal/rpc/organization"
|
||||||
"Open_IM/pkg/common/config"
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/constant"
|
||||||
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
@@ -10,8 +12,15 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
defaultPorts := config.Config.RpcPort.OpenImOrganizationPort
|
defaultPorts := config.Config.RpcPort.OpenImOrganizationPort
|
||||||
rpcPort := flag.Int("port", defaultPorts[0], "get RpcOrganizationPort from cmd,default 11200 as port")
|
rpcPort := flag.Int("port", defaultPorts[0], "get RpcOrganizationPort from cmd,default 11200 as port")
|
||||||
|
prometheusPort := flag.Int("prometheus_port", config.Config.Prometheus.OrganizationPrometheusPort[0], "organizationPrometheusPort default listen port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
fmt.Println("start organization rpc server, port: ", *rpcPort)
|
fmt.Println("start organization rpc server, port: ", *rpcPort, ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
rpcServer := organization.NewServer(*rpcPort)
|
rpcServer := organization.NewServer(*rpcPort)
|
||||||
|
go func() {
|
||||||
|
err := promePkg.StartPromeSrv(*prometheusPort)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
rpcServer.Run()
|
rpcServer.Run()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
|
||||||
|
|
||||||
BINARY_NAME=open_im_statistics
|
|
||||||
BIN_DIR=../../../bin/
|
|
||||||
|
|
||||||
all: gotool build
|
|
||||||
|
|
||||||
build:
|
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
|
||||||
|
|
||||||
run:
|
|
||||||
@go run ./
|
|
||||||
|
|
||||||
gotool:
|
|
||||||
go fmt ./
|
|
||||||
go vet ./
|
|
||||||
|
|
||||||
install:
|
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@if [ -f ${BINARY_NAME} ] ; then rm ${BINARY_NAME} ; fi
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/internal/rpc/statistics"
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"flag"
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
defaultPorts := config.Config.RpcPort.OpenImStatisticsPort
|
|
||||||
rpcPort := flag.Int("port", defaultPorts[0], "rpc listening port")
|
|
||||||
flag.Parse()
|
|
||||||
fmt.Println("start statistics rpc server, port: ", *rpcPort)
|
|
||||||
rpcServer := statistics.NewStatisticsServer(*rpcPort)
|
|
||||||
rpcServer.Run()
|
|
||||||
}
|
|
||||||
@@ -1,12 +1,24 @@
|
|||||||
.PHONY: all build run gotool install clean help
|
.PHONY: all build run gotool install clean help
|
||||||
|
|
||||||
BINARY_NAME=open_im_user
|
NAME=open_im_user
|
||||||
BIN_DIR=../../../bin/
|
BIN_DIR=../../../bin/
|
||||||
|
|
||||||
|
OS:= $(or $(os),linux)
|
||||||
|
ARCH:=$(or $(arch),amd64)
|
||||||
all: gotool build
|
all: gotool build
|
||||||
|
|
||||||
|
ifeq ($(OS),windows)
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}.exe
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
BINARY_NAME=${NAME}
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
build:
|
build:
|
||||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s"
|
CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -ldflags="-w -s"
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@go run ./
|
@go run ./
|
||||||
@@ -15,8 +27,7 @@ gotool:
|
|||||||
go fmt ./
|
go fmt ./
|
||||||
go vet ./
|
go vet ./
|
||||||
|
|
||||||
install:
|
install:build
|
||||||
make build
|
|
||||||
mv ${BINARY_NAME} ${BIN_DIR}
|
mv ${BINARY_NAME} ${BIN_DIR}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package main
|
|||||||
import (
|
import (
|
||||||
"Open_IM/internal/rpc/user"
|
"Open_IM/internal/rpc/user"
|
||||||
"Open_IM/pkg/common/config"
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/constant"
|
||||||
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
@@ -10,8 +12,15 @@ import (
|
|||||||
func main() {
|
func main() {
|
||||||
defaultPorts := config.Config.RpcPort.OpenImUserPort
|
defaultPorts := config.Config.RpcPort.OpenImUserPort
|
||||||
rpcPort := flag.Int("port", defaultPorts[0], "rpc listening port")
|
rpcPort := flag.Int("port", defaultPorts[0], "rpc listening port")
|
||||||
|
prometheusPort := flag.Int("prometheus_port", config.Config.Prometheus.UserPrometheusPort[0], "userPrometheusPort default listen port")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
fmt.Println("start user rpc server, port: ", *rpcPort)
|
fmt.Println("start user rpc server, port: ", *rpcPort, ", OpenIM version: ", constant.CurrentVersion, "\n")
|
||||||
rpcServer := user.NewUserServer(*rpcPort)
|
rpcServer := user.NewUserServer(*rpcPort)
|
||||||
|
go func() {
|
||||||
|
err := promePkg.StartPromeSrv(*prometheusPort)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
rpcServer.Run()
|
rpcServer.Run()
|
||||||
}
|
}
|
||||||
|
|||||||
+204
-80
@@ -2,64 +2,75 @@
|
|||||||
# The class cannot be named by Pascal or camel case.
|
# The class cannot be named by Pascal or camel case.
|
||||||
# If it is not used, the corresponding structure will not be set,
|
# If it is not used, the corresponding structure will not be set,
|
||||||
# and it will not be read naturally.
|
# and it will not be read naturally.
|
||||||
serverversion: 2.0.0
|
serverversion: 2.3.1
|
||||||
#---------------Infrastructure configuration---------------------#
|
#---------------Infrastructure configuration---------------------#
|
||||||
etcd:
|
etcd:
|
||||||
etcdSchema: openim #默认即可
|
etcdSchema: openim #默认即可
|
||||||
etcdAddr: [ 127.0.0.1:2379 ] #单机部署时,默认即可
|
etcdAddr: [ 127.0.0.1:2379 ] #单机部署时,默认即可
|
||||||
|
userName:
|
||||||
k8sMod: false #开启k8s模式 使用pod里面环境变量请求services调用服务 而并非etcd
|
password:
|
||||||
|
secret:
|
||||||
|
|
||||||
mysql:
|
mysql:
|
||||||
dbMysqlAddress: [ 127.0.0.1:13306 ] #mysql地址 目前仅支持单机,默认即可
|
dbMysqlAddress: [ 127.0.0.1:13306 ] #mysql地址 目前仅支持单机,默认即可
|
||||||
dbMysqlUserName: root #mysql用户名,建议修改
|
dbMysqlUserName: #mysql用户名,建议修改
|
||||||
dbMysqlPassword: openIM # mysql密码,建议修改
|
dbMysqlPassword: # mysql密码,建议修改
|
||||||
dbMysqlDatabaseName: openIM_v2 #默认即可
|
dbMysqlDatabaseName: openIM_v2 #默认即可
|
||||||
dbTableName: eMsg #默认即可
|
dbTableName: eMsg #默认即可
|
||||||
dbMsgTableNum: 1
|
dbMsgTableNum: 1
|
||||||
dbMaxOpenConns: 20
|
dbMaxOpenConns: 100
|
||||||
dbMaxIdleConns: 10
|
dbMaxIdleConns: 10
|
||||||
dbMaxLifeTime: 120
|
dbMaxLifeTime: 5
|
||||||
|
logLevel: 1 #1=slient 2=error 3=warn 4=info
|
||||||
|
slowThreshold: 500
|
||||||
|
|
||||||
mongo:
|
mongo:
|
||||||
dbUri: ""#当dbUri值不为空则直接使用该值
|
dbUri: ""#当dbUri值不为空则直接使用该值
|
||||||
dbAddress: 127.0.0.1:37017 #单机时为mongo地址,使用分片集群时,为mongos地址 默认即可
|
#dbAddress: 127.0.0.1:37017 #单机时为mongo地址,使用分片集群时,为mongos地址 默认即可
|
||||||
|
dbAddress: [ 127.0.0.1:37017 ] #单机时为mongo地址,使用分片集群时,为mongos地址 默认即可
|
||||||
dbDirect: false
|
dbDirect: false
|
||||||
dbTimeout: 60
|
dbTimeout: 60
|
||||||
dbDatabase: openIM #mongo db 默认即可
|
dbDatabase: openIM #mongo db 默认即可
|
||||||
dbSource: admin
|
dbSource: admin
|
||||||
dbUserName: #mongo用户名,建议先不设置
|
dbUserName: #mongo用户名,建议先不设置
|
||||||
dbPassword: #mongo密码,建议先不设置
|
dbPassword: #mongo密码,建议先不设置
|
||||||
dbMaxPoolSize: 100
|
dbMaxPoolSize: 100
|
||||||
dbRetainChatRecords: 3650 #mongo保存离线消息时间(天),根据需求修改
|
dbRetainChatRecords: 3650 #mongo保存离线消息时间(天),根据需求修改
|
||||||
|
chatRecordsClearTime: "0 3 * * *" # 每天凌晨3点清除消息,该配置和linux定时任务一样, 清理操作建议设置在用户活跃少的时候 # 0 3 * * *
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
dbAddress: [ 127.0.0.1:16379 ] #redis地址 单机时,填写一个地址即可,使用redis集群时候,填写集群中多个节点地址(主从地址都可以填写,增加容灾能力),默认即可
|
dbAddress: [ 127.0.0.1:16379 ] #redis地址 单机时,填写一个地址即可,使用redis集群时候,填写集群中多个节点地址(主从地址都可以填写,增加容灾能力),默认即可
|
||||||
dbMaxIdle: 128
|
dbMaxIdle: 128
|
||||||
dbMaxActive: 0
|
dbMaxActive: 0
|
||||||
dbIdleTimeout: 120
|
dbIdleTimeout: 120
|
||||||
dbPassWord: openIM #redis密码 建议修改
|
dbUserName: #only redis version 6.0+ need username
|
||||||
|
dbPassWord: #redis密码 建议修改
|
||||||
enableCluster: false #如果外部redis以集群方式启动,需要打开此开关
|
enableCluster: false #如果外部redis以集群方式启动,需要打开此开关
|
||||||
|
|
||||||
kafka:
|
kafka:
|
||||||
|
SASLUserName:
|
||||||
|
SASLPassword:
|
||||||
ws2mschat:
|
ws2mschat:
|
||||||
addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可
|
addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可
|
||||||
topic: "ws2ms_chat"
|
topic: "ws2ms_chat" #用于mongo和mysql保存消息
|
||||||
ws2mschatoffline:
|
# ws2mschatoffline:
|
||||||
addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可
|
# addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可
|
||||||
topic: "ws2ms_chat_offline"
|
# topic: "ws2ms_chat_offline" #原为离线用户消息处理,目前暂时弃用
|
||||||
msgtomongo:
|
msgtomongo:
|
||||||
addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可
|
addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可
|
||||||
topic: "msg_to_mongo"
|
topic: "msg_to_mongo"
|
||||||
ms2pschat:
|
ms2pschat:
|
||||||
addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可
|
addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可
|
||||||
topic: "ms2ps_chat"
|
topic: "ms2ps_chat" #消息push
|
||||||
|
msgtomodify:
|
||||||
|
addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可
|
||||||
|
topic: "msg_to_modify"
|
||||||
consumergroupid:
|
consumergroupid:
|
||||||
msgToTransfer: mongo
|
msgToTransfer: mongo
|
||||||
msgToMongo: mongo_ex
|
msgToMongo: mongo_ex
|
||||||
msgToMySql: mysql
|
msgToMySql: mysql
|
||||||
msgToPush: push
|
msgToPush: push
|
||||||
|
msgToModify: modify
|
||||||
|
|
||||||
|
|
||||||
#---------------Internal service configuration---------------------#
|
#---------------Internal service configuration---------------------#
|
||||||
@@ -70,11 +81,11 @@ kafka:
|
|||||||
#如果是单机模式,用0.0.0.0或者不填,默认即可
|
#如果是单机模式,用0.0.0.0或者不填,默认即可
|
||||||
serverip: 0.0.0.0
|
serverip: 0.0.0.0
|
||||||
|
|
||||||
rpcRegisterIP: 127.0.0.1
|
#作为rpc时,注册到etcd的地址,单机默认即可,如果是集群部署,需要修改(具体使用内网地址还是外网地址,要依情况而定,目的是api/gateway能访问到)
|
||||||
|
rpcRegisterIP:
|
||||||
|
#默认即可
|
||||||
listenIP: 0.0.0.0
|
listenIP: 0.0.0.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# endpoints 内部组件间访问的端点host名称,访问时,可以内部直接访问 host:port 来访问
|
# endpoints 内部组件间访问的端点host名称,访问时,可以内部直接访问 host:port 来访问
|
||||||
endpoints:
|
endpoints:
|
||||||
api: openim_api
|
api: openim_api
|
||||||
@@ -86,9 +97,7 @@ endpoints:
|
|||||||
rpc_group: openim_rpc_group
|
rpc_group: openim_rpc_group
|
||||||
rpc_msg: openim_rpc_msg
|
rpc_msg: openim_rpc_msg
|
||||||
rpc_user: openim_rpc_user
|
rpc_user: openim_rpc_user
|
||||||
rpc_statistic: openim_rpc_statistic
|
|
||||||
rpc_admin_cms: openim_rpc_admin_cms
|
rpc_admin_cms: openim_rpc_admin_cms
|
||||||
rpc_message_cms: openim_rpc_admin_cms
|
|
||||||
rpc_office: openim_rpc_office
|
rpc_office: openim_rpc_office
|
||||||
|
|
||||||
api:
|
api:
|
||||||
@@ -100,34 +109,47 @@ cmsapi:
|
|||||||
sdk:
|
sdk:
|
||||||
openImSdkWsPort: [ 10003 ] #jssdk服务端口,默认即可,项目中使用jssdk才需开放此端口或做nginx转发
|
openImSdkWsPort: [ 10003 ] #jssdk服务端口,默认即可,项目中使用jssdk才需开放此端口或做nginx转发
|
||||||
dataDir: [ ../db/sdk/ ]
|
dataDir: [ ../db/sdk/ ]
|
||||||
|
openImWsAddress: ws://127.0.0.1:10001
|
||||||
|
openImApiAddress: http://127.0.0.1:10002
|
||||||
|
|
||||||
#对象存储服务,以下配置二选一,目前支持两种,腾讯云和minio,二者配置好其中一种即可(如果使用minio参考https://doc.rentsoft.cn/#/qa/minio搭建minio服务器)
|
#对象存储服务,以下配置二选一,目前支持两种,腾讯云和minio,二者配置好其中一种即可(如果使用minio参考https://doc.rentsoft.cn/#/qa/minio搭建minio服务器)
|
||||||
credential: #腾讯cos,发送图片、视频、文件时需要,请自行申请后替换,必须修改
|
credential: #腾讯cos,发送图片、视频、文件时需要,请自行申请后替换,必须修改
|
||||||
tencent:
|
tencent:
|
||||||
appID: 1302656840
|
appID:
|
||||||
region: ap-chengdu
|
region:
|
||||||
bucket: echat-1302656840
|
bucket:
|
||||||
secretID: AKIDGNYVChzIQinu7QEgtNp0hnNgqcV8vZTC1
|
secretID:
|
||||||
secretKey: kz15vW83qM6dBUWIq681eBZA0c0vlIbe1
|
secretKey:
|
||||||
minio: #MinIO 发送图片、视频、文件时需要,请自行申请后替换,必须修改。 客户端初始化InitSDK,中 object_storage参数为minio
|
minio: #MinIO 发送图片、视频、文件时需要,请自行申请后替换,必须修改。 客户端初始化InitSDK,中 object_storage参数为minio
|
||||||
bucket: openim # 存储内容桶
|
bucket: openim # 存储内容桶
|
||||||
appBucket: app # 存储app的桶
|
appBucket: app # 存储app的桶
|
||||||
location: us-east-1
|
location: us-east-1
|
||||||
endpoint: http://127.0.0.1:10005 #minio外网ip 这个ip是给客户端访问的
|
endpoint: #minio外网ip 这个ip是给客户端访问的
|
||||||
endpointInner: http://127.0.0.1:10005 #minio内网地址 如果im server 可以通过内网访问到 minio就可以填写
|
endpointInner: http://127.0.0.1:10005 #minio内网地址 如果im server 可以通过内网访问到 minio就可以
|
||||||
endpointInnerEnable: true #是否启用minio内网地址 启用可以让桶初始化,IM server连接minio走内网地址访问
|
endpointInnerEnable: true #是否启用minio内网地址 启用可以让桶初始化,IM server连接minio走内网地址访问
|
||||||
accessKeyID: user12345
|
accessKeyID:
|
||||||
secretAccessKey: key12345
|
secretAccessKey:
|
||||||
|
storageTime: 50 #文件在minio中保存的时间
|
||||||
|
isDistributedMod: false # 是否分布式多硬盘部署 默认docker-compose中为false
|
||||||
ali: # ali oss
|
ali: # ali oss
|
||||||
regionID: "oss-cn-beijing"
|
regionID:
|
||||||
accessKeyID: ""
|
accessKeyID:
|
||||||
accessKeySecret: ""
|
accessKeySecret:
|
||||||
stsEndpoint: "sts.cn-beijing.aliyun.com"
|
stsEndpoint:
|
||||||
ossEndpoint: "oss-cn-beijing.aliyuncs.com"
|
ossEndpoint:
|
||||||
bucket: "bucket1"
|
bucket:
|
||||||
finalHost: "http://bucket1.oss-cn-beijing.aliyuncs.com"
|
finalHost:
|
||||||
stsDurationSeconds: 3600
|
stsDurationSeconds:
|
||||||
OssRoleArn: "acs:ram::xxx:role/xxx"
|
OssRoleArn:
|
||||||
|
aws:
|
||||||
|
accessKeyID: #AssumeRole用户关联的accessKeyID
|
||||||
|
accessKeySecret: #AssumeRole用户关联的accessKeySecrect
|
||||||
|
region: #分区
|
||||||
|
bucket: #桶
|
||||||
|
finalHost: #对外Host
|
||||||
|
roleArn: #RoleArn
|
||||||
|
externalId: #角色扩展Id
|
||||||
|
roleSessionName: #角色SESSION名称
|
||||||
|
|
||||||
|
|
||||||
rpcport: #rpc服务端口 默认即可
|
rpcport: #rpc服务端口 默认即可
|
||||||
@@ -138,13 +160,12 @@ rpcport: #rpc服务端口 默认即可
|
|||||||
openImGroupPort: [ 10150 ]
|
openImGroupPort: [ 10150 ]
|
||||||
openImAuthPort: [ 10160 ]
|
openImAuthPort: [ 10160 ]
|
||||||
openImPushPort: [ 10170 ]
|
openImPushPort: [ 10170 ]
|
||||||
openImStatisticsPort: [ 10180 ]
|
|
||||||
openImMessageCmsPort: [ 10190 ]
|
|
||||||
openImAdminCmsPort: [ 10200 ]
|
openImAdminCmsPort: [ 10200 ]
|
||||||
openImOfficePort: [ 10210 ]
|
openImOfficePort: [ 10210 ]
|
||||||
openImOrganizationPort: [ 10220 ]
|
openImOrganizationPort: [ 10220 ]
|
||||||
openImConversationPort: [ 10230 ]
|
openImConversationPort: [ 10230 ]
|
||||||
openImCachePort: [10240]
|
openImCachePort: [ 10240 ]
|
||||||
|
openImRealTimeCommPort: [ 11300 ]
|
||||||
c2c:
|
c2c:
|
||||||
callbackBeforeSendMsg:
|
callbackBeforeSendMsg:
|
||||||
switch: false
|
switch: false
|
||||||
@@ -158,13 +179,11 @@ rpcport: #rpc服务端口 默认即可
|
|||||||
rpcregistername: #rpc注册服务名,默认即可
|
rpcregistername: #rpc注册服务名,默认即可
|
||||||
openImUserName: User
|
openImUserName: User
|
||||||
openImFriendName: Friend
|
openImFriendName: Friend
|
||||||
openImOfflineMessageName: OfflineMessage
|
openImMsgName: Msg
|
||||||
openImPushName: Push
|
openImPushName: Push
|
||||||
openImOnlineMessageRelayName: OnlineMessageRelay
|
openImRelayName: Relay
|
||||||
openImGroupName: Group
|
openImGroupName: Group
|
||||||
openImAuthName: Auth
|
openImAuthName: Auth
|
||||||
openImStatisticsName: Statistics
|
|
||||||
openImMessageCMSName: MessageCMS
|
|
||||||
openImAdminCMSName: AdminCMS
|
openImAdminCMSName: AdminCMS
|
||||||
openImOfficeName: Office
|
openImOfficeName: Office
|
||||||
openImOrganizationName: Organization
|
openImOrganizationName: Organization
|
||||||
@@ -174,7 +193,7 @@ rpcregistername: #rpc注册服务名,默认即可
|
|||||||
log:
|
log:
|
||||||
storageLocation: ../logs/
|
storageLocation: ../logs/
|
||||||
rotationTime: 24
|
rotationTime: 24
|
||||||
remainRotationCount: 3 #日志数量
|
remainRotationCount: 2 #日志数量
|
||||||
#日志级别 6表示全都打印,测试阶段建议设置为6
|
#日志级别 6表示全都打印,测试阶段建议设置为6
|
||||||
remainLogLevel: 6
|
remainLogLevel: 6
|
||||||
elasticSearchSwitch: false
|
elasticSearchSwitch: false
|
||||||
@@ -197,23 +216,41 @@ longconnsvr:
|
|||||||
push:
|
push:
|
||||||
tpns: #腾讯推送,暂未测试 暂不要使用
|
tpns: #腾讯推送,暂未测试 暂不要使用
|
||||||
ios:
|
ios:
|
||||||
accessID: 1600018281
|
accessID:
|
||||||
secretKey: 3cd68a77a95b89e5089a1aca523f318f
|
secretKey:
|
||||||
android:
|
android:
|
||||||
accessID: 111
|
accessID:
|
||||||
secretKey: 111
|
secretKey:
|
||||||
enable: false
|
enable: false # true or false (bool)
|
||||||
jpns: #极光推送 在极光后台申请后,修改以下四项,必须修改
|
jpns: #极光推送 在极光后台申请后,修改以下四项,必须修改
|
||||||
appKey: cf47465a368f24c659608e7e
|
appKey:
|
||||||
masterSecret: 02204efe3f3832947a236ee5
|
masterSecret:
|
||||||
pushUrl: "https://api.jpush.cn/v3/push"
|
pushUrl:
|
||||||
pushIntent: "intent:#Intent;component=io.openim.app.enterprisechat/io.openim.app.enterprisechat.MainActivity;end"
|
pushIntent:
|
||||||
enable: true
|
enable: false # true or false (bool)
|
||||||
getui: #个推推送,暂未测试 暂不要使用
|
getui: #个推推送
|
||||||
pushUrl: "https://restapi.getui.com/v2/$appId"
|
pushUrl:
|
||||||
masterSecret: ""
|
masterSecret: ""
|
||||||
appKey: ""
|
appKey: ""
|
||||||
intent: ""
|
intent: ""
|
||||||
|
enable: # true or false (bool)
|
||||||
|
channelID: ""
|
||||||
|
channelName: ""
|
||||||
|
channel:
|
||||||
|
HW:
|
||||||
|
category:
|
||||||
|
XM:
|
||||||
|
channelID:
|
||||||
|
OPPO:
|
||||||
|
channelID:
|
||||||
|
fcm: #firebase cloud message 消息推送
|
||||||
|
serviceAccount: #帐号文件,此处需要改修配置,并且这个文件放在 config目录下
|
||||||
|
enable: false
|
||||||
|
mob: #袤博推送
|
||||||
|
appKey: #帐号文件,此处需要改修配置,并且这个文件放在 config目录下
|
||||||
|
pushUrl:
|
||||||
|
scheme:
|
||||||
|
appSecret:
|
||||||
enable: false
|
enable: false
|
||||||
|
|
||||||
|
|
||||||
@@ -224,12 +261,12 @@ manager:
|
|||||||
secrets: [ "openIM1","openIM2", "openIM333", "openIMAdmin"]
|
secrets: [ "openIM1","openIM2", "openIM333", "openIMAdmin"]
|
||||||
appSysNotificationName: "系统通知"
|
appSysNotificationName: "系统通知"
|
||||||
|
|
||||||
secret: tuoyun
|
secret:
|
||||||
# 多端互踢策略
|
# 多端互踢策略
|
||||||
# 1:多平台登录:Android、iOS、Windows、Mac 每种平台只能一个在线,web端可以多个同时在线
|
# 1:多平台登录:Android、iOS、Windows、Mac 每种平台只能一个在线,web端可以多个同时在线
|
||||||
multiloginpolicy: 1
|
multiloginpolicy: 1
|
||||||
|
|
||||||
#chat log insert to db
|
#msg log insert to db
|
||||||
chatpersistencemysql: true
|
chatpersistencemysql: true
|
||||||
#可靠性存储
|
#可靠性存储
|
||||||
reliablestorage: false
|
reliablestorage: false
|
||||||
@@ -242,11 +279,11 @@ singleMessageHasReadReceiptEnable: true
|
|||||||
|
|
||||||
#token config
|
#token config
|
||||||
tokenpolicy:
|
tokenpolicy:
|
||||||
accessSecret: "open_im_server" #token生成相关,默认即可
|
accessSecret: #token生成相关,默认即可
|
||||||
# Token effective time day as a unit
|
# Token effective time day as a unit
|
||||||
accessExpire: 3650 #token过期时间(天) 默认即可
|
accessExpire: #token过期时间(天) 默认即可
|
||||||
messageverify:
|
messageverify:
|
||||||
friendVerify: false
|
friendVerify:
|
||||||
|
|
||||||
# c2c:
|
# c2c:
|
||||||
# callbackBeforeSendMsg:
|
# callbackBeforeSendMsg:
|
||||||
@@ -261,6 +298,7 @@ messageverify:
|
|||||||
iospush:
|
iospush:
|
||||||
pushSound: "xxx"
|
pushSound: "xxx"
|
||||||
badgeCount: true
|
badgeCount: true
|
||||||
|
production: false
|
||||||
|
|
||||||
callback:
|
callback:
|
||||||
# callback url 需要自行更换callback url
|
# callback url 需要自行更换callback url
|
||||||
@@ -280,7 +318,10 @@ callback:
|
|||||||
callbackAfterSendGroupMsg:
|
callbackAfterSendGroupMsg:
|
||||||
enable: false
|
enable: false
|
||||||
callbackTimeOut: 2
|
callbackTimeOut: 2
|
||||||
callbackWordFilter:
|
callbackAfterConsumeGroupMsg:
|
||||||
|
enable: false
|
||||||
|
callbackTimeOut: 2
|
||||||
|
callbackMsgModify:
|
||||||
enable: false
|
enable: false
|
||||||
callbackTimeOut: 2
|
callbackTimeOut: 2
|
||||||
callbackFailedContinue: true
|
callbackFailedContinue: true
|
||||||
@@ -290,10 +331,42 @@ callback:
|
|||||||
callbackUserOffline:
|
callbackUserOffline:
|
||||||
enable: false
|
enable: false
|
||||||
callbackTimeOut: 2
|
callbackTimeOut: 2
|
||||||
|
callbackUserKickOff:
|
||||||
|
enable: false
|
||||||
|
callbackTimeOut: 2
|
||||||
callbackOfflinePush:
|
callbackOfflinePush:
|
||||||
enable: false
|
enable: false
|
||||||
callbackTimeOut: 2
|
callbackTimeOut: 2
|
||||||
callbackFailedContinue: true # 回调超时是否继续离线推送
|
callbackFailedContinue: true # 回调超时是否继续离线推送
|
||||||
|
callbackOnlinePush:
|
||||||
|
enable: false
|
||||||
|
callbackTimeOut: 2
|
||||||
|
callbackFailedContinue: true # 回调超时是否继续离线推送
|
||||||
|
callbackSuperGroupOnlinePush:
|
||||||
|
enable: false
|
||||||
|
callbackTimeOut: 2
|
||||||
|
callbackFailedContinue: true # 回调超时是否继续离线推送
|
||||||
|
callbackBeforeAddFriend:
|
||||||
|
enable: false
|
||||||
|
callbackTimeOut: 2
|
||||||
|
callbackFailedContinue: true # 回调超时是否继续
|
||||||
|
callbackBeforeCreateGroup:
|
||||||
|
enable: false
|
||||||
|
callbackTimeOut: 2
|
||||||
|
callbackFailedContinue: true # 回调超时是否继续
|
||||||
|
callbackBeforeMemberJoinGroup:
|
||||||
|
enable: false
|
||||||
|
callbackTimeOut: 2
|
||||||
|
callbackFailedContinue: true # 回调超时是否继续
|
||||||
|
callbackBeforeSetGroupMemberInfo:
|
||||||
|
enable: false
|
||||||
|
callbackTimeOut: 2
|
||||||
|
callbackFailedContinue: true # 回调超时是否继续
|
||||||
|
callbackSetMessageReactionExtensions:
|
||||||
|
enable: false
|
||||||
|
callbackTimeOut: 2
|
||||||
|
callbackFailedContinue: true # 回调超时是否继续
|
||||||
|
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
groupCreated:
|
groupCreated:
|
||||||
@@ -342,7 +415,7 @@ notification:
|
|||||||
desc: "memberQuit desc"
|
desc: "memberQuit desc"
|
||||||
ext: "memberQuit ext"
|
ext: "memberQuit ext"
|
||||||
defaultTips:
|
defaultTips:
|
||||||
tips: "quit group chat" # group info changed by xx
|
tips: "quit group msg" # group info changed by xx
|
||||||
|
|
||||||
groupApplicationAccepted:
|
groupApplicationAccepted:
|
||||||
conversation:
|
conversation:
|
||||||
@@ -614,6 +687,19 @@ notification:
|
|||||||
defaultTips:
|
defaultTips:
|
||||||
tips: "Remove a blocked user"
|
tips: "Remove a blocked user"
|
||||||
|
|
||||||
|
friendInfoUpdated:
|
||||||
|
conversation:
|
||||||
|
reliabilityLevel: 2
|
||||||
|
unreadCount: false
|
||||||
|
offlinePush:
|
||||||
|
switch: true
|
||||||
|
title: "friend info updated"
|
||||||
|
desc: "friend info updated"
|
||||||
|
ext: "friend info updated"
|
||||||
|
defaultTips:
|
||||||
|
tips: "friend info updated"
|
||||||
|
|
||||||
|
|
||||||
#####################user#########################
|
#####################user#########################
|
||||||
userInfoUpdated:
|
userInfoUpdated:
|
||||||
conversation:
|
conversation:
|
||||||
@@ -630,7 +716,7 @@ notification:
|
|||||||
#####################conversation#########################
|
#####################conversation#########################
|
||||||
conversationOptUpdate:
|
conversationOptUpdate:
|
||||||
conversation:
|
conversation:
|
||||||
reliabilityLevel: 2
|
reliabilityLevel: 1
|
||||||
unreadCount: false
|
unreadCount: false
|
||||||
offlinePush:
|
offlinePush:
|
||||||
switch: true
|
switch: true
|
||||||
@@ -688,22 +774,60 @@ demo:
|
|||||||
listenIP: 0.0.0.0
|
listenIP: 0.0.0.0
|
||||||
#demo对外服务端口,默认即可,需要开放此端口或做nginx转发
|
#demo对外服务端口,默认即可,需要开放此端口或做nginx转发
|
||||||
openImDemoPort: [ 10004 ]
|
openImDemoPort: [ 10004 ]
|
||||||
alismsverify: #阿里云短信配置,在阿里云申请成功后修改以下四项,必须修改
|
alismsverify: #阿里云短信配置,在阿里云申请成功后修改以下四项,enable为true则必须修改,阿里云为默认短信验证方式
|
||||||
accessKeyId: LTAI5tJPkn4HuuePdiLdGqe7
|
accessKeyId:
|
||||||
accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV
|
accessKeySecret:
|
||||||
signName: 托云信息技术
|
signName:
|
||||||
verificationCodeTemplateCode: SMS_226810164
|
verificationCodeTemplateCode:
|
||||||
|
enable: false
|
||||||
|
tencentsms: #腾讯云短信配置,在腾讯云申请成功后,修改以下选项,enable为true则必须修改
|
||||||
|
appID:
|
||||||
|
region:
|
||||||
|
secretID:
|
||||||
|
secretKey:
|
||||||
|
signName:
|
||||||
|
verificationCodeTemplateCode:
|
||||||
|
enable: true
|
||||||
superCode: 666666 #超级验证码,建议修改掉,收不到短信验证码时可以用此替代
|
superCode: 666666 #超级验证码,建议修改掉,收不到短信验证码时可以用此替代
|
||||||
|
needInvitationCode: false
|
||||||
# second
|
# second
|
||||||
codeTTL: 300
|
codeTTL: 60
|
||||||
|
useSuperCode: true
|
||||||
mail: #仅支持qq邮箱,具体操作参考 https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256 必须修改
|
mail: #仅支持qq邮箱,具体操作参考 https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256 必须修改
|
||||||
title: "openIM"
|
title:
|
||||||
senderMail: "765567899@qq.com"
|
senderMail:
|
||||||
senderAuthorizationCode: "gxyausfoevlzbfag"
|
senderAuthorizationCode:
|
||||||
smtpAddr: "smtp.qq.com"
|
smtpAddr:
|
||||||
smtpPort: 25 #需开放此端口 出口方向
|
smtpPort: #需开放此端口 出口方向
|
||||||
testDepartMentID: 001
|
testDepartMentID: 001
|
||||||
imAPIURL: http://127.0.0.1:10002
|
imAPIURL: http://127.0.0.1:10002
|
||||||
|
onboardProcess: false # 是否开启注册流程
|
||||||
|
createOrganizationUserAndJoinDepartment: false
|
||||||
|
joinDepartmentIDList: [] # 用户注册进来默认加的部门ID列表 不填就随机
|
||||||
|
joinDepartmentGroups: false # 注册是否加部门群
|
||||||
|
oaNotification: false # 注册是否发送OA通知
|
||||||
|
|
||||||
|
workMoment:
|
||||||
|
onlyFriendCanSee: false
|
||||||
|
|
||||||
|
|
||||||
rtc:
|
rtc:
|
||||||
signalTimeout: 35
|
signalTimeout: 35
|
||||||
|
|
||||||
|
# prometheus每个服务监听的端口数量需要和rpc port保持一致
|
||||||
|
prometheus:
|
||||||
|
enable: false
|
||||||
|
userPrometheusPort: [ 20110 ]
|
||||||
|
friendPrometheusPort: [ 20120 ]
|
||||||
|
messagePrometheusPort: [ 20130 ]
|
||||||
|
messageGatewayPrometheusPort: [ 20140 ]
|
||||||
|
groupPrometheusPort: [ 20150 ]
|
||||||
|
authPrometheusPort: [ 20160 ]
|
||||||
|
pushPrometheusPort: [ 20170 ]
|
||||||
|
adminCmsPrometheusPort: [ 20200 ]
|
||||||
|
officePrometheusPort: [ 20210 ]
|
||||||
|
organizationPrometheusPort: [ 20220 ]
|
||||||
|
conversationPrometheusPort: [ 20230 ]
|
||||||
|
cachePrometheusPort: [ 20240 ]
|
||||||
|
realTimeCommPrometheusPort: [ 21300 ]
|
||||||
|
messageTransferPrometheusPort: [ 21400, 21401, 21402, 21403 ] # 端口数量和 script/path_info.cfg msg_transfer_service_num保持一致
|
||||||
|
|||||||
@@ -0,0 +1,205 @@
|
|||||||
|
upstream im_msg_gateway{
|
||||||
|
server 127.0.0.1:10001; #IM消息服务器地址 根据部署情况可指定多台
|
||||||
|
}
|
||||||
|
upstream im_api{
|
||||||
|
server 127.0.0.1:10002; #IM群组用户api服务器地址 根据部署情况可指定多台
|
||||||
|
}
|
||||||
|
upstream im_jssdk_gateway{
|
||||||
|
server 127.0.0.1:10003; #IM jssdk服务器地址 根据部署情况可指定多台
|
||||||
|
}
|
||||||
|
upstream im_demo{
|
||||||
|
server 127.0.0.1:10004; #IM demo登录注册服务器地址 根据部署情况可指定多台
|
||||||
|
}
|
||||||
|
upstream storage {
|
||||||
|
server 127.0.0.1:10005; #MinIO服务器地址 暂时支持1台
|
||||||
|
}
|
||||||
|
upstream im_admin{
|
||||||
|
server 127.0.0.1:10006; #IM admin服务器地址 根据部署情况可指定多台
|
||||||
|
}
|
||||||
|
upstream im_grafana{
|
||||||
|
server 127.0.0.1:10007; #IM 统计服务器地址 docker-compose启动所在机器
|
||||||
|
}
|
||||||
|
upstream im_chat{
|
||||||
|
server 127.0.0.1:10008; #IM 商业版登录注册服务器地址 根据部署情况可指定多台
|
||||||
|
}
|
||||||
|
upstream im_complete_admin{
|
||||||
|
server 127.0.0.1:10009; #IM 商业版admin地址 根据部署情况可指定多台
|
||||||
|
}
|
||||||
|
upstream im_organization{
|
||||||
|
server 127.0.0.1:10010; #IM 商业版组织架构服务器地址 根据部署情况可指定多台
|
||||||
|
}
|
||||||
|
upstream im_open_rtc{
|
||||||
|
server 127.0.0.1:7880; #rtc 音视频通话 服务器地址 根据部署情况可指定多台
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443;
|
||||||
|
server_name web.rentsoft.cn; #1 web im 端 域名
|
||||||
|
|
||||||
|
ssl on;
|
||||||
|
ssl_certificate /etc/nginx/conf.d/ssl/web.rentsoft.cn.crt; #2 证书
|
||||||
|
ssl_certificate_key /etc/nginx/conf.d/ssl/web.rentsoft.cn.key; #3 证书
|
||||||
|
ssl_session_timeout 5m;
|
||||||
|
gzip on;
|
||||||
|
gzip_min_length 1k;
|
||||||
|
gzip_buffers 4 16k;
|
||||||
|
gzip_comp_level 2;
|
||||||
|
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/wasm;
|
||||||
|
gzip_vary off;
|
||||||
|
gzip_disable "MSIE [1-6]\.";
|
||||||
|
error_page 405 =200 $uri;
|
||||||
|
|
||||||
|
default_type application/wasm;
|
||||||
|
location /{ #web demo
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-Ip $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_set_header X-NginX-Proxy true;
|
||||||
|
root /data1/online/Pc-Web-Demo/build/; # web im静态资源存放路径
|
||||||
|
index index.html;
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
}
|
||||||
|
location /msg_gateway { #10001 ws
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header X-real-ip $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_pass http://im_msg_gateway/;
|
||||||
|
}
|
||||||
|
location ^~/api/ { #10002 api
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header X-real-ip $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_pass http://im_api/;
|
||||||
|
}
|
||||||
|
location /jssdk_gateway { #10003 jssdk
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header X-real-ip $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_pass http://im_jssdk_gateway/;
|
||||||
|
}
|
||||||
|
location ^~/demo/ { # 10004 demo
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header X-real-ip $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_pass http://im_demo/;
|
||||||
|
}
|
||||||
|
location ^~/admin/ { #10006 admin
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header X-real-ip $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_pass http://im_admin/;
|
||||||
|
}
|
||||||
|
location ^~/grafana/ { #10007 prometheus
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header X-real-ip $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_pass http://im_grafana/;
|
||||||
|
}
|
||||||
|
location ^~/chat/ { #10008 chat login
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header X-real-ip $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_pass http://im_chat/;
|
||||||
|
}
|
||||||
|
location ^~/complete_admin/ { #10009 admin
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header X-real-ip $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_pass http://im_complete_admin/;
|
||||||
|
}
|
||||||
|
location ^~/organization/ { #10010 organization
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header X-real-ip $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_pass http://im_organization/;
|
||||||
|
}
|
||||||
|
location ^~/open_rtc/ { #7880 rtc
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header X-real-ip $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_pass http://im_open_rtc/;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name web.rentsoft.cn ; #1 web im 端 域名
|
||||||
|
rewrite ^(.*)$ https://${server_name}$1 permanent;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
ssl_session_timeout 5m;
|
||||||
|
listen 443;
|
||||||
|
server_name storage.rentsoft.cn; #1 MinIO存储域名
|
||||||
|
ssl on;
|
||||||
|
ssl_certificate /etc/nginx/conf.d/ssl/storage.rentsoft.cn.crt; #证书
|
||||||
|
ssl_certificate_key /etc/nginx/conf.d/ssl/storage.rentsoft.cn.key; #证书
|
||||||
|
gzip on;
|
||||||
|
gzip_min_length 1k;
|
||||||
|
gzip_buffers 4 16k;
|
||||||
|
gzip_comp_level 2;
|
||||||
|
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
|
||||||
|
gzip_vary off;
|
||||||
|
gzip_disable "MSIE [1-6]\.";
|
||||||
|
location / {
|
||||||
|
proxy_pass http://storage;
|
||||||
|
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_set_header Host $http_host;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
client_max_body_size 8000M;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443;
|
||||||
|
server_name admin.rentsoft.cn; #后台管理域名
|
||||||
|
ssl on;
|
||||||
|
ssl_certificate /etc/nginx/conf.d/ssl/admin.rentsoft.cn.crt; # 证书
|
||||||
|
ssl_certificate_key /etc/nginx/conf.d/ssl/admin.rentsoft.cn.key; #证书
|
||||||
|
ssl_session_timeout 5m;
|
||||||
|
gzip on;
|
||||||
|
gzip_min_length 1k;
|
||||||
|
gzip_buffers 4 16k;
|
||||||
|
gzip_comp_level 2;
|
||||||
|
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
|
||||||
|
gzip_vary off;
|
||||||
|
gzip_disable "MSIE [1-6]\.";
|
||||||
|
location / {
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-Ip $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_set_header X-NginX-Proxy true;
|
||||||
|
root /data1/online/Open-IM-Admin/dist/; #管理后台web静态资源存放路径
|
||||||
|
index index.html;
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name admin.rentsoft.cn; #管理后台 域名
|
||||||
|
rewrite ^(.*)$ https://${server_name}$1 permanent;
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
etcd:
|
||||||
|
userName:
|
||||||
|
password:
|
||||||
|
secret: openIM123 # etcd 配置密钥
|
||||||
|
|
||||||
|
mysql:
|
||||||
|
dbMysqlUserName: root #mysql用户名
|
||||||
|
dbMysqlPassword: openIM123 # mysql密码
|
||||||
|
|
||||||
|
mongo:
|
||||||
|
dbUserName: root #mongo用户名
|
||||||
|
dbPassword: openIM123 #mongo密码
|
||||||
|
|
||||||
|
redis:
|
||||||
|
dbUserName:
|
||||||
|
dbPassWord: openIM123 #redis密码
|
||||||
|
|
||||||
|
kafka:
|
||||||
|
SASLUserName:
|
||||||
|
SASLPassword:
|
||||||
|
|
||||||
|
credential:
|
||||||
|
minio:
|
||||||
|
endpoint: http://127.0.0.1:10005 #发图片视频文件需要填写
|
||||||
|
accessKeyID: root
|
||||||
|
secretAccessKey: openIM123
|
||||||
|
|
||||||
|
secret: tuoyun #建议修改
|
||||||
|
|
||||||
|
tokenpolicy:
|
||||||
|
accessSecret: "open_im_server" #token生成相关 建议修改
|
||||||
|
accessExpire: 90 #token过期时间(天) 默认即可
|
||||||
|
|
||||||
|
messageverify:
|
||||||
|
friendVerify: false #发送消息是否验证好友关系 false表示不验证好友关系
|
||||||
|
|
||||||
|
push:
|
||||||
|
getui:
|
||||||
|
pushUrl: "https://restapi.getui.com/v2/$appId"
|
||||||
|
masterSecret: "" #需添加
|
||||||
|
appKey: "" #需添加
|
||||||
|
enable: false #true启动个推推送
|
||||||
|
|
||||||
+22
-22
@@ -79,11 +79,11 @@ cmsapi:
|
|||||||
|
|
||||||
credential:
|
credential:
|
||||||
tencent:
|
tencent:
|
||||||
appID: 1302656840
|
appID:
|
||||||
region: ap-chengdu
|
region:
|
||||||
bucket: echat-1302656840
|
bucket:
|
||||||
secretID: AKIDGNYVChzIQinu7QEgtNp0hnNgqcV8vZTC
|
secretID:
|
||||||
secretKey: kz15vW83qM6dBUWIq681eBZA0c0vlIbe
|
secretKey:
|
||||||
|
|
||||||
|
|
||||||
rpcport:
|
rpcport:
|
||||||
@@ -131,16 +131,16 @@ longconnsvr:
|
|||||||
push:
|
push:
|
||||||
tpns:
|
tpns:
|
||||||
ios:
|
ios:
|
||||||
accessID: 1600018281
|
accessID:
|
||||||
secretKey: 3cd68a77a95b89e5089a1aca523f318f
|
secretKey:
|
||||||
android:
|
android:
|
||||||
accessID: 111
|
accessID:
|
||||||
secretKey: 111
|
secretKey:
|
||||||
jpns:
|
jpns:
|
||||||
appKey: cf47465a368f24c659608e7e
|
appKey:
|
||||||
masterSecret: 02204efe3f3832947a236ee5
|
masterSecret:
|
||||||
pushUrl: "https://api.jpush.cn/v3/push"
|
pushUrl:
|
||||||
pushIntent: "intent:#Intent;component=io.openim.app.enterprisechat/io.openim.app.enterprisechat.MainActivity;end"
|
pushIntent:
|
||||||
manager:
|
manager:
|
||||||
appManagerUid: ["openIM123456","openIM654321"]
|
appManagerUid: ["openIM123456","openIM654321"]
|
||||||
secrets: ["openIM1","openIM2"]
|
secrets: ["openIM1","openIM2"]
|
||||||
@@ -168,16 +168,16 @@ demoswitch: true
|
|||||||
demo:
|
demo:
|
||||||
openImDemoPort: [ 42233 ]
|
openImDemoPort: [ 42233 ]
|
||||||
alismsverify:
|
alismsverify:
|
||||||
accessKeyId: LTAI5tJPkn4HuuePdiLdGqe71
|
accessKeyId:
|
||||||
accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV1
|
accessKeySecret:
|
||||||
signName: OpenIM Corporation
|
signName:
|
||||||
verificationCodeTemplateCode: SMS_2268101641
|
verificationCodeTemplateCode:
|
||||||
superCode: 666666
|
superCode: 666666
|
||||||
mail:
|
mail:
|
||||||
title: "openIM"
|
title:
|
||||||
senderMail: "1765567899@qq.com"
|
senderMail:
|
||||||
senderAuthorizationCode: "1gxyausfoevlzbfag"
|
senderAuthorizationCode:
|
||||||
smtpAddr: "smtp.qq.com"
|
smtpAddr:
|
||||||
smtpPort: 25
|
smtpPort:
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ ADD ./open_im_admin_cms $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config", "/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config", "/Open-IM-Server/script"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: admin-cms # 选择这个指定标签执行
|
app: admin-cms # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: admin-cms
|
- name: admin-cms
|
||||||
image: openim/admin_cms:v2.0.10k
|
image: openim/admin_cms:v2.3.8
|
||||||
# imagePullPolicy: Always #每次启动都重新拉取镜像
|
# imagePullPolicy: Always #每次启动都重新拉取镜像
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10200
|
- containerPort: 10200
|
||||||
@@ -23,10 +23,20 @@ spec:
|
|||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
|
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ ADD ./open_im_api $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: api # 选择这个指定标签执行
|
app: api # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,18 +15,27 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: api
|
- name: api
|
||||||
image: openim/api:v2.0.10k
|
image: openim/api:v2.3.8
|
||||||
imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10002
|
- containerPort: 10002
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
# 将可执行文件复制到目标目录
|
# 将可执行文件复制到目标目录
|
||||||
@@ -10,9 +11,10 @@ ADD ./open_im_auth $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: auth # 选择这个指定标签执行
|
app: auth # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: auth
|
- name: auth
|
||||||
image: openim/auth:v2.0.10k
|
image: openim/auth:v2.3.8
|
||||||
# imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10160
|
- containerPort: 10160
|
||||||
@@ -23,9 +23,18 @@ spec:
|
|||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
source ./path_info.cfg
|
source ./path_info.cfg
|
||||||
|
|
||||||
# images version
|
# images version
|
||||||
version=v2.0.10k
|
version=v2.3.8
|
||||||
git pull
|
git pull
|
||||||
cd ../script/; ./build_all_service.sh
|
cd ../script/; ./build_all_service.sh
|
||||||
cd ../deploy_k8s/
|
cd ../deploy_k8s/
|
||||||
|
|||||||
Vendored
+5
-3
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
|
|
||||||
@@ -11,8 +12,9 @@ ADD ./open_im_cache $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
Vendored
+13
-4
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: cache # 选择这个指定标签执行
|
app: cache # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: cache
|
- name: cache
|
||||||
image: openim/cache:v2.0.10k
|
image: openim/cache:v2.3.8
|
||||||
# imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10240
|
- containerPort: 10240
|
||||||
@@ -23,9 +23,18 @@ spec:
|
|||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
# 将可执行文件复制到目标目录
|
# 将可执行文件复制到目标目录
|
||||||
@@ -10,8 +11,9 @@ ADD ./open_im_cms_api $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: cms-api # 选择这个指定标签执行
|
app: cms-api # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,18 +15,27 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: cms-api
|
- name: cms-api
|
||||||
image: openim/cms_api:v2.0.10k
|
image: openim/cms_api:v2.3.8
|
||||||
# imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10006
|
- containerPort: 10006
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
# 将可执行文件复制到目标目录
|
# 将可执行文件复制到目标目录
|
||||||
@@ -10,8 +11,9 @@ ADD ./open_im_conversation $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: conversation
|
- name: conversation
|
||||||
image: openim/conversation:v2.0.10k
|
image: openim/conversation:v2.3.8
|
||||||
# imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10230
|
- containerPort: 10230
|
||||||
@@ -23,10 +23,20 @@ spec:
|
|||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
# 将可执行文件复制到目标目录
|
# 将可执行文件复制到目标目录
|
||||||
@@ -10,9 +11,10 @@ ADD ./open_im_demo $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: demo # 选择这个指定标签执行
|
app: demo # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: demo
|
- name: demo
|
||||||
image: openim/demo:v2.0.10k
|
image: openim/demo:v2.3.8
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10004
|
- containerPort: 10004
|
||||||
@@ -23,10 +23,19 @@ spec:
|
|||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: friend # 选择这个指定标签执行
|
app: friend # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: friend
|
- name: friend
|
||||||
image: openim/friend:v2.0.10k
|
image: openim/friend:v2.3.8
|
||||||
# imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10120
|
- containerPort: 10120
|
||||||
@@ -23,10 +23,19 @@ spec:
|
|||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
|
|
||||||
@@ -11,8 +12,9 @@ ADD ./open_im_friend $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: group # 选择这个指定标签执行
|
app: group # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: group
|
- name: group
|
||||||
image: openim/group:v2.0.10k
|
image: openim/group:v2.3.8
|
||||||
# imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10150
|
- containerPort: 10150
|
||||||
@@ -23,9 +23,18 @@ spec:
|
|||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
# 将可执行文件复制到目标目录
|
# 将可执行文件复制到目标目录
|
||||||
@@ -10,9 +11,10 @@ ADD ./open_im_group $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
@@ -48,6 +48,12 @@ kind: Ingress
|
|||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
kubernetes.io/ingress.class: "nginx"
|
kubernetes.io/ingress.class: "nginx"
|
||||||
|
nginx.ingress.kubernetes.io/Access-Control-Allow-Origin: '*'
|
||||||
|
nginx.ingress.kubernetes.io/cors-allow-headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-auth-token,Pagination
|
||||||
|
nginx.ingress.kubernetes.io/cors-allow-methods: 'PUT, GET, POST, OPTIONS'
|
||||||
|
nginx.ingress.kubernetes.io/cors-allow-origin: '*'
|
||||||
|
nginx.ingress.kubernetes.io/enable-cors: 'true'
|
||||||
|
nginx.ingress.kubernetes.io/service-weight: ''
|
||||||
name: api-ingress
|
name: api-ingress
|
||||||
spec:
|
spec:
|
||||||
rules:
|
rules:
|
||||||
@@ -67,6 +73,12 @@ kind: Ingress
|
|||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
kubernetes.io/ingress.class: "nginx"
|
kubernetes.io/ingress.class: "nginx"
|
||||||
|
nginx.ingress.kubernetes.io/Access-Control-Allow-Origin: '*'
|
||||||
|
nginx.ingress.kubernetes.io/cors-allow-headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-auth-token,Pagination
|
||||||
|
nginx.ingress.kubernetes.io/cors-allow-methods: 'PUT, GET, POST, OPTIONS'
|
||||||
|
nginx.ingress.kubernetes.io/cors-allow-origin: '*'
|
||||||
|
nginx.ingress.kubernetes.io/enable-cors: 'true'
|
||||||
|
nginx.ingress.kubernetes.io/service-weight: ''
|
||||||
name: demo-ingress
|
name: demo-ingress
|
||||||
spec:
|
spec:
|
||||||
rules:
|
rules:
|
||||||
@@ -86,6 +98,12 @@ kind: Ingress
|
|||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
kubernetes.io/ingress.class: "nginx"
|
kubernetes.io/ingress.class: "nginx"
|
||||||
|
nginx.ingress.kubernetes.io/Access-Control-Allow-Origin: '*'
|
||||||
|
nginx.ingress.kubernetes.io/cors-allow-headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-auth-token,Pagination
|
||||||
|
nginx.ingress.kubernetes.io/cors-allow-methods: 'PUT, GET, POST, OPTIONS'
|
||||||
|
nginx.ingress.kubernetes.io/cors-allow-origin: '*'
|
||||||
|
nginx.ingress.kubernetes.io/enable-cors: 'true'
|
||||||
|
nginx.ingress.kubernetes.io/service-weight: ''
|
||||||
name: cms-api-ingress
|
name: cms-api-ingress
|
||||||
spec:
|
spec:
|
||||||
rules:
|
rules:
|
||||||
|
|||||||
@@ -1,38 +1,99 @@
|
|||||||
#### openIM k8s部署文档
|
#### openIM k8s部署文档
|
||||||
### 1. 修改配置文件
|
### 1. 修改配置文件
|
||||||
在Open-IM-SERVER目录下修改config/config.yaml配置文件, 将MySQL, Kafka, MongoDB等配置修改。
|
在Open-IM-SERVER根目录下修改config/config.yaml配置文件, 请确保以下修改的所有地址必须保证k8s pod能够访问
|
||||||
使用demo需要修改demo/imAPIURL地址 让demo能请求到im的api
|
1. 修改ETCD配置为自己的ETCD ip地址, 最好和k8s本身使用的ETCD分开
|
||||||
|
2. 修改MySQL配置
|
||||||
|
3. 修改Mongo配置
|
||||||
|
4. 修改Redis配置
|
||||||
|
5. 修改Kafka配置
|
||||||
|
6. 将rpcRegisterIP修改为空, 此地址为每个rpc注册到ETCD的地址, 置空每个rpc将会将pod地址注册到ETCD, 才能正确rpc请求(重要)
|
||||||
|
7. 如果使用minio作为对象存储, 还需要修改minio的地址
|
||||||
|
8. 其他如果使用离线推送,需要修改push离线推送配置
|
||||||
|
|
||||||
|
|
||||||
### 2. 项目根目录创建im configMap到k8s openim namespace
|
### 2. 项目根目录创建im configMap到k8s openim namespace
|
||||||
kubectl create namespace openim
|
1. 为open-IM项目创建单独命名空间
|
||||||
kubectl -n openim create configmap config --from-file=config/config.yaml
|
```
|
||||||
openim 为im项目的namespace, 可选
|
kubectl create namespace openim
|
||||||
查看configmap
|
```
|
||||||
kubectl -n openim get configmap
|
2. 修改config.yaml后在项目根目录创建configmap, config/usualConfig.yaml只需要挂载不需要修改配置
|
||||||
|
```
|
||||||
|
kubectl -n openim create configmap openim-config --from-file=config/config.yaml
|
||||||
|
kubectl -n openim create configmap openim-usualconfig --from-file=config/usualConfig.yaml
|
||||||
|
```
|
||||||
|
查看configmap
|
||||||
|
```
|
||||||
|
kubectl -n openim get configmap
|
||||||
|
```
|
||||||
|
|
||||||
### 3(可选). 修改每个deployment.yml
|
### 3(可选). 修改每个deployment.yml
|
||||||
kubectl get nodes
|
每个rpc的deployment在Open-IM-SERVER根目录deploy_k8s下
|
||||||
kubectl label node k8s-node1 role=kube-Node
|
给需要调度的node打上标签
|
||||||
应需要调度的node打上标签
|
```
|
||||||
nodeSelector:
|
kubectl get nodes
|
||||||
node: kube-Node
|
kubectl label node k8s-node1 role=openIMworker
|
||||||
创建资源清单时添加上nodeSelector属性对应即可
|
```
|
||||||
修改每种服务数量,建议至少每种2个rpc。
|
在deployment的spec.template.spec加上
|
||||||
如果修改了config/config.yaml某些配置比如端口,同时需要修改对应deployment端口和ingress端口
|
```
|
||||||
|
nodeSelector:
|
||||||
|
role: openIMworker
|
||||||
|
```
|
||||||
|
创建资源清单时添加上nodeSelector属性对应即可,
|
||||||
|
修改每种服务数量,建议至少每种2个rpc。
|
||||||
|
如果修改了config/config.yaml某些配置比如端口,同时需要修改对应deployment端口和ingress端口
|
||||||
|
|
||||||
|
|
||||||
### 4. 修改ingress.yaml配置文件
|
### 4. 修改ingress.yaml配置文件
|
||||||
需要安装ingress controller 这里使用的是ingress-nginx 其他ingress需要修改配置文件
|
1. 需要安装ingress controller, 这里使用的是ingress-nginx, 使用其他类型的ingress controller需要更改ingress.class, 将host改为自己部署服务的host
|
||||||
进行域名修改等操作
|
|
||||||
|
|
||||||
### 5. 执行./kubectl_start.sh脚本
|
### 5. 执行./kubectl_start.sh脚本
|
||||||
chmod +x ./kubectl_start.sh ./kubectl_stop.sh
|
1. 脚本给予可执行权限
|
||||||
./kubectl_start.sh
|
```
|
||||||
kubectl -n openim apply -f ingress.yaml
|
chmod +x ./kubectl_start.sh ./kubectl_stop.sh
|
||||||
kubectl 启动所有deployment,services,ingress
|
```
|
||||||
|
2. 启动k8s service和deployment
|
||||||
|
```
|
||||||
|
./kubectl_start.sh
|
||||||
|
```
|
||||||
|
3. 启动k8s ingress
|
||||||
|
```
|
||||||
|
kubectl -n openim apply -f ingress.yaml
|
||||||
|
```
|
||||||
|
kubectl 启动所有deployment, services, ingress
|
||||||
|
|
||||||
### 6. 查看k8s deployment service ingress状态
|
### 6. 查看k8s deployment service ingress状态
|
||||||
kubectl -n openim get services
|
|
||||||
kubectl -n openim get deployment
|
```
|
||||||
kubectl -n openim get ingress
|
kubectl -n openim get services
|
||||||
kubectl -n openim get pods
|
kubectl -n openim get deployment
|
||||||
|
kubectl -n openim get ingress
|
||||||
|
kubectl -n openim get pods
|
||||||
|
```
|
||||||
|
检测服务可达
|
||||||
|
```
|
||||||
|
telnet msg-gateway.openim.xxx.com {{your_ingress_port}}
|
||||||
|
telnet sdk-server.openim.xxx.com {{your_ingress_port}}
|
||||||
|
telnet api.openim.xxx.com {{your_ingress_port}}
|
||||||
|
telnet cms-api.openim.xxx.com {{your_ingress_port}}
|
||||||
|
telnet demo.openim.xxx.com {{your_ingress_port}}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### openIM k8s更新
|
||||||
|
1. 暂存配置文件,拉取代码
|
||||||
|
```
|
||||||
|
git stash push config/config.yaml
|
||||||
|
git pull
|
||||||
|
```
|
||||||
|
2. 合并配置文件, 解决冲突
|
||||||
|
```
|
||||||
|
git stash pop
|
||||||
|
```
|
||||||
|
3. 重新生成configmap
|
||||||
|
```
|
||||||
|
kubectl -n openim create configmap config --from-file=config/config.yaml
|
||||||
|
```
|
||||||
|
4.修改所有deployment文件的spec.template.spec.image 改为新版本后在/deploy_k8s下重新执行
|
||||||
|
```
|
||||||
|
./kubectl_stop.sh
|
||||||
|
./kubectl_start.sh
|
||||||
|
```
|
||||||
@@ -10,8 +10,6 @@ service=(
|
|||||||
group
|
group
|
||||||
auth
|
auth
|
||||||
admin-cms
|
admin-cms
|
||||||
message-cms
|
|
||||||
statistics
|
|
||||||
office
|
office
|
||||||
organization
|
organization
|
||||||
conversation
|
conversation
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: message-cms-deployment
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: message-cms # 选择这个指定标签执行
|
|
||||||
replicas: 2 # 运行pod数量
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: message-cms # 标签
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: message-cms
|
|
||||||
image: openim/message_cms:v2.0.10k
|
|
||||||
# imagePullPolicy: Always
|
|
||||||
ports:
|
|
||||||
- containerPort: 10190
|
|
||||||
volumeMounts:
|
|
||||||
- name: config
|
|
||||||
mountPath: /Open-IM-Server/config
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
|
||||||
- name: config
|
|
||||||
configMap:
|
|
||||||
name: config
|
|
||||||
strategy: #更新策略
|
|
||||||
type: RollingUpdate # 滚动更新
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM ubuntu
|
|
||||||
|
|
||||||
# 设置固定的项目路径
|
|
||||||
ENV WORKDIR /Open-IM-Server
|
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
|
||||||
|
|
||||||
# 将可执行文件复制到目标目录
|
|
||||||
ADD ./open_im_message_cms $WORKDIR/cmd/main
|
|
||||||
|
|
||||||
# 创建用于挂载的几个目录,添加可执行权限
|
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
|
||||||
chmod +x $WORKDIR/cmd/main
|
|
||||||
|
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
|
||||||
|
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
|
||||||
CMD ./cmd/main
|
|
||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: msg # 选择这个指定标签执行
|
app: msg # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: msg
|
- name: msg
|
||||||
image: openim/msg:v2.0.10k
|
image: openim/msg:v2.3.8
|
||||||
# imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10130
|
- containerPort: 10130
|
||||||
@@ -23,9 +23,18 @@ spec:
|
|||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
|
|
||||||
@@ -11,9 +12,10 @@ ADD ./open_im_msg $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: msg-gateway # 选择这个指定标签执行
|
app: msg-gateway # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: msg-gateway
|
- name: msg-gateway
|
||||||
image: openim/msg_gateway:v2.0.10k
|
image: openim/msg_gateway:v2.3.8
|
||||||
# imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- name: rpc-port
|
- name: rpc-port
|
||||||
@@ -26,10 +26,19 @@ spec:
|
|||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
# 将可执行文件复制到目标目录
|
# 将可执行文件复制到目标目录
|
||||||
@@ -10,9 +11,10 @@ ADD ./open_im_msg_gateway $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: msg-transfer # 选择这个指定标签执行
|
app: msg-transfer # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,15 +15,24 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: msg-transfer
|
- name: msg-transfer
|
||||||
image: openim/msg_transfer:v2.0.10k
|
image: openim/msg_transfer:v2.3.8
|
||||||
# imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
# 将可执行文件复制到目标目录
|
# 将可执行文件复制到目标目录
|
||||||
@@ -10,9 +11,10 @@ ADD ./open_im_msg_transfer $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: office # 选择这个指定标签执行
|
app: office # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: office
|
- name: office
|
||||||
image: openim/office:v2.0.10k
|
image: openim/office:v2.3.8
|
||||||
# imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10210
|
- containerPort: 10210
|
||||||
@@ -23,9 +23,18 @@ spec:
|
|||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
@@ -2,17 +2,20 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
|
|
||||||
# 将可执行文件复制到目标目录
|
# 将可执行文件复制到目标目录
|
||||||
ADD ./open_im_office $WORKDIR/cmd/main
|
ADD ./open_im_office $WORKDIR/cmd/main
|
||||||
|
|
||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: organization # 选择这个指定标签执行
|
app: organization # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: organization
|
- name: organization
|
||||||
image: openim/organization:v2.0.10k
|
image: openim/organization:v2.3.8
|
||||||
# imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10220
|
- containerPort: 10220
|
||||||
@@ -23,9 +23,18 @@ spec:
|
|||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
# 将可执行文件复制到目标目录
|
# 将可执行文件复制到目标目录
|
||||||
@@ -11,9 +12,10 @@ ADD ./open_im_organization $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
@@ -9,8 +9,6 @@ service=(
|
|||||||
group
|
group
|
||||||
auth
|
auth
|
||||||
admin_cms
|
admin_cms
|
||||||
message_cms
|
|
||||||
statistics
|
|
||||||
office
|
office
|
||||||
organization
|
organization
|
||||||
conversation
|
conversation
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: push # 选择这个指定标签执行
|
app: push # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: push
|
- name: push
|
||||||
image: openim/push:v2.0.10k
|
image: openim/push:v2.3.8
|
||||||
# imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10170
|
- containerPort: 10170
|
||||||
@@ -23,9 +23,18 @@ spec:
|
|||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
|
|
||||||
@@ -11,9 +12,10 @@ ADD ./open_im_push $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: sdk-server # 选择这个指定标签执行
|
app: sdk-server # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: sdk-server
|
- name: sdk-server
|
||||||
image: openim/sdk_server:v2.0.10k
|
image: openim/sdk_server:v2.3.8
|
||||||
# imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10003
|
- containerPort: 10003
|
||||||
@@ -25,12 +25,15 @@ spec:
|
|||||||
readOnly: true
|
readOnly: true
|
||||||
- name: local-db
|
- name: local-db
|
||||||
mountPath: /db/sdk
|
mountPath: /db/sdk
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
command: ["/Open-IM-Server/main"]
|
command: ["/Open-IM-Server/main"]
|
||||||
args: ["-openIM_api_port", "10002", "-openIM_ws_port", "10001", "-sdk_ws_port", "10003", "-openIM_log_level", "6"]
|
args: ["-openIM_ws_address", "ws_addr", "-sdk_ws_port", "10003", "-openIM_api_address", "api_address", "-openIM_log_level", "6"]
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
configMap:
|
||||||
name: config
|
name: openim-config
|
||||||
- name: local-db
|
- name: local-db
|
||||||
hostPath:
|
hostPath:
|
||||||
path: /db/sdk
|
path: /db/sdk
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
# 将可执行文件复制到目标目录
|
# 将可执行文件复制到目标目录
|
||||||
@@ -10,8 +11,9 @@ ADD ./open_im_sdk_server $WORKDIR/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/db && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/db && \
|
||||||
chmod +x $WORKDIR/main
|
chmod +x $WORKDIR/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script","/Open-IM-Server/db/sdk"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script","/Open-IM-Server/db/sdk"]
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./main
|
CMD ./main
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: statistics-deployment
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: statistics # 选择这个指定标签执行
|
|
||||||
replicas: 2 # 运行pod数量
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: statistics # 标签
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: statistics
|
|
||||||
image: openim/statistics:v2.0.10k
|
|
||||||
# imagePullPolicy: Always
|
|
||||||
ports:
|
|
||||||
- containerPort: 10180
|
|
||||||
volumeMounts:
|
|
||||||
- name: config
|
|
||||||
mountPath: /Open-IM-Server/config
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
|
||||||
- name: config
|
|
||||||
configMap:
|
|
||||||
name: config
|
|
||||||
strategy: #更新策略
|
|
||||||
type: RollingUpdate # 滚动更新
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM ubuntu
|
|
||||||
|
|
||||||
# 设置固定的项目路径
|
|
||||||
ENV WORKDIR /Open-IM-Server
|
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
|
||||||
|
|
||||||
# 将可执行文件复制到目标目录
|
|
||||||
ADD ./open_im_statistics $WORKDIR/cmd/main
|
|
||||||
|
|
||||||
# 创建用于挂载的几个目录,添加可执行权限
|
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
|
||||||
chmod +x $WORKDIR/cmd/main
|
|
||||||
|
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
|
||||||
|
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
|
||||||
CMD ./cmd/main
|
|
||||||
@@ -7,7 +7,7 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: user # 选择这个指定标签执行
|
app: user # 选择这个指定标签执行
|
||||||
replicas: 2 # 运行pod数量
|
replicas: 1 # 运行pod数量
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
@@ -15,15 +15,24 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: user
|
- name: user
|
||||||
image: openim/user:v2.0.10k
|
image: openim/user:v2.3.8
|
||||||
# imagePullPolicy: Always
|
# imagePullPolicy: Always
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: config
|
- name: config
|
||||||
mountPath: /Open-IM-Server/config
|
mountPath: /Open-IM-Server/config
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
|
- name: USUAL_CONFIG_NAME
|
||||||
|
value: "/Open-IM-Server"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
projected:
|
||||||
name: config
|
sources:
|
||||||
|
- configMap:
|
||||||
|
name: openim-config
|
||||||
|
- configMap:
|
||||||
|
name: openim-usualconfig
|
||||||
strategy: #更新策略
|
strategy: #更新策略
|
||||||
type: RollingUpdate # 滚动更新
|
type: RollingUpdate # 滚动更新
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ FROM ubuntu
|
|||||||
|
|
||||||
# 设置固定的项目路径
|
# 设置固定的项目路径
|
||||||
ENV WORKDIR /Open-IM-Server
|
ENV WORKDIR /Open-IM-Server
|
||||||
|
ENV CMDDIR $WORKDIR/cmd
|
||||||
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
ENV CONFIG_NAME $WORKDIR/config/config.yaml
|
||||||
|
|
||||||
# 将可执行文件复制到目标目录
|
# 将可执行文件复制到目标目录
|
||||||
@@ -10,9 +11,10 @@ ADD ./open_im_user $WORKDIR/cmd/main
|
|||||||
# 创建用于挂载的几个目录,添加可执行权限
|
# 创建用于挂载的几个目录,添加可执行权限
|
||||||
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/script && \
|
||||||
chmod +x $WORKDIR/cmd/main
|
chmod +x $WORKDIR/cmd/main
|
||||||
|
RUN apt-get -qq update \
|
||||||
|
&& apt-get -qq install -y --no-install-recommends ca-certificates curl
|
||||||
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
VOLUME ["/Open-IM-Server/logs","/Open-IM-Server/config","/Open-IM-Server/script"]
|
||||||
|
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $CMDDIR
|
||||||
CMD ./cmd/main
|
CMD ./main
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
version: "3"
|
||||||
|
#fixme Clone openIM Server project before using docker-compose,project address:https://github.com/OpenIMSDK/Open-IM-Server.git
|
||||||
|
|
||||||
|
services:
|
||||||
|
mysql:
|
||||||
|
image: mysql:5.7
|
||||||
|
ports:
|
||||||
|
- 13306:3306
|
||||||
|
- 23306:33060
|
||||||
|
container_name: mysql
|
||||||
|
volumes:
|
||||||
|
- ./components/mysql/data:/var/lib/mysql
|
||||||
|
- /etc/localtime:/etc/localtime
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: openIM
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
mongos:
|
||||||
|
image: mongo:latest
|
||||||
|
ports:
|
||||||
|
- 37017:27017
|
||||||
|
container_name: mongos
|
||||||
|
command: mongos --configdb config/103.116.45.174:27019 --bind_ip_all
|
||||||
|
volumes:
|
||||||
|
- ./components/mongos_mongodb/data/db:/data/db
|
||||||
|
- ./components/mongos_mongodb/data/logs:/data/logs
|
||||||
|
- ./components/mongos_mongodb/data/conf:/etc/mongo
|
||||||
|
- ./components/mongos_mongodb/data/configdb:/data/configdb
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
# cache
|
||||||
|
- wiredTigerCacheSizeGB=1
|
||||||
|
# environment:
|
||||||
|
# - MONGO_INITDB_ROOT_USERNAME=openIM
|
||||||
|
# - MONGO_INITDB_ROOT_PASSWORD=openIM
|
||||||
|
|
||||||
|
|
||||||
|
#TZ: Asia/Shanghai
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis
|
||||||
|
ports:
|
||||||
|
- 16379:6379
|
||||||
|
container_name: redis
|
||||||
|
volumes:
|
||||||
|
- ./components/redis/data:/data
|
||||||
|
#redis config file
|
||||||
|
- ./components/redis/config/redis.conf:/usr/local/redis/config/redis.conf
|
||||||
|
environment:
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
restart: always
|
||||||
|
sysctls:
|
||||||
|
net.core.somaxconn: 1024
|
||||||
|
command: redis-server --requirepass openIM --appendonly yes
|
||||||
|
|
||||||
|
|
||||||
|
zookeeper:
|
||||||
|
image: wurstmeister/zookeeper
|
||||||
|
ports:
|
||||||
|
- 2181:2181
|
||||||
|
container_name: zookeeper
|
||||||
|
volumes:
|
||||||
|
- /etc/localtime:/etc/localtime
|
||||||
|
environment:
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
|
||||||
|
kafka:
|
||||||
|
image: wurstmeister/kafka
|
||||||
|
container_name: kafka
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 9092:9092
|
||||||
|
environment:
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
KAFKA_BROKER_ID: 0
|
||||||
|
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
|
||||||
|
KAFKA_CREATE_TOPICS: "ws2ms_chat:8:1,ms2ps_chat:8:1,msg_to_mongo:8:1"
|
||||||
|
KAFKA_ADVERTISED_LISTENERS: INSIDE://127.0.0.1:9092,OUTSIDE://103.116.45.174:9092
|
||||||
|
KAFKA_LISTENERS: INSIDE://:9092,OUTSIDE://:9093
|
||||||
|
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT"
|
||||||
|
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
|
||||||
|
depends_on:
|
||||||
|
- zookeeper
|
||||||
|
|
||||||
|
etcd:
|
||||||
|
image: quay.io/coreos/etcd
|
||||||
|
ports:
|
||||||
|
- 2379:2379
|
||||||
|
- 2380:2380
|
||||||
|
container_name: etcd
|
||||||
|
volumes:
|
||||||
|
- /etc/timezone:/etc/timezone
|
||||||
|
- /etc/localtime:/etc/localtime
|
||||||
|
environment:
|
||||||
|
ETCDCTL_API: 3
|
||||||
|
restart: always
|
||||||
|
command: /usr/local/bin/etcd --name etcd0 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379 --listen-peer-urls http://0.0.0.0:2380 --initial-advertise-peer-urls http://0.0.0.0:2380 --initial-cluster etcd0=http://0.0.0.0:2380 --initial-cluster-token tkn --initial-cluster-state new
|
||||||
|
|
||||||
|
minio:
|
||||||
|
image: minio/minio
|
||||||
|
ports:
|
||||||
|
- 10005:9000
|
||||||
|
- 9090:9090
|
||||||
|
container_name: minio
|
||||||
|
volumes:
|
||||||
|
- /mnt/data:/data
|
||||||
|
- /mnt/config:/root/.minio
|
||||||
|
environment:
|
||||||
|
MINIO_ROOT_USER: user12345
|
||||||
|
MINIO_ROOT_PASSWORD: key12345
|
||||||
|
restart: always
|
||||||
|
command: minio server /data --console-address ':9090'
|
||||||
|
|
||||||
|
open_im_server:
|
||||||
|
image: openim/open_im_server:v2.3.0-rc1
|
||||||
|
container_name: open_im_server
|
||||||
|
volumes:
|
||||||
|
- ./logs:/Open-IM-Server/logs
|
||||||
|
- ./config/config.yaml:/Open-IM-Server/config/config.yaml
|
||||||
|
- ./db/sdk:/Open-IM-Server/db/sdk
|
||||||
|
- ./script:/Open-IM-Server/script
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- kafka
|
||||||
|
- mysql
|
||||||
|
- mongos
|
||||||
|
- redis
|
||||||
|
- etcd
|
||||||
|
- minio
|
||||||
|
network_mode: "host"
|
||||||
|
logging:
|
||||||
|
driver: json-file
|
||||||
|
options:
|
||||||
|
max-size: "1g"
|
||||||
|
max-file: "2"
|
||||||
@@ -0,0 +1,113 @@
|
|||||||
|
version: '3'
|
||||||
|
networks:
|
||||||
|
mongo-network:
|
||||||
|
external: false
|
||||||
|
services:
|
||||||
|
# 配置服务器configsvr
|
||||||
|
config:
|
||||||
|
image: mongo:latest
|
||||||
|
networks:
|
||||||
|
- mongo-network
|
||||||
|
container_name: config
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 27019:27019
|
||||||
|
command: --configsvr --replSet "config" --bind_ip_all
|
||||||
|
volumes:
|
||||||
|
- ./components/config_mongodb/data/db:/data/db
|
||||||
|
- ./components/config_mongodb/data/logs:/data/logs
|
||||||
|
- ./components/config_mongodb/data/conf:/etc/mongo
|
||||||
|
- ./components/config_mongodb/data/configdb:/data/configdb
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
# cache
|
||||||
|
- wiredTigerCacheSizeGB=1
|
||||||
|
|
||||||
|
# shard分片1
|
||||||
|
shard1:
|
||||||
|
image: mongo:latest
|
||||||
|
networks:
|
||||||
|
- mongo-network
|
||||||
|
container_name: shard1
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 27118:27018
|
||||||
|
command: --shardsvr --replSet "shard1" --bind_ip_all
|
||||||
|
volumes:
|
||||||
|
- /data01/mongo/shard1/db:/data/db
|
||||||
|
- /data01/mongo/shard1/configdb:/data/configdb
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
# cache
|
||||||
|
- wiredTigerCacheSizeGB=1
|
||||||
|
|
||||||
|
# shard分片2
|
||||||
|
shard2:
|
||||||
|
image: mongo:latest
|
||||||
|
networks:
|
||||||
|
- mongo-network
|
||||||
|
container_name: shard2
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 27218:27018
|
||||||
|
command: --shardsvr --replSet "shard2" --bind_ip_all
|
||||||
|
volumes:
|
||||||
|
- /data02/mongo/shard2/db:/data/db
|
||||||
|
- /data02/mongo/shard2/configdb:/data/configdb
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
# cache
|
||||||
|
- wiredTigerCacheSizeGB=1
|
||||||
|
# - ${PWD}/key.file:/data/mongodb/key.file
|
||||||
|
|
||||||
|
# shard分片3
|
||||||
|
shard3:
|
||||||
|
image: mongo:latest
|
||||||
|
networks:
|
||||||
|
- mongo-network
|
||||||
|
container_name: shard3
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 27318:27018
|
||||||
|
command: --shardsvr --replSet "shard3" --bind_ip_all
|
||||||
|
volumes:
|
||||||
|
- /data03/mongo/shard3/db:/data/db
|
||||||
|
- /data03/mongo/shard3/configdb:/data/configdb
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
# cache
|
||||||
|
- wiredTigerCacheSizeGB=1
|
||||||
|
# shard分片4
|
||||||
|
shard4:
|
||||||
|
image: mongo:latest
|
||||||
|
networks:
|
||||||
|
- mongo-network
|
||||||
|
container_name: shard4
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 27418:27018
|
||||||
|
command: --shardsvr --replSet "shard4" --bind_ip_all
|
||||||
|
volumes:
|
||||||
|
- /data04/mongo/shard4/db:/data/db
|
||||||
|
- /data04/mongo/shard4/configdb:/data/configdb
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
# cache
|
||||||
|
- wiredTigerCacheSizeGB=1
|
||||||
|
# shard分片5
|
||||||
|
shard5:
|
||||||
|
image: mongo:latest
|
||||||
|
networks:
|
||||||
|
- mongo-network
|
||||||
|
container_name: shard5
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 27518:27018
|
||||||
|
command: --shardsvr --replSet "shard5" --bind_ip_all
|
||||||
|
volumes:
|
||||||
|
- /data05/mongo/shard5/db:/data/db
|
||||||
|
- /data05/mongo/shard5/configdb:/data/configdb
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
# cache
|
||||||
|
- wiredTigerCacheSizeGB=1
|
||||||
+97
-22
@@ -1,6 +1,5 @@
|
|||||||
version: "3"
|
|
||||||
#fixme Clone openIM Server project before using docker-compose,project address:https://github.com/OpenIMSDK/Open-IM-Server.git
|
#fixme Clone openIM Server project before using docker-compose,project address:https://github.com/OpenIMSDK/Open-IM-Server.git
|
||||||
|
version: "3"
|
||||||
services:
|
services:
|
||||||
mysql:
|
mysql:
|
||||||
image: mysql:5.7
|
image: mysql:5.7
|
||||||
@@ -9,10 +8,10 @@ services:
|
|||||||
- 23306:33060
|
- 23306:33060
|
||||||
container_name: mysql
|
container_name: mysql
|
||||||
volumes:
|
volumes:
|
||||||
- ./components/mysql/data:/var/lib/mysql
|
- ${DATA_DIR}/components/mysql/data:/var/lib/mysql
|
||||||
- /etc/localtime:/etc/localtime
|
- /etc/localtime:/etc/localtime
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: openIM
|
MYSQL_ROOT_PASSWORD: ${PASSWORD}
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
mongodb:
|
mongodb:
|
||||||
@@ -20,20 +19,22 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- 37017:27017
|
- 37017:27017
|
||||||
container_name: mongo
|
container_name: mongo
|
||||||
|
command: --wiredTigerCacheSizeGB 1 --auth
|
||||||
volumes:
|
volumes:
|
||||||
- ./components/mongodb/data/db:/data/db
|
- ${DATA_DIR}/components/mongodb/data/db:/data/db
|
||||||
- ./components/mongodb/data/logs:/data/logs
|
- ${DATA_DIR}/components/mongodb/data/logs:/data/logs
|
||||||
- ./components/mongodb/data/conf:/etc/mongo
|
- ${DATA_DIR}/components/mongodb/data/conf:/etc/mongo
|
||||||
|
- ./script/mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh:ro
|
||||||
environment:
|
environment:
|
||||||
- TZ=Asia/Shanghai
|
- TZ=Asia/Shanghai
|
||||||
# cache
|
# cache
|
||||||
- wiredTigerCacheSizeGB=1
|
- wiredTigerCacheSizeGB=1
|
||||||
# environment:
|
- MONGO_INITDB_ROOT_USERNAME=${USER}
|
||||||
# - MONGO_INITDB_ROOT_USERNAME=openIM
|
- MONGO_INITDB_ROOT_PASSWORD=${PASSWORD}
|
||||||
# - MONGO_INITDB_ROOT_PASSWORD=openIM
|
- MONGO_INITDB_DATABASE=openIM
|
||||||
|
- MONGO_USERNAME=${USER}
|
||||||
|
- MONGO_PASSWORD=${PASSWORD}
|
||||||
#TZ: Asia/Shanghai
|
#
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
@@ -42,15 +43,15 @@ services:
|
|||||||
- 16379:6379
|
- 16379:6379
|
||||||
container_name: redis
|
container_name: redis
|
||||||
volumes:
|
volumes:
|
||||||
- ./components/redis/data:/data
|
- ${DATA_DIR}/components/redis/data:/data
|
||||||
#redis config file
|
#redis config file
|
||||||
#- ./components/redis/config/redis.conf:/usr/local/redis/config/redis.conf
|
- ${DATA_DIR}/components/redis/config/redis.conf:/usr/local/redis/config/redis.conf
|
||||||
environment:
|
environment:
|
||||||
TZ: Asia/Shanghai
|
TZ: Asia/Shanghai
|
||||||
restart: always
|
restart: always
|
||||||
sysctls:
|
sysctls:
|
||||||
net.core.somaxconn: 1024
|
net.core.somaxconn: 1024
|
||||||
command: redis-server --requirepass openIM --appendonly yes
|
command: redis-server --requirepass ${PASSWORD} --appendonly yes
|
||||||
|
|
||||||
|
|
||||||
zookeeper:
|
zookeeper:
|
||||||
@@ -70,17 +71,16 @@ services:
|
|||||||
container_name: kafka
|
container_name: kafka
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- 9093:9093
|
- 9092:9092
|
||||||
environment:
|
environment:
|
||||||
TZ: Asia/Shanghai
|
TZ: Asia/Shanghai
|
||||||
KAFKA_BROKER_ID: 0
|
KAFKA_BROKER_ID: 0
|
||||||
KAFKA_ZOOKEEPER_CONNECT: 127.0.0.1:2181
|
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
|
||||||
KAFKA_CREATE_TOPICS: "ws2ms_chat:8:1,ms2ps_chat:8:1,msg_to_mongo:8:1"
|
KAFKA_CREATE_TOPICS: "ws2ms_chat:8:1,ms2ps_chat:8:1,msg_to_mongo:8:1"
|
||||||
KAFKA_ADVERTISED_LISTENERS: INSIDE://127.0.0.1:9092,OUTSIDE://103.116.45.174:9093
|
KAFKA_ADVERTISED_LISTENERS: INSIDE://127.0.0.1:9092,OUTSIDE://103.116.45.174:9092
|
||||||
KAFKA_LISTENERS: INSIDE://:9092,OUTSIDE://:9093
|
KAFKA_LISTENERS: INSIDE://:9092,OUTSIDE://:9093
|
||||||
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT"
|
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT"
|
||||||
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
|
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
|
||||||
network_mode: "host"
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- zookeeper
|
- zookeeper
|
||||||
|
|
||||||
@@ -98,13 +98,30 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
command: /usr/local/bin/etcd --name etcd0 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379 --listen-peer-urls http://0.0.0.0:2380 --initial-advertise-peer-urls http://0.0.0.0:2380 --initial-cluster etcd0=http://0.0.0.0:2380 --initial-cluster-token tkn --initial-cluster-state new
|
command: /usr/local/bin/etcd --name etcd0 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379 --listen-peer-urls http://0.0.0.0:2380 --initial-advertise-peer-urls http://0.0.0.0:2380 --initial-cluster etcd0=http://0.0.0.0:2380 --initial-cluster-token tkn --initial-cluster-state new
|
||||||
|
|
||||||
|
minio:
|
||||||
|
image: minio/minio
|
||||||
|
ports:
|
||||||
|
- 10005:9000
|
||||||
|
- 9090:9090
|
||||||
|
container_name: minio
|
||||||
|
volumes:
|
||||||
|
- /mnt/data:/data
|
||||||
|
- /mnt/config:/root/.minio
|
||||||
|
environment:
|
||||||
|
MINIO_ROOT_USER: ${USER}
|
||||||
|
MINIO_ROOT_PASSWORD: ${PASSWORD}
|
||||||
|
restart: always
|
||||||
|
command: minio server /data --console-address ':9090'
|
||||||
|
|
||||||
|
|
||||||
open_im_server:
|
open_im_server:
|
||||||
image: openim/open_im_server:v2.1.0
|
image: openim/open_im_server:v2.3.8
|
||||||
container_name: open_im_server
|
container_name: open_im_server
|
||||||
volumes:
|
volumes:
|
||||||
- ./logs:/Open-IM-Server/logs
|
- ./logs:/Open-IM-Server/logs
|
||||||
- ./config/config.yaml:/Open-IM-Server/config/config.yaml
|
- ./config/config.yaml:/Open-IM-Server/config/config.yaml
|
||||||
- ./db/sdk:/Open-IM-Server/db/sdk
|
- ./config/usualConfig.yaml:/Open-IM-Server/config/usualConfig.yaml
|
||||||
|
- ${DATA_DIR}/db/sdk:/Open-IM-Server/db/sdk
|
||||||
- ./script:/Open-IM-Server/script
|
- ./script:/Open-IM-Server/script
|
||||||
restart: always
|
restart: always
|
||||||
depends_on:
|
depends_on:
|
||||||
@@ -113,9 +130,67 @@ services:
|
|||||||
- mongodb
|
- mongodb
|
||||||
- redis
|
- redis
|
||||||
- etcd
|
- etcd
|
||||||
|
- minio
|
||||||
network_mode: "host"
|
network_mode: "host"
|
||||||
logging:
|
logging:
|
||||||
driver: json-file
|
driver: json-file
|
||||||
options:
|
options:
|
||||||
max-size: "1g"
|
max-size: "1g"
|
||||||
max-file: "2"
|
max-file: "2"
|
||||||
|
|
||||||
|
open_im_enterprise:
|
||||||
|
image: openim/open_im_enterprise:v1.0.3
|
||||||
|
container_name: open_im_enterprise
|
||||||
|
volumes:
|
||||||
|
- ./logs:/Open-IM-Enterprise/logs
|
||||||
|
- ./docker-compose_cfg/config.yaml:/Open-IM-Enterprise/config/config.yaml
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- mysql
|
||||||
|
- mongodb
|
||||||
|
- redis
|
||||||
|
- etcd
|
||||||
|
- minio
|
||||||
|
- open_im_server
|
||||||
|
network_mode: "host"
|
||||||
|
logging:
|
||||||
|
driver: json-file
|
||||||
|
options:
|
||||||
|
max-size: "1g"
|
||||||
|
max-file: "2"
|
||||||
|
environment:
|
||||||
|
CONFIG_NAME: "/Open-IM-Enterprise"
|
||||||
|
|
||||||
|
prometheus:
|
||||||
|
image: prom/prometheus
|
||||||
|
volumes:
|
||||||
|
- ./docker-compose_cfg/prometheus-compose.yml:/etc/prometheus/prometheus.yml
|
||||||
|
container_name: prometheus
|
||||||
|
# ports:
|
||||||
|
# - 9091:9091
|
||||||
|
depends_on:
|
||||||
|
- open_im_server
|
||||||
|
command: --web.listen-address=:9091 --config.file="/etc/prometheus/prometheus.yml"
|
||||||
|
network_mode: "host"
|
||||||
|
|
||||||
|
grafana:
|
||||||
|
image: grafana/grafana
|
||||||
|
volumes:
|
||||||
|
# - ./grafana/dashboards/dashboard.json:/var/lib/grafana/dashboards/dashboard.json
|
||||||
|
# - ./grafana/provisioning/dashboard.yaml:/etc/grafana/provisioning/dashboards/dashboard.yaml
|
||||||
|
- ./docker-compose_cfg/datasource-compose.yaml:/etc/grafana/provisioning/datasources/datasource.yaml
|
||||||
|
- ./docker-compose_cfg/grafana.ini:/etc/grafana/grafana.ini
|
||||||
|
- ./docker-compose_cfg/node-exporter-full_rev1.json:/var/lib/grafana/dashboards/node-exporter-full_rev1.json
|
||||||
|
container_name: grafana
|
||||||
|
# ports:
|
||||||
|
# - 10007:10007
|
||||||
|
depends_on:
|
||||||
|
- prometheus
|
||||||
|
network_mode: "host"
|
||||||
|
|
||||||
|
node-exporter:
|
||||||
|
image: quay.io/prometheus/node-exporter
|
||||||
|
container_name: node-exporter
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "9100:9100"
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
#---------------Infrastructure configuration---------------------#
|
||||||
|
etcd:
|
||||||
|
etcdSchema: openim #默认即可
|
||||||
|
etcdAddr: [ 127.0.0.1:2379 ] #单机部署时,默认即可
|
||||||
|
userName:
|
||||||
|
password:
|
||||||
|
secret: openIM123
|
||||||
|
|
||||||
|
mysql:
|
||||||
|
dbMysqlDatabaseName: admin_chat # 数据库名字 默认即可
|
||||||
|
|
||||||
|
# 默认管理员账号
|
||||||
|
admin:
|
||||||
|
defaultAccount:
|
||||||
|
account: [ "admin1", "admin2" ]
|
||||||
|
defaultPassword: [ "password1", "password2" ]
|
||||||
|
openIMUserID: [ "openIM123456", "openIMAdmin" ]
|
||||||
|
faceURL: [ "", "" ]
|
||||||
|
nickname: [ "admin1", "admin2" ]
|
||||||
|
level: [ 1, 100 ]
|
||||||
|
|
||||||
|
|
||||||
|
adminapi:
|
||||||
|
openImAdminApiPort: [ 10009 ] #管理后台api服务端口,默认即可,需要开放此端口或做nginx转发
|
||||||
|
listenIP: 0.0.0.0
|
||||||
|
|
||||||
|
chatapi:
|
||||||
|
openImChatApiPort: [ 10008 ] #登录注册,默认即可,需要开放此端口或做nginx转发
|
||||||
|
listenIP: 0.0.0.0
|
||||||
|
|
||||||
|
rpcport: # rpc服务端口 默认即可
|
||||||
|
openImAdminPort: [ 30200 ]
|
||||||
|
openImChatPort: [ 30300 ]
|
||||||
|
|
||||||
|
|
||||||
|
rpcregistername: #rpc注册服务名,默认即可
|
||||||
|
openImChatName: Chat
|
||||||
|
openImAdminCMSName: Admin
|
||||||
|
|
||||||
|
chat:
|
||||||
|
codeTTL: 300 #短信验证码有效时间(秒)
|
||||||
|
superVerificationCode: 666666 # 超级验证码
|
||||||
|
alismsverify: #阿里云短信配置,在阿里云申请成功后修改以下四项
|
||||||
|
accessKeyId:
|
||||||
|
accessKeySecret:
|
||||||
|
signName:
|
||||||
|
verificationCodeTemplateCode:
|
||||||
|
|
||||||
|
|
||||||
|
oss:
|
||||||
|
tempDir: enterprise-temp # 临时密钥上传的目录
|
||||||
|
dataDir: enterprise-data # 最终存放目录
|
||||||
|
aliyun:
|
||||||
|
endpoint: https://oss-cn-chengdu.aliyuncs.com
|
||||||
|
accessKeyID: ""
|
||||||
|
accessKeySecret: ""
|
||||||
|
bucket: ""
|
||||||
|
tencent:
|
||||||
|
BucketURL: ""
|
||||||
|
serviceURL: https://cos.COS_REGION.myqcloud.com
|
||||||
|
secretID: ""
|
||||||
|
secretKey: ""
|
||||||
|
sessionToken: ""
|
||||||
|
bucket: ""
|
||||||
|
use: "minio"
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
#more datasource-compose.yaml
|
||||||
|
apiVersion: 1
|
||||||
|
|
||||||
|
datasources:
|
||||||
|
- name: Prometheus
|
||||||
|
type: prometheus
|
||||||
|
access: proxy
|
||||||
|
orgId: 1
|
||||||
|
url: http://127.0.0.1:9091
|
||||||
|
basicAuth: false
|
||||||
|
isDefault: true
|
||||||
|
version: 1
|
||||||
|
editable: true
|
||||||
Executable
BIN
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user