diff --git a/CHANGELOG.md b/CHANGELOG.md index 32b4234e..a08c67c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,9 @@ # Changelog All notable changes to paopao-ce are documented in this file. +## 0.4.0+dev ([`dev`](https://github.com/rocboss/paopao-ce/tree/dev)) -## 0.3.0+dev ([`dev`](https://github.com/rocboss/paopao-ce/tree/dev)) - +## 0.3.0 ### Added - add custom comment sort strategy support [#243](https://github.com/rocboss/paopao-ce/pull/243) @@ -93,6 +93,8 @@ All notable changes to paopao-ce are documented in this file. - optimize web frontend in mobile environment use Drawer to display menu [#265](https://github.com/rocboss/paopao-ce/pull/265) - optimize Dockerfile use pre-build builder/runner image to prevent network latency problem (`bitbus/paopao-ce-backend-builder` `bitbus/paopao-ce-backend-runner`) [#265](https://github.com/rocboss/paopao-ce/pull/265) - optimize web ui in mobile environment [#280](https://github.com/rocboss/paopao-ce/pull/280) +- optimize upload zip attachment compatible with different browsers for uploading zip mimetype [#286](https://github.com/rocboss/paopao-ce/pull/286) +- adapte meilisearch to version v1.1 [#288](https://github.com/rocboss/paopao-ce/pull/288) ### Removed diff --git a/README.md b/README.md index b97f25b8..56917231 100644 --- a/README.md +++ b/README.md @@ -220,8 +220,10 @@ PaoPao主要由以下优秀的开源项目/工具构建 ### 方式三. 使用 docker-compose 运行 ```sh git clone https://github.com/rocboss/paopao-ce.git -docker compose up --build -# visit paopao-ce(http://127.0.0.1:8008) and phpMyadmin(http://127.0.0.1:8080) +cd paopao-ce && docker compose up -d +# visit http://localhost:8008 👀 paopao-ce +# visit http://localhost:8001 👀 RedisInsight +# visit http://localhost:8080 👀 phpMyAdmin ``` 默认是使用config.yaml.sample的配置,如果需要自定义配置,请拷贝默认配置文件(比如config.yaml),修改后再同步配置到docker-compose.yaml如下: @@ -433,19 +435,10 @@ docker run -d --name meili -v ${PWD}/data/meili/data:/meili_data -p 7700:7700 -e # 使用docker compose运行,需要删除docker-compose.yaml中关于meili的注释 docker compose up -d meili -# 使用docker运行meilisearch的ui管理前端 -docker run -d --name uirecord -p 7701:3000 bitriory/uirecord -# visit http://localhost:7701 - -# 使用docker compose运行meilisearch的ui管理前端,需要删除docker-compose.yaml中关于uirecord的注释 -docker compose up -d uirecord -# visit http://loclahost:7701 - # 查看meili运行状态 docker compose ps NAME COMMAND SERVICE STATUS PORTS paopao-ce-meili-1 "tini -- /bin/sh -c …" meili running 0.0.0.0:7700->7700/tcp -paopao-ce-uirecord-1 "docker-entrypoint.s…" uirecord running 0.0.0.0:7701->3000/tcp ``` * 修改Meili配置 diff --git a/deployed-sites.md b/deployed-sites.md index 154b86a1..a5ea4e8d 100644 --- a/deployed-sites.md +++ b/deployed-sites.md @@ -5,3 +5,5 @@ PaoPao部署站点信息。 | ----- | ----- | ----- | ----- | |泡泡|[www.paopao.info](https://www.paopao.info)|[ROC](https://www.paopao.info/#/user?username=roc 'roc(@paopao.info)')|PaoPao官方站点| |布里塔|[bulita.cn](https://bulita.cn)|[chendong](https://www.paopao.info/#/user?username=chendong 'chendong(@paopao.info)')|招聘求职等信息| +|提示词社区|[promptser.cn](https://promptser.cn)|[henryspace](https://paopao.info/#/user?username=henryspace 'henryspace(@paopao.info)')|提示词社区| +|iiBiuBiu|[iibiubiu.com](https://iibiubiu.com)|[北野](https://www.paopao.info/#/user?username=alimy 'alimy(@paopao.info)')|开发、测试备用机,可以体验最新版本paopao-ce| diff --git a/docker-compose.yaml b/docker-compose.yaml index 09a7dd60..1e39d078 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -28,7 +28,7 @@ services: # - 9000:9000 # - 9001:9001 # volumes: - # - ./data/minio/data:/data + # - ./custom/data/minio/data:/data # networks: # - paopao-network @@ -58,7 +58,7 @@ services: ports: - 4080:4080 volumes: - - ./data/zinc/data:/data + - ./custom/data/zinc/data:/data environment: ZINC_FIRST_ADMIN_USER: admin ZINC_FIRST_ADMIN_PASSWORD: admin @@ -67,25 +67,16 @@ services: - paopao-network # meili: - # image: getmeili/meilisearch:v0.29.0 + # image: getmeili/meilisearch:v1.1 # restart: always # ports: # - 7700:7700 # volumes: - # - ./data/meili/data:/meili_data + # - ./custom/data/meili/data:/meili_data # environment: # - MEILI_MASTER_KEY=paopao-meilisearch # networks: # - paopao-network - - # # a ui for managing your meilisearch instances - # uirecord: - # image: bitriory/uirecord:latest - # restart: always - # ports: - # - 7701:3000 - # networks: - # - paopao-network # pyroscope: # image: pyroscope/pyroscope:latest @@ -111,7 +102,7 @@ services: - paopao-network backend: - image: bitbus/paopao-ce:nightly + image: bitbus/paopao-ce:0.3.0-rc.1 restart: always depends_on: - db diff --git a/go.mod b/go.mod index f4a982a9..cac8c9dd 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/jackc/pgx/v5 v5.3.1 github.com/json-iterator/go v1.1.12 github.com/kyleconroy/sqlc v1.17.2 - github.com/meilisearch/meilisearch-go v0.21.0 + github.com/meilisearch/meilisearch-go v0.24.0 github.com/minio/minio-go/v7 v7.0.52 github.com/onsi/ginkgo/v2 v2.9.2 github.com/onsi/gomega v1.27.6 diff --git a/go.sum b/go.sum index 82158af4..86284878 100644 --- a/go.sum +++ b/go.sum @@ -613,7 +613,6 @@ github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.1.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-migrate/migrate/v4 v4.15.2 h1:vU+M05vs6jWHKDdmE1Ecwj0BznygFc4QsdRe2E/L7kc= @@ -998,8 +997,8 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= -github.com/meilisearch/meilisearch-go v0.21.0 h1:SwYMWJVi6vDdSDJdOmbkJ4T26PavjYc4MlZcJZF9+Qs= -github.com/meilisearch/meilisearch-go v0.21.0/go.mod h1:3dvPYZGUWu40qHoTK187fmqF2lrarboPa5m2Yu2Seh4= +github.com/meilisearch/meilisearch-go v0.24.0 h1:GTP8LWZmkMYrGgX5BRZdkC2Txyp0mFYLzXYMlVV7cSQ= +github.com/meilisearch/meilisearch-go v0.24.0/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= @@ -1311,6 +1310,7 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= diff --git a/internal/dao/search/meili.go b/internal/dao/search/meili.go index b2ee4d16..fc19e358 100644 --- a/internal/dao/search/meili.go +++ b/internal/dao/search/meili.go @@ -52,20 +52,20 @@ func (s *meiliTweetSearchServant) Name() string { } func (s *meiliTweetSearchServant) Version() *semver.Version { - return semver.MustParse("v0.2.1") + return semver.MustParse("v0.2.2") } func (s *meiliTweetSearchServant) IndexName() string { return s.index.UID } -func (s *meiliTweetSearchServant) AddDocuments(data []core.TsDocItem, primaryKey ...string) (bool, error) { +func (s *meiliTweetSearchServant) AddDocuments(data []core.TsDocItem, _primaryKey ...string) (bool, error) { docs := s.toDocs(data) if len(docs) == 0 { return true, nil } - if _, err := s.index.AddDocuments(docs, primaryKey...); err != nil { - logrus.Errorf("meiliTweetSearchServant.AddDocuments error: %v", err) + if _, err := s.index.AddDocuments(docs); err != nil { + logrus.Errorf("meiliTweetSearchServant.AddDocuments error: %s", err) return false, err } return true, nil @@ -77,7 +77,7 @@ func (s *meiliTweetSearchServant) DeleteDocuments(identifiers []string) error { logrus.Errorf("meiliTweetSearchServant.DeleteDocuments error: %v", err) return err } - logrus.Debugf("meiliTweetSearchServant.DeleteDocuments task: %+v", task.Details) + logrus.Debugf("meiliTweetSearchServant.DeleteDocuments task: (taskUID:%d, indexUID:%s, status:%s)", task.TaskUID, task.IndexUID, task.Status) return nil } diff --git a/internal/dao/search/search.go b/internal/dao/search/search.go index 3a7e4f72..d8a058f8 100644 --- a/internal/dao/search/search.go +++ b/internal/dao/search/search.go @@ -22,19 +22,22 @@ func NewMeiliTweetSearchService(ams core.AuthorizationManageService) (core.Tweet }) if _, err := client.Index(s.Index).FetchInfo(); err != nil { - logrus.Debugf("create index because fetch index info error: %v", err) - client.CreateIndex(&meilisearch.IndexConfig{ + logrus.Debugf("create meili index because fetch index info error: %v", err) + if _, err := client.CreateIndex(&meilisearch.IndexConfig{ Uid: s.Index, PrimaryKey: "id", - }) - searchableAttributes := []string{"content", "tags"} - sortableAttributes := []string{"is_top", "latest_replied_on"} - filterableAttributes := []string{"tags", "visibility", "user_id"} - - index := client.Index(s.Index) - index.UpdateSearchableAttributes(&searchableAttributes) - index.UpdateSortableAttributes(&sortableAttributes) - index.UpdateFilterableAttributes(&filterableAttributes) + }); err == nil { + settings := meilisearch.Settings{ + SearchableAttributes: []string{"content", "tags"}, + SortableAttributes: []string{"is_top", "latest_replied_on"}, + FilterableAttributes: []string{"tags", "visibility", "user_id"}, + } + if _, err = client.Index(s.Index).UpdateSettings(&settings); err != nil { + logrus.Errorf("update meili settings error: %s", err) + } + } else { + logrus.Errorf("create meili index error: %s", err) + } } mts := &meiliTweetSearchServant{ diff --git a/internal/servants/web/core.go b/internal/servants/web/core.go index bbbf52a8..c4f60af3 100644 --- a/internal/servants/web/core.go +++ b/internal/servants/web/core.go @@ -119,6 +119,8 @@ func (s *coreSrv) Chain() gin.HandlersChain { func (s *coreSrv) SyncSearchIndex(req *web.SyncSearchIndexReq) mir.Error { if req.User != nil && req.User.IsAdmin { go s.PushPostsToSearch(context.Background()) + } else { + logrus.Warnf("sync search index need admin permision user: %#v", req.User) } return nil }