From 8f4d399cfdb4be8b7c209ea67c4ee0a10009d425 Mon Sep 17 00:00:00 2001 From: 12600k-rog-d4 Date: Tue, 9 Dec 2025 20:33:57 +0800 Subject: [PATCH] 20251209 --- Readme.md | 0 .../bbs-go-active}/.dockerignore | 0 .../.github/workflows/bbs-go-admin.yml | 0 .../.github/workflows/bbs-go-docker.yml | 0 .../.github/workflows/bbs-go-server.yml | 52 +- .../.github/workflows/bbs-go-site.yml | 62 +- {bbs-go => archive/bbs-go-active}/.gitignore | 12 +- .../bbs-go-active}/Dockerfile | 0 .../bbs-go-active}/LICENSE | 1348 ++++++++--------- .../bbs-go-active}/README.md | 170 +-- .../bbs-go-active}/admin/.env.development | 0 .../bbs-go-active}/admin/.env.docker | 0 .../bbs-go-active}/admin/.env.production | 0 .../bbs-go-active}/admin/.eslintignore | 0 .../admin/.eslintrc-auto-import.json | 0 .../bbs-go-active}/admin/.eslintrc.js | 0 .../bbs-go-active}/admin/.gitignore | 0 .../bbs-go-active}/admin/.husky/commit-msg | 0 .../bbs-go-active}/admin/.husky/pre-commit | 0 .../bbs-go-active}/admin/.prettierignore | 0 .../bbs-go-active}/admin/.prettierrc.js | 0 .../bbs-go-active}/admin/.stylelintrc.js | 0 .../admin/.vscode/settings.json | 0 .../bbs-go-active}/admin/CNAME | 0 .../bbs-go-active}/admin/babel.config.js | 0 .../bbs-go-active}/admin/commitlint.config.js | 0 .../bbs-go-active}/admin/components.d.ts | 0 .../admin/config/plugin/arcoResolver.ts | 0 .../admin/config/plugin/arcoStyleImport.ts | 0 .../admin/config/plugin/compress.ts | 0 .../admin/config/plugin/imagemin.ts | 0 .../admin/config/plugin/visualizer.ts | 0 .../admin/config/utils/index.ts | 0 .../admin/config/vite.config.base.ts | 0 .../admin/config/vite.config.dev.ts | 0 .../admin/config/vite.config.docker.ts | 0 .../admin/config/vite.config.prod.ts | 0 .../bbs-go-active}/admin/index.html | 0 .../bbs-go-active}/admin/package.json | 0 .../bbs-go-active}/admin/pnpm-lock.yaml | 0 .../bbs-go-active}/admin/src/App.vue | 0 .../admin/src/api/interceptor.ts | 0 .../bbs-go-active}/admin/src/api/user.ts | 0 .../admin/src/assets/images/logo.png | Bin .../admin/src/assets/images/logo364x364.png | Bin .../admin/src/assets/style/breakpoint.less | 0 .../admin/src/assets/style/custom.less | 0 .../admin/src/assets/style/global.less | 0 .../admin/src/auto-imports.d.ts | 0 .../admin/src/components/ImageUpload.vue | 0 .../admin/src/components/breadcrumb/index.vue | 0 .../admin/src/components/chart/index.vue | 0 .../admin/src/components/footer/index.vue | 0 .../src/components/global-setting/block.vue | 0 .../global-setting/form-wrapper.vue | 0 .../src/components/global-setting/index.vue | 0 .../admin/src/components/index.ts | 0 .../admin/src/components/menu/index.vue | 0 .../src/components/menu/use-menu-tree.ts | 0 .../admin/src/components/navbar/index.vue | 0 .../admin/src/components/tab-bar/index.vue | 0 .../admin/src/components/tab-bar/readme.md | 0 .../admin/src/components/tab-bar/tab-item.vue | 0 .../admin/src/composables/arco.ts | 0 .../admin/src/composables/index.ts | 0 .../admin/src/composables/types.ts | 0 .../admin/src/directive/index.ts | 0 .../admin/src/directive/permission/index.ts | 0 .../bbs-go-active}/admin/src/env.d.ts | 0 .../admin/src/hooks/chart-option.ts | 0 .../bbs-go-active}/admin/src/hooks/loading.ts | 0 .../bbs-go-active}/admin/src/hooks/locale.ts | 0 .../admin/src/hooks/permission.ts | 0 .../bbs-go-active}/admin/src/hooks/request.ts | 0 .../admin/src/hooks/responsive.ts | 0 .../bbs-go-active}/admin/src/hooks/themes.ts | 0 .../bbs-go-active}/admin/src/hooks/user.ts | 0 .../bbs-go-active}/admin/src/hooks/visible.ts | 0 .../admin/src/layout/default-layout.vue | 0 .../admin/src/layout/page-layout.vue | 0 .../bbs-go-active}/admin/src/locale/en-US.ts | 0 .../admin/src/locale/en-US/settings.ts | 0 .../bbs-go-active}/admin/src/locale/index.ts | 0 .../bbs-go-active}/admin/src/locale/zh-CN.ts | 0 .../admin/src/locale/zh-CN/settings.ts | 0 .../bbs-go-active}/admin/src/main.ts | 0 .../admin/src/router/app-menus/index.ts | 0 .../admin/src/router/constants.ts | 0 .../admin/src/router/guard/index.ts | 0 .../admin/src/router/guard/loadRouters.ts | 0 .../admin/src/router/guard/permission.ts | 0 .../admin/src/router/guard/userLoginInfo.ts | 0 .../bbs-go-active}/admin/src/router/index.ts | 0 .../admin/src/router/routes/base.ts | 0 .../src/router/routes/externalModules/docs.ts | 0 .../admin/src/router/routes/index.ts | 0 .../src/router/routes/modules/dashboard.ts | 0 .../admin/src/router/routes/types.ts | 0 .../admin/src/router/typings.d.ts | 0 .../bbs-go-active}/admin/src/store/index.ts | 0 .../admin/src/store/modules/app/index.ts | 0 .../admin/src/store/modules/app/types.ts | 0 .../admin/src/store/modules/dict/index.js | 0 .../admin/src/store/modules/tab-bar/index.ts | 0 .../admin/src/store/modules/tab-bar/types.ts | 0 .../admin/src/store/modules/user/index.ts | 0 .../admin/src/store/modules/user/types.ts | 0 .../bbs-go-active}/admin/src/types/echarts.ts | 0 .../bbs-go-active}/admin/src/types/global.ts | 0 .../bbs-go-active}/admin/src/utils/auth.ts | 0 .../bbs-go-active}/admin/src/utils/event.ts | 0 .../bbs-go-active}/admin/src/utils/index.ts | 0 .../bbs-go-active}/admin/src/utils/is.ts | 0 .../bbs-go-active}/admin/src/utils/monitor.ts | 0 .../admin/src/utils/route-listener.ts | 0 .../src/views/login/components/banner.vue | 0 .../src/views/login/components/login-form.vue | 0 .../admin/src/views/login/index.vue | 0 .../admin/src/views/login/locale/en-US.ts | 0 .../admin/src/views/login/locale/zh-CN.ts | 0 .../admin/src/views/not-found/index.vue | 0 .../pages/article/components/ArticleList.vue | 0 .../admin/src/views/pages/article/index.vue | 0 .../admin/src/views/pages/dashboard/index.vue | 0 .../pages/forbidden-word/components/Edit.vue | 0 .../src/views/pages/forbidden-word/index.vue | 0 .../src/views/pages/link/components/Edit.vue | 0 .../admin/src/views/pages/link/index.vue | 0 .../settings/components/CommonSettings.vue | 0 .../pages/settings/components/NavSettings.vue | 0 .../settings/components/ScoreSettings.vue | 0 .../settings/components/SpamSettings.vue | 0 .../admin/src/views/pages/settings/index.vue | 0 .../pages/system/api/components/Edit.vue | 0 .../src/views/pages/system/api/index.vue | 0 .../pages/system/dict/components/Dict.vue | 0 .../pages/system/dict/components/DictEdit.vue | 0 .../pages/system/dict/components/DictType.vue | 0 .../system/dict/components/DictTypeEdit.vue | 0 .../src/views/pages/system/dict/index.vue | 0 .../pages/system/menu/components/Edit.vue | 0 .../system/menu/components/IconPicker.vue | 0 .../src/views/pages/system/menu/index.vue | 0 .../views/pages/system/permission/index.vue | 0 .../pages/system/role/components/Edit.vue | 0 .../src/views/pages/system/role/index.vue | 0 .../pages/topic-node/components/Edit.vue | 0 .../src/views/pages/topic-node/index.vue | 0 .../pages/topic/components/TopicList.vue | 0 .../admin/src/views/pages/topic/index.vue | 0 .../src/views/pages/user/components/Edit.vue | 0 .../admin/src/views/pages/user/index.vue | 0 .../admin/src/views/redirect/index.vue | 0 .../bbs-go-active}/admin/tsconfig.json | 0 .../bbs-go-active}/bbs-go.code-workspace | 0 .../bbs-go-active}/docker-compose.yml | 0 .../bbs-go-active}/docs/images/features.jpg | Bin .../bbs-go-active}/docs/images/qq.png | Bin .../bbs-go-active}/docs/images/qq_big.png | Bin .../bbs-go-active}/docs/images/wechat.png | Bin .../bbs-go-active}/docs/images/wechat_big.png | Bin .../bbs-go-active}/server/.gitignore | 82 +- .../bbs-go-active}/server/LICENSE | 1348 ++++++++--------- .../bbs-go-active}/server/Makefile | 0 .../bbs-go-active}/server/README.md | 4 +- .../bbs-go-active}/server/bbs-go.docker.yaml | 0 .../bbs-go-active}/server/bbs-go.example.yaml | 128 +- .../bbs-go-active}/server/cmd/test/main.go | 0 .../bbs-go-active}/server/go.mod | 0 .../bbs-go-active}/server/go.sum | 0 .../internal/cache/article_tag_cache.go | 0 .../internal/cache/forbidden_word_cache.go | 0 .../server/internal/cache/sys_config_cache.go | 0 .../server/internal/cache/tag_cache.go | 0 .../server/internal/cache/topic_cache.go | 0 .../server/internal/cache/user_cache.go | 0 .../server/internal/cache/user_token_cache.go | 0 .../server/internal/cache/utils.go | 0 .../controllers/admin/api_controller.go | 0 .../controllers/admin/article_controller.go | 0 .../admin/article_tag_controller.go | 0 .../controllers/admin/check_in_controller.go | 0 .../controllers/admin/comment_controller.go | 0 .../controllers/admin/common_controller.go | 0 .../controllers/admin/dict_controller.go | 0 .../controllers/admin/dict_type_controller.go | 0 .../admin/email_code_controller.go | 0 .../controllers/admin/favorite_controller.go | 0 .../admin/forbidden_word_controller.go | 0 .../controllers/admin/link_controller.go | 0 .../controllers/admin/menu_api_controller.go | 0 .../controllers/admin/menu_controller.go | 0 .../controllers/admin/message_controller.go | 0 .../admin/operate_log_controller.go | 0 .../controllers/admin/role_controller.go | 0 .../admin/sys_config_controller.go | 0 .../controllers/admin/tag_controller.go | 0 .../controllers/admin/topic_controller.go | 0 .../admin/topic_node_controller.go | 0 .../controllers/admin/topic_tag_controller.go | 0 .../controllers/admin/user_controller.go | 0 .../controllers/admin/user_feed_controller.go | 0 .../admin/user_follow_controller.go | 0 .../admin/user_report_controller.go | 0 .../admin/user_score_log_controller.go | 0 .../controllers/api/article_controller.go | 0 .../controllers/api/captcha_controller.go | 0 .../controllers/api/checkin_controller.go | 0 .../controllers/api/comment_controller.go | 0 .../controllers/api/config_controller.go | 0 .../controllers/api/fans_controller.go | 0 .../controllers/api/favorite_controller.go | 0 .../controllers/api/like_controller.go | 0 .../controllers/api/link_controller.go | 0 .../controllers/api/login_controller.go | 0 .../controllers/api/search_controller.go | 0 .../controllers/api/tag_controller.go | 0 .../controllers/api/topic_controller.go | 0 .../controllers/api/upload_controller.go | 0 .../controllers/api/user_controller.go | 0 .../controllers/api/user_report_controller.go | 0 .../controllers/render/article_render.go | 0 .../internal/controllers/render/base.go | 0 .../controllers/render/comment_render.go | 0 .../controllers/render/dict_render.go | 0 .../controllers/render/favorite_render.go | 0 .../controllers/render/menu_render.go | 0 .../controllers/render/message_render.go | 0 .../controllers/render/misc_render.go | 0 .../controllers/render/node_render.go | 0 .../controllers/render/oss_image_style.go | 0 .../internal/controllers/render/tag_render.go | 0 .../controllers/render/topic_render.go | 0 .../controllers/render/topic_search_render.go | 0 .../controllers/render/user_render.go | 0 .../middleware/api_auth_middleware.go | 0 .../internal/models/constants/constants.go | 0 .../server/internal/models/data.go | 0 .../server/internal/models/dto/dto.go | 0 .../server/internal/models/form.go | 0 .../server/internal/models/model_methods.go | 0 .../server/internal/models/models.go | 0 .../server/internal/models/models_system.go | 0 .../server/internal/models/response.go | 0 .../server/internal/pkg/bbsurls/urls.go | 0 .../server/internal/pkg/common/utils.go | 0 .../server/internal/pkg/config/config.go | 0 .../server/internal/pkg/email/email.go | 0 .../server/internal/pkg/errs/code_errors.go | 0 .../server/internal/pkg/event/ants_test.go | 0 .../server/internal/pkg/event/data.go | 0 .../server/internal/pkg/event/event.go | 0 .../server/internal/pkg/event/event_test.go | 0 .../server/internal/pkg/gormlogs/gorm.go | 0 .../internal/pkg/gormlogs/gorm_options.go | 0 .../server/internal/pkg/html/html.go | 0 .../internal/pkg/iplocator/iplocator.go | 0 .../internal/pkg/iplocator/iplocator_test.go | 0 .../server/internal/pkg/markdown/utils.go | 0 .../server/internal/pkg/msg/data.go | 0 .../server/internal/pkg/search/common.go | 0 .../server/internal/pkg/search/search.go | 0 .../server/internal/pkg/search/search_test.go | 0 .../server/internal/pkg/seo/push.go | 0 .../server/internal/pkg/sitemap/sitemap.go | 0 .../server/internal/pkg/text/text.go | 0 .../server/internal/pkg/token/constants.go | 0 .../server/internal/pkg/token/user_token.go | 0 .../pkg/uploader/aliyun_oss_uploader.go | 0 .../internal/pkg/uploader/local_uploader.go | 0 .../server/internal/pkg/uploader/uploader.go | 0 .../server/internal/pkg/uploader/utils.go | 0 .../server/internal/pkg/urls/ant_matcher.go | 0 .../server/internal/pkg/validate/validate.go | 0 .../internal/repositories/api_repository.go | 0 .../repositories/article_repository.go | 0 .../repositories/article_tag_repository.go | 0 .../repositories/check_in_repository.go | 0 .../repositories/comment_repository.go | 0 .../internal/repositories/dict_repository.go | 0 .../repositories/dict_type_repository.go | 0 .../repositories/email_code_repository.go | 0 .../repositories/favorite_repository.go | 0 .../repositories/forbidden_word_repository.go | 0 .../internal/repositories/link_repository.go | 0 .../repositories/menu_api_repository.go | 0 .../internal/repositories/menu_repository.go | 0 .../repositories/message_repository.go | 0 .../repositories/operate_log_repository.go | 0 .../repositories/role_menu_repository.go | 0 .../internal/repositories/role_repository.go | 0 .../repositories/sys_config_repository.go | 0 .../internal/repositories/tag_repository.go | 0 .../repositories/topic_node_repository.go | 0 .../internal/repositories/topic_repository.go | 0 .../repositories/topic_tag_repository.go | 0 .../repositories/user_feed_repository.go | 0 .../repositories/user_follow_repository.go | 0 .../repositories/user_like_repository.go | 0 .../repositories/user_report_repository.go | 0 .../internal/repositories/user_repository.go | 0 .../repositories/user_role_repository.go | 0 .../repositories/user_score_log_repository.go | 0 .../repositories/user_token_repository.go | 0 .../server/internal/scheduler/cron.go | 0 .../server/internal/server/init.go | 0 .../server/internal/server/init_logger.go | 0 .../server/internal/server/router.go | 0 .../server/internal/services/api_service.go | 0 .../internal/services/article_service.go | 0 .../internal/services/article_tag_service.go | 0 .../internal/services/check_in_service.go | 0 .../internal/services/comment_service.go | 0 .../server/internal/services/dict_service.go | 0 .../internal/services/dict_type_service.go | 0 .../internal/services/email_code_service.go | 0 .../eventhandler/comment_create_handler.go | 0 .../services/eventhandler/follow_handler.go | 0 .../eventhandler/topic_create_handler.go | 0 .../eventhandler/topic_delete_handler.go | 0 .../eventhandler/topic_recommend_handler.go | 0 .../services/eventhandler/unfollow_handler.go | 0 .../eventhandler/user_favorite_handler.go | 0 .../eventhandler/user_like_handler.go | 0 .../internal/services/favorite_service.go | 0 .../services/forbidden_word_service.go | 0 .../server/internal/services/link_service.go | 0 .../internal/services/menu_api_service.go | 0 .../server/internal/services/menu_service.go | 0 .../internal/services/message_service.go | 0 .../internal/services/operate_log_service.go | 0 .../internal/services/role_menu_service.go | 0 .../server/internal/services/role_service.go | 0 .../internal/services/sys_config_service.go | 0 .../server/internal/services/tag_service.go | 0 .../internal/services/topic_node_service.go | 0 .../services/topic_publish_service.go | 0 .../server/internal/services/topic_service.go | 0 .../internal/services/topic_tag_service.go | 0 .../internal/services/user_feed_service.go | 0 .../internal/services/user_follow_service.go | 0 .../internal/services/user_like_service.go | 0 .../internal/services/user_report_service.go | 0 .../internal/services/user_role_service.go | 0 .../services/user_score_log_service.go | 0 .../server/internal/services/user_service.go | 0 .../internal/services/user_token_service.go | 0 .../server/internal/spam/captcha_strategy.go | 0 .../internal/spam/email_verify_strategy.go | 0 .../internal/spam/post_frequency_strategy.go | 0 .../server/internal/spam/spam.go | 0 .../server/internal/spam/strategy.go | 0 .../bbs-go-active}/server/main.go | 0 .../server/migrations/0000001_init.up.sql | 0 .../bbs-go-active}/server/start.sh | 0 .../bbs-go-active}/site/.env.docker | 0 .../bbs-go-active}/site/.env.example | 0 .../bbs-go-active}/site/.env.local | 0 .../bbs-go-active}/site/.eslintrc | 0 .../bbs-go-active}/site/.gitignore | 0 .../bbs-go-active}/site/.npmrc | 0 .../bbs-go-active}/site/.vscode/settings.json | 0 .../bbs-go-active}/site/README.md | 0 .../bbs-go-active}/site/ecosystem.config.js | 0 .../bbs-go-active}/site/nuxt.config.ts | 0 .../bbs-go-active}/site/package.json | 0 .../bbs-go-active}/site/pnpm-lock.yaml | 0 .../bbs-go-active}/site/server/tsconfig.json | 0 .../bbs-go-active}/site/src/app.vue | 0 .../site/src/assets/css/bulma.scss | 0 .../site/src/assets/css/common.scss | 0 .../site/src/assets/css/highlightjs.scss | 0 .../site/src/assets/css/index.scss | 0 .../site/src/assets/css/nav.scss | 0 .../site/src/assets/css/signin.scss | 0 .../site/src/assets/css/topic.scss | 0 .../site/src/assets/iconfont/demo.css | 0 .../site/src/assets/iconfont/demo_index.html | 0 .../site/src/assets/iconfont/iconfont.css | 0 .../site/src/assets/iconfont/iconfont.js | 0 .../site/src/assets/iconfont/iconfont.json | 0 .../site/src/assets/iconfont/iconfont.ttf | Bin .../site/src/assets/iconfont/iconfont.woff | Bin .../site/src/assets/iconfont/iconfont.woff2 | Bin .../site/src/assets/images/close2.png | Bin .../src/assets/images/default-user-bg.jpg | Bin .../src/assets/images/default-user-bg1.jpg | Bin .../site/src/assets/images/feed.png | Bin .../site/src/assets/images/logo.png | Bin .../site/src/assets/images/logo364x364.png | Bin .../site/src/assets/images/net.png | Bin .../site/src/assets/images/new.png | Bin .../site/src/assets/images/node.png | Bin .../site/src/assets/images/recommend.png | Bin .../site/src/components/ArticleList.vue | 0 .../site/src/components/ArticleManageMenu.vue | 0 .../site/src/components/AvatarEdit.vue | 0 .../site/src/components/CheckIn.vue | 0 .../site/src/components/ColorMode.vue | 0 .../site/src/components/CreateTopicBtn.vue | 0 .../site/src/components/FansWidget.vue | 0 .../site/src/components/FollowBtn.vue | 0 .../site/src/components/FollowWidget.vue | 0 .../site/src/components/FriendLinks.vue | 0 .../site/src/components/ImageUpload.vue | 0 .../site/src/components/LoadMoreAsync.vue | 0 .../site/src/components/MarkdownEditor.vue | 0 .../site/src/components/MsgNotice.vue | 0 .../site/src/components/MyAvatar.vue | 0 .../site/src/components/MyAvatar.vue.bak | 0 .../site/src/components/MyCounts.vue | 0 .../site/src/components/MyDialog.vue | 0 .../site/src/components/MyEmpty.vue | 0 .../site/src/components/MyFooter.vue | 0 .../site/src/components/MyHeader.vue | 0 .../site/src/components/MyProfile.vue | 0 .../site/src/components/ScoreRank.vue | 0 .../site/src/components/SearchInput.vue | 0 .../site/src/components/SearchTopicList.vue | 0 .../site/src/components/SearchTopicsNav.vue | 0 .../site/src/components/SimpleEditor.vue | 0 .../site/src/components/SiteNotice.vue | 0 .../site/src/components/TagInput.vue | 0 .../site/src/components/TextEditor.vue | 0 .../site/src/components/TopicList.vue | 0 .../site/src/components/TopicList.vue.bak | 0 .../site/src/components/TopicManageMenu.vue | 0 .../site/src/components/TopicsNav.vue | 0 .../site/src/components/TopicsNav.vue.bak | 0 .../site/src/components/UserCenterSidebar.vue | 0 .../site/src/components/UserFollowList.vue | 0 .../site/src/components/UserInfo.vue | 0 .../site/src/components/UserProfile.vue | 0 .../site/src/components/comment/Input.vue | 0 .../site/src/components/comment/List.vue | 0 .../site/src/components/comment/SubList.vue | 0 .../site/src/components/comment/index.vue | 0 .../site/src/composables/config.js | 0 .../site/src/composables/http.js | 0 .../bbs-go-active}/site/src/composables/ui.js | 0 .../site/src/composables/user.js | 0 .../site/src/composables/utils.js | 0 .../bbs-go-active}/site/src/error.vue | 0 .../site/src/layouts/default.vue | 0 .../site/src/layouts/profile.vue | 0 .../site/src/layouts/ucenter.vue | 0 .../site/src/middleware/auth.js | 0 .../site/src/middleware/fetch.global.ts | 0 .../bbs-go-active}/site/src/pages/about.vue | 0 .../site/src/pages/article/[id].vue | 0 .../site/src/pages/article/create.vue | 0 .../site/src/pages/article/edit/[id].vue | 0 .../site/src/pages/articles/index.vue | 0 .../site/src/pages/articles/tag/[id].vue | 0 .../bbs-go-active}/site/src/pages/index.vue | 0 .../site/src/pages/index.vue.bak | 0 .../bbs-go-active}/site/src/pages/links.vue | 0 .../site/src/pages/redirect.vue | 0 .../site/src/pages/search/index.vue | 0 .../site/src/pages/topic/[id].vue | 0 .../site/src/pages/topic/create.vue | 0 .../site/src/pages/topic/edit/[id].vue | 0 .../site/src/pages/topics/index.vue | 0 .../site/src/pages/topics/node/[id].vue | 0 .../site/src/pages/topics/tag/[id].vue | 0 .../site/src/pages/user/[userId]/articles.vue | 0 .../site/src/pages/user/[userId]/fans.vue | 0 .../site/src/pages/user/[userId]/followed.vue | 0 .../site/src/pages/user/[userId]/index.vue | 0 .../site/src/pages/user/email/verify.vue | 0 .../site/src/pages/user/favorites.vue | 0 .../site/src/pages/user/messages.vue | 0 .../site/src/pages/user/profile/account.vue | 0 .../site/src/pages/user/profile/index.vue | 0 .../site/src/pages/user/scores.vue | 0 .../site/src/pages/user/signin.vue | 0 .../site/src/pages/user/signup.vue | 0 .../site/src/plugins/clickOutside.js | 0 .../site/src/public/favicon.ico | Bin .../bbs-go-active}/site/src/public/icon.png | Bin .../site/src/public/images/avatars/0.png | Bin .../site/src/public/images/avatars/0.svg | 0 .../site/src/public/images/avatars/1.png | Bin .../site/src/public/images/avatars/1.svg | 0 .../site/src/public/images/avatars/10.png | Bin .../site/src/public/images/avatars/10.svg | 0 .../site/src/public/images/avatars/100.png | Bin .../site/src/public/images/avatars/100.svg | 0 .../site/src/public/images/avatars/101.png | Bin .../site/src/public/images/avatars/101.svg | 0 .../site/src/public/images/avatars/102.png | Bin .../site/src/public/images/avatars/102.svg | 0 .../site/src/public/images/avatars/103.png | Bin .../site/src/public/images/avatars/103.svg | 0 .../site/src/public/images/avatars/104.png | Bin .../site/src/public/images/avatars/104.svg | 0 .../site/src/public/images/avatars/105.png | Bin .../site/src/public/images/avatars/105.svg | 0 .../site/src/public/images/avatars/106.png | Bin .../site/src/public/images/avatars/106.svg | 0 .../site/src/public/images/avatars/107.png | Bin .../site/src/public/images/avatars/107.svg | 0 .../site/src/public/images/avatars/108.png | Bin .../site/src/public/images/avatars/108.svg | 0 .../site/src/public/images/avatars/109.png | Bin .../site/src/public/images/avatars/109.svg | 0 .../site/src/public/images/avatars/11.png | Bin .../site/src/public/images/avatars/11.svg | 0 .../site/src/public/images/avatars/110.png | Bin .../site/src/public/images/avatars/110.svg | 0 .../site/src/public/images/avatars/111.png | Bin .../site/src/public/images/avatars/111.svg | 0 .../site/src/public/images/avatars/112.png | Bin .../site/src/public/images/avatars/112.svg | 0 .../site/src/public/images/avatars/113.png | Bin .../site/src/public/images/avatars/113.svg | 0 .../site/src/public/images/avatars/114.png | Bin .../site/src/public/images/avatars/114.svg | 0 .../site/src/public/images/avatars/115.png | Bin .../site/src/public/images/avatars/115.svg | 0 .../site/src/public/images/avatars/116.png | Bin .../site/src/public/images/avatars/116.svg | 0 .../site/src/public/images/avatars/117.png | Bin .../site/src/public/images/avatars/117.svg | 0 .../site/src/public/images/avatars/118.png | Bin .../site/src/public/images/avatars/118.svg | 0 .../site/src/public/images/avatars/119.png | Bin .../site/src/public/images/avatars/119.svg | 0 .../site/src/public/images/avatars/12.png | Bin .../site/src/public/images/avatars/12.svg | 0 .../site/src/public/images/avatars/120.png | Bin .../site/src/public/images/avatars/120.svg | 0 .../site/src/public/images/avatars/121.png | Bin .../site/src/public/images/avatars/121.svg | 0 .../site/src/public/images/avatars/122.png | Bin .../site/src/public/images/avatars/122.svg | 0 .../site/src/public/images/avatars/123.png | Bin .../site/src/public/images/avatars/123.svg | 0 .../site/src/public/images/avatars/124.png | Bin .../site/src/public/images/avatars/124.svg | 0 .../site/src/public/images/avatars/125.png | Bin .../site/src/public/images/avatars/125.svg | 0 .../site/src/public/images/avatars/126.png | Bin .../site/src/public/images/avatars/126.svg | 0 .../site/src/public/images/avatars/127.png | Bin .../site/src/public/images/avatars/127.svg | 0 .../site/src/public/images/avatars/13.png | Bin .../site/src/public/images/avatars/13.svg | 0 .../site/src/public/images/avatars/14.png | Bin .../site/src/public/images/avatars/14.svg | 0 .../site/src/public/images/avatars/15.png | Bin .../site/src/public/images/avatars/15.svg | 0 .../site/src/public/images/avatars/16.png | Bin .../site/src/public/images/avatars/16.svg | 0 .../site/src/public/images/avatars/17.png | Bin .../site/src/public/images/avatars/17.svg | 0 .../site/src/public/images/avatars/18.png | Bin .../site/src/public/images/avatars/18.svg | 0 .../site/src/public/images/avatars/19.png | Bin .../site/src/public/images/avatars/19.svg | 0 .../site/src/public/images/avatars/2.png | Bin .../site/src/public/images/avatars/2.svg | 0 .../site/src/public/images/avatars/20.png | Bin .../site/src/public/images/avatars/20.svg | 0 .../site/src/public/images/avatars/21.png | Bin .../site/src/public/images/avatars/21.svg | 0 .../site/src/public/images/avatars/22.png | Bin .../site/src/public/images/avatars/22.svg | 0 .../site/src/public/images/avatars/23.png | Bin .../site/src/public/images/avatars/23.svg | 0 .../site/src/public/images/avatars/24.png | Bin .../site/src/public/images/avatars/24.svg | 0 .../site/src/public/images/avatars/25.png | Bin .../site/src/public/images/avatars/25.svg | 0 .../site/src/public/images/avatars/26.png | Bin .../site/src/public/images/avatars/26.svg | 0 .../site/src/public/images/avatars/27.png | Bin .../site/src/public/images/avatars/27.svg | 0 .../site/src/public/images/avatars/28.png | Bin .../site/src/public/images/avatars/28.svg | 0 .../site/src/public/images/avatars/29.png | Bin .../site/src/public/images/avatars/29.svg | 0 .../site/src/public/images/avatars/3.png | Bin .../site/src/public/images/avatars/3.svg | 0 .../site/src/public/images/avatars/30.png | Bin .../site/src/public/images/avatars/30.svg | 0 .../site/src/public/images/avatars/31.png | Bin .../site/src/public/images/avatars/31.svg | 0 .../site/src/public/images/avatars/32.png | Bin .../site/src/public/images/avatars/32.svg | 0 .../site/src/public/images/avatars/33.png | Bin .../site/src/public/images/avatars/33.svg | 0 .../site/src/public/images/avatars/34.png | Bin .../site/src/public/images/avatars/34.svg | 0 .../site/src/public/images/avatars/35.png | Bin .../site/src/public/images/avatars/35.svg | 0 .../site/src/public/images/avatars/36.png | Bin .../site/src/public/images/avatars/36.svg | 0 .../site/src/public/images/avatars/37.png | Bin .../site/src/public/images/avatars/37.svg | 0 .../site/src/public/images/avatars/38.png | Bin .../site/src/public/images/avatars/38.svg | 0 .../site/src/public/images/avatars/39.png | Bin .../site/src/public/images/avatars/39.svg | 0 .../site/src/public/images/avatars/4.png | Bin .../site/src/public/images/avatars/4.svg | 0 .../site/src/public/images/avatars/40.png | Bin .../site/src/public/images/avatars/40.svg | 0 .../site/src/public/images/avatars/41.png | Bin .../site/src/public/images/avatars/41.svg | 0 .../site/src/public/images/avatars/42.png | Bin .../site/src/public/images/avatars/42.svg | 0 .../site/src/public/images/avatars/43.png | Bin .../site/src/public/images/avatars/43.svg | 0 .../site/src/public/images/avatars/44.png | Bin .../site/src/public/images/avatars/44.svg | 0 .../site/src/public/images/avatars/45.png | Bin .../site/src/public/images/avatars/45.svg | 0 .../site/src/public/images/avatars/46.png | Bin .../site/src/public/images/avatars/46.svg | 0 .../site/src/public/images/avatars/47.png | Bin .../site/src/public/images/avatars/47.svg | 0 .../site/src/public/images/avatars/48.png | Bin .../site/src/public/images/avatars/48.svg | 0 .../site/src/public/images/avatars/49.png | Bin .../site/src/public/images/avatars/49.svg | 0 .../site/src/public/images/avatars/5.png | Bin .../site/src/public/images/avatars/5.svg | 0 .../site/src/public/images/avatars/50.png | Bin .../site/src/public/images/avatars/50.svg | 0 .../site/src/public/images/avatars/51.png | Bin .../site/src/public/images/avatars/51.svg | 0 .../site/src/public/images/avatars/52.png | Bin .../site/src/public/images/avatars/52.svg | 0 .../site/src/public/images/avatars/53.png | Bin .../site/src/public/images/avatars/53.svg | 0 .../site/src/public/images/avatars/54.png | Bin .../site/src/public/images/avatars/54.svg | 0 .../site/src/public/images/avatars/55.png | Bin .../site/src/public/images/avatars/55.svg | 0 .../site/src/public/images/avatars/56.png | Bin .../site/src/public/images/avatars/56.svg | 0 .../site/src/public/images/avatars/57.png | Bin .../site/src/public/images/avatars/57.svg | 0 .../site/src/public/images/avatars/58.png | Bin .../site/src/public/images/avatars/58.svg | 0 .../site/src/public/images/avatars/59.png | Bin .../site/src/public/images/avatars/59.svg | 0 .../site/src/public/images/avatars/6.png | Bin .../site/src/public/images/avatars/6.svg | 0 .../site/src/public/images/avatars/60.png | Bin .../site/src/public/images/avatars/60.svg | 0 .../site/src/public/images/avatars/61.png | Bin .../site/src/public/images/avatars/61.svg | 0 .../site/src/public/images/avatars/62.png | Bin .../site/src/public/images/avatars/62.svg | 0 .../site/src/public/images/avatars/63.png | Bin .../site/src/public/images/avatars/63.svg | 0 .../site/src/public/images/avatars/64.png | Bin .../site/src/public/images/avatars/64.svg | 0 .../site/src/public/images/avatars/65.png | Bin .../site/src/public/images/avatars/65.svg | 0 .../site/src/public/images/avatars/66.png | Bin .../site/src/public/images/avatars/66.svg | 0 .../site/src/public/images/avatars/67.png | Bin .../site/src/public/images/avatars/67.svg | 0 .../site/src/public/images/avatars/68.png | Bin .../site/src/public/images/avatars/68.svg | 0 .../site/src/public/images/avatars/69.png | Bin .../site/src/public/images/avatars/69.svg | 0 .../site/src/public/images/avatars/7.png | Bin .../site/src/public/images/avatars/7.svg | 0 .../site/src/public/images/avatars/70.png | Bin .../site/src/public/images/avatars/70.svg | 0 .../site/src/public/images/avatars/71.png | Bin .../site/src/public/images/avatars/71.svg | 0 .../site/src/public/images/avatars/72.png | Bin .../site/src/public/images/avatars/72.svg | 0 .../site/src/public/images/avatars/73.png | Bin .../site/src/public/images/avatars/73.svg | 0 .../site/src/public/images/avatars/74.png | Bin .../site/src/public/images/avatars/74.svg | 0 .../site/src/public/images/avatars/75.png | Bin .../site/src/public/images/avatars/75.svg | 0 .../site/src/public/images/avatars/76.png | Bin .../site/src/public/images/avatars/76.svg | 0 .../site/src/public/images/avatars/77.png | Bin .../site/src/public/images/avatars/77.svg | 0 .../site/src/public/images/avatars/78.png | Bin .../site/src/public/images/avatars/78.svg | 0 .../site/src/public/images/avatars/79.png | Bin .../site/src/public/images/avatars/79.svg | 0 .../site/src/public/images/avatars/8.png | Bin .../site/src/public/images/avatars/8.svg | 0 .../site/src/public/images/avatars/80.png | Bin .../site/src/public/images/avatars/80.svg | 0 .../site/src/public/images/avatars/81.png | Bin .../site/src/public/images/avatars/81.svg | 0 .../site/src/public/images/avatars/82.png | Bin .../site/src/public/images/avatars/82.svg | 0 .../site/src/public/images/avatars/83.png | Bin .../site/src/public/images/avatars/83.svg | 0 .../site/src/public/images/avatars/84.png | Bin .../site/src/public/images/avatars/84.svg | 0 .../site/src/public/images/avatars/85.png | Bin .../site/src/public/images/avatars/85.svg | 0 .../site/src/public/images/avatars/86.png | Bin .../site/src/public/images/avatars/86.svg | 0 .../site/src/public/images/avatars/87.png | Bin .../site/src/public/images/avatars/87.svg | 0 .../site/src/public/images/avatars/88.png | Bin .../site/src/public/images/avatars/88.svg | 0 .../site/src/public/images/avatars/89.png | Bin .../site/src/public/images/avatars/89.svg | 0 .../site/src/public/images/avatars/9.png | Bin .../site/src/public/images/avatars/9.svg | 0 .../site/src/public/images/avatars/90.png | Bin .../site/src/public/images/avatars/90.svg | 0 .../site/src/public/images/avatars/91.png | Bin .../site/src/public/images/avatars/91.svg | 0 .../site/src/public/images/avatars/92.png | Bin .../site/src/public/images/avatars/92.svg | 0 .../site/src/public/images/avatars/93.png | Bin .../site/src/public/images/avatars/93.svg | 0 .../site/src/public/images/avatars/94.png | Bin .../site/src/public/images/avatars/94.svg | 0 .../site/src/public/images/avatars/95.png | Bin .../site/src/public/images/avatars/95.svg | 0 .../site/src/public/images/avatars/96.png | Bin .../site/src/public/images/avatars/96.svg | 0 .../site/src/public/images/avatars/97.png | Bin .../site/src/public/images/avatars/97.svg | 0 .../site/src/public/images/avatars/98.png | Bin .../site/src/public/images/avatars/98.svg | 0 .../site/src/public/images/avatars/99.png | Bin .../site/src/public/images/avatars/99.svg | 0 .../bbs-go-active}/site/src/public/robots.txt | 0 .../site/src/server/middleware/index.ts | 0 .../bbs-go-active}/site/src/stores/config.js | 0 .../bbs-go-active}/site/src/stores/env.ts | 0 .../bbs-go-active}/site/src/stores/user.js | 0 .../bbs-go-active}/site/tsconfig.json | 0 .../bbs-go-active}/start.sh | 0 .../bbs-go-active}/vetur.config.js | 0 {bbs-go => archive/bbs-go}/.dockerignore | 0 .../.github/workflows/bbs-go-admin.yml | 0 .../.github/workflows/bbs-go-docker.yml | 0 .../.github/workflows/bbs-go-server.yml | 52 +- .../bbs-go}/.github/workflows/bbs-go-site.yml | 62 +- {bbs-go-active => archive/bbs-go}/.gitignore | 12 +- {bbs-go => archive/bbs-go}/Dockerfile | 0 {bbs-go => archive/bbs-go}/LICENSE | 1348 ++++++++--------- {bbs-go => archive/bbs-go}/README.md | 170 +-- .../bbs-go}/admin/.env.development | 0 {bbs-go => archive/bbs-go}/admin/.env.docker | 0 .../bbs-go}/admin/.env.production | 0 .../bbs-go}/admin/.eslintignore | 0 .../bbs-go}/admin/.eslintrc-auto-import.json | 0 {bbs-go => archive/bbs-go}/admin/.eslintrc.js | 0 {bbs-go => archive/bbs-go}/admin/.gitignore | 0 .../bbs-go}/admin/.husky/commit-msg | 0 .../bbs-go}/admin/.husky/pre-commit | 0 .../bbs-go}/admin/.prettierignore | 0 .../bbs-go}/admin/.prettierrc.js | 0 .../bbs-go}/admin/.stylelintrc.js | 0 .../bbs-go}/admin/.vscode/settings.json | 0 {bbs-go => archive/bbs-go}/admin/CNAME | 0 .../bbs-go}/admin/babel.config.js | 0 .../bbs-go}/admin/commitlint.config.js | 0 .../bbs-go}/admin/components.d.ts | 0 .../admin/config/plugin/arcoResolver.ts | 0 .../admin/config/plugin/arcoStyleImport.ts | 0 .../bbs-go}/admin/config/plugin/compress.ts | 0 .../bbs-go}/admin/config/plugin/imagemin.ts | 0 .../bbs-go}/admin/config/plugin/visualizer.ts | 0 .../bbs-go}/admin/config/utils/index.ts | 0 .../bbs-go}/admin/config/vite.config.base.ts | 0 .../bbs-go}/admin/config/vite.config.dev.ts | 0 .../admin/config/vite.config.docker.ts | 0 .../bbs-go}/admin/config/vite.config.prod.ts | 0 {bbs-go => archive/bbs-go}/admin/index.html | 0 {bbs-go => archive/bbs-go}/admin/package.json | 0 .../bbs-go}/admin/pnpm-lock.yaml | 0 {bbs-go => archive/bbs-go}/admin/src/App.vue | 0 .../bbs-go}/admin/src/api/interceptor.ts | 0 .../bbs-go}/admin/src/api/user.ts | 0 .../bbs-go}/admin/src/assets/images/logo.png | Bin .../admin/src/assets/images/logo364x364.png | Bin .../admin/src/assets/style/breakpoint.less | 0 .../admin/src/assets/style/custom.less | 0 .../admin/src/assets/style/global.less | 0 .../bbs-go}/admin/src/auto-imports.d.ts | 0 .../admin/src/components/ImageUpload.vue | 0 .../admin/src/components/breadcrumb/index.vue | 0 .../admin/src/components/chart/index.vue | 0 .../admin/src/components/footer/index.vue | 0 .../src/components/global-setting/block.vue | 0 .../global-setting/form-wrapper.vue | 0 .../src/components/global-setting/index.vue | 0 .../bbs-go}/admin/src/components/index.ts | 0 .../admin/src/components/menu/index.vue | 0 .../src/components/menu/use-menu-tree.ts | 0 .../admin/src/components/navbar/index.vue | 0 .../admin/src/components/tab-bar/index.vue | 0 .../admin/src/components/tab-bar/readme.md | 0 .../admin/src/components/tab-bar/tab-item.vue | 0 .../bbs-go}/admin/src/composables/arco.ts | 0 .../bbs-go}/admin/src/composables/index.ts | 0 .../bbs-go}/admin/src/composables/types.ts | 0 .../bbs-go}/admin/src/directive/index.ts | 0 .../admin/src/directive/permission/index.ts | 0 {bbs-go => archive/bbs-go}/admin/src/env.d.ts | 0 .../bbs-go}/admin/src/hooks/chart-option.ts | 0 .../bbs-go}/admin/src/hooks/loading.ts | 0 .../bbs-go}/admin/src/hooks/locale.ts | 0 .../bbs-go}/admin/src/hooks/permission.ts | 0 .../bbs-go}/admin/src/hooks/request.ts | 0 .../bbs-go}/admin/src/hooks/responsive.ts | 0 .../bbs-go}/admin/src/hooks/themes.ts | 0 .../bbs-go}/admin/src/hooks/user.ts | 0 .../bbs-go}/admin/src/hooks/visible.ts | 0 .../admin/src/layout/default-layout.vue | 0 .../bbs-go}/admin/src/layout/page-layout.vue | 0 .../bbs-go}/admin/src/locale/en-US.ts | 0 .../admin/src/locale/en-US/settings.ts | 0 .../bbs-go}/admin/src/locale/index.ts | 0 .../bbs-go}/admin/src/locale/zh-CN.ts | 0 .../admin/src/locale/zh-CN/settings.ts | 0 {bbs-go => archive/bbs-go}/admin/src/main.ts | 0 .../admin/src/router/app-menus/index.ts | 0 .../bbs-go}/admin/src/router/constants.ts | 0 .../bbs-go}/admin/src/router/guard/index.ts | 0 .../admin/src/router/guard/loadRouters.ts | 0 .../admin/src/router/guard/permission.ts | 0 .../admin/src/router/guard/userLoginInfo.ts | 0 .../bbs-go}/admin/src/router/index.ts | 0 .../bbs-go}/admin/src/router/routes/base.ts | 0 .../src/router/routes/externalModules/docs.ts | 0 .../bbs-go}/admin/src/router/routes/index.ts | 0 .../src/router/routes/modules/dashboard.ts | 0 .../bbs-go}/admin/src/router/routes/types.ts | 0 .../bbs-go}/admin/src/router/typings.d.ts | 0 .../bbs-go}/admin/src/store/index.ts | 0 .../admin/src/store/modules/app/index.ts | 0 .../admin/src/store/modules/app/types.ts | 0 .../admin/src/store/modules/dict/index.js | 0 .../admin/src/store/modules/tab-bar/index.ts | 0 .../admin/src/store/modules/tab-bar/types.ts | 0 .../admin/src/store/modules/user/index.ts | 0 .../admin/src/store/modules/user/types.ts | 0 .../bbs-go}/admin/src/types/echarts.ts | 0 .../bbs-go}/admin/src/types/global.ts | 0 .../bbs-go}/admin/src/utils/auth.ts | 0 .../bbs-go}/admin/src/utils/event.ts | 0 .../bbs-go}/admin/src/utils/index.ts | 0 .../bbs-go}/admin/src/utils/is.ts | 0 .../bbs-go}/admin/src/utils/monitor.ts | 0 .../bbs-go}/admin/src/utils/route-listener.ts | 0 .../src/views/login/components/banner.vue | 0 .../src/views/login/components/login-form.vue | 0 .../bbs-go}/admin/src/views/login/index.vue | 0 .../admin/src/views/login/locale/en-US.ts | 0 .../admin/src/views/login/locale/zh-CN.ts | 0 .../admin/src/views/not-found/index.vue | 0 .../pages/article/components/ArticleList.vue | 0 .../admin/src/views/pages/article/index.vue | 0 .../admin/src/views/pages/dashboard/index.vue | 0 .../pages/forbidden-word/components/Edit.vue | 0 .../src/views/pages/forbidden-word/index.vue | 0 .../src/views/pages/link/components/Edit.vue | 0 .../admin/src/views/pages/link/index.vue | 0 .../settings/components/CommonSettings.vue | 0 .../pages/settings/components/NavSettings.vue | 0 .../settings/components/ScoreSettings.vue | 0 .../settings/components/SpamSettings.vue | 0 .../admin/src/views/pages/settings/index.vue | 0 .../pages/system/api/components/Edit.vue | 0 .../src/views/pages/system/api/index.vue | 0 .../pages/system/dict/components/Dict.vue | 0 .../pages/system/dict/components/DictEdit.vue | 0 .../pages/system/dict/components/DictType.vue | 0 .../system/dict/components/DictTypeEdit.vue | 0 .../src/views/pages/system/dict/index.vue | 0 .../pages/system/menu/components/Edit.vue | 0 .../system/menu/components/IconPicker.vue | 0 .../src/views/pages/system/menu/index.vue | 0 .../views/pages/system/permission/index.vue | 0 .../pages/system/role/components/Edit.vue | 0 .../src/views/pages/system/role/index.vue | 0 .../pages/topic-node/components/Edit.vue | 0 .../src/views/pages/topic-node/index.vue | 0 .../pages/topic/components/TopicList.vue | 0 .../admin/src/views/pages/topic/index.vue | 0 .../src/views/pages/user/components/Edit.vue | 0 .../admin/src/views/pages/user/index.vue | 0 .../admin/src/views/redirect/index.vue | 0 .../bbs-go}/admin/tsconfig.json | 0 .../bbs-go}/bbs-go.code-workspace | 0 {bbs-go => archive/bbs-go}/docker-compose.yml | 0 .../bbs-go}/docs/images/features.jpg | Bin {bbs-go => archive/bbs-go}/docs/images/qq.png | Bin .../bbs-go}/docs/images/qq_big.png | Bin .../bbs-go}/docs/images/wechat.png | Bin .../bbs-go}/docs/images/wechat_big.png | Bin {bbs-go => archive/bbs-go}/server/.gitignore | 82 +- {bbs-go => archive/bbs-go}/server/LICENSE | 1348 ++++++++--------- {bbs-go => archive/bbs-go}/server/Makefile | 0 {bbs-go => archive/bbs-go}/server/README.md | 4 +- .../bbs-go}/server/bbs-go.docker.yaml | 0 .../bbs-go}/server/bbs-go.example.yaml | 128 +- .../bbs-go}/server/cmd/test/main.go | 0 {bbs-go => archive/bbs-go}/server/go.mod | 0 {bbs-go => archive/bbs-go}/server/go.sum | 0 .../internal/cache/article_tag_cache.go | 0 .../internal/cache/forbidden_word_cache.go | 0 .../server/internal/cache/sys_config_cache.go | 0 .../server/internal/cache/tag_cache.go | 0 .../server/internal/cache/topic_cache.go | 0 .../server/internal/cache/user_cache.go | 0 .../server/internal/cache/user_token_cache.go | 0 .../bbs-go}/server/internal/cache/utils.go | 0 .../controllers/admin/api_controller.go | 0 .../controllers/admin/article_controller.go | 0 .../admin/article_tag_controller.go | 0 .../controllers/admin/check_in_controller.go | 0 .../controllers/admin/comment_controller.go | 0 .../controllers/admin/common_controller.go | 0 .../controllers/admin/dict_controller.go | 0 .../controllers/admin/dict_type_controller.go | 0 .../admin/email_code_controller.go | 0 .../controllers/admin/favorite_controller.go | 0 .../admin/forbidden_word_controller.go | 0 .../controllers/admin/link_controller.go | 0 .../controllers/admin/menu_api_controller.go | 0 .../controllers/admin/menu_controller.go | 0 .../controllers/admin/message_controller.go | 0 .../admin/operate_log_controller.go | 0 .../controllers/admin/role_controller.go | 0 .../admin/sys_config_controller.go | 0 .../controllers/admin/tag_controller.go | 0 .../controllers/admin/topic_controller.go | 0 .../admin/topic_node_controller.go | 0 .../controllers/admin/topic_tag_controller.go | 0 .../controllers/admin/user_controller.go | 0 .../controllers/admin/user_feed_controller.go | 0 .../admin/user_follow_controller.go | 0 .../admin/user_report_controller.go | 0 .../admin/user_score_log_controller.go | 0 .../controllers/api/article_controller.go | 0 .../controllers/api/captcha_controller.go | 0 .../controllers/api/checkin_controller.go | 0 .../controllers/api/comment_controller.go | 0 .../controllers/api/config_controller.go | 0 .../controllers/api/fans_controller.go | 0 .../controllers/api/favorite_controller.go | 0 .../controllers/api/like_controller.go | 0 .../controllers/api/link_controller.go | 0 .../controllers/api/login_controller.go | 0 .../controllers/api/search_controller.go | 0 .../controllers/api/tag_controller.go | 0 .../controllers/api/topic_controller.go | 0 .../controllers/api/upload_controller.go | 0 .../controllers/api/user_controller.go | 0 .../controllers/api/user_report_controller.go | 0 .../controllers/render/article_render.go | 0 .../internal/controllers/render/base.go | 0 .../controllers/render/comment_render.go | 0 .../controllers/render/dict_render.go | 0 .../controllers/render/favorite_render.go | 0 .../controllers/render/menu_render.go | 0 .../controllers/render/message_render.go | 0 .../controllers/render/misc_render.go | 0 .../controllers/render/node_render.go | 0 .../controllers/render/oss_image_style.go | 0 .../internal/controllers/render/tag_render.go | 0 .../controllers/render/topic_render.go | 0 .../controllers/render/topic_search_render.go | 0 .../controllers/render/user_render.go | 0 .../middleware/api_auth_middleware.go | 0 .../internal/models/constants/constants.go | 0 .../bbs-go}/server/internal/models/data.go | 0 .../bbs-go}/server/internal/models/dto/dto.go | 0 .../bbs-go}/server/internal/models/form.go | 0 .../server/internal/models/model_methods.go | 0 .../bbs-go}/server/internal/models/models.go | 0 .../server/internal/models/models_system.go | 0 .../server/internal/models/response.go | 0 .../server/internal/pkg/bbsurls/urls.go | 0 .../server/internal/pkg/common/utils.go | 0 .../server/internal/pkg/config/config.go | 0 .../server/internal/pkg/email/email.go | 0 .../server/internal/pkg/errs/code_errors.go | 0 .../server/internal/pkg/event/ants_test.go | 0 .../bbs-go}/server/internal/pkg/event/data.go | 0 .../server/internal/pkg/event/event.go | 0 .../server/internal/pkg/event/event_test.go | 0 .../server/internal/pkg/gormlogs/gorm.go | 0 .../internal/pkg/gormlogs/gorm_options.go | 0 .../bbs-go}/server/internal/pkg/html/html.go | 0 .../internal/pkg/iplocator/iplocator.go | 0 .../internal/pkg/iplocator/iplocator_test.go | 0 .../server/internal/pkg/markdown/utils.go | 0 .../bbs-go}/server/internal/pkg/msg/data.go | 0 .../server/internal/pkg/search/common.go | 0 .../server/internal/pkg/search/search.go | 0 .../server/internal/pkg/search/search_test.go | 0 .../bbs-go}/server/internal/pkg/seo/push.go | 0 .../server/internal/pkg/sitemap/sitemap.go | 0 .../bbs-go}/server/internal/pkg/text/text.go | 0 .../server/internal/pkg/token/constants.go | 0 .../server/internal/pkg/token/user_token.go | 0 .../pkg/uploader/aliyun_oss_uploader.go | 0 .../internal/pkg/uploader/local_uploader.go | 0 .../server/internal/pkg/uploader/uploader.go | 0 .../server/internal/pkg/uploader/utils.go | 0 .../server/internal/pkg/urls/ant_matcher.go | 0 .../server/internal/pkg/validate/validate.go | 0 .../internal/repositories/api_repository.go | 0 .../repositories/article_repository.go | 0 .../repositories/article_tag_repository.go | 0 .../repositories/check_in_repository.go | 0 .../repositories/comment_repository.go | 0 .../internal/repositories/dict_repository.go | 0 .../repositories/dict_type_repository.go | 0 .../repositories/email_code_repository.go | 0 .../repositories/favorite_repository.go | 0 .../repositories/forbidden_word_repository.go | 0 .../internal/repositories/link_repository.go | 0 .../repositories/menu_api_repository.go | 0 .../internal/repositories/menu_repository.go | 0 .../repositories/message_repository.go | 0 .../repositories/operate_log_repository.go | 0 .../repositories/role_menu_repository.go | 0 .../internal/repositories/role_repository.go | 0 .../repositories/sys_config_repository.go | 0 .../internal/repositories/tag_repository.go | 0 .../repositories/topic_node_repository.go | 0 .../internal/repositories/topic_repository.go | 0 .../repositories/topic_tag_repository.go | 0 .../repositories/user_feed_repository.go | 0 .../repositories/user_follow_repository.go | 0 .../repositories/user_like_repository.go | 0 .../repositories/user_report_repository.go | 0 .../internal/repositories/user_repository.go | 0 .../repositories/user_role_repository.go | 0 .../repositories/user_score_log_repository.go | 0 .../repositories/user_token_repository.go | 0 .../bbs-go}/server/internal/scheduler/cron.go | 0 .../bbs-go}/server/internal/server/init.go | 0 .../server/internal/server/init_logger.go | 0 .../bbs-go}/server/internal/server/router.go | 0 .../server/internal/services/api_service.go | 0 .../internal/services/article_service.go | 0 .../internal/services/article_tag_service.go | 0 .../internal/services/check_in_service.go | 0 .../internal/services/comment_service.go | 0 .../server/internal/services/dict_service.go | 0 .../internal/services/dict_type_service.go | 0 .../internal/services/email_code_service.go | 0 .../eventhandler/comment_create_handler.go | 0 .../services/eventhandler/follow_handler.go | 0 .../eventhandler/topic_create_handler.go | 0 .../eventhandler/topic_delete_handler.go | 0 .../eventhandler/topic_recommend_handler.go | 0 .../services/eventhandler/unfollow_handler.go | 0 .../eventhandler/user_favorite_handler.go | 0 .../eventhandler/user_like_handler.go | 0 .../internal/services/favorite_service.go | 0 .../services/forbidden_word_service.go | 0 .../server/internal/services/link_service.go | 0 .../internal/services/menu_api_service.go | 0 .../server/internal/services/menu_service.go | 0 .../internal/services/message_service.go | 0 .../internal/services/operate_log_service.go | 0 .../internal/services/role_menu_service.go | 0 .../server/internal/services/role_service.go | 0 .../internal/services/sys_config_service.go | 0 .../server/internal/services/tag_service.go | 0 .../internal/services/topic_node_service.go | 0 .../services/topic_publish_service.go | 0 .../server/internal/services/topic_service.go | 0 .../internal/services/topic_tag_service.go | 0 .../internal/services/user_feed_service.go | 0 .../internal/services/user_follow_service.go | 0 .../internal/services/user_like_service.go | 0 .../internal/services/user_report_service.go | 0 .../internal/services/user_role_service.go | 0 .../services/user_score_log_service.go | 0 .../server/internal/services/user_service.go | 0 .../internal/services/user_token_service.go | 0 .../server/internal/spam/captcha_strategy.go | 0 .../internal/spam/email_verify_strategy.go | 0 .../internal/spam/post_frequency_strategy.go | 0 .../bbs-go}/server/internal/spam/spam.go | 0 .../bbs-go}/server/internal/spam/strategy.go | 0 {bbs-go => archive/bbs-go}/server/main.go | 0 .../server/migrations/0000001_init.up.sql | 0 {bbs-go => archive/bbs-go}/server/start.sh | 0 {bbs-go => archive/bbs-go}/site/.env.docker | 0 {bbs-go => archive/bbs-go}/site/.env.example | 0 {bbs-go => archive/bbs-go}/site/.env.local | 0 {bbs-go => archive/bbs-go}/site/.eslintrc | 0 {bbs-go => archive/bbs-go}/site/.gitignore | 0 {bbs-go => archive/bbs-go}/site/.npmrc | 0 .../bbs-go}/site/.vscode/settings.json | 0 {bbs-go => archive/bbs-go}/site/README.md | 0 .../bbs-go}/site/ecosystem.config.js | 0 .../bbs-go}/site/nuxt.config.ts | 0 {bbs-go => archive/bbs-go}/site/package.json | 0 .../bbs-go}/site/pnpm-lock.yaml | 0 .../bbs-go}/site/server/tsconfig.json | 0 {bbs-go => archive/bbs-go}/site/src/app.vue | 0 .../bbs-go}/site/src/assets/css/bulma.scss | 0 .../bbs-go}/site/src/assets/css/common.scss | 0 .../site/src/assets/css/highlightjs.scss | 0 .../bbs-go}/site/src/assets/css/index.scss | 0 .../bbs-go}/site/src/assets/css/nav.scss | 0 .../bbs-go}/site/src/assets/css/signin.scss | 0 .../bbs-go}/site/src/assets/css/topic.scss | 0 .../bbs-go}/site/src/assets/iconfont/demo.css | 0 .../site/src/assets/iconfont/demo_index.html | 0 .../site/src/assets/iconfont/iconfont.css | 0 .../site/src/assets/iconfont/iconfont.js | 0 .../site/src/assets/iconfont/iconfont.json | 0 .../site/src/assets/iconfont/iconfont.ttf | Bin .../site/src/assets/iconfont/iconfont.woff | Bin .../site/src/assets/iconfont/iconfont.woff2 | Bin .../bbs-go}/site/src/assets/images/close2.png | Bin .../src/assets/images/default-user-bg.jpg | Bin .../src/assets/images/default-user-bg1.jpg | Bin .../bbs-go}/site/src/assets/images/feed.png | Bin .../bbs-go}/site/src/assets/images/logo.png | Bin .../site/src/assets/images/logo364x364.png | Bin .../bbs-go}/site/src/assets/images/net.png | Bin .../bbs-go}/site/src/assets/images/new.png | Bin .../bbs-go}/site/src/assets/images/node.png | Bin .../site/src/assets/images/recommend.png | Bin .../site/src/components/ArticleList.vue | 0 .../site/src/components/ArticleManageMenu.vue | 0 .../site/src/components/AvatarEdit.vue | 0 .../bbs-go}/site/src/components/CheckIn.vue | 0 .../bbs-go}/site/src/components/ColorMode.vue | 0 .../site/src/components/CreateTopicBtn.vue | 0 .../site/src/components/FansWidget.vue | 0 .../bbs-go}/site/src/components/FollowBtn.vue | 0 .../site/src/components/FollowWidget.vue | 0 .../site/src/components/FriendLinks.vue | 0 .../site/src/components/ImageUpload.vue | 0 .../site/src/components/LoadMoreAsync.vue | 0 .../site/src/components/MarkdownEditor.vue | 0 .../bbs-go}/site/src/components/MsgNotice.vue | 0 .../bbs-go}/site/src/components/MyAvatar.vue | 0 .../site/src/components/MyAvatar.vue.bak | 0 .../bbs-go}/site/src/components/MyCounts.vue | 0 .../bbs-go}/site/src/components/MyDialog.vue | 0 .../bbs-go}/site/src/components/MyEmpty.vue | 0 .../bbs-go}/site/src/components/MyFooter.vue | 0 .../bbs-go}/site/src/components/MyHeader.vue | 0 .../bbs-go}/site/src/components/MyProfile.vue | 0 .../bbs-go}/site/src/components/ScoreRank.vue | 0 .../site/src/components/SearchInput.vue | 0 .../site/src/components/SearchTopicList.vue | 0 .../site/src/components/SearchTopicsNav.vue | 0 .../site/src/components/SimpleEditor.vue | 0 .../site/src/components/SiteNotice.vue | 0 .../bbs-go}/site/src/components/TagInput.vue | 0 .../site/src/components/TextEditor.vue | 0 .../bbs-go}/site/src/components/TopicList.vue | 0 .../site/src/components/TopicList.vue.bak | 0 .../site/src/components/TopicManageMenu.vue | 0 .../bbs-go}/site/src/components/TopicsNav.vue | 0 .../site/src/components/TopicsNav.vue.bak | 0 .../site/src/components/UserCenterSidebar.vue | 0 .../site/src/components/UserFollowList.vue | 0 .../bbs-go}/site/src/components/UserInfo.vue | 0 .../site/src/components/UserProfile.vue | 0 .../site/src/components/comment/Input.vue | 0 .../site/src/components/comment/List.vue | 0 .../site/src/components/comment/SubList.vue | 0 .../site/src/components/comment/index.vue | 0 .../bbs-go}/site/src/composables/config.js | 0 .../bbs-go}/site/src/composables/http.js | 0 .../bbs-go}/site/src/composables/ui.js | 0 .../bbs-go}/site/src/composables/user.js | 0 .../bbs-go}/site/src/composables/utils.js | 0 {bbs-go => archive/bbs-go}/site/src/error.vue | 0 .../bbs-go}/site/src/layouts/default.vue | 0 .../bbs-go}/site/src/layouts/profile.vue | 0 .../bbs-go}/site/src/layouts/ucenter.vue | 0 .../bbs-go}/site/src/middleware/auth.js | 0 .../site/src/middleware/fetch.global.ts | 0 .../bbs-go}/site/src/pages/about.vue | 0 .../bbs-go}/site/src/pages/article/[id].vue | 0 .../bbs-go}/site/src/pages/article/create.vue | 0 .../site/src/pages/article/edit/[id].vue | 0 .../bbs-go}/site/src/pages/articles/index.vue | 0 .../site/src/pages/articles/tag/[id].vue | 0 .../bbs-go}/site/src/pages/index.vue | 0 .../bbs-go}/site/src/pages/index.vue.bak | 0 .../bbs-go}/site/src/pages/links.vue | 0 .../bbs-go}/site/src/pages/redirect.vue | 0 .../bbs-go}/site/src/pages/search/index.vue | 0 .../bbs-go}/site/src/pages/topic/[id].vue | 0 .../bbs-go}/site/src/pages/topic/create.vue | 0 .../site/src/pages/topic/edit/[id].vue | 0 .../bbs-go}/site/src/pages/topics/index.vue | 0 .../site/src/pages/topics/node/[id].vue | 0 .../site/src/pages/topics/tag/[id].vue | 0 .../site/src/pages/user/[userId]/articles.vue | 0 .../site/src/pages/user/[userId]/fans.vue | 0 .../site/src/pages/user/[userId]/followed.vue | 0 .../site/src/pages/user/[userId]/index.vue | 0 .../site/src/pages/user/email/verify.vue | 0 .../bbs-go}/site/src/pages/user/favorites.vue | 0 .../bbs-go}/site/src/pages/user/messages.vue | 0 .../site/src/pages/user/profile/account.vue | 0 .../site/src/pages/user/profile/index.vue | 0 .../bbs-go}/site/src/pages/user/scores.vue | 0 .../bbs-go}/site/src/pages/user/signin.vue | 0 .../bbs-go}/site/src/pages/user/signup.vue | 0 .../bbs-go}/site/src/plugins/clickOutside.js | 0 .../bbs-go}/site/src/public/favicon.ico | Bin .../bbs-go}/site/src/public/icon.png | Bin .../site/src/public/images/avatars/0.png | Bin .../site/src/public/images/avatars/0.svg | 0 .../site/src/public/images/avatars/1.png | Bin .../site/src/public/images/avatars/1.svg | 0 .../site/src/public/images/avatars/10.png | Bin .../site/src/public/images/avatars/10.svg | 0 .../site/src/public/images/avatars/100.png | Bin .../site/src/public/images/avatars/100.svg | 0 .../site/src/public/images/avatars/101.png | Bin .../site/src/public/images/avatars/101.svg | 0 .../site/src/public/images/avatars/102.png | Bin .../site/src/public/images/avatars/102.svg | 0 .../site/src/public/images/avatars/103.png | Bin .../site/src/public/images/avatars/103.svg | 0 .../site/src/public/images/avatars/104.png | Bin .../site/src/public/images/avatars/104.svg | 0 .../site/src/public/images/avatars/105.png | Bin .../site/src/public/images/avatars/105.svg | 0 .../site/src/public/images/avatars/106.png | Bin .../site/src/public/images/avatars/106.svg | 0 .../site/src/public/images/avatars/107.png | Bin .../site/src/public/images/avatars/107.svg | 0 .../site/src/public/images/avatars/108.png | Bin .../site/src/public/images/avatars/108.svg | 0 .../site/src/public/images/avatars/109.png | Bin .../site/src/public/images/avatars/109.svg | 0 .../site/src/public/images/avatars/11.png | Bin .../site/src/public/images/avatars/11.svg | 0 .../site/src/public/images/avatars/110.png | Bin .../site/src/public/images/avatars/110.svg | 0 .../site/src/public/images/avatars/111.png | Bin .../site/src/public/images/avatars/111.svg | 0 .../site/src/public/images/avatars/112.png | Bin .../site/src/public/images/avatars/112.svg | 0 .../site/src/public/images/avatars/113.png | Bin .../site/src/public/images/avatars/113.svg | 0 .../site/src/public/images/avatars/114.png | Bin .../site/src/public/images/avatars/114.svg | 0 .../site/src/public/images/avatars/115.png | Bin .../site/src/public/images/avatars/115.svg | 0 .../site/src/public/images/avatars/116.png | Bin .../site/src/public/images/avatars/116.svg | 0 .../site/src/public/images/avatars/117.png | Bin .../site/src/public/images/avatars/117.svg | 0 .../site/src/public/images/avatars/118.png | Bin .../site/src/public/images/avatars/118.svg | 0 .../site/src/public/images/avatars/119.png | Bin .../site/src/public/images/avatars/119.svg | 0 .../site/src/public/images/avatars/12.png | Bin .../site/src/public/images/avatars/12.svg | 0 .../site/src/public/images/avatars/120.png | Bin .../site/src/public/images/avatars/120.svg | 0 .../site/src/public/images/avatars/121.png | Bin .../site/src/public/images/avatars/121.svg | 0 .../site/src/public/images/avatars/122.png | Bin .../site/src/public/images/avatars/122.svg | 0 .../site/src/public/images/avatars/123.png | Bin .../site/src/public/images/avatars/123.svg | 0 .../site/src/public/images/avatars/124.png | Bin .../site/src/public/images/avatars/124.svg | 0 .../site/src/public/images/avatars/125.png | Bin .../site/src/public/images/avatars/125.svg | 0 .../site/src/public/images/avatars/126.png | Bin .../site/src/public/images/avatars/126.svg | 0 .../site/src/public/images/avatars/127.png | Bin .../site/src/public/images/avatars/127.svg | 0 .../site/src/public/images/avatars/13.png | Bin .../site/src/public/images/avatars/13.svg | 0 .../site/src/public/images/avatars/14.png | Bin .../site/src/public/images/avatars/14.svg | 0 .../site/src/public/images/avatars/15.png | Bin .../site/src/public/images/avatars/15.svg | 0 .../site/src/public/images/avatars/16.png | Bin .../site/src/public/images/avatars/16.svg | 0 .../site/src/public/images/avatars/17.png | Bin .../site/src/public/images/avatars/17.svg | 0 .../site/src/public/images/avatars/18.png | Bin .../site/src/public/images/avatars/18.svg | 0 .../site/src/public/images/avatars/19.png | Bin .../site/src/public/images/avatars/19.svg | 0 .../site/src/public/images/avatars/2.png | Bin .../site/src/public/images/avatars/2.svg | 0 .../site/src/public/images/avatars/20.png | Bin .../site/src/public/images/avatars/20.svg | 0 .../site/src/public/images/avatars/21.png | Bin .../site/src/public/images/avatars/21.svg | 0 .../site/src/public/images/avatars/22.png | Bin .../site/src/public/images/avatars/22.svg | 0 .../site/src/public/images/avatars/23.png | Bin .../site/src/public/images/avatars/23.svg | 0 .../site/src/public/images/avatars/24.png | Bin .../site/src/public/images/avatars/24.svg | 0 .../site/src/public/images/avatars/25.png | Bin .../site/src/public/images/avatars/25.svg | 0 .../site/src/public/images/avatars/26.png | Bin .../site/src/public/images/avatars/26.svg | 0 .../site/src/public/images/avatars/27.png | Bin .../site/src/public/images/avatars/27.svg | 0 .../site/src/public/images/avatars/28.png | Bin .../site/src/public/images/avatars/28.svg | 0 .../site/src/public/images/avatars/29.png | Bin .../site/src/public/images/avatars/29.svg | 0 .../site/src/public/images/avatars/3.png | Bin .../site/src/public/images/avatars/3.svg | 0 .../site/src/public/images/avatars/30.png | Bin .../site/src/public/images/avatars/30.svg | 0 .../site/src/public/images/avatars/31.png | Bin .../site/src/public/images/avatars/31.svg | 0 .../site/src/public/images/avatars/32.png | Bin .../site/src/public/images/avatars/32.svg | 0 .../site/src/public/images/avatars/33.png | Bin .../site/src/public/images/avatars/33.svg | 0 .../site/src/public/images/avatars/34.png | Bin .../site/src/public/images/avatars/34.svg | 0 .../site/src/public/images/avatars/35.png | Bin .../site/src/public/images/avatars/35.svg | 0 .../site/src/public/images/avatars/36.png | Bin .../site/src/public/images/avatars/36.svg | 0 .../site/src/public/images/avatars/37.png | Bin .../site/src/public/images/avatars/37.svg | 0 .../site/src/public/images/avatars/38.png | Bin .../site/src/public/images/avatars/38.svg | 0 .../site/src/public/images/avatars/39.png | Bin .../site/src/public/images/avatars/39.svg | 0 .../site/src/public/images/avatars/4.png | Bin .../site/src/public/images/avatars/4.svg | 0 .../site/src/public/images/avatars/40.png | Bin .../site/src/public/images/avatars/40.svg | 0 .../site/src/public/images/avatars/41.png | Bin .../site/src/public/images/avatars/41.svg | 0 .../site/src/public/images/avatars/42.png | Bin .../site/src/public/images/avatars/42.svg | 0 .../site/src/public/images/avatars/43.png | Bin .../site/src/public/images/avatars/43.svg | 0 .../site/src/public/images/avatars/44.png | Bin .../site/src/public/images/avatars/44.svg | 0 .../site/src/public/images/avatars/45.png | Bin .../site/src/public/images/avatars/45.svg | 0 .../site/src/public/images/avatars/46.png | Bin .../site/src/public/images/avatars/46.svg | 0 .../site/src/public/images/avatars/47.png | Bin .../site/src/public/images/avatars/47.svg | 0 .../site/src/public/images/avatars/48.png | Bin .../site/src/public/images/avatars/48.svg | 0 .../site/src/public/images/avatars/49.png | Bin .../site/src/public/images/avatars/49.svg | 0 .../site/src/public/images/avatars/5.png | Bin .../site/src/public/images/avatars/5.svg | 0 .../site/src/public/images/avatars/50.png | Bin .../site/src/public/images/avatars/50.svg | 0 .../site/src/public/images/avatars/51.png | Bin .../site/src/public/images/avatars/51.svg | 0 .../site/src/public/images/avatars/52.png | Bin .../site/src/public/images/avatars/52.svg | 0 .../site/src/public/images/avatars/53.png | Bin .../site/src/public/images/avatars/53.svg | 0 .../site/src/public/images/avatars/54.png | Bin .../site/src/public/images/avatars/54.svg | 0 .../site/src/public/images/avatars/55.png | Bin .../site/src/public/images/avatars/55.svg | 0 .../site/src/public/images/avatars/56.png | Bin .../site/src/public/images/avatars/56.svg | 0 .../site/src/public/images/avatars/57.png | Bin .../site/src/public/images/avatars/57.svg | 0 .../site/src/public/images/avatars/58.png | Bin .../site/src/public/images/avatars/58.svg | 0 .../site/src/public/images/avatars/59.png | Bin .../site/src/public/images/avatars/59.svg | 0 .../site/src/public/images/avatars/6.png | Bin .../site/src/public/images/avatars/6.svg | 0 .../site/src/public/images/avatars/60.png | Bin .../site/src/public/images/avatars/60.svg | 0 .../site/src/public/images/avatars/61.png | Bin .../site/src/public/images/avatars/61.svg | 0 .../site/src/public/images/avatars/62.png | Bin .../site/src/public/images/avatars/62.svg | 0 .../site/src/public/images/avatars/63.png | Bin .../site/src/public/images/avatars/63.svg | 0 .../site/src/public/images/avatars/64.png | Bin .../site/src/public/images/avatars/64.svg | 0 .../site/src/public/images/avatars/65.png | Bin .../site/src/public/images/avatars/65.svg | 0 .../site/src/public/images/avatars/66.png | Bin .../site/src/public/images/avatars/66.svg | 0 .../site/src/public/images/avatars/67.png | Bin .../site/src/public/images/avatars/67.svg | 0 .../site/src/public/images/avatars/68.png | Bin .../site/src/public/images/avatars/68.svg | 0 .../site/src/public/images/avatars/69.png | Bin .../site/src/public/images/avatars/69.svg | 0 .../site/src/public/images/avatars/7.png | Bin .../site/src/public/images/avatars/7.svg | 0 .../site/src/public/images/avatars/70.png | Bin .../site/src/public/images/avatars/70.svg | 0 .../site/src/public/images/avatars/71.png | Bin .../site/src/public/images/avatars/71.svg | 0 .../site/src/public/images/avatars/72.png | Bin .../site/src/public/images/avatars/72.svg | 0 .../site/src/public/images/avatars/73.png | Bin .../site/src/public/images/avatars/73.svg | 0 .../site/src/public/images/avatars/74.png | Bin .../site/src/public/images/avatars/74.svg | 0 .../site/src/public/images/avatars/75.png | Bin .../site/src/public/images/avatars/75.svg | 0 .../site/src/public/images/avatars/76.png | Bin .../site/src/public/images/avatars/76.svg | 0 .../site/src/public/images/avatars/77.png | Bin .../site/src/public/images/avatars/77.svg | 0 .../site/src/public/images/avatars/78.png | Bin .../site/src/public/images/avatars/78.svg | 0 .../site/src/public/images/avatars/79.png | Bin .../site/src/public/images/avatars/79.svg | 0 .../site/src/public/images/avatars/8.png | Bin .../site/src/public/images/avatars/8.svg | 0 .../site/src/public/images/avatars/80.png | Bin .../site/src/public/images/avatars/80.svg | 0 .../site/src/public/images/avatars/81.png | Bin .../site/src/public/images/avatars/81.svg | 0 .../site/src/public/images/avatars/82.png | Bin .../site/src/public/images/avatars/82.svg | 0 .../site/src/public/images/avatars/83.png | Bin .../site/src/public/images/avatars/83.svg | 0 .../site/src/public/images/avatars/84.png | Bin .../site/src/public/images/avatars/84.svg | 0 .../site/src/public/images/avatars/85.png | Bin .../site/src/public/images/avatars/85.svg | 0 .../site/src/public/images/avatars/86.png | Bin .../site/src/public/images/avatars/86.svg | 0 .../site/src/public/images/avatars/87.png | Bin .../site/src/public/images/avatars/87.svg | 0 .../site/src/public/images/avatars/88.png | Bin .../site/src/public/images/avatars/88.svg | 0 .../site/src/public/images/avatars/89.png | Bin .../site/src/public/images/avatars/89.svg | 0 .../site/src/public/images/avatars/9.png | Bin .../site/src/public/images/avatars/9.svg | 0 .../site/src/public/images/avatars/90.png | Bin .../site/src/public/images/avatars/90.svg | 0 .../site/src/public/images/avatars/91.png | Bin .../site/src/public/images/avatars/91.svg | 0 .../site/src/public/images/avatars/92.png | Bin .../site/src/public/images/avatars/92.svg | 0 .../site/src/public/images/avatars/93.png | Bin .../site/src/public/images/avatars/93.svg | 0 .../site/src/public/images/avatars/94.png | Bin .../site/src/public/images/avatars/94.svg | 0 .../site/src/public/images/avatars/95.png | Bin .../site/src/public/images/avatars/95.svg | 0 .../site/src/public/images/avatars/96.png | Bin .../site/src/public/images/avatars/96.svg | 0 .../site/src/public/images/avatars/97.png | Bin .../site/src/public/images/avatars/97.svg | 0 .../site/src/public/images/avatars/98.png | Bin .../site/src/public/images/avatars/98.svg | 0 .../site/src/public/images/avatars/99.png | Bin .../site/src/public/images/avatars/99.svg | 0 .../bbs-go}/site/src/public/robots.txt | 0 .../site/src/server/middleware/index.ts | 0 .../bbs-go}/site/src/stores/config.js | 0 .../bbs-go}/site/src/stores/env.ts | 0 .../bbs-go}/site/src/stores/user.js | 0 {bbs-go => archive/bbs-go}/site/tsconfig.json | 0 {bbs-go => archive/bbs-go}/start.sh | 0 {bbs-go => archive/bbs-go}/vetur.config.js | 0 .../file-server}/Dockerfile | 0 .../file-server}/docker-compose.yml | 0 {file-server => archive/file-server}/go.mod | 0 {file-server => archive/file-server}/main.go | 0 .../mongodb}/docker-compose.yml | 0 .../registry}/docker-compose.yml | 26 +- {tailscale => archive/tailscale}/config.yaml | 674 ++++----- .../tailscale}/docker-compose.yml | 56 +- dolibarr/README.md | 151 ++ dolibarr/docker-compose.yml | 42 + nginx/nginx.conf | 71 +- 1498 files changed, 3778 insertions(+), 3654 deletions(-) delete mode 100644 Readme.md rename {bbs-go-active => archive/bbs-go-active}/.dockerignore (100%) rename {bbs-go-active => archive/bbs-go-active}/.github/workflows/bbs-go-admin.yml (100%) rename {bbs-go-active => archive/bbs-go-active}/.github/workflows/bbs-go-docker.yml (100%) rename {bbs-go-active => archive/bbs-go-active}/.github/workflows/bbs-go-server.yml (94%) rename {bbs-go => archive/bbs-go-active}/.github/workflows/bbs-go-site.yml (95%) rename {bbs-go => archive/bbs-go-active}/.gitignore (92%) rename {bbs-go-active => archive/bbs-go-active}/Dockerfile (100%) rename {bbs-go-active => archive/bbs-go-active}/LICENSE (98%) rename {bbs-go-active => archive/bbs-go-active}/README.md (97%) rename {bbs-go-active => archive/bbs-go-active}/admin/.env.development (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/.env.docker (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/.env.production (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/.eslintignore (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/.eslintrc-auto-import.json (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/.eslintrc.js (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/.gitignore (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/.husky/commit-msg (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/.husky/pre-commit (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/.prettierignore (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/.prettierrc.js (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/.stylelintrc.js (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/.vscode/settings.json (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/CNAME (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/babel.config.js (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/commitlint.config.js (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/components.d.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/config/plugin/arcoResolver.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/config/plugin/arcoStyleImport.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/config/plugin/compress.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/config/plugin/imagemin.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/config/plugin/visualizer.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/config/utils/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/config/vite.config.base.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/config/vite.config.dev.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/config/vite.config.docker.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/config/vite.config.prod.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/index.html (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/package.json (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/pnpm-lock.yaml (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/App.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/api/interceptor.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/api/user.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/assets/images/logo.png (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/assets/images/logo364x364.png (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/assets/style/breakpoint.less (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/assets/style/custom.less (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/assets/style/global.less (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/auto-imports.d.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/ImageUpload.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/breadcrumb/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/chart/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/footer/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/global-setting/block.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/global-setting/form-wrapper.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/global-setting/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/menu/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/menu/use-menu-tree.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/navbar/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/tab-bar/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/tab-bar/readme.md (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/components/tab-bar/tab-item.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/composables/arco.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/composables/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/composables/types.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/directive/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/directive/permission/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/env.d.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/hooks/chart-option.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/hooks/loading.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/hooks/locale.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/hooks/permission.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/hooks/request.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/hooks/responsive.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/hooks/themes.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/hooks/user.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/hooks/visible.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/layout/default-layout.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/layout/page-layout.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/locale/en-US.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/locale/en-US/settings.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/locale/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/locale/zh-CN.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/locale/zh-CN/settings.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/main.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/router/app-menus/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/router/constants.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/router/guard/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/router/guard/loadRouters.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/router/guard/permission.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/router/guard/userLoginInfo.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/router/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/router/routes/base.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/router/routes/externalModules/docs.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/router/routes/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/router/routes/modules/dashboard.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/router/routes/types.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/router/typings.d.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/store/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/store/modules/app/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/store/modules/app/types.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/store/modules/dict/index.js (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/store/modules/tab-bar/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/store/modules/tab-bar/types.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/store/modules/user/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/store/modules/user/types.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/types/echarts.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/types/global.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/utils/auth.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/utils/event.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/utils/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/utils/is.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/utils/monitor.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/utils/route-listener.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/login/components/banner.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/login/components/login-form.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/login/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/login/locale/en-US.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/login/locale/zh-CN.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/not-found/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/article/components/ArticleList.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/article/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/dashboard/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/forbidden-word/components/Edit.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/forbidden-word/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/link/components/Edit.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/link/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/settings/components/CommonSettings.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/settings/components/NavSettings.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/settings/components/ScoreSettings.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/settings/components/SpamSettings.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/settings/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/system/api/components/Edit.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/system/api/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/system/dict/components/Dict.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/system/dict/components/DictEdit.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/system/dict/components/DictType.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/system/dict/components/DictTypeEdit.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/system/dict/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/system/menu/components/Edit.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/system/menu/components/IconPicker.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/system/menu/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/system/permission/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/system/role/components/Edit.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/system/role/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/topic-node/components/Edit.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/topic-node/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/topic/components/TopicList.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/topic/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/user/components/Edit.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/pages/user/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/src/views/redirect/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/admin/tsconfig.json (100%) rename {bbs-go-active => archive/bbs-go-active}/bbs-go.code-workspace (100%) rename {bbs-go-active => archive/bbs-go-active}/docker-compose.yml (100%) rename {bbs-go-active => archive/bbs-go-active}/docs/images/features.jpg (100%) rename {bbs-go-active => archive/bbs-go-active}/docs/images/qq.png (100%) rename {bbs-go-active => archive/bbs-go-active}/docs/images/qq_big.png (100%) rename {bbs-go-active => archive/bbs-go-active}/docs/images/wechat.png (100%) rename {bbs-go-active => archive/bbs-go-active}/docs/images/wechat_big.png (100%) rename {bbs-go-active => archive/bbs-go-active}/server/.gitignore (91%) rename {bbs-go-active => archive/bbs-go-active}/server/LICENSE (98%) rename {bbs-go-active => archive/bbs-go-active}/server/Makefile (100%) rename {bbs-go-active => archive/bbs-go-active}/server/README.md (97%) rename {bbs-go-active => archive/bbs-go-active}/server/bbs-go.docker.yaml (100%) rename {bbs-go-active => archive/bbs-go-active}/server/bbs-go.example.yaml (97%) rename {bbs-go-active => archive/bbs-go-active}/server/cmd/test/main.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/go.mod (100%) rename {bbs-go-active => archive/bbs-go-active}/server/go.sum (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/cache/article_tag_cache.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/cache/forbidden_word_cache.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/cache/sys_config_cache.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/cache/tag_cache.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/cache/topic_cache.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/cache/user_cache.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/cache/user_token_cache.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/cache/utils.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/api_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/article_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/article_tag_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/check_in_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/comment_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/common_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/dict_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/dict_type_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/email_code_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/favorite_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/forbidden_word_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/link_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/menu_api_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/menu_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/message_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/operate_log_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/role_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/sys_config_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/tag_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/topic_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/topic_node_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/topic_tag_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/user_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/user_feed_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/user_follow_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/user_report_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/admin/user_score_log_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/article_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/captcha_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/checkin_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/comment_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/config_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/fans_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/favorite_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/like_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/link_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/login_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/search_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/tag_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/topic_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/upload_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/user_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/api/user_report_controller.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/article_render.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/base.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/comment_render.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/dict_render.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/favorite_render.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/menu_render.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/message_render.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/misc_render.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/node_render.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/oss_image_style.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/tag_render.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/topic_render.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/topic_search_render.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/controllers/render/user_render.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/middleware/api_auth_middleware.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/models/constants/constants.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/models/data.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/models/dto/dto.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/models/form.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/models/model_methods.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/models/models.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/models/models_system.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/models/response.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/bbsurls/urls.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/common/utils.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/config/config.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/email/email.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/errs/code_errors.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/event/ants_test.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/event/data.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/event/event.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/event/event_test.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/gormlogs/gorm.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/gormlogs/gorm_options.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/html/html.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/iplocator/iplocator.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/iplocator/iplocator_test.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/markdown/utils.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/msg/data.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/search/common.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/search/search.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/search/search_test.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/seo/push.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/sitemap/sitemap.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/text/text.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/token/constants.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/token/user_token.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/uploader/aliyun_oss_uploader.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/uploader/local_uploader.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/uploader/uploader.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/uploader/utils.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/urls/ant_matcher.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/pkg/validate/validate.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/api_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/article_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/article_tag_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/check_in_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/comment_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/dict_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/dict_type_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/email_code_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/favorite_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/forbidden_word_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/link_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/menu_api_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/menu_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/message_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/operate_log_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/role_menu_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/role_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/sys_config_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/tag_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/topic_node_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/topic_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/topic_tag_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/user_feed_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/user_follow_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/user_like_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/user_report_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/user_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/user_role_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/user_score_log_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/repositories/user_token_repository.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/scheduler/cron.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/server/init.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/server/init_logger.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/server/router.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/api_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/article_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/article_tag_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/check_in_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/comment_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/dict_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/dict_type_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/email_code_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/eventhandler/comment_create_handler.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/eventhandler/follow_handler.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/eventhandler/topic_create_handler.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/eventhandler/topic_delete_handler.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/eventhandler/topic_recommend_handler.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/eventhandler/unfollow_handler.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/eventhandler/user_favorite_handler.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/eventhandler/user_like_handler.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/favorite_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/forbidden_word_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/link_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/menu_api_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/menu_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/message_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/operate_log_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/role_menu_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/role_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/sys_config_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/tag_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/topic_node_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/topic_publish_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/topic_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/topic_tag_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/user_feed_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/user_follow_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/user_like_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/user_report_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/user_role_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/user_score_log_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/user_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/services/user_token_service.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/spam/captcha_strategy.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/spam/email_verify_strategy.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/spam/post_frequency_strategy.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/spam/spam.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/internal/spam/strategy.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/main.go (100%) rename {bbs-go-active => archive/bbs-go-active}/server/migrations/0000001_init.up.sql (100%) rename {bbs-go-active => archive/bbs-go-active}/server/start.sh (100%) rename {bbs-go-active => archive/bbs-go-active}/site/.env.docker (100%) rename {bbs-go-active => archive/bbs-go-active}/site/.env.example (100%) rename {bbs-go-active => archive/bbs-go-active}/site/.env.local (100%) rename {bbs-go-active => archive/bbs-go-active}/site/.eslintrc (100%) rename {bbs-go-active => archive/bbs-go-active}/site/.gitignore (100%) rename {bbs-go-active => archive/bbs-go-active}/site/.npmrc (100%) rename {bbs-go-active => archive/bbs-go-active}/site/.vscode/settings.json (100%) rename {bbs-go-active => archive/bbs-go-active}/site/README.md (100%) rename {bbs-go-active => archive/bbs-go-active}/site/ecosystem.config.js (100%) rename {bbs-go-active => archive/bbs-go-active}/site/nuxt.config.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/site/package.json (100%) rename {bbs-go-active => archive/bbs-go-active}/site/pnpm-lock.yaml (100%) rename {bbs-go-active => archive/bbs-go-active}/site/server/tsconfig.json (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/app.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/css/bulma.scss (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/css/common.scss (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/css/highlightjs.scss (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/css/index.scss (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/css/nav.scss (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/css/signin.scss (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/css/topic.scss (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/iconfont/demo.css (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/iconfont/demo_index.html (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/iconfont/iconfont.css (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/iconfont/iconfont.js (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/iconfont/iconfont.json (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/iconfont/iconfont.ttf (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/iconfont/iconfont.woff (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/iconfont/iconfont.woff2 (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/images/close2.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/images/default-user-bg.jpg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/images/default-user-bg1.jpg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/images/feed.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/images/logo.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/images/logo364x364.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/images/net.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/images/new.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/images/node.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/assets/images/recommend.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/ArticleList.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/ArticleManageMenu.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/AvatarEdit.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/CheckIn.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/ColorMode.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/CreateTopicBtn.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/FansWidget.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/FollowBtn.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/FollowWidget.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/FriendLinks.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/ImageUpload.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/LoadMoreAsync.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/MarkdownEditor.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/MsgNotice.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/MyAvatar.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/MyAvatar.vue.bak (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/MyCounts.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/MyDialog.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/MyEmpty.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/MyFooter.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/MyHeader.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/MyProfile.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/ScoreRank.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/SearchInput.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/SearchTopicList.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/SearchTopicsNav.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/SimpleEditor.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/SiteNotice.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/TagInput.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/TextEditor.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/TopicList.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/TopicList.vue.bak (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/TopicManageMenu.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/TopicsNav.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/TopicsNav.vue.bak (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/UserCenterSidebar.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/UserFollowList.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/UserInfo.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/UserProfile.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/comment/Input.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/comment/List.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/comment/SubList.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/components/comment/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/composables/config.js (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/composables/http.js (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/composables/ui.js (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/composables/user.js (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/composables/utils.js (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/error.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/layouts/default.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/layouts/profile.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/layouts/ucenter.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/middleware/auth.js (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/middleware/fetch.global.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/about.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/article/[id].vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/article/create.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/article/edit/[id].vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/articles/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/articles/tag/[id].vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/index.vue.bak (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/links.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/redirect.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/search/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/topic/[id].vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/topic/create.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/topic/edit/[id].vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/topics/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/topics/node/[id].vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/topics/tag/[id].vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/user/[userId]/articles.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/user/[userId]/fans.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/user/[userId]/followed.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/user/[userId]/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/user/email/verify.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/user/favorites.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/user/messages.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/user/profile/account.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/user/profile/index.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/user/scores.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/user/signin.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/pages/user/signup.vue (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/plugins/clickOutside.js (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/favicon.ico (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/icon.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/0.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/0.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/1.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/1.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/10.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/10.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/100.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/100.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/101.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/101.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/102.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/102.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/103.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/103.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/104.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/104.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/105.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/105.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/106.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/106.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/107.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/107.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/108.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/108.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/109.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/109.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/11.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/11.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/110.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/110.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/111.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/111.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/112.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/112.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/113.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/113.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/114.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/114.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/115.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/115.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/116.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/116.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/117.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/117.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/118.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/118.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/119.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/119.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/12.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/12.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/120.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/120.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/121.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/121.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/122.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/122.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/123.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/123.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/124.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/124.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/125.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/125.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/126.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/126.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/127.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/127.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/13.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/13.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/14.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/14.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/15.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/15.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/16.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/16.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/17.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/17.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/18.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/18.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/19.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/19.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/2.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/2.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/20.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/20.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/21.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/21.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/22.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/22.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/23.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/23.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/24.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/24.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/25.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/25.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/26.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/26.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/27.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/27.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/28.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/28.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/29.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/29.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/3.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/3.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/30.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/30.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/31.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/31.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/32.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/32.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/33.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/33.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/34.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/34.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/35.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/35.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/36.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/36.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/37.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/37.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/38.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/38.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/39.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/39.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/4.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/4.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/40.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/40.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/41.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/41.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/42.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/42.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/43.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/43.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/44.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/44.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/45.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/45.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/46.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/46.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/47.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/47.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/48.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/48.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/49.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/49.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/5.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/5.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/50.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/50.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/51.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/51.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/52.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/52.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/53.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/53.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/54.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/54.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/55.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/55.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/56.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/56.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/57.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/57.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/58.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/58.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/59.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/59.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/6.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/6.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/60.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/60.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/61.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/61.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/62.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/62.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/63.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/63.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/64.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/64.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/65.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/65.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/66.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/66.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/67.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/67.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/68.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/68.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/69.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/69.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/7.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/7.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/70.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/70.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/71.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/71.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/72.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/72.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/73.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/73.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/74.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/74.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/75.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/75.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/76.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/76.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/77.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/77.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/78.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/78.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/79.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/79.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/8.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/8.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/80.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/80.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/81.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/81.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/82.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/82.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/83.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/83.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/84.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/84.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/85.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/85.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/86.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/86.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/87.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/87.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/88.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/88.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/89.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/89.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/9.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/9.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/90.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/90.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/91.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/91.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/92.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/92.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/93.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/93.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/94.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/94.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/95.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/95.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/96.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/96.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/97.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/97.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/98.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/98.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/99.png (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/images/avatars/99.svg (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/public/robots.txt (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/server/middleware/index.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/stores/config.js (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/stores/env.ts (100%) rename {bbs-go-active => archive/bbs-go-active}/site/src/stores/user.js (100%) rename {bbs-go-active => archive/bbs-go-active}/site/tsconfig.json (100%) rename {bbs-go-active => archive/bbs-go-active}/start.sh (100%) rename {bbs-go-active => archive/bbs-go-active}/vetur.config.js (100%) rename {bbs-go => archive/bbs-go}/.dockerignore (100%) rename {bbs-go => archive/bbs-go}/.github/workflows/bbs-go-admin.yml (100%) rename {bbs-go => archive/bbs-go}/.github/workflows/bbs-go-docker.yml (100%) rename {bbs-go => archive/bbs-go}/.github/workflows/bbs-go-server.yml (94%) rename {bbs-go-active => archive/bbs-go}/.github/workflows/bbs-go-site.yml (95%) rename {bbs-go-active => archive/bbs-go}/.gitignore (92%) rename {bbs-go => archive/bbs-go}/Dockerfile (100%) rename {bbs-go => archive/bbs-go}/LICENSE (98%) rename {bbs-go => archive/bbs-go}/README.md (97%) rename {bbs-go => archive/bbs-go}/admin/.env.development (100%) rename {bbs-go => archive/bbs-go}/admin/.env.docker (100%) rename {bbs-go => archive/bbs-go}/admin/.env.production (100%) rename {bbs-go => archive/bbs-go}/admin/.eslintignore (100%) rename {bbs-go => archive/bbs-go}/admin/.eslintrc-auto-import.json (100%) rename {bbs-go => archive/bbs-go}/admin/.eslintrc.js (100%) rename {bbs-go => archive/bbs-go}/admin/.gitignore (100%) rename {bbs-go => archive/bbs-go}/admin/.husky/commit-msg (100%) rename {bbs-go => archive/bbs-go}/admin/.husky/pre-commit (100%) rename {bbs-go => archive/bbs-go}/admin/.prettierignore (100%) rename {bbs-go => archive/bbs-go}/admin/.prettierrc.js (100%) rename {bbs-go => archive/bbs-go}/admin/.stylelintrc.js (100%) rename {bbs-go => archive/bbs-go}/admin/.vscode/settings.json (100%) rename {bbs-go => archive/bbs-go}/admin/CNAME (100%) rename {bbs-go => archive/bbs-go}/admin/babel.config.js (100%) rename {bbs-go => archive/bbs-go}/admin/commitlint.config.js (100%) rename {bbs-go => archive/bbs-go}/admin/components.d.ts (100%) rename {bbs-go => archive/bbs-go}/admin/config/plugin/arcoResolver.ts (100%) rename {bbs-go => archive/bbs-go}/admin/config/plugin/arcoStyleImport.ts (100%) rename {bbs-go => archive/bbs-go}/admin/config/plugin/compress.ts (100%) rename {bbs-go => archive/bbs-go}/admin/config/plugin/imagemin.ts (100%) rename {bbs-go => archive/bbs-go}/admin/config/plugin/visualizer.ts (100%) rename {bbs-go => archive/bbs-go}/admin/config/utils/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/config/vite.config.base.ts (100%) rename {bbs-go => archive/bbs-go}/admin/config/vite.config.dev.ts (100%) rename {bbs-go => archive/bbs-go}/admin/config/vite.config.docker.ts (100%) rename {bbs-go => archive/bbs-go}/admin/config/vite.config.prod.ts (100%) rename {bbs-go => archive/bbs-go}/admin/index.html (100%) rename {bbs-go => archive/bbs-go}/admin/package.json (100%) rename {bbs-go => archive/bbs-go}/admin/pnpm-lock.yaml (100%) rename {bbs-go => archive/bbs-go}/admin/src/App.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/api/interceptor.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/api/user.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/assets/images/logo.png (100%) rename {bbs-go => archive/bbs-go}/admin/src/assets/images/logo364x364.png (100%) rename {bbs-go => archive/bbs-go}/admin/src/assets/style/breakpoint.less (100%) rename {bbs-go => archive/bbs-go}/admin/src/assets/style/custom.less (100%) rename {bbs-go => archive/bbs-go}/admin/src/assets/style/global.less (100%) rename {bbs-go => archive/bbs-go}/admin/src/auto-imports.d.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/ImageUpload.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/breadcrumb/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/chart/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/footer/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/global-setting/block.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/global-setting/form-wrapper.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/global-setting/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/menu/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/menu/use-menu-tree.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/navbar/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/tab-bar/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/tab-bar/readme.md (100%) rename {bbs-go => archive/bbs-go}/admin/src/components/tab-bar/tab-item.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/composables/arco.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/composables/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/composables/types.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/directive/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/directive/permission/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/env.d.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/hooks/chart-option.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/hooks/loading.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/hooks/locale.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/hooks/permission.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/hooks/request.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/hooks/responsive.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/hooks/themes.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/hooks/user.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/hooks/visible.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/layout/default-layout.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/layout/page-layout.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/locale/en-US.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/locale/en-US/settings.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/locale/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/locale/zh-CN.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/locale/zh-CN/settings.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/main.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/router/app-menus/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/router/constants.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/router/guard/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/router/guard/loadRouters.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/router/guard/permission.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/router/guard/userLoginInfo.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/router/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/router/routes/base.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/router/routes/externalModules/docs.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/router/routes/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/router/routes/modules/dashboard.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/router/routes/types.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/router/typings.d.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/store/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/store/modules/app/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/store/modules/app/types.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/store/modules/dict/index.js (100%) rename {bbs-go => archive/bbs-go}/admin/src/store/modules/tab-bar/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/store/modules/tab-bar/types.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/store/modules/user/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/store/modules/user/types.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/types/echarts.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/types/global.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/utils/auth.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/utils/event.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/utils/index.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/utils/is.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/utils/monitor.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/utils/route-listener.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/login/components/banner.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/login/components/login-form.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/login/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/login/locale/en-US.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/login/locale/zh-CN.ts (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/not-found/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/article/components/ArticleList.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/article/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/dashboard/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/forbidden-word/components/Edit.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/forbidden-word/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/link/components/Edit.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/link/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/settings/components/CommonSettings.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/settings/components/NavSettings.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/settings/components/ScoreSettings.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/settings/components/SpamSettings.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/settings/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/system/api/components/Edit.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/system/api/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/system/dict/components/Dict.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/system/dict/components/DictEdit.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/system/dict/components/DictType.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/system/dict/components/DictTypeEdit.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/system/dict/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/system/menu/components/Edit.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/system/menu/components/IconPicker.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/system/menu/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/system/permission/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/system/role/components/Edit.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/system/role/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/topic-node/components/Edit.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/topic-node/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/topic/components/TopicList.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/topic/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/user/components/Edit.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/pages/user/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/src/views/redirect/index.vue (100%) rename {bbs-go => archive/bbs-go}/admin/tsconfig.json (100%) rename {bbs-go => archive/bbs-go}/bbs-go.code-workspace (100%) rename {bbs-go => archive/bbs-go}/docker-compose.yml (100%) rename {bbs-go => archive/bbs-go}/docs/images/features.jpg (100%) rename {bbs-go => archive/bbs-go}/docs/images/qq.png (100%) rename {bbs-go => archive/bbs-go}/docs/images/qq_big.png (100%) rename {bbs-go => archive/bbs-go}/docs/images/wechat.png (100%) rename {bbs-go => archive/bbs-go}/docs/images/wechat_big.png (100%) rename {bbs-go => archive/bbs-go}/server/.gitignore (91%) rename {bbs-go => archive/bbs-go}/server/LICENSE (98%) rename {bbs-go => archive/bbs-go}/server/Makefile (100%) rename {bbs-go => archive/bbs-go}/server/README.md (97%) rename {bbs-go => archive/bbs-go}/server/bbs-go.docker.yaml (100%) rename {bbs-go => archive/bbs-go}/server/bbs-go.example.yaml (97%) rename {bbs-go => archive/bbs-go}/server/cmd/test/main.go (100%) rename {bbs-go => archive/bbs-go}/server/go.mod (100%) rename {bbs-go => archive/bbs-go}/server/go.sum (100%) rename {bbs-go => archive/bbs-go}/server/internal/cache/article_tag_cache.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/cache/forbidden_word_cache.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/cache/sys_config_cache.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/cache/tag_cache.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/cache/topic_cache.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/cache/user_cache.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/cache/user_token_cache.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/cache/utils.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/api_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/article_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/article_tag_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/check_in_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/comment_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/common_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/dict_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/dict_type_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/email_code_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/favorite_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/forbidden_word_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/link_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/menu_api_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/menu_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/message_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/operate_log_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/role_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/sys_config_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/tag_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/topic_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/topic_node_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/topic_tag_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/user_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/user_feed_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/user_follow_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/user_report_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/admin/user_score_log_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/article_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/captcha_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/checkin_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/comment_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/config_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/fans_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/favorite_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/like_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/link_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/login_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/search_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/tag_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/topic_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/upload_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/user_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/api/user_report_controller.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/article_render.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/base.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/comment_render.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/dict_render.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/favorite_render.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/menu_render.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/message_render.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/misc_render.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/node_render.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/oss_image_style.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/tag_render.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/topic_render.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/topic_search_render.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/controllers/render/user_render.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/middleware/api_auth_middleware.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/models/constants/constants.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/models/data.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/models/dto/dto.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/models/form.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/models/model_methods.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/models/models.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/models/models_system.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/models/response.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/bbsurls/urls.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/common/utils.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/config/config.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/email/email.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/errs/code_errors.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/event/ants_test.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/event/data.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/event/event.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/event/event_test.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/gormlogs/gorm.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/gormlogs/gorm_options.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/html/html.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/iplocator/iplocator.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/iplocator/iplocator_test.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/markdown/utils.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/msg/data.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/search/common.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/search/search.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/search/search_test.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/seo/push.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/sitemap/sitemap.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/text/text.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/token/constants.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/token/user_token.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/uploader/aliyun_oss_uploader.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/uploader/local_uploader.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/uploader/uploader.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/uploader/utils.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/urls/ant_matcher.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/pkg/validate/validate.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/api_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/article_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/article_tag_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/check_in_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/comment_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/dict_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/dict_type_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/email_code_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/favorite_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/forbidden_word_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/link_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/menu_api_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/menu_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/message_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/operate_log_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/role_menu_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/role_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/sys_config_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/tag_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/topic_node_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/topic_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/topic_tag_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/user_feed_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/user_follow_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/user_like_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/user_report_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/user_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/user_role_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/user_score_log_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/repositories/user_token_repository.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/scheduler/cron.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/server/init.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/server/init_logger.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/server/router.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/api_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/article_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/article_tag_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/check_in_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/comment_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/dict_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/dict_type_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/email_code_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/eventhandler/comment_create_handler.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/eventhandler/follow_handler.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/eventhandler/topic_create_handler.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/eventhandler/topic_delete_handler.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/eventhandler/topic_recommend_handler.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/eventhandler/unfollow_handler.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/eventhandler/user_favorite_handler.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/eventhandler/user_like_handler.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/favorite_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/forbidden_word_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/link_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/menu_api_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/menu_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/message_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/operate_log_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/role_menu_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/role_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/sys_config_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/tag_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/topic_node_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/topic_publish_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/topic_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/topic_tag_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/user_feed_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/user_follow_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/user_like_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/user_report_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/user_role_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/user_score_log_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/user_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/services/user_token_service.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/spam/captcha_strategy.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/spam/email_verify_strategy.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/spam/post_frequency_strategy.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/spam/spam.go (100%) rename {bbs-go => archive/bbs-go}/server/internal/spam/strategy.go (100%) rename {bbs-go => archive/bbs-go}/server/main.go (100%) rename {bbs-go => archive/bbs-go}/server/migrations/0000001_init.up.sql (100%) rename {bbs-go => archive/bbs-go}/server/start.sh (100%) rename {bbs-go => archive/bbs-go}/site/.env.docker (100%) rename {bbs-go => archive/bbs-go}/site/.env.example (100%) rename {bbs-go => archive/bbs-go}/site/.env.local (100%) rename {bbs-go => archive/bbs-go}/site/.eslintrc (100%) rename {bbs-go => archive/bbs-go}/site/.gitignore (100%) rename {bbs-go => archive/bbs-go}/site/.npmrc (100%) rename {bbs-go => archive/bbs-go}/site/.vscode/settings.json (100%) rename {bbs-go => archive/bbs-go}/site/README.md (100%) rename {bbs-go => archive/bbs-go}/site/ecosystem.config.js (100%) rename {bbs-go => archive/bbs-go}/site/nuxt.config.ts (100%) rename {bbs-go => archive/bbs-go}/site/package.json (100%) rename {bbs-go => archive/bbs-go}/site/pnpm-lock.yaml (100%) rename {bbs-go => archive/bbs-go}/site/server/tsconfig.json (100%) rename {bbs-go => archive/bbs-go}/site/src/app.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/css/bulma.scss (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/css/common.scss (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/css/highlightjs.scss (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/css/index.scss (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/css/nav.scss (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/css/signin.scss (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/css/topic.scss (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/iconfont/demo.css (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/iconfont/demo_index.html (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/iconfont/iconfont.css (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/iconfont/iconfont.js (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/iconfont/iconfont.json (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/iconfont/iconfont.ttf (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/iconfont/iconfont.woff (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/iconfont/iconfont.woff2 (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/images/close2.png (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/images/default-user-bg.jpg (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/images/default-user-bg1.jpg (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/images/feed.png (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/images/logo.png (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/images/logo364x364.png (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/images/net.png (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/images/new.png (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/images/node.png (100%) rename {bbs-go => archive/bbs-go}/site/src/assets/images/recommend.png (100%) rename {bbs-go => archive/bbs-go}/site/src/components/ArticleList.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/ArticleManageMenu.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/AvatarEdit.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/CheckIn.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/ColorMode.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/CreateTopicBtn.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/FansWidget.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/FollowBtn.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/FollowWidget.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/FriendLinks.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/ImageUpload.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/LoadMoreAsync.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/MarkdownEditor.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/MsgNotice.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/MyAvatar.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/MyAvatar.vue.bak (100%) rename {bbs-go => archive/bbs-go}/site/src/components/MyCounts.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/MyDialog.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/MyEmpty.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/MyFooter.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/MyHeader.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/MyProfile.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/ScoreRank.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/SearchInput.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/SearchTopicList.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/SearchTopicsNav.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/SimpleEditor.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/SiteNotice.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/TagInput.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/TextEditor.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/TopicList.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/TopicList.vue.bak (100%) rename {bbs-go => archive/bbs-go}/site/src/components/TopicManageMenu.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/TopicsNav.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/TopicsNav.vue.bak (100%) rename {bbs-go => archive/bbs-go}/site/src/components/UserCenterSidebar.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/UserFollowList.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/UserInfo.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/UserProfile.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/comment/Input.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/comment/List.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/comment/SubList.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/components/comment/index.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/composables/config.js (100%) rename {bbs-go => archive/bbs-go}/site/src/composables/http.js (100%) rename {bbs-go => archive/bbs-go}/site/src/composables/ui.js (100%) rename {bbs-go => archive/bbs-go}/site/src/composables/user.js (100%) rename {bbs-go => archive/bbs-go}/site/src/composables/utils.js (100%) rename {bbs-go => archive/bbs-go}/site/src/error.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/layouts/default.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/layouts/profile.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/layouts/ucenter.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/middleware/auth.js (100%) rename {bbs-go => archive/bbs-go}/site/src/middleware/fetch.global.ts (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/about.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/article/[id].vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/article/create.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/article/edit/[id].vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/articles/index.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/articles/tag/[id].vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/index.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/index.vue.bak (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/links.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/redirect.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/search/index.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/topic/[id].vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/topic/create.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/topic/edit/[id].vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/topics/index.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/topics/node/[id].vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/topics/tag/[id].vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/user/[userId]/articles.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/user/[userId]/fans.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/user/[userId]/followed.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/user/[userId]/index.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/user/email/verify.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/user/favorites.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/user/messages.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/user/profile/account.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/user/profile/index.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/user/scores.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/user/signin.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/pages/user/signup.vue (100%) rename {bbs-go => archive/bbs-go}/site/src/plugins/clickOutside.js (100%) rename {bbs-go => archive/bbs-go}/site/src/public/favicon.ico (100%) rename {bbs-go => archive/bbs-go}/site/src/public/icon.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/0.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/0.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/1.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/1.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/10.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/10.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/100.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/100.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/101.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/101.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/102.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/102.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/103.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/103.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/104.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/104.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/105.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/105.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/106.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/106.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/107.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/107.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/108.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/108.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/109.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/109.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/11.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/11.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/110.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/110.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/111.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/111.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/112.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/112.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/113.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/113.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/114.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/114.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/115.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/115.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/116.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/116.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/117.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/117.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/118.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/118.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/119.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/119.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/12.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/12.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/120.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/120.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/121.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/121.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/122.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/122.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/123.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/123.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/124.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/124.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/125.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/125.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/126.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/126.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/127.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/127.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/13.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/13.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/14.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/14.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/15.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/15.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/16.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/16.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/17.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/17.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/18.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/18.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/19.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/19.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/2.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/2.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/20.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/20.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/21.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/21.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/22.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/22.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/23.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/23.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/24.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/24.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/25.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/25.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/26.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/26.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/27.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/27.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/28.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/28.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/29.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/29.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/3.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/3.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/30.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/30.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/31.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/31.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/32.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/32.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/33.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/33.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/34.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/34.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/35.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/35.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/36.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/36.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/37.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/37.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/38.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/38.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/39.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/39.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/4.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/4.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/40.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/40.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/41.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/41.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/42.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/42.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/43.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/43.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/44.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/44.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/45.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/45.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/46.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/46.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/47.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/47.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/48.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/48.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/49.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/49.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/5.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/5.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/50.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/50.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/51.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/51.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/52.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/52.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/53.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/53.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/54.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/54.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/55.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/55.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/56.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/56.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/57.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/57.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/58.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/58.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/59.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/59.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/6.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/6.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/60.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/60.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/61.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/61.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/62.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/62.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/63.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/63.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/64.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/64.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/65.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/65.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/66.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/66.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/67.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/67.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/68.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/68.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/69.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/69.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/7.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/7.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/70.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/70.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/71.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/71.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/72.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/72.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/73.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/73.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/74.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/74.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/75.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/75.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/76.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/76.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/77.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/77.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/78.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/78.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/79.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/79.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/8.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/8.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/80.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/80.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/81.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/81.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/82.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/82.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/83.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/83.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/84.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/84.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/85.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/85.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/86.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/86.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/87.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/87.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/88.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/88.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/89.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/89.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/9.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/9.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/90.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/90.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/91.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/91.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/92.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/92.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/93.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/93.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/94.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/94.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/95.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/95.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/96.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/96.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/97.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/97.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/98.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/98.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/99.png (100%) rename {bbs-go => archive/bbs-go}/site/src/public/images/avatars/99.svg (100%) rename {bbs-go => archive/bbs-go}/site/src/public/robots.txt (100%) rename {bbs-go => archive/bbs-go}/site/src/server/middleware/index.ts (100%) rename {bbs-go => archive/bbs-go}/site/src/stores/config.js (100%) rename {bbs-go => archive/bbs-go}/site/src/stores/env.ts (100%) rename {bbs-go => archive/bbs-go}/site/src/stores/user.js (100%) rename {bbs-go => archive/bbs-go}/site/tsconfig.json (100%) rename {bbs-go => archive/bbs-go}/start.sh (100%) rename {bbs-go => archive/bbs-go}/vetur.config.js (100%) rename {file-server => archive/file-server}/Dockerfile (100%) rename {file-server => archive/file-server}/docker-compose.yml (100%) rename {file-server => archive/file-server}/go.mod (100%) rename {file-server => archive/file-server}/main.go (100%) rename {mongodb => archive/mongodb}/docker-compose.yml (100%) rename {registry => archive/registry}/docker-compose.yml (96%) rename {tailscale => archive/tailscale}/config.yaml (97%) rename {tailscale => archive/tailscale}/docker-compose.yml (96%) create mode 100644 dolibarr/README.md create mode 100644 dolibarr/docker-compose.yml diff --git a/Readme.md b/Readme.md deleted file mode 100644 index e69de29..0000000 diff --git a/bbs-go-active/.dockerignore b/archive/bbs-go-active/.dockerignore similarity index 100% rename from bbs-go-active/.dockerignore rename to archive/bbs-go-active/.dockerignore diff --git a/bbs-go-active/.github/workflows/bbs-go-admin.yml b/archive/bbs-go-active/.github/workflows/bbs-go-admin.yml similarity index 100% rename from bbs-go-active/.github/workflows/bbs-go-admin.yml rename to archive/bbs-go-active/.github/workflows/bbs-go-admin.yml diff --git a/bbs-go-active/.github/workflows/bbs-go-docker.yml b/archive/bbs-go-active/.github/workflows/bbs-go-docker.yml similarity index 100% rename from bbs-go-active/.github/workflows/bbs-go-docker.yml rename to archive/bbs-go-active/.github/workflows/bbs-go-docker.yml diff --git a/bbs-go-active/.github/workflows/bbs-go-server.yml b/archive/bbs-go-active/.github/workflows/bbs-go-server.yml similarity index 94% rename from bbs-go-active/.github/workflows/bbs-go-server.yml rename to archive/bbs-go-active/.github/workflows/bbs-go-server.yml index 7806d84..744d0fd 100644 --- a/bbs-go-active/.github/workflows/bbs-go-server.yml +++ b/archive/bbs-go-active/.github/workflows/bbs-go-server.yml @@ -1,26 +1,26 @@ -name: bbs-go-server - -on: [ push ] - -jobs: - - build: - name: Build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Set up Go - uses: actions/setup-go@v2 - with: - go-version: 1.21 - - - name: Install dependencies - working-directory: ./server - run: | - go mod download - - - name: Build - working-directory: ./server - run: | - make build +name: bbs-go-server + +on: [ push ] + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.21 + + - name: Install dependencies + working-directory: ./server + run: | + go mod download + + - name: Build + working-directory: ./server + run: | + make build diff --git a/bbs-go/.github/workflows/bbs-go-site.yml b/archive/bbs-go-active/.github/workflows/bbs-go-site.yml similarity index 95% rename from bbs-go/.github/workflows/bbs-go-site.yml rename to archive/bbs-go-active/.github/workflows/bbs-go-site.yml index 00d72b9..efe2d79 100644 --- a/bbs-go/.github/workflows/bbs-go-site.yml +++ b/archive/bbs-go-active/.github/workflows/bbs-go-site.yml @@ -1,32 +1,32 @@ -name: bbs-go-site - -on: [ push ] - -jobs: - build: - - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [ 20.x ] - - steps: - - uses: actions/checkout@v3 - - uses: pnpm/action-setup@v3 - with: - version: 8 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: "pnpm" - cache-dependency-path: site/pnpm-lock.yaml - - name: Install dependencies - working-directory: ./site - run: | - pnpm install - - name: Build - working-directory: ./site - run: | +name: bbs-go-site + +on: [ push ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [ 20.x ] + + steps: + - uses: actions/checkout@v3 + - uses: pnpm/action-setup@v3 + with: + version: 8 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: "pnpm" + cache-dependency-path: site/pnpm-lock.yaml + - name: Install dependencies + working-directory: ./site + run: | + pnpm install + - name: Build + working-directory: ./site + run: | pnpm build \ No newline at end of file diff --git a/bbs-go/.gitignore b/archive/bbs-go-active/.gitignore similarity index 92% rename from bbs-go/.gitignore rename to archive/bbs-go-active/.gitignore index 1b7f072..92904c5 100644 --- a/bbs-go/.gitignore +++ b/archive/bbs-go-active/.gitignore @@ -1,7 +1,7 @@ -.idea -dist -*.log -.DS_Store -node_modules -.nuxt +.idea +dist +*.log +.DS_Store +node_modules +.nuxt .docker-compose/mysql/data \ No newline at end of file diff --git a/bbs-go-active/Dockerfile b/archive/bbs-go-active/Dockerfile similarity index 100% rename from bbs-go-active/Dockerfile rename to archive/bbs-go-active/Dockerfile diff --git a/bbs-go-active/LICENSE b/archive/bbs-go-active/LICENSE similarity index 98% rename from bbs-go-active/LICENSE rename to archive/bbs-go-active/LICENSE index 3877ae0..f288702 100644 --- a/bbs-go-active/LICENSE +++ b/archive/bbs-go-active/LICENSE @@ -1,674 +1,674 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/bbs-go-active/README.md b/archive/bbs-go-active/README.md similarity index 97% rename from bbs-go-active/README.md rename to archive/bbs-go-active/README.md index c6a5409..c4481cb 100644 --- a/bbs-go-active/README.md +++ b/archive/bbs-go-active/README.md @@ -1,85 +1,85 @@ -## 项目地址 - -- 演示站:[https://bbs.bbs-go.com](https://bbs.bbs-go.com) -- 文档地址:[https://bbs-go.com](https://bbs-go.com) -- 问题反馈: [https://mlog.club/topics/node/3](https://mlog.club/topics/node/3) -- Github: [https://github.com/mlogclub/bbs-go](https://github.com/mlogclub/bbs-go) -- Gitee: [https://gitee.com/mlogclub/bbs-go](https://gitee.com/mlogclub/bbs-go) - -## 联系我 - -### 用户交流群 - -![BBS-GO用户交流群](docs/images/qq.png) - -### 加我微信 - -![BBS-GO用户交流群](docs/images/wechat.png) - -## 介绍 - -`bbs-go` 是一个基于 Go 语言开发的开源社区论坛系统。它的设计旨在提供轻量、高效的社区讨论平台,支持现代化的 Web 技术栈,并且易于扩展和部署。bbs-go 项目采用模块化架构,能够与其他服务和前端框架无缝集成,适合各种规模的在线社区。 - -项目的主要特点包括: - -- **高性能**:基于 Go 语言的并发特性,能够在高负载下保持良好的性能表现。 -- **灵活性**:支持自定义配置、插件扩展,易于适应不同需求。 -- **简单易用**:提供简洁的管理后台,方便社区管理员管理论坛内容和用户。 -- **支持 MySQL 数据库**:提供对常见数据库的支持,确保数据存储的可靠性和稳定性。 -- **响应式设计**:前端使用现代化的技术,能够在移动设备和桌面设备上提供良好的用户体验。 - -项目主要面向开发者和社区管理者,适合搭建技术讨论、兴趣分享等类型的社区论坛。 - -![bbs-go功能简介](docs/images/features.jpg) - -## 模块 - -### server - -[![bbs-go-server](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-server.yml/badge.svg)](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-server.yml) - -> 基于`Golang`搭建,提供接口数据支撑。 - -技术栈 - -- iris ([https://github.com/kataras/iris](https://github.com/kataras/iris)) Go语言 mvc 框架 -- gorm ([http://gorm.io](http://gorm.io)) 最好用的Go语言数据库orm框架 -- resty ([https://github.com/go-resty/resty](https://github.com/go-resty/resty)) Go语言好用的 http-client -- cron ([https://github.com/robfig/cron](https://github.com/robfig/cron)) 定时任务框架 -- goquery ([https://github.com/PuerkitoBio/goquery](https://github.com/PuerkitoBio/goquery)) html dom 元素解析 - -### site - -[![bbs-go-site](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-site.yml/badge.svg)](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-site.yml) - -> 前端页面渲染服务,基于`nuxt.js`搭建。 - -技术栈 - -- vue.js ([https://vuejs.org](https://vuejs.org)) 渐进式 JavaScript 框架 -- nuxt.js ([https://nuxtjs.org](https://nuxtjs.org)) 基于Vue的服务端渲染框架,效率高到爆 - -### admin - -[![bbs-go-admin](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-admin.yml/badge.svg)](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-admin.yml) - -> 管理后台系统,基于`vue.js + element-ui`搭建。 - -技术栈 - -- vue.js ([https://vuejs.org](https://vuejs.org)) 渐进式 JavaScript 框架 -- element-ui ([https://element.eleme.cn](https://element.eleme.cn)) 饿了么开源的基于 vue.js 的前端库 - -## 功能预览 - -![首页.png](https://s2.loli.net/2022/04/12/DpvPwB9dlQ6Chef.png) -![发帖.png](https://s2.loli.net/2022/04/12/KC8eXfE6sDLq34V.png) -![发动态.png](https://s2.loli.net/2022/04/12/14pMPuGjEU6kiWV.png) -![个人中心.png](https://s2.loli.net/2022/04/12/1PVNjMh9nUAXsl8.png) -![手机版.png](https://s2.loli.net/2022/04/12/mowWb78CGIaH6T2.png) -![后台首页.png](https://s2.loli.net/2022/04/12/ErX2BLTnh7ldz8D.png) -![后台配置.png](https://s2.loli.net/2022/04/12/PwK6aC74XEZlIOL.png) - -## Contributors - - +## 项目地址 + +- 演示站:[https://bbs.bbs-go.com](https://bbs.bbs-go.com) +- 文档地址:[https://bbs-go.com](https://bbs-go.com) +- 问题反馈: [https://mlog.club/topics/node/3](https://mlog.club/topics/node/3) +- Github: [https://github.com/mlogclub/bbs-go](https://github.com/mlogclub/bbs-go) +- Gitee: [https://gitee.com/mlogclub/bbs-go](https://gitee.com/mlogclub/bbs-go) + +## 联系我 + +### 用户交流群 + +![BBS-GO用户交流群](docs/images/qq.png) + +### 加我微信 + +![BBS-GO用户交流群](docs/images/wechat.png) + +## 介绍 + +`bbs-go` 是一个基于 Go 语言开发的开源社区论坛系统。它的设计旨在提供轻量、高效的社区讨论平台,支持现代化的 Web 技术栈,并且易于扩展和部署。bbs-go 项目采用模块化架构,能够与其他服务和前端框架无缝集成,适合各种规模的在线社区。 + +项目的主要特点包括: + +- **高性能**:基于 Go 语言的并发特性,能够在高负载下保持良好的性能表现。 +- **灵活性**:支持自定义配置、插件扩展,易于适应不同需求。 +- **简单易用**:提供简洁的管理后台,方便社区管理员管理论坛内容和用户。 +- **支持 MySQL 数据库**:提供对常见数据库的支持,确保数据存储的可靠性和稳定性。 +- **响应式设计**:前端使用现代化的技术,能够在移动设备和桌面设备上提供良好的用户体验。 + +项目主要面向开发者和社区管理者,适合搭建技术讨论、兴趣分享等类型的社区论坛。 + +![bbs-go功能简介](docs/images/features.jpg) + +## 模块 + +### server + +[![bbs-go-server](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-server.yml/badge.svg)](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-server.yml) + +> 基于`Golang`搭建,提供接口数据支撑。 + +技术栈 + +- iris ([https://github.com/kataras/iris](https://github.com/kataras/iris)) Go语言 mvc 框架 +- gorm ([http://gorm.io](http://gorm.io)) 最好用的Go语言数据库orm框架 +- resty ([https://github.com/go-resty/resty](https://github.com/go-resty/resty)) Go语言好用的 http-client +- cron ([https://github.com/robfig/cron](https://github.com/robfig/cron)) 定时任务框架 +- goquery ([https://github.com/PuerkitoBio/goquery](https://github.com/PuerkitoBio/goquery)) html dom 元素解析 + +### site + +[![bbs-go-site](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-site.yml/badge.svg)](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-site.yml) + +> 前端页面渲染服务,基于`nuxt.js`搭建。 + +技术栈 + +- vue.js ([https://vuejs.org](https://vuejs.org)) 渐进式 JavaScript 框架 +- nuxt.js ([https://nuxtjs.org](https://nuxtjs.org)) 基于Vue的服务端渲染框架,效率高到爆 + +### admin + +[![bbs-go-admin](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-admin.yml/badge.svg)](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-admin.yml) + +> 管理后台系统,基于`vue.js + element-ui`搭建。 + +技术栈 + +- vue.js ([https://vuejs.org](https://vuejs.org)) 渐进式 JavaScript 框架 +- element-ui ([https://element.eleme.cn](https://element.eleme.cn)) 饿了么开源的基于 vue.js 的前端库 + +## 功能预览 + +![首页.png](https://s2.loli.net/2022/04/12/DpvPwB9dlQ6Chef.png) +![发帖.png](https://s2.loli.net/2022/04/12/KC8eXfE6sDLq34V.png) +![发动态.png](https://s2.loli.net/2022/04/12/14pMPuGjEU6kiWV.png) +![个人中心.png](https://s2.loli.net/2022/04/12/1PVNjMh9nUAXsl8.png) +![手机版.png](https://s2.loli.net/2022/04/12/mowWb78CGIaH6T2.png) +![后台首页.png](https://s2.loli.net/2022/04/12/ErX2BLTnh7ldz8D.png) +![后台配置.png](https://s2.loli.net/2022/04/12/PwK6aC74XEZlIOL.png) + +## Contributors + + diff --git a/bbs-go-active/admin/.env.development b/archive/bbs-go-active/admin/.env.development similarity index 100% rename from bbs-go-active/admin/.env.development rename to archive/bbs-go-active/admin/.env.development diff --git a/bbs-go-active/admin/.env.docker b/archive/bbs-go-active/admin/.env.docker similarity index 100% rename from bbs-go-active/admin/.env.docker rename to archive/bbs-go-active/admin/.env.docker diff --git a/bbs-go-active/admin/.env.production b/archive/bbs-go-active/admin/.env.production similarity index 100% rename from bbs-go-active/admin/.env.production rename to archive/bbs-go-active/admin/.env.production diff --git a/bbs-go-active/admin/.eslintignore b/archive/bbs-go-active/admin/.eslintignore similarity index 100% rename from bbs-go-active/admin/.eslintignore rename to archive/bbs-go-active/admin/.eslintignore diff --git a/bbs-go-active/admin/.eslintrc-auto-import.json b/archive/bbs-go-active/admin/.eslintrc-auto-import.json similarity index 100% rename from bbs-go-active/admin/.eslintrc-auto-import.json rename to archive/bbs-go-active/admin/.eslintrc-auto-import.json diff --git a/bbs-go-active/admin/.eslintrc.js b/archive/bbs-go-active/admin/.eslintrc.js similarity index 100% rename from bbs-go-active/admin/.eslintrc.js rename to archive/bbs-go-active/admin/.eslintrc.js diff --git a/bbs-go-active/admin/.gitignore b/archive/bbs-go-active/admin/.gitignore similarity index 100% rename from bbs-go-active/admin/.gitignore rename to archive/bbs-go-active/admin/.gitignore diff --git a/bbs-go-active/admin/.husky/commit-msg b/archive/bbs-go-active/admin/.husky/commit-msg similarity index 100% rename from bbs-go-active/admin/.husky/commit-msg rename to archive/bbs-go-active/admin/.husky/commit-msg diff --git a/bbs-go-active/admin/.husky/pre-commit b/archive/bbs-go-active/admin/.husky/pre-commit similarity index 100% rename from bbs-go-active/admin/.husky/pre-commit rename to archive/bbs-go-active/admin/.husky/pre-commit diff --git a/bbs-go-active/admin/.prettierignore b/archive/bbs-go-active/admin/.prettierignore similarity index 100% rename from bbs-go-active/admin/.prettierignore rename to archive/bbs-go-active/admin/.prettierignore diff --git a/bbs-go-active/admin/.prettierrc.js b/archive/bbs-go-active/admin/.prettierrc.js similarity index 100% rename from bbs-go-active/admin/.prettierrc.js rename to archive/bbs-go-active/admin/.prettierrc.js diff --git a/bbs-go-active/admin/.stylelintrc.js b/archive/bbs-go-active/admin/.stylelintrc.js similarity index 100% rename from bbs-go-active/admin/.stylelintrc.js rename to archive/bbs-go-active/admin/.stylelintrc.js diff --git a/bbs-go-active/admin/.vscode/settings.json b/archive/bbs-go-active/admin/.vscode/settings.json similarity index 100% rename from bbs-go-active/admin/.vscode/settings.json rename to archive/bbs-go-active/admin/.vscode/settings.json diff --git a/bbs-go-active/admin/CNAME b/archive/bbs-go-active/admin/CNAME similarity index 100% rename from bbs-go-active/admin/CNAME rename to archive/bbs-go-active/admin/CNAME diff --git a/bbs-go-active/admin/babel.config.js b/archive/bbs-go-active/admin/babel.config.js similarity index 100% rename from bbs-go-active/admin/babel.config.js rename to archive/bbs-go-active/admin/babel.config.js diff --git a/bbs-go-active/admin/commitlint.config.js b/archive/bbs-go-active/admin/commitlint.config.js similarity index 100% rename from bbs-go-active/admin/commitlint.config.js rename to archive/bbs-go-active/admin/commitlint.config.js diff --git a/bbs-go-active/admin/components.d.ts b/archive/bbs-go-active/admin/components.d.ts similarity index 100% rename from bbs-go-active/admin/components.d.ts rename to archive/bbs-go-active/admin/components.d.ts diff --git a/bbs-go-active/admin/config/plugin/arcoResolver.ts b/archive/bbs-go-active/admin/config/plugin/arcoResolver.ts similarity index 100% rename from bbs-go-active/admin/config/plugin/arcoResolver.ts rename to archive/bbs-go-active/admin/config/plugin/arcoResolver.ts diff --git a/bbs-go-active/admin/config/plugin/arcoStyleImport.ts b/archive/bbs-go-active/admin/config/plugin/arcoStyleImport.ts similarity index 100% rename from bbs-go-active/admin/config/plugin/arcoStyleImport.ts rename to archive/bbs-go-active/admin/config/plugin/arcoStyleImport.ts diff --git a/bbs-go-active/admin/config/plugin/compress.ts b/archive/bbs-go-active/admin/config/plugin/compress.ts similarity index 100% rename from bbs-go-active/admin/config/plugin/compress.ts rename to archive/bbs-go-active/admin/config/plugin/compress.ts diff --git a/bbs-go-active/admin/config/plugin/imagemin.ts b/archive/bbs-go-active/admin/config/plugin/imagemin.ts similarity index 100% rename from bbs-go-active/admin/config/plugin/imagemin.ts rename to archive/bbs-go-active/admin/config/plugin/imagemin.ts diff --git a/bbs-go-active/admin/config/plugin/visualizer.ts b/archive/bbs-go-active/admin/config/plugin/visualizer.ts similarity index 100% rename from bbs-go-active/admin/config/plugin/visualizer.ts rename to archive/bbs-go-active/admin/config/plugin/visualizer.ts diff --git a/bbs-go-active/admin/config/utils/index.ts b/archive/bbs-go-active/admin/config/utils/index.ts similarity index 100% rename from bbs-go-active/admin/config/utils/index.ts rename to archive/bbs-go-active/admin/config/utils/index.ts diff --git a/bbs-go-active/admin/config/vite.config.base.ts b/archive/bbs-go-active/admin/config/vite.config.base.ts similarity index 100% rename from bbs-go-active/admin/config/vite.config.base.ts rename to archive/bbs-go-active/admin/config/vite.config.base.ts diff --git a/bbs-go-active/admin/config/vite.config.dev.ts b/archive/bbs-go-active/admin/config/vite.config.dev.ts similarity index 100% rename from bbs-go-active/admin/config/vite.config.dev.ts rename to archive/bbs-go-active/admin/config/vite.config.dev.ts diff --git a/bbs-go-active/admin/config/vite.config.docker.ts b/archive/bbs-go-active/admin/config/vite.config.docker.ts similarity index 100% rename from bbs-go-active/admin/config/vite.config.docker.ts rename to archive/bbs-go-active/admin/config/vite.config.docker.ts diff --git a/bbs-go-active/admin/config/vite.config.prod.ts b/archive/bbs-go-active/admin/config/vite.config.prod.ts similarity index 100% rename from bbs-go-active/admin/config/vite.config.prod.ts rename to archive/bbs-go-active/admin/config/vite.config.prod.ts diff --git a/bbs-go-active/admin/index.html b/archive/bbs-go-active/admin/index.html similarity index 100% rename from bbs-go-active/admin/index.html rename to archive/bbs-go-active/admin/index.html diff --git a/bbs-go-active/admin/package.json b/archive/bbs-go-active/admin/package.json similarity index 100% rename from bbs-go-active/admin/package.json rename to archive/bbs-go-active/admin/package.json diff --git a/bbs-go-active/admin/pnpm-lock.yaml b/archive/bbs-go-active/admin/pnpm-lock.yaml similarity index 100% rename from bbs-go-active/admin/pnpm-lock.yaml rename to archive/bbs-go-active/admin/pnpm-lock.yaml diff --git a/bbs-go-active/admin/src/App.vue b/archive/bbs-go-active/admin/src/App.vue similarity index 100% rename from bbs-go-active/admin/src/App.vue rename to archive/bbs-go-active/admin/src/App.vue diff --git a/bbs-go-active/admin/src/api/interceptor.ts b/archive/bbs-go-active/admin/src/api/interceptor.ts similarity index 100% rename from bbs-go-active/admin/src/api/interceptor.ts rename to archive/bbs-go-active/admin/src/api/interceptor.ts diff --git a/bbs-go-active/admin/src/api/user.ts b/archive/bbs-go-active/admin/src/api/user.ts similarity index 100% rename from bbs-go-active/admin/src/api/user.ts rename to archive/bbs-go-active/admin/src/api/user.ts diff --git a/bbs-go-active/admin/src/assets/images/logo.png b/archive/bbs-go-active/admin/src/assets/images/logo.png similarity index 100% rename from bbs-go-active/admin/src/assets/images/logo.png rename to archive/bbs-go-active/admin/src/assets/images/logo.png diff --git a/bbs-go-active/admin/src/assets/images/logo364x364.png b/archive/bbs-go-active/admin/src/assets/images/logo364x364.png similarity index 100% rename from bbs-go-active/admin/src/assets/images/logo364x364.png rename to archive/bbs-go-active/admin/src/assets/images/logo364x364.png diff --git a/bbs-go-active/admin/src/assets/style/breakpoint.less b/archive/bbs-go-active/admin/src/assets/style/breakpoint.less similarity index 100% rename from bbs-go-active/admin/src/assets/style/breakpoint.less rename to archive/bbs-go-active/admin/src/assets/style/breakpoint.less diff --git a/bbs-go-active/admin/src/assets/style/custom.less b/archive/bbs-go-active/admin/src/assets/style/custom.less similarity index 100% rename from bbs-go-active/admin/src/assets/style/custom.less rename to archive/bbs-go-active/admin/src/assets/style/custom.less diff --git a/bbs-go-active/admin/src/assets/style/global.less b/archive/bbs-go-active/admin/src/assets/style/global.less similarity index 100% rename from bbs-go-active/admin/src/assets/style/global.less rename to archive/bbs-go-active/admin/src/assets/style/global.less diff --git a/bbs-go-active/admin/src/auto-imports.d.ts b/archive/bbs-go-active/admin/src/auto-imports.d.ts similarity index 100% rename from bbs-go-active/admin/src/auto-imports.d.ts rename to archive/bbs-go-active/admin/src/auto-imports.d.ts diff --git a/bbs-go-active/admin/src/components/ImageUpload.vue b/archive/bbs-go-active/admin/src/components/ImageUpload.vue similarity index 100% rename from bbs-go-active/admin/src/components/ImageUpload.vue rename to archive/bbs-go-active/admin/src/components/ImageUpload.vue diff --git a/bbs-go-active/admin/src/components/breadcrumb/index.vue b/archive/bbs-go-active/admin/src/components/breadcrumb/index.vue similarity index 100% rename from bbs-go-active/admin/src/components/breadcrumb/index.vue rename to archive/bbs-go-active/admin/src/components/breadcrumb/index.vue diff --git a/bbs-go-active/admin/src/components/chart/index.vue b/archive/bbs-go-active/admin/src/components/chart/index.vue similarity index 100% rename from bbs-go-active/admin/src/components/chart/index.vue rename to archive/bbs-go-active/admin/src/components/chart/index.vue diff --git a/bbs-go-active/admin/src/components/footer/index.vue b/archive/bbs-go-active/admin/src/components/footer/index.vue similarity index 100% rename from bbs-go-active/admin/src/components/footer/index.vue rename to archive/bbs-go-active/admin/src/components/footer/index.vue diff --git a/bbs-go-active/admin/src/components/global-setting/block.vue b/archive/bbs-go-active/admin/src/components/global-setting/block.vue similarity index 100% rename from bbs-go-active/admin/src/components/global-setting/block.vue rename to archive/bbs-go-active/admin/src/components/global-setting/block.vue diff --git a/bbs-go-active/admin/src/components/global-setting/form-wrapper.vue b/archive/bbs-go-active/admin/src/components/global-setting/form-wrapper.vue similarity index 100% rename from bbs-go-active/admin/src/components/global-setting/form-wrapper.vue rename to archive/bbs-go-active/admin/src/components/global-setting/form-wrapper.vue diff --git a/bbs-go-active/admin/src/components/global-setting/index.vue b/archive/bbs-go-active/admin/src/components/global-setting/index.vue similarity index 100% rename from bbs-go-active/admin/src/components/global-setting/index.vue rename to archive/bbs-go-active/admin/src/components/global-setting/index.vue diff --git a/bbs-go-active/admin/src/components/index.ts b/archive/bbs-go-active/admin/src/components/index.ts similarity index 100% rename from bbs-go-active/admin/src/components/index.ts rename to archive/bbs-go-active/admin/src/components/index.ts diff --git a/bbs-go-active/admin/src/components/menu/index.vue b/archive/bbs-go-active/admin/src/components/menu/index.vue similarity index 100% rename from bbs-go-active/admin/src/components/menu/index.vue rename to archive/bbs-go-active/admin/src/components/menu/index.vue diff --git a/bbs-go-active/admin/src/components/menu/use-menu-tree.ts b/archive/bbs-go-active/admin/src/components/menu/use-menu-tree.ts similarity index 100% rename from bbs-go-active/admin/src/components/menu/use-menu-tree.ts rename to archive/bbs-go-active/admin/src/components/menu/use-menu-tree.ts diff --git a/bbs-go-active/admin/src/components/navbar/index.vue b/archive/bbs-go-active/admin/src/components/navbar/index.vue similarity index 100% rename from bbs-go-active/admin/src/components/navbar/index.vue rename to archive/bbs-go-active/admin/src/components/navbar/index.vue diff --git a/bbs-go-active/admin/src/components/tab-bar/index.vue b/archive/bbs-go-active/admin/src/components/tab-bar/index.vue similarity index 100% rename from bbs-go-active/admin/src/components/tab-bar/index.vue rename to archive/bbs-go-active/admin/src/components/tab-bar/index.vue diff --git a/bbs-go-active/admin/src/components/tab-bar/readme.md b/archive/bbs-go-active/admin/src/components/tab-bar/readme.md similarity index 100% rename from bbs-go-active/admin/src/components/tab-bar/readme.md rename to archive/bbs-go-active/admin/src/components/tab-bar/readme.md diff --git a/bbs-go-active/admin/src/components/tab-bar/tab-item.vue b/archive/bbs-go-active/admin/src/components/tab-bar/tab-item.vue similarity index 100% rename from bbs-go-active/admin/src/components/tab-bar/tab-item.vue rename to archive/bbs-go-active/admin/src/components/tab-bar/tab-item.vue diff --git a/bbs-go-active/admin/src/composables/arco.ts b/archive/bbs-go-active/admin/src/composables/arco.ts similarity index 100% rename from bbs-go-active/admin/src/composables/arco.ts rename to archive/bbs-go-active/admin/src/composables/arco.ts diff --git a/bbs-go-active/admin/src/composables/index.ts b/archive/bbs-go-active/admin/src/composables/index.ts similarity index 100% rename from bbs-go-active/admin/src/composables/index.ts rename to archive/bbs-go-active/admin/src/composables/index.ts diff --git a/bbs-go-active/admin/src/composables/types.ts b/archive/bbs-go-active/admin/src/composables/types.ts similarity index 100% rename from bbs-go-active/admin/src/composables/types.ts rename to archive/bbs-go-active/admin/src/composables/types.ts diff --git a/bbs-go-active/admin/src/directive/index.ts b/archive/bbs-go-active/admin/src/directive/index.ts similarity index 100% rename from bbs-go-active/admin/src/directive/index.ts rename to archive/bbs-go-active/admin/src/directive/index.ts diff --git a/bbs-go-active/admin/src/directive/permission/index.ts b/archive/bbs-go-active/admin/src/directive/permission/index.ts similarity index 100% rename from bbs-go-active/admin/src/directive/permission/index.ts rename to archive/bbs-go-active/admin/src/directive/permission/index.ts diff --git a/bbs-go-active/admin/src/env.d.ts b/archive/bbs-go-active/admin/src/env.d.ts similarity index 100% rename from bbs-go-active/admin/src/env.d.ts rename to archive/bbs-go-active/admin/src/env.d.ts diff --git a/bbs-go-active/admin/src/hooks/chart-option.ts b/archive/bbs-go-active/admin/src/hooks/chart-option.ts similarity index 100% rename from bbs-go-active/admin/src/hooks/chart-option.ts rename to archive/bbs-go-active/admin/src/hooks/chart-option.ts diff --git a/bbs-go-active/admin/src/hooks/loading.ts b/archive/bbs-go-active/admin/src/hooks/loading.ts similarity index 100% rename from bbs-go-active/admin/src/hooks/loading.ts rename to archive/bbs-go-active/admin/src/hooks/loading.ts diff --git a/bbs-go-active/admin/src/hooks/locale.ts b/archive/bbs-go-active/admin/src/hooks/locale.ts similarity index 100% rename from bbs-go-active/admin/src/hooks/locale.ts rename to archive/bbs-go-active/admin/src/hooks/locale.ts diff --git a/bbs-go-active/admin/src/hooks/permission.ts b/archive/bbs-go-active/admin/src/hooks/permission.ts similarity index 100% rename from bbs-go-active/admin/src/hooks/permission.ts rename to archive/bbs-go-active/admin/src/hooks/permission.ts diff --git a/bbs-go-active/admin/src/hooks/request.ts b/archive/bbs-go-active/admin/src/hooks/request.ts similarity index 100% rename from bbs-go-active/admin/src/hooks/request.ts rename to archive/bbs-go-active/admin/src/hooks/request.ts diff --git a/bbs-go-active/admin/src/hooks/responsive.ts b/archive/bbs-go-active/admin/src/hooks/responsive.ts similarity index 100% rename from bbs-go-active/admin/src/hooks/responsive.ts rename to archive/bbs-go-active/admin/src/hooks/responsive.ts diff --git a/bbs-go-active/admin/src/hooks/themes.ts b/archive/bbs-go-active/admin/src/hooks/themes.ts similarity index 100% rename from bbs-go-active/admin/src/hooks/themes.ts rename to archive/bbs-go-active/admin/src/hooks/themes.ts diff --git a/bbs-go-active/admin/src/hooks/user.ts b/archive/bbs-go-active/admin/src/hooks/user.ts similarity index 100% rename from bbs-go-active/admin/src/hooks/user.ts rename to archive/bbs-go-active/admin/src/hooks/user.ts diff --git a/bbs-go-active/admin/src/hooks/visible.ts b/archive/bbs-go-active/admin/src/hooks/visible.ts similarity index 100% rename from bbs-go-active/admin/src/hooks/visible.ts rename to archive/bbs-go-active/admin/src/hooks/visible.ts diff --git a/bbs-go-active/admin/src/layout/default-layout.vue b/archive/bbs-go-active/admin/src/layout/default-layout.vue similarity index 100% rename from bbs-go-active/admin/src/layout/default-layout.vue rename to archive/bbs-go-active/admin/src/layout/default-layout.vue diff --git a/bbs-go-active/admin/src/layout/page-layout.vue b/archive/bbs-go-active/admin/src/layout/page-layout.vue similarity index 100% rename from bbs-go-active/admin/src/layout/page-layout.vue rename to archive/bbs-go-active/admin/src/layout/page-layout.vue diff --git a/bbs-go-active/admin/src/locale/en-US.ts b/archive/bbs-go-active/admin/src/locale/en-US.ts similarity index 100% rename from bbs-go-active/admin/src/locale/en-US.ts rename to archive/bbs-go-active/admin/src/locale/en-US.ts diff --git a/bbs-go-active/admin/src/locale/en-US/settings.ts b/archive/bbs-go-active/admin/src/locale/en-US/settings.ts similarity index 100% rename from bbs-go-active/admin/src/locale/en-US/settings.ts rename to archive/bbs-go-active/admin/src/locale/en-US/settings.ts diff --git a/bbs-go-active/admin/src/locale/index.ts b/archive/bbs-go-active/admin/src/locale/index.ts similarity index 100% rename from bbs-go-active/admin/src/locale/index.ts rename to archive/bbs-go-active/admin/src/locale/index.ts diff --git a/bbs-go-active/admin/src/locale/zh-CN.ts b/archive/bbs-go-active/admin/src/locale/zh-CN.ts similarity index 100% rename from bbs-go-active/admin/src/locale/zh-CN.ts rename to archive/bbs-go-active/admin/src/locale/zh-CN.ts diff --git a/bbs-go-active/admin/src/locale/zh-CN/settings.ts b/archive/bbs-go-active/admin/src/locale/zh-CN/settings.ts similarity index 100% rename from bbs-go-active/admin/src/locale/zh-CN/settings.ts rename to archive/bbs-go-active/admin/src/locale/zh-CN/settings.ts diff --git a/bbs-go-active/admin/src/main.ts b/archive/bbs-go-active/admin/src/main.ts similarity index 100% rename from bbs-go-active/admin/src/main.ts rename to archive/bbs-go-active/admin/src/main.ts diff --git a/bbs-go-active/admin/src/router/app-menus/index.ts b/archive/bbs-go-active/admin/src/router/app-menus/index.ts similarity index 100% rename from bbs-go-active/admin/src/router/app-menus/index.ts rename to archive/bbs-go-active/admin/src/router/app-menus/index.ts diff --git a/bbs-go-active/admin/src/router/constants.ts b/archive/bbs-go-active/admin/src/router/constants.ts similarity index 100% rename from bbs-go-active/admin/src/router/constants.ts rename to archive/bbs-go-active/admin/src/router/constants.ts diff --git a/bbs-go-active/admin/src/router/guard/index.ts b/archive/bbs-go-active/admin/src/router/guard/index.ts similarity index 100% rename from bbs-go-active/admin/src/router/guard/index.ts rename to archive/bbs-go-active/admin/src/router/guard/index.ts diff --git a/bbs-go-active/admin/src/router/guard/loadRouters.ts b/archive/bbs-go-active/admin/src/router/guard/loadRouters.ts similarity index 100% rename from bbs-go-active/admin/src/router/guard/loadRouters.ts rename to archive/bbs-go-active/admin/src/router/guard/loadRouters.ts diff --git a/bbs-go-active/admin/src/router/guard/permission.ts b/archive/bbs-go-active/admin/src/router/guard/permission.ts similarity index 100% rename from bbs-go-active/admin/src/router/guard/permission.ts rename to archive/bbs-go-active/admin/src/router/guard/permission.ts diff --git a/bbs-go-active/admin/src/router/guard/userLoginInfo.ts b/archive/bbs-go-active/admin/src/router/guard/userLoginInfo.ts similarity index 100% rename from bbs-go-active/admin/src/router/guard/userLoginInfo.ts rename to archive/bbs-go-active/admin/src/router/guard/userLoginInfo.ts diff --git a/bbs-go-active/admin/src/router/index.ts b/archive/bbs-go-active/admin/src/router/index.ts similarity index 100% rename from bbs-go-active/admin/src/router/index.ts rename to archive/bbs-go-active/admin/src/router/index.ts diff --git a/bbs-go-active/admin/src/router/routes/base.ts b/archive/bbs-go-active/admin/src/router/routes/base.ts similarity index 100% rename from bbs-go-active/admin/src/router/routes/base.ts rename to archive/bbs-go-active/admin/src/router/routes/base.ts diff --git a/bbs-go-active/admin/src/router/routes/externalModules/docs.ts b/archive/bbs-go-active/admin/src/router/routes/externalModules/docs.ts similarity index 100% rename from bbs-go-active/admin/src/router/routes/externalModules/docs.ts rename to archive/bbs-go-active/admin/src/router/routes/externalModules/docs.ts diff --git a/bbs-go-active/admin/src/router/routes/index.ts b/archive/bbs-go-active/admin/src/router/routes/index.ts similarity index 100% rename from bbs-go-active/admin/src/router/routes/index.ts rename to archive/bbs-go-active/admin/src/router/routes/index.ts diff --git a/bbs-go-active/admin/src/router/routes/modules/dashboard.ts b/archive/bbs-go-active/admin/src/router/routes/modules/dashboard.ts similarity index 100% rename from bbs-go-active/admin/src/router/routes/modules/dashboard.ts rename to archive/bbs-go-active/admin/src/router/routes/modules/dashboard.ts diff --git a/bbs-go-active/admin/src/router/routes/types.ts b/archive/bbs-go-active/admin/src/router/routes/types.ts similarity index 100% rename from bbs-go-active/admin/src/router/routes/types.ts rename to archive/bbs-go-active/admin/src/router/routes/types.ts diff --git a/bbs-go-active/admin/src/router/typings.d.ts b/archive/bbs-go-active/admin/src/router/typings.d.ts similarity index 100% rename from bbs-go-active/admin/src/router/typings.d.ts rename to archive/bbs-go-active/admin/src/router/typings.d.ts diff --git a/bbs-go-active/admin/src/store/index.ts b/archive/bbs-go-active/admin/src/store/index.ts similarity index 100% rename from bbs-go-active/admin/src/store/index.ts rename to archive/bbs-go-active/admin/src/store/index.ts diff --git a/bbs-go-active/admin/src/store/modules/app/index.ts b/archive/bbs-go-active/admin/src/store/modules/app/index.ts similarity index 100% rename from bbs-go-active/admin/src/store/modules/app/index.ts rename to archive/bbs-go-active/admin/src/store/modules/app/index.ts diff --git a/bbs-go-active/admin/src/store/modules/app/types.ts b/archive/bbs-go-active/admin/src/store/modules/app/types.ts similarity index 100% rename from bbs-go-active/admin/src/store/modules/app/types.ts rename to archive/bbs-go-active/admin/src/store/modules/app/types.ts diff --git a/bbs-go-active/admin/src/store/modules/dict/index.js b/archive/bbs-go-active/admin/src/store/modules/dict/index.js similarity index 100% rename from bbs-go-active/admin/src/store/modules/dict/index.js rename to archive/bbs-go-active/admin/src/store/modules/dict/index.js diff --git a/bbs-go-active/admin/src/store/modules/tab-bar/index.ts b/archive/bbs-go-active/admin/src/store/modules/tab-bar/index.ts similarity index 100% rename from bbs-go-active/admin/src/store/modules/tab-bar/index.ts rename to archive/bbs-go-active/admin/src/store/modules/tab-bar/index.ts diff --git a/bbs-go-active/admin/src/store/modules/tab-bar/types.ts b/archive/bbs-go-active/admin/src/store/modules/tab-bar/types.ts similarity index 100% rename from bbs-go-active/admin/src/store/modules/tab-bar/types.ts rename to archive/bbs-go-active/admin/src/store/modules/tab-bar/types.ts diff --git a/bbs-go-active/admin/src/store/modules/user/index.ts b/archive/bbs-go-active/admin/src/store/modules/user/index.ts similarity index 100% rename from bbs-go-active/admin/src/store/modules/user/index.ts rename to archive/bbs-go-active/admin/src/store/modules/user/index.ts diff --git a/bbs-go-active/admin/src/store/modules/user/types.ts b/archive/bbs-go-active/admin/src/store/modules/user/types.ts similarity index 100% rename from bbs-go-active/admin/src/store/modules/user/types.ts rename to archive/bbs-go-active/admin/src/store/modules/user/types.ts diff --git a/bbs-go-active/admin/src/types/echarts.ts b/archive/bbs-go-active/admin/src/types/echarts.ts similarity index 100% rename from bbs-go-active/admin/src/types/echarts.ts rename to archive/bbs-go-active/admin/src/types/echarts.ts diff --git a/bbs-go-active/admin/src/types/global.ts b/archive/bbs-go-active/admin/src/types/global.ts similarity index 100% rename from bbs-go-active/admin/src/types/global.ts rename to archive/bbs-go-active/admin/src/types/global.ts diff --git a/bbs-go-active/admin/src/utils/auth.ts b/archive/bbs-go-active/admin/src/utils/auth.ts similarity index 100% rename from bbs-go-active/admin/src/utils/auth.ts rename to archive/bbs-go-active/admin/src/utils/auth.ts diff --git a/bbs-go-active/admin/src/utils/event.ts b/archive/bbs-go-active/admin/src/utils/event.ts similarity index 100% rename from bbs-go-active/admin/src/utils/event.ts rename to archive/bbs-go-active/admin/src/utils/event.ts diff --git a/bbs-go-active/admin/src/utils/index.ts b/archive/bbs-go-active/admin/src/utils/index.ts similarity index 100% rename from bbs-go-active/admin/src/utils/index.ts rename to archive/bbs-go-active/admin/src/utils/index.ts diff --git a/bbs-go-active/admin/src/utils/is.ts b/archive/bbs-go-active/admin/src/utils/is.ts similarity index 100% rename from bbs-go-active/admin/src/utils/is.ts rename to archive/bbs-go-active/admin/src/utils/is.ts diff --git a/bbs-go-active/admin/src/utils/monitor.ts b/archive/bbs-go-active/admin/src/utils/monitor.ts similarity index 100% rename from bbs-go-active/admin/src/utils/monitor.ts rename to archive/bbs-go-active/admin/src/utils/monitor.ts diff --git a/bbs-go-active/admin/src/utils/route-listener.ts b/archive/bbs-go-active/admin/src/utils/route-listener.ts similarity index 100% rename from bbs-go-active/admin/src/utils/route-listener.ts rename to archive/bbs-go-active/admin/src/utils/route-listener.ts diff --git a/bbs-go-active/admin/src/views/login/components/banner.vue b/archive/bbs-go-active/admin/src/views/login/components/banner.vue similarity index 100% rename from bbs-go-active/admin/src/views/login/components/banner.vue rename to archive/bbs-go-active/admin/src/views/login/components/banner.vue diff --git a/bbs-go-active/admin/src/views/login/components/login-form.vue b/archive/bbs-go-active/admin/src/views/login/components/login-form.vue similarity index 100% rename from bbs-go-active/admin/src/views/login/components/login-form.vue rename to archive/bbs-go-active/admin/src/views/login/components/login-form.vue diff --git a/bbs-go-active/admin/src/views/login/index.vue b/archive/bbs-go-active/admin/src/views/login/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/login/index.vue rename to archive/bbs-go-active/admin/src/views/login/index.vue diff --git a/bbs-go-active/admin/src/views/login/locale/en-US.ts b/archive/bbs-go-active/admin/src/views/login/locale/en-US.ts similarity index 100% rename from bbs-go-active/admin/src/views/login/locale/en-US.ts rename to archive/bbs-go-active/admin/src/views/login/locale/en-US.ts diff --git a/bbs-go-active/admin/src/views/login/locale/zh-CN.ts b/archive/bbs-go-active/admin/src/views/login/locale/zh-CN.ts similarity index 100% rename from bbs-go-active/admin/src/views/login/locale/zh-CN.ts rename to archive/bbs-go-active/admin/src/views/login/locale/zh-CN.ts diff --git a/bbs-go-active/admin/src/views/not-found/index.vue b/archive/bbs-go-active/admin/src/views/not-found/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/not-found/index.vue rename to archive/bbs-go-active/admin/src/views/not-found/index.vue diff --git a/bbs-go-active/admin/src/views/pages/article/components/ArticleList.vue b/archive/bbs-go-active/admin/src/views/pages/article/components/ArticleList.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/article/components/ArticleList.vue rename to archive/bbs-go-active/admin/src/views/pages/article/components/ArticleList.vue diff --git a/bbs-go-active/admin/src/views/pages/article/index.vue b/archive/bbs-go-active/admin/src/views/pages/article/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/article/index.vue rename to archive/bbs-go-active/admin/src/views/pages/article/index.vue diff --git a/bbs-go-active/admin/src/views/pages/dashboard/index.vue b/archive/bbs-go-active/admin/src/views/pages/dashboard/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/dashboard/index.vue rename to archive/bbs-go-active/admin/src/views/pages/dashboard/index.vue diff --git a/bbs-go-active/admin/src/views/pages/forbidden-word/components/Edit.vue b/archive/bbs-go-active/admin/src/views/pages/forbidden-word/components/Edit.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/forbidden-word/components/Edit.vue rename to archive/bbs-go-active/admin/src/views/pages/forbidden-word/components/Edit.vue diff --git a/bbs-go-active/admin/src/views/pages/forbidden-word/index.vue b/archive/bbs-go-active/admin/src/views/pages/forbidden-word/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/forbidden-word/index.vue rename to archive/bbs-go-active/admin/src/views/pages/forbidden-word/index.vue diff --git a/bbs-go-active/admin/src/views/pages/link/components/Edit.vue b/archive/bbs-go-active/admin/src/views/pages/link/components/Edit.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/link/components/Edit.vue rename to archive/bbs-go-active/admin/src/views/pages/link/components/Edit.vue diff --git a/bbs-go-active/admin/src/views/pages/link/index.vue b/archive/bbs-go-active/admin/src/views/pages/link/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/link/index.vue rename to archive/bbs-go-active/admin/src/views/pages/link/index.vue diff --git a/bbs-go-active/admin/src/views/pages/settings/components/CommonSettings.vue b/archive/bbs-go-active/admin/src/views/pages/settings/components/CommonSettings.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/settings/components/CommonSettings.vue rename to archive/bbs-go-active/admin/src/views/pages/settings/components/CommonSettings.vue diff --git a/bbs-go-active/admin/src/views/pages/settings/components/NavSettings.vue b/archive/bbs-go-active/admin/src/views/pages/settings/components/NavSettings.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/settings/components/NavSettings.vue rename to archive/bbs-go-active/admin/src/views/pages/settings/components/NavSettings.vue diff --git a/bbs-go-active/admin/src/views/pages/settings/components/ScoreSettings.vue b/archive/bbs-go-active/admin/src/views/pages/settings/components/ScoreSettings.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/settings/components/ScoreSettings.vue rename to archive/bbs-go-active/admin/src/views/pages/settings/components/ScoreSettings.vue diff --git a/bbs-go-active/admin/src/views/pages/settings/components/SpamSettings.vue b/archive/bbs-go-active/admin/src/views/pages/settings/components/SpamSettings.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/settings/components/SpamSettings.vue rename to archive/bbs-go-active/admin/src/views/pages/settings/components/SpamSettings.vue diff --git a/bbs-go-active/admin/src/views/pages/settings/index.vue b/archive/bbs-go-active/admin/src/views/pages/settings/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/settings/index.vue rename to archive/bbs-go-active/admin/src/views/pages/settings/index.vue diff --git a/bbs-go-active/admin/src/views/pages/system/api/components/Edit.vue b/archive/bbs-go-active/admin/src/views/pages/system/api/components/Edit.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/system/api/components/Edit.vue rename to archive/bbs-go-active/admin/src/views/pages/system/api/components/Edit.vue diff --git a/bbs-go-active/admin/src/views/pages/system/api/index.vue b/archive/bbs-go-active/admin/src/views/pages/system/api/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/system/api/index.vue rename to archive/bbs-go-active/admin/src/views/pages/system/api/index.vue diff --git a/bbs-go-active/admin/src/views/pages/system/dict/components/Dict.vue b/archive/bbs-go-active/admin/src/views/pages/system/dict/components/Dict.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/system/dict/components/Dict.vue rename to archive/bbs-go-active/admin/src/views/pages/system/dict/components/Dict.vue diff --git a/bbs-go-active/admin/src/views/pages/system/dict/components/DictEdit.vue b/archive/bbs-go-active/admin/src/views/pages/system/dict/components/DictEdit.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/system/dict/components/DictEdit.vue rename to archive/bbs-go-active/admin/src/views/pages/system/dict/components/DictEdit.vue diff --git a/bbs-go-active/admin/src/views/pages/system/dict/components/DictType.vue b/archive/bbs-go-active/admin/src/views/pages/system/dict/components/DictType.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/system/dict/components/DictType.vue rename to archive/bbs-go-active/admin/src/views/pages/system/dict/components/DictType.vue diff --git a/bbs-go-active/admin/src/views/pages/system/dict/components/DictTypeEdit.vue b/archive/bbs-go-active/admin/src/views/pages/system/dict/components/DictTypeEdit.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/system/dict/components/DictTypeEdit.vue rename to archive/bbs-go-active/admin/src/views/pages/system/dict/components/DictTypeEdit.vue diff --git a/bbs-go-active/admin/src/views/pages/system/dict/index.vue b/archive/bbs-go-active/admin/src/views/pages/system/dict/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/system/dict/index.vue rename to archive/bbs-go-active/admin/src/views/pages/system/dict/index.vue diff --git a/bbs-go-active/admin/src/views/pages/system/menu/components/Edit.vue b/archive/bbs-go-active/admin/src/views/pages/system/menu/components/Edit.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/system/menu/components/Edit.vue rename to archive/bbs-go-active/admin/src/views/pages/system/menu/components/Edit.vue diff --git a/bbs-go-active/admin/src/views/pages/system/menu/components/IconPicker.vue b/archive/bbs-go-active/admin/src/views/pages/system/menu/components/IconPicker.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/system/menu/components/IconPicker.vue rename to archive/bbs-go-active/admin/src/views/pages/system/menu/components/IconPicker.vue diff --git a/bbs-go-active/admin/src/views/pages/system/menu/index.vue b/archive/bbs-go-active/admin/src/views/pages/system/menu/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/system/menu/index.vue rename to archive/bbs-go-active/admin/src/views/pages/system/menu/index.vue diff --git a/bbs-go-active/admin/src/views/pages/system/permission/index.vue b/archive/bbs-go-active/admin/src/views/pages/system/permission/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/system/permission/index.vue rename to archive/bbs-go-active/admin/src/views/pages/system/permission/index.vue diff --git a/bbs-go-active/admin/src/views/pages/system/role/components/Edit.vue b/archive/bbs-go-active/admin/src/views/pages/system/role/components/Edit.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/system/role/components/Edit.vue rename to archive/bbs-go-active/admin/src/views/pages/system/role/components/Edit.vue diff --git a/bbs-go-active/admin/src/views/pages/system/role/index.vue b/archive/bbs-go-active/admin/src/views/pages/system/role/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/system/role/index.vue rename to archive/bbs-go-active/admin/src/views/pages/system/role/index.vue diff --git a/bbs-go-active/admin/src/views/pages/topic-node/components/Edit.vue b/archive/bbs-go-active/admin/src/views/pages/topic-node/components/Edit.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/topic-node/components/Edit.vue rename to archive/bbs-go-active/admin/src/views/pages/topic-node/components/Edit.vue diff --git a/bbs-go-active/admin/src/views/pages/topic-node/index.vue b/archive/bbs-go-active/admin/src/views/pages/topic-node/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/topic-node/index.vue rename to archive/bbs-go-active/admin/src/views/pages/topic-node/index.vue diff --git a/bbs-go-active/admin/src/views/pages/topic/components/TopicList.vue b/archive/bbs-go-active/admin/src/views/pages/topic/components/TopicList.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/topic/components/TopicList.vue rename to archive/bbs-go-active/admin/src/views/pages/topic/components/TopicList.vue diff --git a/bbs-go-active/admin/src/views/pages/topic/index.vue b/archive/bbs-go-active/admin/src/views/pages/topic/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/topic/index.vue rename to archive/bbs-go-active/admin/src/views/pages/topic/index.vue diff --git a/bbs-go-active/admin/src/views/pages/user/components/Edit.vue b/archive/bbs-go-active/admin/src/views/pages/user/components/Edit.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/user/components/Edit.vue rename to archive/bbs-go-active/admin/src/views/pages/user/components/Edit.vue diff --git a/bbs-go-active/admin/src/views/pages/user/index.vue b/archive/bbs-go-active/admin/src/views/pages/user/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/pages/user/index.vue rename to archive/bbs-go-active/admin/src/views/pages/user/index.vue diff --git a/bbs-go-active/admin/src/views/redirect/index.vue b/archive/bbs-go-active/admin/src/views/redirect/index.vue similarity index 100% rename from bbs-go-active/admin/src/views/redirect/index.vue rename to archive/bbs-go-active/admin/src/views/redirect/index.vue diff --git a/bbs-go-active/admin/tsconfig.json b/archive/bbs-go-active/admin/tsconfig.json similarity index 100% rename from bbs-go-active/admin/tsconfig.json rename to archive/bbs-go-active/admin/tsconfig.json diff --git a/bbs-go-active/bbs-go.code-workspace b/archive/bbs-go-active/bbs-go.code-workspace similarity index 100% rename from bbs-go-active/bbs-go.code-workspace rename to archive/bbs-go-active/bbs-go.code-workspace diff --git a/bbs-go-active/docker-compose.yml b/archive/bbs-go-active/docker-compose.yml similarity index 100% rename from bbs-go-active/docker-compose.yml rename to archive/bbs-go-active/docker-compose.yml diff --git a/bbs-go-active/docs/images/features.jpg b/archive/bbs-go-active/docs/images/features.jpg similarity index 100% rename from bbs-go-active/docs/images/features.jpg rename to archive/bbs-go-active/docs/images/features.jpg diff --git a/bbs-go-active/docs/images/qq.png b/archive/bbs-go-active/docs/images/qq.png similarity index 100% rename from bbs-go-active/docs/images/qq.png rename to archive/bbs-go-active/docs/images/qq.png diff --git a/bbs-go-active/docs/images/qq_big.png b/archive/bbs-go-active/docs/images/qq_big.png similarity index 100% rename from bbs-go-active/docs/images/qq_big.png rename to archive/bbs-go-active/docs/images/qq_big.png diff --git a/bbs-go-active/docs/images/wechat.png b/archive/bbs-go-active/docs/images/wechat.png similarity index 100% rename from bbs-go-active/docs/images/wechat.png rename to archive/bbs-go-active/docs/images/wechat.png diff --git a/bbs-go-active/docs/images/wechat_big.png b/archive/bbs-go-active/docs/images/wechat_big.png similarity index 100% rename from bbs-go-active/docs/images/wechat_big.png rename to archive/bbs-go-active/docs/images/wechat_big.png diff --git a/bbs-go-active/server/.gitignore b/archive/bbs-go-active/server/.gitignore similarity index 91% rename from bbs-go-active/server/.gitignore rename to archive/bbs-go-active/server/.gitignore index 1bc9e25..d2a3544 100644 --- a/bbs-go-active/server/.gitignore +++ b/archive/bbs-go-active/server/.gitignore @@ -1,41 +1,41 @@ -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib -.DS_Store - -# Test binary, build with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -bbs-go - -bbs-go.yaml -bbs-go.prod.yaml -bbs-go.dev.yaml -bbs-go.test.yaml - -.idea/* -build/* - -cscope.files -tags - -logs/*.log -web/* -tmp/* -admin/* - -internal/web* - -cmd/generator/* -go.work -go.work.sum - -ip2region.xdb - -__debug_bin* +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib +.DS_Store + +# Test binary, build with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +bbs-go + +bbs-go.yaml +bbs-go.prod.yaml +bbs-go.dev.yaml +bbs-go.test.yaml + +.idea/* +build/* + +cscope.files +tags + +logs/*.log +web/* +tmp/* +admin/* + +internal/web* + +cmd/generator/* +go.work +go.work.sum + +ip2region.xdb + +__debug_bin* diff --git a/bbs-go-active/server/LICENSE b/archive/bbs-go-active/server/LICENSE similarity index 98% rename from bbs-go-active/server/LICENSE rename to archive/bbs-go-active/server/LICENSE index 3877ae0..f288702 100644 --- a/bbs-go-active/server/LICENSE +++ b/archive/bbs-go-active/server/LICENSE @@ -1,674 +1,674 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/bbs-go-active/server/Makefile b/archive/bbs-go-active/server/Makefile similarity index 100% rename from bbs-go-active/server/Makefile rename to archive/bbs-go-active/server/Makefile diff --git a/bbs-go-active/server/README.md b/archive/bbs-go-active/server/README.md similarity index 97% rename from bbs-go-active/server/README.md rename to archive/bbs-go-active/server/README.md index 59d46bf..93cf58c 100644 --- a/bbs-go-active/server/README.md +++ b/archive/bbs-go-active/server/README.md @@ -1,2 +1,2 @@ -## 介绍 -该项目使用Golang进行构建,具体参见:https://mlog.club +## 介绍 +该项目使用Golang进行构建,具体参见:https://mlog.club diff --git a/bbs-go-active/server/bbs-go.docker.yaml b/archive/bbs-go-active/server/bbs-go.docker.yaml similarity index 100% rename from bbs-go-active/server/bbs-go.docker.yaml rename to archive/bbs-go-active/server/bbs-go.docker.yaml diff --git a/bbs-go-active/server/bbs-go.example.yaml b/archive/bbs-go-active/server/bbs-go.example.yaml similarity index 97% rename from bbs-go-active/server/bbs-go.example.yaml rename to archive/bbs-go-active/server/bbs-go.example.yaml index cd537f6..d339583 100644 --- a/bbs-go-active/server/bbs-go.example.yaml +++ b/archive/bbs-go-active/server/bbs-go.example.yaml @@ -1,65 +1,65 @@ -Port: 8082 # 端口 -BaseUrl: https://mlog.club # 网站域名 -IpDataPath: # IP数据文件,默认读取当前目录下ip2region.xdb文件,最新数据文件请从这里下载:https://github.com/lionsoul2014/ip2region/tree/master/data -AllowedOrigins: - - "*" - -# 日志配置 -Logger: - Filename: /data/logs/bbs-go.log # 日志文件的位置 - MaxSize: 100 # 文件最大尺寸(以MB为单位) - MaxAge: 10 # 保留旧文件的最大天数 - MaxBackups: 10 # 保留的最大旧文件数量 - - -# 数据库连接 -DB: - Url: username:password@tcp(localhost:3306)/bbsgo_db?charset=utf8mb4&parseTime=True&multiStatements=true&loc=Local - MaxIdleConns: 50 - MaxOpenConns: 200 - -# 上传配置 -Uploader: - # 启用上传方式 - Enable: Oss - # 阿里云oss配置 - AliyunOss: - Host: # 阿里云OSS资源外网访问地址 - Bucket: # 阿里云OSS bucket名称 - Endpoint: # 阿里云OSS Endpoint - AccessId: # 阿里云OSS accessID - AccessSecret: # 阿里云OSS accessKey - StyleSplitter: # 阿里云oss图片样式分隔符 - StyleAvatar: # 头像图片样式名称 - StylePreview: # 预览图片样式名称 - StyleSmall: # 小图样式名称 - StyleDetail: # 详情图片样式名称 - # 本地文件上传 - Local: - Host: https://st.mlog.club/ # 上传文件域名 - Path: /data/www/st.mlog.club # 上传目录 - -# 邮件服务器配置,用于邮件通知 -Smtp: - Host: # smtp服务地址,请设置成你自己的,例如:smtp.qq.com - Port: # smtp服务端口,请设置成你自己额,例如:25 - Username: # 请配置成你自己的 - Password: # 请配置成你自己的 - SSL: true - -# 百度SEO相关配置 -# 文档:https://ziyuan.baidu.com/college/courseinfo?id=267&page=2#h2_article_title14 -BaiduSEO: - Site: - Token: - -# 神马搜索SEO相关 -# 文档:https://zhanzhang.sm.cn/open/mip -SmSEO: - Site: - UserName: - Token: - -# search -Search: +Port: 8082 # 端口 +BaseUrl: https://mlog.club # 网站域名 +IpDataPath: # IP数据文件,默认读取当前目录下ip2region.xdb文件,最新数据文件请从这里下载:https://github.com/lionsoul2014/ip2region/tree/master/data +AllowedOrigins: + - "*" + +# 日志配置 +Logger: + Filename: /data/logs/bbs-go.log # 日志文件的位置 + MaxSize: 100 # 文件最大尺寸(以MB为单位) + MaxAge: 10 # 保留旧文件的最大天数 + MaxBackups: 10 # 保留的最大旧文件数量 + + +# 数据库连接 +DB: + Url: username:password@tcp(localhost:3306)/bbsgo_db?charset=utf8mb4&parseTime=True&multiStatements=true&loc=Local + MaxIdleConns: 50 + MaxOpenConns: 200 + +# 上传配置 +Uploader: + # 启用上传方式 + Enable: Oss + # 阿里云oss配置 + AliyunOss: + Host: # 阿里云OSS资源外网访问地址 + Bucket: # 阿里云OSS bucket名称 + Endpoint: # 阿里云OSS Endpoint + AccessId: # 阿里云OSS accessID + AccessSecret: # 阿里云OSS accessKey + StyleSplitter: # 阿里云oss图片样式分隔符 + StyleAvatar: # 头像图片样式名称 + StylePreview: # 预览图片样式名称 + StyleSmall: # 小图样式名称 + StyleDetail: # 详情图片样式名称 + # 本地文件上传 + Local: + Host: https://st.mlog.club/ # 上传文件域名 + Path: /data/www/st.mlog.club # 上传目录 + +# 邮件服务器配置,用于邮件通知 +Smtp: + Host: # smtp服务地址,请设置成你自己的,例如:smtp.qq.com + Port: # smtp服务端口,请设置成你自己额,例如:25 + Username: # 请配置成你自己的 + Password: # 请配置成你自己的 + SSL: true + +# 百度SEO相关配置 +# 文档:https://ziyuan.baidu.com/college/courseinfo?id=267&page=2#h2_article_title14 +BaiduSEO: + Site: + Token: + +# 神马搜索SEO相关 +# 文档:https://zhanzhang.sm.cn/open/mip +SmSEO: + Site: + UserName: + Token: + +# search +Search: IndexPath: # 索引路径 \ No newline at end of file diff --git a/bbs-go-active/server/cmd/test/main.go b/archive/bbs-go-active/server/cmd/test/main.go similarity index 100% rename from bbs-go-active/server/cmd/test/main.go rename to archive/bbs-go-active/server/cmd/test/main.go diff --git a/bbs-go-active/server/go.mod b/archive/bbs-go-active/server/go.mod similarity index 100% rename from bbs-go-active/server/go.mod rename to archive/bbs-go-active/server/go.mod diff --git a/bbs-go-active/server/go.sum b/archive/bbs-go-active/server/go.sum similarity index 100% rename from bbs-go-active/server/go.sum rename to archive/bbs-go-active/server/go.sum diff --git a/bbs-go-active/server/internal/cache/article_tag_cache.go b/archive/bbs-go-active/server/internal/cache/article_tag_cache.go similarity index 100% rename from bbs-go-active/server/internal/cache/article_tag_cache.go rename to archive/bbs-go-active/server/internal/cache/article_tag_cache.go diff --git a/bbs-go-active/server/internal/cache/forbidden_word_cache.go b/archive/bbs-go-active/server/internal/cache/forbidden_word_cache.go similarity index 100% rename from bbs-go-active/server/internal/cache/forbidden_word_cache.go rename to archive/bbs-go-active/server/internal/cache/forbidden_word_cache.go diff --git a/bbs-go-active/server/internal/cache/sys_config_cache.go b/archive/bbs-go-active/server/internal/cache/sys_config_cache.go similarity index 100% rename from bbs-go-active/server/internal/cache/sys_config_cache.go rename to archive/bbs-go-active/server/internal/cache/sys_config_cache.go diff --git a/bbs-go-active/server/internal/cache/tag_cache.go b/archive/bbs-go-active/server/internal/cache/tag_cache.go similarity index 100% rename from bbs-go-active/server/internal/cache/tag_cache.go rename to archive/bbs-go-active/server/internal/cache/tag_cache.go diff --git a/bbs-go-active/server/internal/cache/topic_cache.go b/archive/bbs-go-active/server/internal/cache/topic_cache.go similarity index 100% rename from bbs-go-active/server/internal/cache/topic_cache.go rename to archive/bbs-go-active/server/internal/cache/topic_cache.go diff --git a/bbs-go-active/server/internal/cache/user_cache.go b/archive/bbs-go-active/server/internal/cache/user_cache.go similarity index 100% rename from bbs-go-active/server/internal/cache/user_cache.go rename to archive/bbs-go-active/server/internal/cache/user_cache.go diff --git a/bbs-go-active/server/internal/cache/user_token_cache.go b/archive/bbs-go-active/server/internal/cache/user_token_cache.go similarity index 100% rename from bbs-go-active/server/internal/cache/user_token_cache.go rename to archive/bbs-go-active/server/internal/cache/user_token_cache.go diff --git a/bbs-go-active/server/internal/cache/utils.go b/archive/bbs-go-active/server/internal/cache/utils.go similarity index 100% rename from bbs-go-active/server/internal/cache/utils.go rename to archive/bbs-go-active/server/internal/cache/utils.go diff --git a/bbs-go-active/server/internal/controllers/admin/api_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/api_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/api_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/api_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/article_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/article_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/article_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/article_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/article_tag_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/article_tag_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/article_tag_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/article_tag_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/check_in_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/check_in_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/check_in_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/check_in_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/comment_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/comment_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/comment_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/comment_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/common_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/common_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/common_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/common_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/dict_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/dict_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/dict_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/dict_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/dict_type_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/dict_type_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/dict_type_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/dict_type_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/email_code_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/email_code_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/email_code_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/email_code_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/favorite_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/favorite_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/favorite_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/favorite_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/forbidden_word_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/forbidden_word_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/forbidden_word_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/forbidden_word_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/link_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/link_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/link_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/link_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/menu_api_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/menu_api_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/menu_api_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/menu_api_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/menu_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/menu_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/menu_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/menu_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/message_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/message_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/message_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/message_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/operate_log_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/operate_log_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/operate_log_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/operate_log_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/role_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/role_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/role_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/role_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/sys_config_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/sys_config_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/sys_config_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/sys_config_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/tag_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/tag_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/tag_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/tag_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/topic_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/topic_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/topic_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/topic_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/topic_node_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/topic_node_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/topic_node_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/topic_node_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/topic_tag_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/topic_tag_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/topic_tag_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/topic_tag_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/user_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/user_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/user_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/user_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/user_feed_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/user_feed_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/user_feed_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/user_feed_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/user_follow_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/user_follow_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/user_follow_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/user_follow_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/user_report_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/user_report_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/user_report_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/user_report_controller.go diff --git a/bbs-go-active/server/internal/controllers/admin/user_score_log_controller.go b/archive/bbs-go-active/server/internal/controllers/admin/user_score_log_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/admin/user_score_log_controller.go rename to archive/bbs-go-active/server/internal/controllers/admin/user_score_log_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/article_controller.go b/archive/bbs-go-active/server/internal/controllers/api/article_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/article_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/article_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/captcha_controller.go b/archive/bbs-go-active/server/internal/controllers/api/captcha_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/captcha_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/captcha_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/checkin_controller.go b/archive/bbs-go-active/server/internal/controllers/api/checkin_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/checkin_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/checkin_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/comment_controller.go b/archive/bbs-go-active/server/internal/controllers/api/comment_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/comment_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/comment_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/config_controller.go b/archive/bbs-go-active/server/internal/controllers/api/config_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/config_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/config_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/fans_controller.go b/archive/bbs-go-active/server/internal/controllers/api/fans_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/fans_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/fans_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/favorite_controller.go b/archive/bbs-go-active/server/internal/controllers/api/favorite_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/favorite_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/favorite_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/like_controller.go b/archive/bbs-go-active/server/internal/controllers/api/like_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/like_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/like_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/link_controller.go b/archive/bbs-go-active/server/internal/controllers/api/link_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/link_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/link_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/login_controller.go b/archive/bbs-go-active/server/internal/controllers/api/login_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/login_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/login_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/search_controller.go b/archive/bbs-go-active/server/internal/controllers/api/search_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/search_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/search_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/tag_controller.go b/archive/bbs-go-active/server/internal/controllers/api/tag_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/tag_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/tag_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/topic_controller.go b/archive/bbs-go-active/server/internal/controllers/api/topic_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/topic_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/topic_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/upload_controller.go b/archive/bbs-go-active/server/internal/controllers/api/upload_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/upload_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/upload_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/user_controller.go b/archive/bbs-go-active/server/internal/controllers/api/user_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/user_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/user_controller.go diff --git a/bbs-go-active/server/internal/controllers/api/user_report_controller.go b/archive/bbs-go-active/server/internal/controllers/api/user_report_controller.go similarity index 100% rename from bbs-go-active/server/internal/controllers/api/user_report_controller.go rename to archive/bbs-go-active/server/internal/controllers/api/user_report_controller.go diff --git a/bbs-go-active/server/internal/controllers/render/article_render.go b/archive/bbs-go-active/server/internal/controllers/render/article_render.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/article_render.go rename to archive/bbs-go-active/server/internal/controllers/render/article_render.go diff --git a/bbs-go-active/server/internal/controllers/render/base.go b/archive/bbs-go-active/server/internal/controllers/render/base.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/base.go rename to archive/bbs-go-active/server/internal/controllers/render/base.go diff --git a/bbs-go-active/server/internal/controllers/render/comment_render.go b/archive/bbs-go-active/server/internal/controllers/render/comment_render.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/comment_render.go rename to archive/bbs-go-active/server/internal/controllers/render/comment_render.go diff --git a/bbs-go-active/server/internal/controllers/render/dict_render.go b/archive/bbs-go-active/server/internal/controllers/render/dict_render.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/dict_render.go rename to archive/bbs-go-active/server/internal/controllers/render/dict_render.go diff --git a/bbs-go-active/server/internal/controllers/render/favorite_render.go b/archive/bbs-go-active/server/internal/controllers/render/favorite_render.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/favorite_render.go rename to archive/bbs-go-active/server/internal/controllers/render/favorite_render.go diff --git a/bbs-go-active/server/internal/controllers/render/menu_render.go b/archive/bbs-go-active/server/internal/controllers/render/menu_render.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/menu_render.go rename to archive/bbs-go-active/server/internal/controllers/render/menu_render.go diff --git a/bbs-go-active/server/internal/controllers/render/message_render.go b/archive/bbs-go-active/server/internal/controllers/render/message_render.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/message_render.go rename to archive/bbs-go-active/server/internal/controllers/render/message_render.go diff --git a/bbs-go-active/server/internal/controllers/render/misc_render.go b/archive/bbs-go-active/server/internal/controllers/render/misc_render.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/misc_render.go rename to archive/bbs-go-active/server/internal/controllers/render/misc_render.go diff --git a/bbs-go-active/server/internal/controllers/render/node_render.go b/archive/bbs-go-active/server/internal/controllers/render/node_render.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/node_render.go rename to archive/bbs-go-active/server/internal/controllers/render/node_render.go diff --git a/bbs-go-active/server/internal/controllers/render/oss_image_style.go b/archive/bbs-go-active/server/internal/controllers/render/oss_image_style.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/oss_image_style.go rename to archive/bbs-go-active/server/internal/controllers/render/oss_image_style.go diff --git a/bbs-go-active/server/internal/controllers/render/tag_render.go b/archive/bbs-go-active/server/internal/controllers/render/tag_render.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/tag_render.go rename to archive/bbs-go-active/server/internal/controllers/render/tag_render.go diff --git a/bbs-go-active/server/internal/controllers/render/topic_render.go b/archive/bbs-go-active/server/internal/controllers/render/topic_render.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/topic_render.go rename to archive/bbs-go-active/server/internal/controllers/render/topic_render.go diff --git a/bbs-go-active/server/internal/controllers/render/topic_search_render.go b/archive/bbs-go-active/server/internal/controllers/render/topic_search_render.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/topic_search_render.go rename to archive/bbs-go-active/server/internal/controllers/render/topic_search_render.go diff --git a/bbs-go-active/server/internal/controllers/render/user_render.go b/archive/bbs-go-active/server/internal/controllers/render/user_render.go similarity index 100% rename from bbs-go-active/server/internal/controllers/render/user_render.go rename to archive/bbs-go-active/server/internal/controllers/render/user_render.go diff --git a/bbs-go-active/server/internal/middleware/api_auth_middleware.go b/archive/bbs-go-active/server/internal/middleware/api_auth_middleware.go similarity index 100% rename from bbs-go-active/server/internal/middleware/api_auth_middleware.go rename to archive/bbs-go-active/server/internal/middleware/api_auth_middleware.go diff --git a/bbs-go-active/server/internal/models/constants/constants.go b/archive/bbs-go-active/server/internal/models/constants/constants.go similarity index 100% rename from bbs-go-active/server/internal/models/constants/constants.go rename to archive/bbs-go-active/server/internal/models/constants/constants.go diff --git a/bbs-go-active/server/internal/models/data.go b/archive/bbs-go-active/server/internal/models/data.go similarity index 100% rename from bbs-go-active/server/internal/models/data.go rename to archive/bbs-go-active/server/internal/models/data.go diff --git a/bbs-go-active/server/internal/models/dto/dto.go b/archive/bbs-go-active/server/internal/models/dto/dto.go similarity index 100% rename from bbs-go-active/server/internal/models/dto/dto.go rename to archive/bbs-go-active/server/internal/models/dto/dto.go diff --git a/bbs-go-active/server/internal/models/form.go b/archive/bbs-go-active/server/internal/models/form.go similarity index 100% rename from bbs-go-active/server/internal/models/form.go rename to archive/bbs-go-active/server/internal/models/form.go diff --git a/bbs-go-active/server/internal/models/model_methods.go b/archive/bbs-go-active/server/internal/models/model_methods.go similarity index 100% rename from bbs-go-active/server/internal/models/model_methods.go rename to archive/bbs-go-active/server/internal/models/model_methods.go diff --git a/bbs-go-active/server/internal/models/models.go b/archive/bbs-go-active/server/internal/models/models.go similarity index 100% rename from bbs-go-active/server/internal/models/models.go rename to archive/bbs-go-active/server/internal/models/models.go diff --git a/bbs-go-active/server/internal/models/models_system.go b/archive/bbs-go-active/server/internal/models/models_system.go similarity index 100% rename from bbs-go-active/server/internal/models/models_system.go rename to archive/bbs-go-active/server/internal/models/models_system.go diff --git a/bbs-go-active/server/internal/models/response.go b/archive/bbs-go-active/server/internal/models/response.go similarity index 100% rename from bbs-go-active/server/internal/models/response.go rename to archive/bbs-go-active/server/internal/models/response.go diff --git a/bbs-go-active/server/internal/pkg/bbsurls/urls.go b/archive/bbs-go-active/server/internal/pkg/bbsurls/urls.go similarity index 100% rename from bbs-go-active/server/internal/pkg/bbsurls/urls.go rename to archive/bbs-go-active/server/internal/pkg/bbsurls/urls.go diff --git a/bbs-go-active/server/internal/pkg/common/utils.go b/archive/bbs-go-active/server/internal/pkg/common/utils.go similarity index 100% rename from bbs-go-active/server/internal/pkg/common/utils.go rename to archive/bbs-go-active/server/internal/pkg/common/utils.go diff --git a/bbs-go-active/server/internal/pkg/config/config.go b/archive/bbs-go-active/server/internal/pkg/config/config.go similarity index 100% rename from bbs-go-active/server/internal/pkg/config/config.go rename to archive/bbs-go-active/server/internal/pkg/config/config.go diff --git a/bbs-go-active/server/internal/pkg/email/email.go b/archive/bbs-go-active/server/internal/pkg/email/email.go similarity index 100% rename from bbs-go-active/server/internal/pkg/email/email.go rename to archive/bbs-go-active/server/internal/pkg/email/email.go diff --git a/bbs-go-active/server/internal/pkg/errs/code_errors.go b/archive/bbs-go-active/server/internal/pkg/errs/code_errors.go similarity index 100% rename from bbs-go-active/server/internal/pkg/errs/code_errors.go rename to archive/bbs-go-active/server/internal/pkg/errs/code_errors.go diff --git a/bbs-go-active/server/internal/pkg/event/ants_test.go b/archive/bbs-go-active/server/internal/pkg/event/ants_test.go similarity index 100% rename from bbs-go-active/server/internal/pkg/event/ants_test.go rename to archive/bbs-go-active/server/internal/pkg/event/ants_test.go diff --git a/bbs-go-active/server/internal/pkg/event/data.go b/archive/bbs-go-active/server/internal/pkg/event/data.go similarity index 100% rename from bbs-go-active/server/internal/pkg/event/data.go rename to archive/bbs-go-active/server/internal/pkg/event/data.go diff --git a/bbs-go-active/server/internal/pkg/event/event.go b/archive/bbs-go-active/server/internal/pkg/event/event.go similarity index 100% rename from bbs-go-active/server/internal/pkg/event/event.go rename to archive/bbs-go-active/server/internal/pkg/event/event.go diff --git a/bbs-go-active/server/internal/pkg/event/event_test.go b/archive/bbs-go-active/server/internal/pkg/event/event_test.go similarity index 100% rename from bbs-go-active/server/internal/pkg/event/event_test.go rename to archive/bbs-go-active/server/internal/pkg/event/event_test.go diff --git a/bbs-go-active/server/internal/pkg/gormlogs/gorm.go b/archive/bbs-go-active/server/internal/pkg/gormlogs/gorm.go similarity index 100% rename from bbs-go-active/server/internal/pkg/gormlogs/gorm.go rename to archive/bbs-go-active/server/internal/pkg/gormlogs/gorm.go diff --git a/bbs-go-active/server/internal/pkg/gormlogs/gorm_options.go b/archive/bbs-go-active/server/internal/pkg/gormlogs/gorm_options.go similarity index 100% rename from bbs-go-active/server/internal/pkg/gormlogs/gorm_options.go rename to archive/bbs-go-active/server/internal/pkg/gormlogs/gorm_options.go diff --git a/bbs-go-active/server/internal/pkg/html/html.go b/archive/bbs-go-active/server/internal/pkg/html/html.go similarity index 100% rename from bbs-go-active/server/internal/pkg/html/html.go rename to archive/bbs-go-active/server/internal/pkg/html/html.go diff --git a/bbs-go-active/server/internal/pkg/iplocator/iplocator.go b/archive/bbs-go-active/server/internal/pkg/iplocator/iplocator.go similarity index 100% rename from bbs-go-active/server/internal/pkg/iplocator/iplocator.go rename to archive/bbs-go-active/server/internal/pkg/iplocator/iplocator.go diff --git a/bbs-go-active/server/internal/pkg/iplocator/iplocator_test.go b/archive/bbs-go-active/server/internal/pkg/iplocator/iplocator_test.go similarity index 100% rename from bbs-go-active/server/internal/pkg/iplocator/iplocator_test.go rename to archive/bbs-go-active/server/internal/pkg/iplocator/iplocator_test.go diff --git a/bbs-go-active/server/internal/pkg/markdown/utils.go b/archive/bbs-go-active/server/internal/pkg/markdown/utils.go similarity index 100% rename from bbs-go-active/server/internal/pkg/markdown/utils.go rename to archive/bbs-go-active/server/internal/pkg/markdown/utils.go diff --git a/bbs-go-active/server/internal/pkg/msg/data.go b/archive/bbs-go-active/server/internal/pkg/msg/data.go similarity index 100% rename from bbs-go-active/server/internal/pkg/msg/data.go rename to archive/bbs-go-active/server/internal/pkg/msg/data.go diff --git a/bbs-go-active/server/internal/pkg/search/common.go b/archive/bbs-go-active/server/internal/pkg/search/common.go similarity index 100% rename from bbs-go-active/server/internal/pkg/search/common.go rename to archive/bbs-go-active/server/internal/pkg/search/common.go diff --git a/bbs-go-active/server/internal/pkg/search/search.go b/archive/bbs-go-active/server/internal/pkg/search/search.go similarity index 100% rename from bbs-go-active/server/internal/pkg/search/search.go rename to archive/bbs-go-active/server/internal/pkg/search/search.go diff --git a/bbs-go-active/server/internal/pkg/search/search_test.go b/archive/bbs-go-active/server/internal/pkg/search/search_test.go similarity index 100% rename from bbs-go-active/server/internal/pkg/search/search_test.go rename to archive/bbs-go-active/server/internal/pkg/search/search_test.go diff --git a/bbs-go-active/server/internal/pkg/seo/push.go b/archive/bbs-go-active/server/internal/pkg/seo/push.go similarity index 100% rename from bbs-go-active/server/internal/pkg/seo/push.go rename to archive/bbs-go-active/server/internal/pkg/seo/push.go diff --git a/bbs-go-active/server/internal/pkg/sitemap/sitemap.go b/archive/bbs-go-active/server/internal/pkg/sitemap/sitemap.go similarity index 100% rename from bbs-go-active/server/internal/pkg/sitemap/sitemap.go rename to archive/bbs-go-active/server/internal/pkg/sitemap/sitemap.go diff --git a/bbs-go-active/server/internal/pkg/text/text.go b/archive/bbs-go-active/server/internal/pkg/text/text.go similarity index 100% rename from bbs-go-active/server/internal/pkg/text/text.go rename to archive/bbs-go-active/server/internal/pkg/text/text.go diff --git a/bbs-go-active/server/internal/pkg/token/constants.go b/archive/bbs-go-active/server/internal/pkg/token/constants.go similarity index 100% rename from bbs-go-active/server/internal/pkg/token/constants.go rename to archive/bbs-go-active/server/internal/pkg/token/constants.go diff --git a/bbs-go-active/server/internal/pkg/token/user_token.go b/archive/bbs-go-active/server/internal/pkg/token/user_token.go similarity index 100% rename from bbs-go-active/server/internal/pkg/token/user_token.go rename to archive/bbs-go-active/server/internal/pkg/token/user_token.go diff --git a/bbs-go-active/server/internal/pkg/uploader/aliyun_oss_uploader.go b/archive/bbs-go-active/server/internal/pkg/uploader/aliyun_oss_uploader.go similarity index 100% rename from bbs-go-active/server/internal/pkg/uploader/aliyun_oss_uploader.go rename to archive/bbs-go-active/server/internal/pkg/uploader/aliyun_oss_uploader.go diff --git a/bbs-go-active/server/internal/pkg/uploader/local_uploader.go b/archive/bbs-go-active/server/internal/pkg/uploader/local_uploader.go similarity index 100% rename from bbs-go-active/server/internal/pkg/uploader/local_uploader.go rename to archive/bbs-go-active/server/internal/pkg/uploader/local_uploader.go diff --git a/bbs-go-active/server/internal/pkg/uploader/uploader.go b/archive/bbs-go-active/server/internal/pkg/uploader/uploader.go similarity index 100% rename from bbs-go-active/server/internal/pkg/uploader/uploader.go rename to archive/bbs-go-active/server/internal/pkg/uploader/uploader.go diff --git a/bbs-go-active/server/internal/pkg/uploader/utils.go b/archive/bbs-go-active/server/internal/pkg/uploader/utils.go similarity index 100% rename from bbs-go-active/server/internal/pkg/uploader/utils.go rename to archive/bbs-go-active/server/internal/pkg/uploader/utils.go diff --git a/bbs-go-active/server/internal/pkg/urls/ant_matcher.go b/archive/bbs-go-active/server/internal/pkg/urls/ant_matcher.go similarity index 100% rename from bbs-go-active/server/internal/pkg/urls/ant_matcher.go rename to archive/bbs-go-active/server/internal/pkg/urls/ant_matcher.go diff --git a/bbs-go-active/server/internal/pkg/validate/validate.go b/archive/bbs-go-active/server/internal/pkg/validate/validate.go similarity index 100% rename from bbs-go-active/server/internal/pkg/validate/validate.go rename to archive/bbs-go-active/server/internal/pkg/validate/validate.go diff --git a/bbs-go-active/server/internal/repositories/api_repository.go b/archive/bbs-go-active/server/internal/repositories/api_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/api_repository.go rename to archive/bbs-go-active/server/internal/repositories/api_repository.go diff --git a/bbs-go-active/server/internal/repositories/article_repository.go b/archive/bbs-go-active/server/internal/repositories/article_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/article_repository.go rename to archive/bbs-go-active/server/internal/repositories/article_repository.go diff --git a/bbs-go-active/server/internal/repositories/article_tag_repository.go b/archive/bbs-go-active/server/internal/repositories/article_tag_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/article_tag_repository.go rename to archive/bbs-go-active/server/internal/repositories/article_tag_repository.go diff --git a/bbs-go-active/server/internal/repositories/check_in_repository.go b/archive/bbs-go-active/server/internal/repositories/check_in_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/check_in_repository.go rename to archive/bbs-go-active/server/internal/repositories/check_in_repository.go diff --git a/bbs-go-active/server/internal/repositories/comment_repository.go b/archive/bbs-go-active/server/internal/repositories/comment_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/comment_repository.go rename to archive/bbs-go-active/server/internal/repositories/comment_repository.go diff --git a/bbs-go-active/server/internal/repositories/dict_repository.go b/archive/bbs-go-active/server/internal/repositories/dict_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/dict_repository.go rename to archive/bbs-go-active/server/internal/repositories/dict_repository.go diff --git a/bbs-go-active/server/internal/repositories/dict_type_repository.go b/archive/bbs-go-active/server/internal/repositories/dict_type_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/dict_type_repository.go rename to archive/bbs-go-active/server/internal/repositories/dict_type_repository.go diff --git a/bbs-go-active/server/internal/repositories/email_code_repository.go b/archive/bbs-go-active/server/internal/repositories/email_code_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/email_code_repository.go rename to archive/bbs-go-active/server/internal/repositories/email_code_repository.go diff --git a/bbs-go-active/server/internal/repositories/favorite_repository.go b/archive/bbs-go-active/server/internal/repositories/favorite_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/favorite_repository.go rename to archive/bbs-go-active/server/internal/repositories/favorite_repository.go diff --git a/bbs-go-active/server/internal/repositories/forbidden_word_repository.go b/archive/bbs-go-active/server/internal/repositories/forbidden_word_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/forbidden_word_repository.go rename to archive/bbs-go-active/server/internal/repositories/forbidden_word_repository.go diff --git a/bbs-go-active/server/internal/repositories/link_repository.go b/archive/bbs-go-active/server/internal/repositories/link_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/link_repository.go rename to archive/bbs-go-active/server/internal/repositories/link_repository.go diff --git a/bbs-go-active/server/internal/repositories/menu_api_repository.go b/archive/bbs-go-active/server/internal/repositories/menu_api_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/menu_api_repository.go rename to archive/bbs-go-active/server/internal/repositories/menu_api_repository.go diff --git a/bbs-go-active/server/internal/repositories/menu_repository.go b/archive/bbs-go-active/server/internal/repositories/menu_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/menu_repository.go rename to archive/bbs-go-active/server/internal/repositories/menu_repository.go diff --git a/bbs-go-active/server/internal/repositories/message_repository.go b/archive/bbs-go-active/server/internal/repositories/message_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/message_repository.go rename to archive/bbs-go-active/server/internal/repositories/message_repository.go diff --git a/bbs-go-active/server/internal/repositories/operate_log_repository.go b/archive/bbs-go-active/server/internal/repositories/operate_log_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/operate_log_repository.go rename to archive/bbs-go-active/server/internal/repositories/operate_log_repository.go diff --git a/bbs-go-active/server/internal/repositories/role_menu_repository.go b/archive/bbs-go-active/server/internal/repositories/role_menu_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/role_menu_repository.go rename to archive/bbs-go-active/server/internal/repositories/role_menu_repository.go diff --git a/bbs-go-active/server/internal/repositories/role_repository.go b/archive/bbs-go-active/server/internal/repositories/role_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/role_repository.go rename to archive/bbs-go-active/server/internal/repositories/role_repository.go diff --git a/bbs-go-active/server/internal/repositories/sys_config_repository.go b/archive/bbs-go-active/server/internal/repositories/sys_config_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/sys_config_repository.go rename to archive/bbs-go-active/server/internal/repositories/sys_config_repository.go diff --git a/bbs-go-active/server/internal/repositories/tag_repository.go b/archive/bbs-go-active/server/internal/repositories/tag_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/tag_repository.go rename to archive/bbs-go-active/server/internal/repositories/tag_repository.go diff --git a/bbs-go-active/server/internal/repositories/topic_node_repository.go b/archive/bbs-go-active/server/internal/repositories/topic_node_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/topic_node_repository.go rename to archive/bbs-go-active/server/internal/repositories/topic_node_repository.go diff --git a/bbs-go-active/server/internal/repositories/topic_repository.go b/archive/bbs-go-active/server/internal/repositories/topic_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/topic_repository.go rename to archive/bbs-go-active/server/internal/repositories/topic_repository.go diff --git a/bbs-go-active/server/internal/repositories/topic_tag_repository.go b/archive/bbs-go-active/server/internal/repositories/topic_tag_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/topic_tag_repository.go rename to archive/bbs-go-active/server/internal/repositories/topic_tag_repository.go diff --git a/bbs-go-active/server/internal/repositories/user_feed_repository.go b/archive/bbs-go-active/server/internal/repositories/user_feed_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/user_feed_repository.go rename to archive/bbs-go-active/server/internal/repositories/user_feed_repository.go diff --git a/bbs-go-active/server/internal/repositories/user_follow_repository.go b/archive/bbs-go-active/server/internal/repositories/user_follow_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/user_follow_repository.go rename to archive/bbs-go-active/server/internal/repositories/user_follow_repository.go diff --git a/bbs-go-active/server/internal/repositories/user_like_repository.go b/archive/bbs-go-active/server/internal/repositories/user_like_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/user_like_repository.go rename to archive/bbs-go-active/server/internal/repositories/user_like_repository.go diff --git a/bbs-go-active/server/internal/repositories/user_report_repository.go b/archive/bbs-go-active/server/internal/repositories/user_report_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/user_report_repository.go rename to archive/bbs-go-active/server/internal/repositories/user_report_repository.go diff --git a/bbs-go-active/server/internal/repositories/user_repository.go b/archive/bbs-go-active/server/internal/repositories/user_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/user_repository.go rename to archive/bbs-go-active/server/internal/repositories/user_repository.go diff --git a/bbs-go-active/server/internal/repositories/user_role_repository.go b/archive/bbs-go-active/server/internal/repositories/user_role_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/user_role_repository.go rename to archive/bbs-go-active/server/internal/repositories/user_role_repository.go diff --git a/bbs-go-active/server/internal/repositories/user_score_log_repository.go b/archive/bbs-go-active/server/internal/repositories/user_score_log_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/user_score_log_repository.go rename to archive/bbs-go-active/server/internal/repositories/user_score_log_repository.go diff --git a/bbs-go-active/server/internal/repositories/user_token_repository.go b/archive/bbs-go-active/server/internal/repositories/user_token_repository.go similarity index 100% rename from bbs-go-active/server/internal/repositories/user_token_repository.go rename to archive/bbs-go-active/server/internal/repositories/user_token_repository.go diff --git a/bbs-go-active/server/internal/scheduler/cron.go b/archive/bbs-go-active/server/internal/scheduler/cron.go similarity index 100% rename from bbs-go-active/server/internal/scheduler/cron.go rename to archive/bbs-go-active/server/internal/scheduler/cron.go diff --git a/bbs-go-active/server/internal/server/init.go b/archive/bbs-go-active/server/internal/server/init.go similarity index 100% rename from bbs-go-active/server/internal/server/init.go rename to archive/bbs-go-active/server/internal/server/init.go diff --git a/bbs-go-active/server/internal/server/init_logger.go b/archive/bbs-go-active/server/internal/server/init_logger.go similarity index 100% rename from bbs-go-active/server/internal/server/init_logger.go rename to archive/bbs-go-active/server/internal/server/init_logger.go diff --git a/bbs-go-active/server/internal/server/router.go b/archive/bbs-go-active/server/internal/server/router.go similarity index 100% rename from bbs-go-active/server/internal/server/router.go rename to archive/bbs-go-active/server/internal/server/router.go diff --git a/bbs-go-active/server/internal/services/api_service.go b/archive/bbs-go-active/server/internal/services/api_service.go similarity index 100% rename from bbs-go-active/server/internal/services/api_service.go rename to archive/bbs-go-active/server/internal/services/api_service.go diff --git a/bbs-go-active/server/internal/services/article_service.go b/archive/bbs-go-active/server/internal/services/article_service.go similarity index 100% rename from bbs-go-active/server/internal/services/article_service.go rename to archive/bbs-go-active/server/internal/services/article_service.go diff --git a/bbs-go-active/server/internal/services/article_tag_service.go b/archive/bbs-go-active/server/internal/services/article_tag_service.go similarity index 100% rename from bbs-go-active/server/internal/services/article_tag_service.go rename to archive/bbs-go-active/server/internal/services/article_tag_service.go diff --git a/bbs-go-active/server/internal/services/check_in_service.go b/archive/bbs-go-active/server/internal/services/check_in_service.go similarity index 100% rename from bbs-go-active/server/internal/services/check_in_service.go rename to archive/bbs-go-active/server/internal/services/check_in_service.go diff --git a/bbs-go-active/server/internal/services/comment_service.go b/archive/bbs-go-active/server/internal/services/comment_service.go similarity index 100% rename from bbs-go-active/server/internal/services/comment_service.go rename to archive/bbs-go-active/server/internal/services/comment_service.go diff --git a/bbs-go-active/server/internal/services/dict_service.go b/archive/bbs-go-active/server/internal/services/dict_service.go similarity index 100% rename from bbs-go-active/server/internal/services/dict_service.go rename to archive/bbs-go-active/server/internal/services/dict_service.go diff --git a/bbs-go-active/server/internal/services/dict_type_service.go b/archive/bbs-go-active/server/internal/services/dict_type_service.go similarity index 100% rename from bbs-go-active/server/internal/services/dict_type_service.go rename to archive/bbs-go-active/server/internal/services/dict_type_service.go diff --git a/bbs-go-active/server/internal/services/email_code_service.go b/archive/bbs-go-active/server/internal/services/email_code_service.go similarity index 100% rename from bbs-go-active/server/internal/services/email_code_service.go rename to archive/bbs-go-active/server/internal/services/email_code_service.go diff --git a/bbs-go-active/server/internal/services/eventhandler/comment_create_handler.go b/archive/bbs-go-active/server/internal/services/eventhandler/comment_create_handler.go similarity index 100% rename from bbs-go-active/server/internal/services/eventhandler/comment_create_handler.go rename to archive/bbs-go-active/server/internal/services/eventhandler/comment_create_handler.go diff --git a/bbs-go-active/server/internal/services/eventhandler/follow_handler.go b/archive/bbs-go-active/server/internal/services/eventhandler/follow_handler.go similarity index 100% rename from bbs-go-active/server/internal/services/eventhandler/follow_handler.go rename to archive/bbs-go-active/server/internal/services/eventhandler/follow_handler.go diff --git a/bbs-go-active/server/internal/services/eventhandler/topic_create_handler.go b/archive/bbs-go-active/server/internal/services/eventhandler/topic_create_handler.go similarity index 100% rename from bbs-go-active/server/internal/services/eventhandler/topic_create_handler.go rename to archive/bbs-go-active/server/internal/services/eventhandler/topic_create_handler.go diff --git a/bbs-go-active/server/internal/services/eventhandler/topic_delete_handler.go b/archive/bbs-go-active/server/internal/services/eventhandler/topic_delete_handler.go similarity index 100% rename from bbs-go-active/server/internal/services/eventhandler/topic_delete_handler.go rename to archive/bbs-go-active/server/internal/services/eventhandler/topic_delete_handler.go diff --git a/bbs-go-active/server/internal/services/eventhandler/topic_recommend_handler.go b/archive/bbs-go-active/server/internal/services/eventhandler/topic_recommend_handler.go similarity index 100% rename from bbs-go-active/server/internal/services/eventhandler/topic_recommend_handler.go rename to archive/bbs-go-active/server/internal/services/eventhandler/topic_recommend_handler.go diff --git a/bbs-go-active/server/internal/services/eventhandler/unfollow_handler.go b/archive/bbs-go-active/server/internal/services/eventhandler/unfollow_handler.go similarity index 100% rename from bbs-go-active/server/internal/services/eventhandler/unfollow_handler.go rename to archive/bbs-go-active/server/internal/services/eventhandler/unfollow_handler.go diff --git a/bbs-go-active/server/internal/services/eventhandler/user_favorite_handler.go b/archive/bbs-go-active/server/internal/services/eventhandler/user_favorite_handler.go similarity index 100% rename from bbs-go-active/server/internal/services/eventhandler/user_favorite_handler.go rename to archive/bbs-go-active/server/internal/services/eventhandler/user_favorite_handler.go diff --git a/bbs-go-active/server/internal/services/eventhandler/user_like_handler.go b/archive/bbs-go-active/server/internal/services/eventhandler/user_like_handler.go similarity index 100% rename from bbs-go-active/server/internal/services/eventhandler/user_like_handler.go rename to archive/bbs-go-active/server/internal/services/eventhandler/user_like_handler.go diff --git a/bbs-go-active/server/internal/services/favorite_service.go b/archive/bbs-go-active/server/internal/services/favorite_service.go similarity index 100% rename from bbs-go-active/server/internal/services/favorite_service.go rename to archive/bbs-go-active/server/internal/services/favorite_service.go diff --git a/bbs-go-active/server/internal/services/forbidden_word_service.go b/archive/bbs-go-active/server/internal/services/forbidden_word_service.go similarity index 100% rename from bbs-go-active/server/internal/services/forbidden_word_service.go rename to archive/bbs-go-active/server/internal/services/forbidden_word_service.go diff --git a/bbs-go-active/server/internal/services/link_service.go b/archive/bbs-go-active/server/internal/services/link_service.go similarity index 100% rename from bbs-go-active/server/internal/services/link_service.go rename to archive/bbs-go-active/server/internal/services/link_service.go diff --git a/bbs-go-active/server/internal/services/menu_api_service.go b/archive/bbs-go-active/server/internal/services/menu_api_service.go similarity index 100% rename from bbs-go-active/server/internal/services/menu_api_service.go rename to archive/bbs-go-active/server/internal/services/menu_api_service.go diff --git a/bbs-go-active/server/internal/services/menu_service.go b/archive/bbs-go-active/server/internal/services/menu_service.go similarity index 100% rename from bbs-go-active/server/internal/services/menu_service.go rename to archive/bbs-go-active/server/internal/services/menu_service.go diff --git a/bbs-go-active/server/internal/services/message_service.go b/archive/bbs-go-active/server/internal/services/message_service.go similarity index 100% rename from bbs-go-active/server/internal/services/message_service.go rename to archive/bbs-go-active/server/internal/services/message_service.go diff --git a/bbs-go-active/server/internal/services/operate_log_service.go b/archive/bbs-go-active/server/internal/services/operate_log_service.go similarity index 100% rename from bbs-go-active/server/internal/services/operate_log_service.go rename to archive/bbs-go-active/server/internal/services/operate_log_service.go diff --git a/bbs-go-active/server/internal/services/role_menu_service.go b/archive/bbs-go-active/server/internal/services/role_menu_service.go similarity index 100% rename from bbs-go-active/server/internal/services/role_menu_service.go rename to archive/bbs-go-active/server/internal/services/role_menu_service.go diff --git a/bbs-go-active/server/internal/services/role_service.go b/archive/bbs-go-active/server/internal/services/role_service.go similarity index 100% rename from bbs-go-active/server/internal/services/role_service.go rename to archive/bbs-go-active/server/internal/services/role_service.go diff --git a/bbs-go-active/server/internal/services/sys_config_service.go b/archive/bbs-go-active/server/internal/services/sys_config_service.go similarity index 100% rename from bbs-go-active/server/internal/services/sys_config_service.go rename to archive/bbs-go-active/server/internal/services/sys_config_service.go diff --git a/bbs-go-active/server/internal/services/tag_service.go b/archive/bbs-go-active/server/internal/services/tag_service.go similarity index 100% rename from bbs-go-active/server/internal/services/tag_service.go rename to archive/bbs-go-active/server/internal/services/tag_service.go diff --git a/bbs-go-active/server/internal/services/topic_node_service.go b/archive/bbs-go-active/server/internal/services/topic_node_service.go similarity index 100% rename from bbs-go-active/server/internal/services/topic_node_service.go rename to archive/bbs-go-active/server/internal/services/topic_node_service.go diff --git a/bbs-go-active/server/internal/services/topic_publish_service.go b/archive/bbs-go-active/server/internal/services/topic_publish_service.go similarity index 100% rename from bbs-go-active/server/internal/services/topic_publish_service.go rename to archive/bbs-go-active/server/internal/services/topic_publish_service.go diff --git a/bbs-go-active/server/internal/services/topic_service.go b/archive/bbs-go-active/server/internal/services/topic_service.go similarity index 100% rename from bbs-go-active/server/internal/services/topic_service.go rename to archive/bbs-go-active/server/internal/services/topic_service.go diff --git a/bbs-go-active/server/internal/services/topic_tag_service.go b/archive/bbs-go-active/server/internal/services/topic_tag_service.go similarity index 100% rename from bbs-go-active/server/internal/services/topic_tag_service.go rename to archive/bbs-go-active/server/internal/services/topic_tag_service.go diff --git a/bbs-go-active/server/internal/services/user_feed_service.go b/archive/bbs-go-active/server/internal/services/user_feed_service.go similarity index 100% rename from bbs-go-active/server/internal/services/user_feed_service.go rename to archive/bbs-go-active/server/internal/services/user_feed_service.go diff --git a/bbs-go-active/server/internal/services/user_follow_service.go b/archive/bbs-go-active/server/internal/services/user_follow_service.go similarity index 100% rename from bbs-go-active/server/internal/services/user_follow_service.go rename to archive/bbs-go-active/server/internal/services/user_follow_service.go diff --git a/bbs-go-active/server/internal/services/user_like_service.go b/archive/bbs-go-active/server/internal/services/user_like_service.go similarity index 100% rename from bbs-go-active/server/internal/services/user_like_service.go rename to archive/bbs-go-active/server/internal/services/user_like_service.go diff --git a/bbs-go-active/server/internal/services/user_report_service.go b/archive/bbs-go-active/server/internal/services/user_report_service.go similarity index 100% rename from bbs-go-active/server/internal/services/user_report_service.go rename to archive/bbs-go-active/server/internal/services/user_report_service.go diff --git a/bbs-go-active/server/internal/services/user_role_service.go b/archive/bbs-go-active/server/internal/services/user_role_service.go similarity index 100% rename from bbs-go-active/server/internal/services/user_role_service.go rename to archive/bbs-go-active/server/internal/services/user_role_service.go diff --git a/bbs-go-active/server/internal/services/user_score_log_service.go b/archive/bbs-go-active/server/internal/services/user_score_log_service.go similarity index 100% rename from bbs-go-active/server/internal/services/user_score_log_service.go rename to archive/bbs-go-active/server/internal/services/user_score_log_service.go diff --git a/bbs-go-active/server/internal/services/user_service.go b/archive/bbs-go-active/server/internal/services/user_service.go similarity index 100% rename from bbs-go-active/server/internal/services/user_service.go rename to archive/bbs-go-active/server/internal/services/user_service.go diff --git a/bbs-go-active/server/internal/services/user_token_service.go b/archive/bbs-go-active/server/internal/services/user_token_service.go similarity index 100% rename from bbs-go-active/server/internal/services/user_token_service.go rename to archive/bbs-go-active/server/internal/services/user_token_service.go diff --git a/bbs-go-active/server/internal/spam/captcha_strategy.go b/archive/bbs-go-active/server/internal/spam/captcha_strategy.go similarity index 100% rename from bbs-go-active/server/internal/spam/captcha_strategy.go rename to archive/bbs-go-active/server/internal/spam/captcha_strategy.go diff --git a/bbs-go-active/server/internal/spam/email_verify_strategy.go b/archive/bbs-go-active/server/internal/spam/email_verify_strategy.go similarity index 100% rename from bbs-go-active/server/internal/spam/email_verify_strategy.go rename to archive/bbs-go-active/server/internal/spam/email_verify_strategy.go diff --git a/bbs-go-active/server/internal/spam/post_frequency_strategy.go b/archive/bbs-go-active/server/internal/spam/post_frequency_strategy.go similarity index 100% rename from bbs-go-active/server/internal/spam/post_frequency_strategy.go rename to archive/bbs-go-active/server/internal/spam/post_frequency_strategy.go diff --git a/bbs-go-active/server/internal/spam/spam.go b/archive/bbs-go-active/server/internal/spam/spam.go similarity index 100% rename from bbs-go-active/server/internal/spam/spam.go rename to archive/bbs-go-active/server/internal/spam/spam.go diff --git a/bbs-go-active/server/internal/spam/strategy.go b/archive/bbs-go-active/server/internal/spam/strategy.go similarity index 100% rename from bbs-go-active/server/internal/spam/strategy.go rename to archive/bbs-go-active/server/internal/spam/strategy.go diff --git a/bbs-go-active/server/main.go b/archive/bbs-go-active/server/main.go similarity index 100% rename from bbs-go-active/server/main.go rename to archive/bbs-go-active/server/main.go diff --git a/bbs-go-active/server/migrations/0000001_init.up.sql b/archive/bbs-go-active/server/migrations/0000001_init.up.sql similarity index 100% rename from bbs-go-active/server/migrations/0000001_init.up.sql rename to archive/bbs-go-active/server/migrations/0000001_init.up.sql diff --git a/bbs-go-active/server/start.sh b/archive/bbs-go-active/server/start.sh similarity index 100% rename from bbs-go-active/server/start.sh rename to archive/bbs-go-active/server/start.sh diff --git a/bbs-go-active/site/.env.docker b/archive/bbs-go-active/site/.env.docker similarity index 100% rename from bbs-go-active/site/.env.docker rename to archive/bbs-go-active/site/.env.docker diff --git a/bbs-go-active/site/.env.example b/archive/bbs-go-active/site/.env.example similarity index 100% rename from bbs-go-active/site/.env.example rename to archive/bbs-go-active/site/.env.example diff --git a/bbs-go-active/site/.env.local b/archive/bbs-go-active/site/.env.local similarity index 100% rename from bbs-go-active/site/.env.local rename to archive/bbs-go-active/site/.env.local diff --git a/bbs-go-active/site/.eslintrc b/archive/bbs-go-active/site/.eslintrc similarity index 100% rename from bbs-go-active/site/.eslintrc rename to archive/bbs-go-active/site/.eslintrc diff --git a/bbs-go-active/site/.gitignore b/archive/bbs-go-active/site/.gitignore similarity index 100% rename from bbs-go-active/site/.gitignore rename to archive/bbs-go-active/site/.gitignore diff --git a/bbs-go-active/site/.npmrc b/archive/bbs-go-active/site/.npmrc similarity index 100% rename from bbs-go-active/site/.npmrc rename to archive/bbs-go-active/site/.npmrc diff --git a/bbs-go-active/site/.vscode/settings.json b/archive/bbs-go-active/site/.vscode/settings.json similarity index 100% rename from bbs-go-active/site/.vscode/settings.json rename to archive/bbs-go-active/site/.vscode/settings.json diff --git a/bbs-go-active/site/README.md b/archive/bbs-go-active/site/README.md similarity index 100% rename from bbs-go-active/site/README.md rename to archive/bbs-go-active/site/README.md diff --git a/bbs-go-active/site/ecosystem.config.js b/archive/bbs-go-active/site/ecosystem.config.js similarity index 100% rename from bbs-go-active/site/ecosystem.config.js rename to archive/bbs-go-active/site/ecosystem.config.js diff --git a/bbs-go-active/site/nuxt.config.ts b/archive/bbs-go-active/site/nuxt.config.ts similarity index 100% rename from bbs-go-active/site/nuxt.config.ts rename to archive/bbs-go-active/site/nuxt.config.ts diff --git a/bbs-go-active/site/package.json b/archive/bbs-go-active/site/package.json similarity index 100% rename from bbs-go-active/site/package.json rename to archive/bbs-go-active/site/package.json diff --git a/bbs-go-active/site/pnpm-lock.yaml b/archive/bbs-go-active/site/pnpm-lock.yaml similarity index 100% rename from bbs-go-active/site/pnpm-lock.yaml rename to archive/bbs-go-active/site/pnpm-lock.yaml diff --git a/bbs-go-active/site/server/tsconfig.json b/archive/bbs-go-active/site/server/tsconfig.json similarity index 100% rename from bbs-go-active/site/server/tsconfig.json rename to archive/bbs-go-active/site/server/tsconfig.json diff --git a/bbs-go-active/site/src/app.vue b/archive/bbs-go-active/site/src/app.vue similarity index 100% rename from bbs-go-active/site/src/app.vue rename to archive/bbs-go-active/site/src/app.vue diff --git a/bbs-go-active/site/src/assets/css/bulma.scss b/archive/bbs-go-active/site/src/assets/css/bulma.scss similarity index 100% rename from bbs-go-active/site/src/assets/css/bulma.scss rename to archive/bbs-go-active/site/src/assets/css/bulma.scss diff --git a/bbs-go-active/site/src/assets/css/common.scss b/archive/bbs-go-active/site/src/assets/css/common.scss similarity index 100% rename from bbs-go-active/site/src/assets/css/common.scss rename to archive/bbs-go-active/site/src/assets/css/common.scss diff --git a/bbs-go-active/site/src/assets/css/highlightjs.scss b/archive/bbs-go-active/site/src/assets/css/highlightjs.scss similarity index 100% rename from bbs-go-active/site/src/assets/css/highlightjs.scss rename to archive/bbs-go-active/site/src/assets/css/highlightjs.scss diff --git a/bbs-go-active/site/src/assets/css/index.scss b/archive/bbs-go-active/site/src/assets/css/index.scss similarity index 100% rename from bbs-go-active/site/src/assets/css/index.scss rename to archive/bbs-go-active/site/src/assets/css/index.scss diff --git a/bbs-go-active/site/src/assets/css/nav.scss b/archive/bbs-go-active/site/src/assets/css/nav.scss similarity index 100% rename from bbs-go-active/site/src/assets/css/nav.scss rename to archive/bbs-go-active/site/src/assets/css/nav.scss diff --git a/bbs-go-active/site/src/assets/css/signin.scss b/archive/bbs-go-active/site/src/assets/css/signin.scss similarity index 100% rename from bbs-go-active/site/src/assets/css/signin.scss rename to archive/bbs-go-active/site/src/assets/css/signin.scss diff --git a/bbs-go-active/site/src/assets/css/topic.scss b/archive/bbs-go-active/site/src/assets/css/topic.scss similarity index 100% rename from bbs-go-active/site/src/assets/css/topic.scss rename to archive/bbs-go-active/site/src/assets/css/topic.scss diff --git a/bbs-go-active/site/src/assets/iconfont/demo.css b/archive/bbs-go-active/site/src/assets/iconfont/demo.css similarity index 100% rename from bbs-go-active/site/src/assets/iconfont/demo.css rename to archive/bbs-go-active/site/src/assets/iconfont/demo.css diff --git a/bbs-go-active/site/src/assets/iconfont/demo_index.html b/archive/bbs-go-active/site/src/assets/iconfont/demo_index.html similarity index 100% rename from bbs-go-active/site/src/assets/iconfont/demo_index.html rename to archive/bbs-go-active/site/src/assets/iconfont/demo_index.html diff --git a/bbs-go-active/site/src/assets/iconfont/iconfont.css b/archive/bbs-go-active/site/src/assets/iconfont/iconfont.css similarity index 100% rename from bbs-go-active/site/src/assets/iconfont/iconfont.css rename to archive/bbs-go-active/site/src/assets/iconfont/iconfont.css diff --git a/bbs-go-active/site/src/assets/iconfont/iconfont.js b/archive/bbs-go-active/site/src/assets/iconfont/iconfont.js similarity index 100% rename from bbs-go-active/site/src/assets/iconfont/iconfont.js rename to archive/bbs-go-active/site/src/assets/iconfont/iconfont.js diff --git a/bbs-go-active/site/src/assets/iconfont/iconfont.json b/archive/bbs-go-active/site/src/assets/iconfont/iconfont.json similarity index 100% rename from bbs-go-active/site/src/assets/iconfont/iconfont.json rename to archive/bbs-go-active/site/src/assets/iconfont/iconfont.json diff --git a/bbs-go-active/site/src/assets/iconfont/iconfont.ttf b/archive/bbs-go-active/site/src/assets/iconfont/iconfont.ttf similarity index 100% rename from bbs-go-active/site/src/assets/iconfont/iconfont.ttf rename to archive/bbs-go-active/site/src/assets/iconfont/iconfont.ttf diff --git a/bbs-go-active/site/src/assets/iconfont/iconfont.woff b/archive/bbs-go-active/site/src/assets/iconfont/iconfont.woff similarity index 100% rename from bbs-go-active/site/src/assets/iconfont/iconfont.woff rename to archive/bbs-go-active/site/src/assets/iconfont/iconfont.woff diff --git a/bbs-go-active/site/src/assets/iconfont/iconfont.woff2 b/archive/bbs-go-active/site/src/assets/iconfont/iconfont.woff2 similarity index 100% rename from bbs-go-active/site/src/assets/iconfont/iconfont.woff2 rename to archive/bbs-go-active/site/src/assets/iconfont/iconfont.woff2 diff --git a/bbs-go-active/site/src/assets/images/close2.png b/archive/bbs-go-active/site/src/assets/images/close2.png similarity index 100% rename from bbs-go-active/site/src/assets/images/close2.png rename to archive/bbs-go-active/site/src/assets/images/close2.png diff --git a/bbs-go-active/site/src/assets/images/default-user-bg.jpg b/archive/bbs-go-active/site/src/assets/images/default-user-bg.jpg similarity index 100% rename from bbs-go-active/site/src/assets/images/default-user-bg.jpg rename to archive/bbs-go-active/site/src/assets/images/default-user-bg.jpg diff --git a/bbs-go-active/site/src/assets/images/default-user-bg1.jpg b/archive/bbs-go-active/site/src/assets/images/default-user-bg1.jpg similarity index 100% rename from bbs-go-active/site/src/assets/images/default-user-bg1.jpg rename to archive/bbs-go-active/site/src/assets/images/default-user-bg1.jpg diff --git a/bbs-go-active/site/src/assets/images/feed.png b/archive/bbs-go-active/site/src/assets/images/feed.png similarity index 100% rename from bbs-go-active/site/src/assets/images/feed.png rename to archive/bbs-go-active/site/src/assets/images/feed.png diff --git a/bbs-go-active/site/src/assets/images/logo.png b/archive/bbs-go-active/site/src/assets/images/logo.png similarity index 100% rename from bbs-go-active/site/src/assets/images/logo.png rename to archive/bbs-go-active/site/src/assets/images/logo.png diff --git a/bbs-go-active/site/src/assets/images/logo364x364.png b/archive/bbs-go-active/site/src/assets/images/logo364x364.png similarity index 100% rename from bbs-go-active/site/src/assets/images/logo364x364.png rename to archive/bbs-go-active/site/src/assets/images/logo364x364.png diff --git a/bbs-go-active/site/src/assets/images/net.png b/archive/bbs-go-active/site/src/assets/images/net.png similarity index 100% rename from bbs-go-active/site/src/assets/images/net.png rename to archive/bbs-go-active/site/src/assets/images/net.png diff --git a/bbs-go-active/site/src/assets/images/new.png b/archive/bbs-go-active/site/src/assets/images/new.png similarity index 100% rename from bbs-go-active/site/src/assets/images/new.png rename to archive/bbs-go-active/site/src/assets/images/new.png diff --git a/bbs-go-active/site/src/assets/images/node.png b/archive/bbs-go-active/site/src/assets/images/node.png similarity index 100% rename from bbs-go-active/site/src/assets/images/node.png rename to archive/bbs-go-active/site/src/assets/images/node.png diff --git a/bbs-go-active/site/src/assets/images/recommend.png b/archive/bbs-go-active/site/src/assets/images/recommend.png similarity index 100% rename from bbs-go-active/site/src/assets/images/recommend.png rename to archive/bbs-go-active/site/src/assets/images/recommend.png diff --git a/bbs-go-active/site/src/components/ArticleList.vue b/archive/bbs-go-active/site/src/components/ArticleList.vue similarity index 100% rename from bbs-go-active/site/src/components/ArticleList.vue rename to archive/bbs-go-active/site/src/components/ArticleList.vue diff --git a/bbs-go-active/site/src/components/ArticleManageMenu.vue b/archive/bbs-go-active/site/src/components/ArticleManageMenu.vue similarity index 100% rename from bbs-go-active/site/src/components/ArticleManageMenu.vue rename to archive/bbs-go-active/site/src/components/ArticleManageMenu.vue diff --git a/bbs-go-active/site/src/components/AvatarEdit.vue b/archive/bbs-go-active/site/src/components/AvatarEdit.vue similarity index 100% rename from bbs-go-active/site/src/components/AvatarEdit.vue rename to archive/bbs-go-active/site/src/components/AvatarEdit.vue diff --git a/bbs-go-active/site/src/components/CheckIn.vue b/archive/bbs-go-active/site/src/components/CheckIn.vue similarity index 100% rename from bbs-go-active/site/src/components/CheckIn.vue rename to archive/bbs-go-active/site/src/components/CheckIn.vue diff --git a/bbs-go-active/site/src/components/ColorMode.vue b/archive/bbs-go-active/site/src/components/ColorMode.vue similarity index 100% rename from bbs-go-active/site/src/components/ColorMode.vue rename to archive/bbs-go-active/site/src/components/ColorMode.vue diff --git a/bbs-go-active/site/src/components/CreateTopicBtn.vue b/archive/bbs-go-active/site/src/components/CreateTopicBtn.vue similarity index 100% rename from bbs-go-active/site/src/components/CreateTopicBtn.vue rename to archive/bbs-go-active/site/src/components/CreateTopicBtn.vue diff --git a/bbs-go-active/site/src/components/FansWidget.vue b/archive/bbs-go-active/site/src/components/FansWidget.vue similarity index 100% rename from bbs-go-active/site/src/components/FansWidget.vue rename to archive/bbs-go-active/site/src/components/FansWidget.vue diff --git a/bbs-go-active/site/src/components/FollowBtn.vue b/archive/bbs-go-active/site/src/components/FollowBtn.vue similarity index 100% rename from bbs-go-active/site/src/components/FollowBtn.vue rename to archive/bbs-go-active/site/src/components/FollowBtn.vue diff --git a/bbs-go-active/site/src/components/FollowWidget.vue b/archive/bbs-go-active/site/src/components/FollowWidget.vue similarity index 100% rename from bbs-go-active/site/src/components/FollowWidget.vue rename to archive/bbs-go-active/site/src/components/FollowWidget.vue diff --git a/bbs-go-active/site/src/components/FriendLinks.vue b/archive/bbs-go-active/site/src/components/FriendLinks.vue similarity index 100% rename from bbs-go-active/site/src/components/FriendLinks.vue rename to archive/bbs-go-active/site/src/components/FriendLinks.vue diff --git a/bbs-go-active/site/src/components/ImageUpload.vue b/archive/bbs-go-active/site/src/components/ImageUpload.vue similarity index 100% rename from bbs-go-active/site/src/components/ImageUpload.vue rename to archive/bbs-go-active/site/src/components/ImageUpload.vue diff --git a/bbs-go-active/site/src/components/LoadMoreAsync.vue b/archive/bbs-go-active/site/src/components/LoadMoreAsync.vue similarity index 100% rename from bbs-go-active/site/src/components/LoadMoreAsync.vue rename to archive/bbs-go-active/site/src/components/LoadMoreAsync.vue diff --git a/bbs-go-active/site/src/components/MarkdownEditor.vue b/archive/bbs-go-active/site/src/components/MarkdownEditor.vue similarity index 100% rename from bbs-go-active/site/src/components/MarkdownEditor.vue rename to archive/bbs-go-active/site/src/components/MarkdownEditor.vue diff --git a/bbs-go-active/site/src/components/MsgNotice.vue b/archive/bbs-go-active/site/src/components/MsgNotice.vue similarity index 100% rename from bbs-go-active/site/src/components/MsgNotice.vue rename to archive/bbs-go-active/site/src/components/MsgNotice.vue diff --git a/bbs-go-active/site/src/components/MyAvatar.vue b/archive/bbs-go-active/site/src/components/MyAvatar.vue similarity index 100% rename from bbs-go-active/site/src/components/MyAvatar.vue rename to archive/bbs-go-active/site/src/components/MyAvatar.vue diff --git a/bbs-go-active/site/src/components/MyAvatar.vue.bak b/archive/bbs-go-active/site/src/components/MyAvatar.vue.bak similarity index 100% rename from bbs-go-active/site/src/components/MyAvatar.vue.bak rename to archive/bbs-go-active/site/src/components/MyAvatar.vue.bak diff --git a/bbs-go-active/site/src/components/MyCounts.vue b/archive/bbs-go-active/site/src/components/MyCounts.vue similarity index 100% rename from bbs-go-active/site/src/components/MyCounts.vue rename to archive/bbs-go-active/site/src/components/MyCounts.vue diff --git a/bbs-go-active/site/src/components/MyDialog.vue b/archive/bbs-go-active/site/src/components/MyDialog.vue similarity index 100% rename from bbs-go-active/site/src/components/MyDialog.vue rename to archive/bbs-go-active/site/src/components/MyDialog.vue diff --git a/bbs-go-active/site/src/components/MyEmpty.vue b/archive/bbs-go-active/site/src/components/MyEmpty.vue similarity index 100% rename from bbs-go-active/site/src/components/MyEmpty.vue rename to archive/bbs-go-active/site/src/components/MyEmpty.vue diff --git a/bbs-go-active/site/src/components/MyFooter.vue b/archive/bbs-go-active/site/src/components/MyFooter.vue similarity index 100% rename from bbs-go-active/site/src/components/MyFooter.vue rename to archive/bbs-go-active/site/src/components/MyFooter.vue diff --git a/bbs-go-active/site/src/components/MyHeader.vue b/archive/bbs-go-active/site/src/components/MyHeader.vue similarity index 100% rename from bbs-go-active/site/src/components/MyHeader.vue rename to archive/bbs-go-active/site/src/components/MyHeader.vue diff --git a/bbs-go-active/site/src/components/MyProfile.vue b/archive/bbs-go-active/site/src/components/MyProfile.vue similarity index 100% rename from bbs-go-active/site/src/components/MyProfile.vue rename to archive/bbs-go-active/site/src/components/MyProfile.vue diff --git a/bbs-go-active/site/src/components/ScoreRank.vue b/archive/bbs-go-active/site/src/components/ScoreRank.vue similarity index 100% rename from bbs-go-active/site/src/components/ScoreRank.vue rename to archive/bbs-go-active/site/src/components/ScoreRank.vue diff --git a/bbs-go-active/site/src/components/SearchInput.vue b/archive/bbs-go-active/site/src/components/SearchInput.vue similarity index 100% rename from bbs-go-active/site/src/components/SearchInput.vue rename to archive/bbs-go-active/site/src/components/SearchInput.vue diff --git a/bbs-go-active/site/src/components/SearchTopicList.vue b/archive/bbs-go-active/site/src/components/SearchTopicList.vue similarity index 100% rename from bbs-go-active/site/src/components/SearchTopicList.vue rename to archive/bbs-go-active/site/src/components/SearchTopicList.vue diff --git a/bbs-go-active/site/src/components/SearchTopicsNav.vue b/archive/bbs-go-active/site/src/components/SearchTopicsNav.vue similarity index 100% rename from bbs-go-active/site/src/components/SearchTopicsNav.vue rename to archive/bbs-go-active/site/src/components/SearchTopicsNav.vue diff --git a/bbs-go-active/site/src/components/SimpleEditor.vue b/archive/bbs-go-active/site/src/components/SimpleEditor.vue similarity index 100% rename from bbs-go-active/site/src/components/SimpleEditor.vue rename to archive/bbs-go-active/site/src/components/SimpleEditor.vue diff --git a/bbs-go-active/site/src/components/SiteNotice.vue b/archive/bbs-go-active/site/src/components/SiteNotice.vue similarity index 100% rename from bbs-go-active/site/src/components/SiteNotice.vue rename to archive/bbs-go-active/site/src/components/SiteNotice.vue diff --git a/bbs-go-active/site/src/components/TagInput.vue b/archive/bbs-go-active/site/src/components/TagInput.vue similarity index 100% rename from bbs-go-active/site/src/components/TagInput.vue rename to archive/bbs-go-active/site/src/components/TagInput.vue diff --git a/bbs-go-active/site/src/components/TextEditor.vue b/archive/bbs-go-active/site/src/components/TextEditor.vue similarity index 100% rename from bbs-go-active/site/src/components/TextEditor.vue rename to archive/bbs-go-active/site/src/components/TextEditor.vue diff --git a/bbs-go-active/site/src/components/TopicList.vue b/archive/bbs-go-active/site/src/components/TopicList.vue similarity index 100% rename from bbs-go-active/site/src/components/TopicList.vue rename to archive/bbs-go-active/site/src/components/TopicList.vue diff --git a/bbs-go-active/site/src/components/TopicList.vue.bak b/archive/bbs-go-active/site/src/components/TopicList.vue.bak similarity index 100% rename from bbs-go-active/site/src/components/TopicList.vue.bak rename to archive/bbs-go-active/site/src/components/TopicList.vue.bak diff --git a/bbs-go-active/site/src/components/TopicManageMenu.vue b/archive/bbs-go-active/site/src/components/TopicManageMenu.vue similarity index 100% rename from bbs-go-active/site/src/components/TopicManageMenu.vue rename to archive/bbs-go-active/site/src/components/TopicManageMenu.vue diff --git a/bbs-go-active/site/src/components/TopicsNav.vue b/archive/bbs-go-active/site/src/components/TopicsNav.vue similarity index 100% rename from bbs-go-active/site/src/components/TopicsNav.vue rename to archive/bbs-go-active/site/src/components/TopicsNav.vue diff --git a/bbs-go-active/site/src/components/TopicsNav.vue.bak b/archive/bbs-go-active/site/src/components/TopicsNav.vue.bak similarity index 100% rename from bbs-go-active/site/src/components/TopicsNav.vue.bak rename to archive/bbs-go-active/site/src/components/TopicsNav.vue.bak diff --git a/bbs-go-active/site/src/components/UserCenterSidebar.vue b/archive/bbs-go-active/site/src/components/UserCenterSidebar.vue similarity index 100% rename from bbs-go-active/site/src/components/UserCenterSidebar.vue rename to archive/bbs-go-active/site/src/components/UserCenterSidebar.vue diff --git a/bbs-go-active/site/src/components/UserFollowList.vue b/archive/bbs-go-active/site/src/components/UserFollowList.vue similarity index 100% rename from bbs-go-active/site/src/components/UserFollowList.vue rename to archive/bbs-go-active/site/src/components/UserFollowList.vue diff --git a/bbs-go-active/site/src/components/UserInfo.vue b/archive/bbs-go-active/site/src/components/UserInfo.vue similarity index 100% rename from bbs-go-active/site/src/components/UserInfo.vue rename to archive/bbs-go-active/site/src/components/UserInfo.vue diff --git a/bbs-go-active/site/src/components/UserProfile.vue b/archive/bbs-go-active/site/src/components/UserProfile.vue similarity index 100% rename from bbs-go-active/site/src/components/UserProfile.vue rename to archive/bbs-go-active/site/src/components/UserProfile.vue diff --git a/bbs-go-active/site/src/components/comment/Input.vue b/archive/bbs-go-active/site/src/components/comment/Input.vue similarity index 100% rename from bbs-go-active/site/src/components/comment/Input.vue rename to archive/bbs-go-active/site/src/components/comment/Input.vue diff --git a/bbs-go-active/site/src/components/comment/List.vue b/archive/bbs-go-active/site/src/components/comment/List.vue similarity index 100% rename from bbs-go-active/site/src/components/comment/List.vue rename to archive/bbs-go-active/site/src/components/comment/List.vue diff --git a/bbs-go-active/site/src/components/comment/SubList.vue b/archive/bbs-go-active/site/src/components/comment/SubList.vue similarity index 100% rename from bbs-go-active/site/src/components/comment/SubList.vue rename to archive/bbs-go-active/site/src/components/comment/SubList.vue diff --git a/bbs-go-active/site/src/components/comment/index.vue b/archive/bbs-go-active/site/src/components/comment/index.vue similarity index 100% rename from bbs-go-active/site/src/components/comment/index.vue rename to archive/bbs-go-active/site/src/components/comment/index.vue diff --git a/bbs-go-active/site/src/composables/config.js b/archive/bbs-go-active/site/src/composables/config.js similarity index 100% rename from bbs-go-active/site/src/composables/config.js rename to archive/bbs-go-active/site/src/composables/config.js diff --git a/bbs-go-active/site/src/composables/http.js b/archive/bbs-go-active/site/src/composables/http.js similarity index 100% rename from bbs-go-active/site/src/composables/http.js rename to archive/bbs-go-active/site/src/composables/http.js diff --git a/bbs-go-active/site/src/composables/ui.js b/archive/bbs-go-active/site/src/composables/ui.js similarity index 100% rename from bbs-go-active/site/src/composables/ui.js rename to archive/bbs-go-active/site/src/composables/ui.js diff --git a/bbs-go-active/site/src/composables/user.js b/archive/bbs-go-active/site/src/composables/user.js similarity index 100% rename from bbs-go-active/site/src/composables/user.js rename to archive/bbs-go-active/site/src/composables/user.js diff --git a/bbs-go-active/site/src/composables/utils.js b/archive/bbs-go-active/site/src/composables/utils.js similarity index 100% rename from bbs-go-active/site/src/composables/utils.js rename to archive/bbs-go-active/site/src/composables/utils.js diff --git a/bbs-go-active/site/src/error.vue b/archive/bbs-go-active/site/src/error.vue similarity index 100% rename from bbs-go-active/site/src/error.vue rename to archive/bbs-go-active/site/src/error.vue diff --git a/bbs-go-active/site/src/layouts/default.vue b/archive/bbs-go-active/site/src/layouts/default.vue similarity index 100% rename from bbs-go-active/site/src/layouts/default.vue rename to archive/bbs-go-active/site/src/layouts/default.vue diff --git a/bbs-go-active/site/src/layouts/profile.vue b/archive/bbs-go-active/site/src/layouts/profile.vue similarity index 100% rename from bbs-go-active/site/src/layouts/profile.vue rename to archive/bbs-go-active/site/src/layouts/profile.vue diff --git a/bbs-go-active/site/src/layouts/ucenter.vue b/archive/bbs-go-active/site/src/layouts/ucenter.vue similarity index 100% rename from bbs-go-active/site/src/layouts/ucenter.vue rename to archive/bbs-go-active/site/src/layouts/ucenter.vue diff --git a/bbs-go-active/site/src/middleware/auth.js b/archive/bbs-go-active/site/src/middleware/auth.js similarity index 100% rename from bbs-go-active/site/src/middleware/auth.js rename to archive/bbs-go-active/site/src/middleware/auth.js diff --git a/bbs-go-active/site/src/middleware/fetch.global.ts b/archive/bbs-go-active/site/src/middleware/fetch.global.ts similarity index 100% rename from bbs-go-active/site/src/middleware/fetch.global.ts rename to archive/bbs-go-active/site/src/middleware/fetch.global.ts diff --git a/bbs-go-active/site/src/pages/about.vue b/archive/bbs-go-active/site/src/pages/about.vue similarity index 100% rename from bbs-go-active/site/src/pages/about.vue rename to archive/bbs-go-active/site/src/pages/about.vue diff --git a/bbs-go-active/site/src/pages/article/[id].vue b/archive/bbs-go-active/site/src/pages/article/[id].vue similarity index 100% rename from bbs-go-active/site/src/pages/article/[id].vue rename to archive/bbs-go-active/site/src/pages/article/[id].vue diff --git a/bbs-go-active/site/src/pages/article/create.vue b/archive/bbs-go-active/site/src/pages/article/create.vue similarity index 100% rename from bbs-go-active/site/src/pages/article/create.vue rename to archive/bbs-go-active/site/src/pages/article/create.vue diff --git a/bbs-go-active/site/src/pages/article/edit/[id].vue b/archive/bbs-go-active/site/src/pages/article/edit/[id].vue similarity index 100% rename from bbs-go-active/site/src/pages/article/edit/[id].vue rename to archive/bbs-go-active/site/src/pages/article/edit/[id].vue diff --git a/bbs-go-active/site/src/pages/articles/index.vue b/archive/bbs-go-active/site/src/pages/articles/index.vue similarity index 100% rename from bbs-go-active/site/src/pages/articles/index.vue rename to archive/bbs-go-active/site/src/pages/articles/index.vue diff --git a/bbs-go-active/site/src/pages/articles/tag/[id].vue b/archive/bbs-go-active/site/src/pages/articles/tag/[id].vue similarity index 100% rename from bbs-go-active/site/src/pages/articles/tag/[id].vue rename to archive/bbs-go-active/site/src/pages/articles/tag/[id].vue diff --git a/bbs-go-active/site/src/pages/index.vue b/archive/bbs-go-active/site/src/pages/index.vue similarity index 100% rename from bbs-go-active/site/src/pages/index.vue rename to archive/bbs-go-active/site/src/pages/index.vue diff --git a/bbs-go-active/site/src/pages/index.vue.bak b/archive/bbs-go-active/site/src/pages/index.vue.bak similarity index 100% rename from bbs-go-active/site/src/pages/index.vue.bak rename to archive/bbs-go-active/site/src/pages/index.vue.bak diff --git a/bbs-go-active/site/src/pages/links.vue b/archive/bbs-go-active/site/src/pages/links.vue similarity index 100% rename from bbs-go-active/site/src/pages/links.vue rename to archive/bbs-go-active/site/src/pages/links.vue diff --git a/bbs-go-active/site/src/pages/redirect.vue b/archive/bbs-go-active/site/src/pages/redirect.vue similarity index 100% rename from bbs-go-active/site/src/pages/redirect.vue rename to archive/bbs-go-active/site/src/pages/redirect.vue diff --git a/bbs-go-active/site/src/pages/search/index.vue b/archive/bbs-go-active/site/src/pages/search/index.vue similarity index 100% rename from bbs-go-active/site/src/pages/search/index.vue rename to archive/bbs-go-active/site/src/pages/search/index.vue diff --git a/bbs-go-active/site/src/pages/topic/[id].vue b/archive/bbs-go-active/site/src/pages/topic/[id].vue similarity index 100% rename from bbs-go-active/site/src/pages/topic/[id].vue rename to archive/bbs-go-active/site/src/pages/topic/[id].vue diff --git a/bbs-go-active/site/src/pages/topic/create.vue b/archive/bbs-go-active/site/src/pages/topic/create.vue similarity index 100% rename from bbs-go-active/site/src/pages/topic/create.vue rename to archive/bbs-go-active/site/src/pages/topic/create.vue diff --git a/bbs-go-active/site/src/pages/topic/edit/[id].vue b/archive/bbs-go-active/site/src/pages/topic/edit/[id].vue similarity index 100% rename from bbs-go-active/site/src/pages/topic/edit/[id].vue rename to archive/bbs-go-active/site/src/pages/topic/edit/[id].vue diff --git a/bbs-go-active/site/src/pages/topics/index.vue b/archive/bbs-go-active/site/src/pages/topics/index.vue similarity index 100% rename from bbs-go-active/site/src/pages/topics/index.vue rename to archive/bbs-go-active/site/src/pages/topics/index.vue diff --git a/bbs-go-active/site/src/pages/topics/node/[id].vue b/archive/bbs-go-active/site/src/pages/topics/node/[id].vue similarity index 100% rename from bbs-go-active/site/src/pages/topics/node/[id].vue rename to archive/bbs-go-active/site/src/pages/topics/node/[id].vue diff --git a/bbs-go-active/site/src/pages/topics/tag/[id].vue b/archive/bbs-go-active/site/src/pages/topics/tag/[id].vue similarity index 100% rename from bbs-go-active/site/src/pages/topics/tag/[id].vue rename to archive/bbs-go-active/site/src/pages/topics/tag/[id].vue diff --git a/bbs-go-active/site/src/pages/user/[userId]/articles.vue b/archive/bbs-go-active/site/src/pages/user/[userId]/articles.vue similarity index 100% rename from bbs-go-active/site/src/pages/user/[userId]/articles.vue rename to archive/bbs-go-active/site/src/pages/user/[userId]/articles.vue diff --git a/bbs-go-active/site/src/pages/user/[userId]/fans.vue b/archive/bbs-go-active/site/src/pages/user/[userId]/fans.vue similarity index 100% rename from bbs-go-active/site/src/pages/user/[userId]/fans.vue rename to archive/bbs-go-active/site/src/pages/user/[userId]/fans.vue diff --git a/bbs-go-active/site/src/pages/user/[userId]/followed.vue b/archive/bbs-go-active/site/src/pages/user/[userId]/followed.vue similarity index 100% rename from bbs-go-active/site/src/pages/user/[userId]/followed.vue rename to archive/bbs-go-active/site/src/pages/user/[userId]/followed.vue diff --git a/bbs-go-active/site/src/pages/user/[userId]/index.vue b/archive/bbs-go-active/site/src/pages/user/[userId]/index.vue similarity index 100% rename from bbs-go-active/site/src/pages/user/[userId]/index.vue rename to archive/bbs-go-active/site/src/pages/user/[userId]/index.vue diff --git a/bbs-go-active/site/src/pages/user/email/verify.vue b/archive/bbs-go-active/site/src/pages/user/email/verify.vue similarity index 100% rename from bbs-go-active/site/src/pages/user/email/verify.vue rename to archive/bbs-go-active/site/src/pages/user/email/verify.vue diff --git a/bbs-go-active/site/src/pages/user/favorites.vue b/archive/bbs-go-active/site/src/pages/user/favorites.vue similarity index 100% rename from bbs-go-active/site/src/pages/user/favorites.vue rename to archive/bbs-go-active/site/src/pages/user/favorites.vue diff --git a/bbs-go-active/site/src/pages/user/messages.vue b/archive/bbs-go-active/site/src/pages/user/messages.vue similarity index 100% rename from bbs-go-active/site/src/pages/user/messages.vue rename to archive/bbs-go-active/site/src/pages/user/messages.vue diff --git a/bbs-go-active/site/src/pages/user/profile/account.vue b/archive/bbs-go-active/site/src/pages/user/profile/account.vue similarity index 100% rename from bbs-go-active/site/src/pages/user/profile/account.vue rename to archive/bbs-go-active/site/src/pages/user/profile/account.vue diff --git a/bbs-go-active/site/src/pages/user/profile/index.vue b/archive/bbs-go-active/site/src/pages/user/profile/index.vue similarity index 100% rename from bbs-go-active/site/src/pages/user/profile/index.vue rename to archive/bbs-go-active/site/src/pages/user/profile/index.vue diff --git a/bbs-go-active/site/src/pages/user/scores.vue b/archive/bbs-go-active/site/src/pages/user/scores.vue similarity index 100% rename from bbs-go-active/site/src/pages/user/scores.vue rename to archive/bbs-go-active/site/src/pages/user/scores.vue diff --git a/bbs-go-active/site/src/pages/user/signin.vue b/archive/bbs-go-active/site/src/pages/user/signin.vue similarity index 100% rename from bbs-go-active/site/src/pages/user/signin.vue rename to archive/bbs-go-active/site/src/pages/user/signin.vue diff --git a/bbs-go-active/site/src/pages/user/signup.vue b/archive/bbs-go-active/site/src/pages/user/signup.vue similarity index 100% rename from bbs-go-active/site/src/pages/user/signup.vue rename to archive/bbs-go-active/site/src/pages/user/signup.vue diff --git a/bbs-go-active/site/src/plugins/clickOutside.js b/archive/bbs-go-active/site/src/plugins/clickOutside.js similarity index 100% rename from bbs-go-active/site/src/plugins/clickOutside.js rename to archive/bbs-go-active/site/src/plugins/clickOutside.js diff --git a/bbs-go-active/site/src/public/favicon.ico b/archive/bbs-go-active/site/src/public/favicon.ico similarity index 100% rename from bbs-go-active/site/src/public/favicon.ico rename to archive/bbs-go-active/site/src/public/favicon.ico diff --git a/bbs-go-active/site/src/public/icon.png b/archive/bbs-go-active/site/src/public/icon.png similarity index 100% rename from bbs-go-active/site/src/public/icon.png rename to archive/bbs-go-active/site/src/public/icon.png diff --git a/bbs-go-active/site/src/public/images/avatars/0.png b/archive/bbs-go-active/site/src/public/images/avatars/0.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/0.png rename to archive/bbs-go-active/site/src/public/images/avatars/0.png diff --git a/bbs-go-active/site/src/public/images/avatars/0.svg b/archive/bbs-go-active/site/src/public/images/avatars/0.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/0.svg rename to archive/bbs-go-active/site/src/public/images/avatars/0.svg diff --git a/bbs-go-active/site/src/public/images/avatars/1.png b/archive/bbs-go-active/site/src/public/images/avatars/1.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/1.png rename to archive/bbs-go-active/site/src/public/images/avatars/1.png diff --git a/bbs-go-active/site/src/public/images/avatars/1.svg b/archive/bbs-go-active/site/src/public/images/avatars/1.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/1.svg rename to archive/bbs-go-active/site/src/public/images/avatars/1.svg diff --git a/bbs-go-active/site/src/public/images/avatars/10.png b/archive/bbs-go-active/site/src/public/images/avatars/10.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/10.png rename to archive/bbs-go-active/site/src/public/images/avatars/10.png diff --git a/bbs-go-active/site/src/public/images/avatars/10.svg b/archive/bbs-go-active/site/src/public/images/avatars/10.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/10.svg rename to archive/bbs-go-active/site/src/public/images/avatars/10.svg diff --git a/bbs-go-active/site/src/public/images/avatars/100.png b/archive/bbs-go-active/site/src/public/images/avatars/100.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/100.png rename to archive/bbs-go-active/site/src/public/images/avatars/100.png diff --git a/bbs-go-active/site/src/public/images/avatars/100.svg b/archive/bbs-go-active/site/src/public/images/avatars/100.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/100.svg rename to archive/bbs-go-active/site/src/public/images/avatars/100.svg diff --git a/bbs-go-active/site/src/public/images/avatars/101.png b/archive/bbs-go-active/site/src/public/images/avatars/101.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/101.png rename to archive/bbs-go-active/site/src/public/images/avatars/101.png diff --git a/bbs-go-active/site/src/public/images/avatars/101.svg b/archive/bbs-go-active/site/src/public/images/avatars/101.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/101.svg rename to archive/bbs-go-active/site/src/public/images/avatars/101.svg diff --git a/bbs-go-active/site/src/public/images/avatars/102.png b/archive/bbs-go-active/site/src/public/images/avatars/102.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/102.png rename to archive/bbs-go-active/site/src/public/images/avatars/102.png diff --git a/bbs-go-active/site/src/public/images/avatars/102.svg b/archive/bbs-go-active/site/src/public/images/avatars/102.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/102.svg rename to archive/bbs-go-active/site/src/public/images/avatars/102.svg diff --git a/bbs-go-active/site/src/public/images/avatars/103.png b/archive/bbs-go-active/site/src/public/images/avatars/103.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/103.png rename to archive/bbs-go-active/site/src/public/images/avatars/103.png diff --git a/bbs-go-active/site/src/public/images/avatars/103.svg b/archive/bbs-go-active/site/src/public/images/avatars/103.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/103.svg rename to archive/bbs-go-active/site/src/public/images/avatars/103.svg diff --git a/bbs-go-active/site/src/public/images/avatars/104.png b/archive/bbs-go-active/site/src/public/images/avatars/104.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/104.png rename to archive/bbs-go-active/site/src/public/images/avatars/104.png diff --git a/bbs-go-active/site/src/public/images/avatars/104.svg b/archive/bbs-go-active/site/src/public/images/avatars/104.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/104.svg rename to archive/bbs-go-active/site/src/public/images/avatars/104.svg diff --git a/bbs-go-active/site/src/public/images/avatars/105.png b/archive/bbs-go-active/site/src/public/images/avatars/105.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/105.png rename to archive/bbs-go-active/site/src/public/images/avatars/105.png diff --git a/bbs-go-active/site/src/public/images/avatars/105.svg b/archive/bbs-go-active/site/src/public/images/avatars/105.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/105.svg rename to archive/bbs-go-active/site/src/public/images/avatars/105.svg diff --git a/bbs-go-active/site/src/public/images/avatars/106.png b/archive/bbs-go-active/site/src/public/images/avatars/106.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/106.png rename to archive/bbs-go-active/site/src/public/images/avatars/106.png diff --git a/bbs-go-active/site/src/public/images/avatars/106.svg b/archive/bbs-go-active/site/src/public/images/avatars/106.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/106.svg rename to archive/bbs-go-active/site/src/public/images/avatars/106.svg diff --git a/bbs-go-active/site/src/public/images/avatars/107.png b/archive/bbs-go-active/site/src/public/images/avatars/107.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/107.png rename to archive/bbs-go-active/site/src/public/images/avatars/107.png diff --git a/bbs-go-active/site/src/public/images/avatars/107.svg b/archive/bbs-go-active/site/src/public/images/avatars/107.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/107.svg rename to archive/bbs-go-active/site/src/public/images/avatars/107.svg diff --git a/bbs-go-active/site/src/public/images/avatars/108.png b/archive/bbs-go-active/site/src/public/images/avatars/108.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/108.png rename to archive/bbs-go-active/site/src/public/images/avatars/108.png diff --git a/bbs-go-active/site/src/public/images/avatars/108.svg b/archive/bbs-go-active/site/src/public/images/avatars/108.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/108.svg rename to archive/bbs-go-active/site/src/public/images/avatars/108.svg diff --git a/bbs-go-active/site/src/public/images/avatars/109.png b/archive/bbs-go-active/site/src/public/images/avatars/109.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/109.png rename to archive/bbs-go-active/site/src/public/images/avatars/109.png diff --git a/bbs-go-active/site/src/public/images/avatars/109.svg b/archive/bbs-go-active/site/src/public/images/avatars/109.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/109.svg rename to archive/bbs-go-active/site/src/public/images/avatars/109.svg diff --git a/bbs-go-active/site/src/public/images/avatars/11.png b/archive/bbs-go-active/site/src/public/images/avatars/11.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/11.png rename to archive/bbs-go-active/site/src/public/images/avatars/11.png diff --git a/bbs-go-active/site/src/public/images/avatars/11.svg b/archive/bbs-go-active/site/src/public/images/avatars/11.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/11.svg rename to archive/bbs-go-active/site/src/public/images/avatars/11.svg diff --git a/bbs-go-active/site/src/public/images/avatars/110.png b/archive/bbs-go-active/site/src/public/images/avatars/110.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/110.png rename to archive/bbs-go-active/site/src/public/images/avatars/110.png diff --git a/bbs-go-active/site/src/public/images/avatars/110.svg b/archive/bbs-go-active/site/src/public/images/avatars/110.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/110.svg rename to archive/bbs-go-active/site/src/public/images/avatars/110.svg diff --git a/bbs-go-active/site/src/public/images/avatars/111.png b/archive/bbs-go-active/site/src/public/images/avatars/111.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/111.png rename to archive/bbs-go-active/site/src/public/images/avatars/111.png diff --git a/bbs-go-active/site/src/public/images/avatars/111.svg b/archive/bbs-go-active/site/src/public/images/avatars/111.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/111.svg rename to archive/bbs-go-active/site/src/public/images/avatars/111.svg diff --git a/bbs-go-active/site/src/public/images/avatars/112.png b/archive/bbs-go-active/site/src/public/images/avatars/112.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/112.png rename to archive/bbs-go-active/site/src/public/images/avatars/112.png diff --git a/bbs-go-active/site/src/public/images/avatars/112.svg b/archive/bbs-go-active/site/src/public/images/avatars/112.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/112.svg rename to archive/bbs-go-active/site/src/public/images/avatars/112.svg diff --git a/bbs-go-active/site/src/public/images/avatars/113.png b/archive/bbs-go-active/site/src/public/images/avatars/113.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/113.png rename to archive/bbs-go-active/site/src/public/images/avatars/113.png diff --git a/bbs-go-active/site/src/public/images/avatars/113.svg b/archive/bbs-go-active/site/src/public/images/avatars/113.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/113.svg rename to archive/bbs-go-active/site/src/public/images/avatars/113.svg diff --git a/bbs-go-active/site/src/public/images/avatars/114.png b/archive/bbs-go-active/site/src/public/images/avatars/114.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/114.png rename to archive/bbs-go-active/site/src/public/images/avatars/114.png diff --git a/bbs-go-active/site/src/public/images/avatars/114.svg b/archive/bbs-go-active/site/src/public/images/avatars/114.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/114.svg rename to archive/bbs-go-active/site/src/public/images/avatars/114.svg diff --git a/bbs-go-active/site/src/public/images/avatars/115.png b/archive/bbs-go-active/site/src/public/images/avatars/115.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/115.png rename to archive/bbs-go-active/site/src/public/images/avatars/115.png diff --git a/bbs-go-active/site/src/public/images/avatars/115.svg b/archive/bbs-go-active/site/src/public/images/avatars/115.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/115.svg rename to archive/bbs-go-active/site/src/public/images/avatars/115.svg diff --git a/bbs-go-active/site/src/public/images/avatars/116.png b/archive/bbs-go-active/site/src/public/images/avatars/116.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/116.png rename to archive/bbs-go-active/site/src/public/images/avatars/116.png diff --git a/bbs-go-active/site/src/public/images/avatars/116.svg b/archive/bbs-go-active/site/src/public/images/avatars/116.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/116.svg rename to archive/bbs-go-active/site/src/public/images/avatars/116.svg diff --git a/bbs-go-active/site/src/public/images/avatars/117.png b/archive/bbs-go-active/site/src/public/images/avatars/117.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/117.png rename to archive/bbs-go-active/site/src/public/images/avatars/117.png diff --git a/bbs-go-active/site/src/public/images/avatars/117.svg b/archive/bbs-go-active/site/src/public/images/avatars/117.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/117.svg rename to archive/bbs-go-active/site/src/public/images/avatars/117.svg diff --git a/bbs-go-active/site/src/public/images/avatars/118.png b/archive/bbs-go-active/site/src/public/images/avatars/118.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/118.png rename to archive/bbs-go-active/site/src/public/images/avatars/118.png diff --git a/bbs-go-active/site/src/public/images/avatars/118.svg b/archive/bbs-go-active/site/src/public/images/avatars/118.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/118.svg rename to archive/bbs-go-active/site/src/public/images/avatars/118.svg diff --git a/bbs-go-active/site/src/public/images/avatars/119.png b/archive/bbs-go-active/site/src/public/images/avatars/119.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/119.png rename to archive/bbs-go-active/site/src/public/images/avatars/119.png diff --git a/bbs-go-active/site/src/public/images/avatars/119.svg b/archive/bbs-go-active/site/src/public/images/avatars/119.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/119.svg rename to archive/bbs-go-active/site/src/public/images/avatars/119.svg diff --git a/bbs-go-active/site/src/public/images/avatars/12.png b/archive/bbs-go-active/site/src/public/images/avatars/12.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/12.png rename to archive/bbs-go-active/site/src/public/images/avatars/12.png diff --git a/bbs-go-active/site/src/public/images/avatars/12.svg b/archive/bbs-go-active/site/src/public/images/avatars/12.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/12.svg rename to archive/bbs-go-active/site/src/public/images/avatars/12.svg diff --git a/bbs-go-active/site/src/public/images/avatars/120.png b/archive/bbs-go-active/site/src/public/images/avatars/120.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/120.png rename to archive/bbs-go-active/site/src/public/images/avatars/120.png diff --git a/bbs-go-active/site/src/public/images/avatars/120.svg b/archive/bbs-go-active/site/src/public/images/avatars/120.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/120.svg rename to archive/bbs-go-active/site/src/public/images/avatars/120.svg diff --git a/bbs-go-active/site/src/public/images/avatars/121.png b/archive/bbs-go-active/site/src/public/images/avatars/121.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/121.png rename to archive/bbs-go-active/site/src/public/images/avatars/121.png diff --git a/bbs-go-active/site/src/public/images/avatars/121.svg b/archive/bbs-go-active/site/src/public/images/avatars/121.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/121.svg rename to archive/bbs-go-active/site/src/public/images/avatars/121.svg diff --git a/bbs-go-active/site/src/public/images/avatars/122.png b/archive/bbs-go-active/site/src/public/images/avatars/122.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/122.png rename to archive/bbs-go-active/site/src/public/images/avatars/122.png diff --git a/bbs-go-active/site/src/public/images/avatars/122.svg b/archive/bbs-go-active/site/src/public/images/avatars/122.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/122.svg rename to archive/bbs-go-active/site/src/public/images/avatars/122.svg diff --git a/bbs-go-active/site/src/public/images/avatars/123.png b/archive/bbs-go-active/site/src/public/images/avatars/123.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/123.png rename to archive/bbs-go-active/site/src/public/images/avatars/123.png diff --git a/bbs-go-active/site/src/public/images/avatars/123.svg b/archive/bbs-go-active/site/src/public/images/avatars/123.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/123.svg rename to archive/bbs-go-active/site/src/public/images/avatars/123.svg diff --git a/bbs-go-active/site/src/public/images/avatars/124.png b/archive/bbs-go-active/site/src/public/images/avatars/124.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/124.png rename to archive/bbs-go-active/site/src/public/images/avatars/124.png diff --git a/bbs-go-active/site/src/public/images/avatars/124.svg b/archive/bbs-go-active/site/src/public/images/avatars/124.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/124.svg rename to archive/bbs-go-active/site/src/public/images/avatars/124.svg diff --git a/bbs-go-active/site/src/public/images/avatars/125.png b/archive/bbs-go-active/site/src/public/images/avatars/125.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/125.png rename to archive/bbs-go-active/site/src/public/images/avatars/125.png diff --git a/bbs-go-active/site/src/public/images/avatars/125.svg b/archive/bbs-go-active/site/src/public/images/avatars/125.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/125.svg rename to archive/bbs-go-active/site/src/public/images/avatars/125.svg diff --git a/bbs-go-active/site/src/public/images/avatars/126.png b/archive/bbs-go-active/site/src/public/images/avatars/126.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/126.png rename to archive/bbs-go-active/site/src/public/images/avatars/126.png diff --git a/bbs-go-active/site/src/public/images/avatars/126.svg b/archive/bbs-go-active/site/src/public/images/avatars/126.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/126.svg rename to archive/bbs-go-active/site/src/public/images/avatars/126.svg diff --git a/bbs-go-active/site/src/public/images/avatars/127.png b/archive/bbs-go-active/site/src/public/images/avatars/127.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/127.png rename to archive/bbs-go-active/site/src/public/images/avatars/127.png diff --git a/bbs-go-active/site/src/public/images/avatars/127.svg b/archive/bbs-go-active/site/src/public/images/avatars/127.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/127.svg rename to archive/bbs-go-active/site/src/public/images/avatars/127.svg diff --git a/bbs-go-active/site/src/public/images/avatars/13.png b/archive/bbs-go-active/site/src/public/images/avatars/13.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/13.png rename to archive/bbs-go-active/site/src/public/images/avatars/13.png diff --git a/bbs-go-active/site/src/public/images/avatars/13.svg b/archive/bbs-go-active/site/src/public/images/avatars/13.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/13.svg rename to archive/bbs-go-active/site/src/public/images/avatars/13.svg diff --git a/bbs-go-active/site/src/public/images/avatars/14.png b/archive/bbs-go-active/site/src/public/images/avatars/14.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/14.png rename to archive/bbs-go-active/site/src/public/images/avatars/14.png diff --git a/bbs-go-active/site/src/public/images/avatars/14.svg b/archive/bbs-go-active/site/src/public/images/avatars/14.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/14.svg rename to archive/bbs-go-active/site/src/public/images/avatars/14.svg diff --git a/bbs-go-active/site/src/public/images/avatars/15.png b/archive/bbs-go-active/site/src/public/images/avatars/15.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/15.png rename to archive/bbs-go-active/site/src/public/images/avatars/15.png diff --git a/bbs-go-active/site/src/public/images/avatars/15.svg b/archive/bbs-go-active/site/src/public/images/avatars/15.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/15.svg rename to archive/bbs-go-active/site/src/public/images/avatars/15.svg diff --git a/bbs-go-active/site/src/public/images/avatars/16.png b/archive/bbs-go-active/site/src/public/images/avatars/16.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/16.png rename to archive/bbs-go-active/site/src/public/images/avatars/16.png diff --git a/bbs-go-active/site/src/public/images/avatars/16.svg b/archive/bbs-go-active/site/src/public/images/avatars/16.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/16.svg rename to archive/bbs-go-active/site/src/public/images/avatars/16.svg diff --git a/bbs-go-active/site/src/public/images/avatars/17.png b/archive/bbs-go-active/site/src/public/images/avatars/17.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/17.png rename to archive/bbs-go-active/site/src/public/images/avatars/17.png diff --git a/bbs-go-active/site/src/public/images/avatars/17.svg b/archive/bbs-go-active/site/src/public/images/avatars/17.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/17.svg rename to archive/bbs-go-active/site/src/public/images/avatars/17.svg diff --git a/bbs-go-active/site/src/public/images/avatars/18.png b/archive/bbs-go-active/site/src/public/images/avatars/18.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/18.png rename to archive/bbs-go-active/site/src/public/images/avatars/18.png diff --git a/bbs-go-active/site/src/public/images/avatars/18.svg b/archive/bbs-go-active/site/src/public/images/avatars/18.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/18.svg rename to archive/bbs-go-active/site/src/public/images/avatars/18.svg diff --git a/bbs-go-active/site/src/public/images/avatars/19.png b/archive/bbs-go-active/site/src/public/images/avatars/19.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/19.png rename to archive/bbs-go-active/site/src/public/images/avatars/19.png diff --git a/bbs-go-active/site/src/public/images/avatars/19.svg b/archive/bbs-go-active/site/src/public/images/avatars/19.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/19.svg rename to archive/bbs-go-active/site/src/public/images/avatars/19.svg diff --git a/bbs-go-active/site/src/public/images/avatars/2.png b/archive/bbs-go-active/site/src/public/images/avatars/2.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/2.png rename to archive/bbs-go-active/site/src/public/images/avatars/2.png diff --git a/bbs-go-active/site/src/public/images/avatars/2.svg b/archive/bbs-go-active/site/src/public/images/avatars/2.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/2.svg rename to archive/bbs-go-active/site/src/public/images/avatars/2.svg diff --git a/bbs-go-active/site/src/public/images/avatars/20.png b/archive/bbs-go-active/site/src/public/images/avatars/20.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/20.png rename to archive/bbs-go-active/site/src/public/images/avatars/20.png diff --git a/bbs-go-active/site/src/public/images/avatars/20.svg b/archive/bbs-go-active/site/src/public/images/avatars/20.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/20.svg rename to archive/bbs-go-active/site/src/public/images/avatars/20.svg diff --git a/bbs-go-active/site/src/public/images/avatars/21.png b/archive/bbs-go-active/site/src/public/images/avatars/21.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/21.png rename to archive/bbs-go-active/site/src/public/images/avatars/21.png diff --git a/bbs-go-active/site/src/public/images/avatars/21.svg b/archive/bbs-go-active/site/src/public/images/avatars/21.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/21.svg rename to archive/bbs-go-active/site/src/public/images/avatars/21.svg diff --git a/bbs-go-active/site/src/public/images/avatars/22.png b/archive/bbs-go-active/site/src/public/images/avatars/22.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/22.png rename to archive/bbs-go-active/site/src/public/images/avatars/22.png diff --git a/bbs-go-active/site/src/public/images/avatars/22.svg b/archive/bbs-go-active/site/src/public/images/avatars/22.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/22.svg rename to archive/bbs-go-active/site/src/public/images/avatars/22.svg diff --git a/bbs-go-active/site/src/public/images/avatars/23.png b/archive/bbs-go-active/site/src/public/images/avatars/23.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/23.png rename to archive/bbs-go-active/site/src/public/images/avatars/23.png diff --git a/bbs-go-active/site/src/public/images/avatars/23.svg b/archive/bbs-go-active/site/src/public/images/avatars/23.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/23.svg rename to archive/bbs-go-active/site/src/public/images/avatars/23.svg diff --git a/bbs-go-active/site/src/public/images/avatars/24.png b/archive/bbs-go-active/site/src/public/images/avatars/24.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/24.png rename to archive/bbs-go-active/site/src/public/images/avatars/24.png diff --git a/bbs-go-active/site/src/public/images/avatars/24.svg b/archive/bbs-go-active/site/src/public/images/avatars/24.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/24.svg rename to archive/bbs-go-active/site/src/public/images/avatars/24.svg diff --git a/bbs-go-active/site/src/public/images/avatars/25.png b/archive/bbs-go-active/site/src/public/images/avatars/25.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/25.png rename to archive/bbs-go-active/site/src/public/images/avatars/25.png diff --git a/bbs-go-active/site/src/public/images/avatars/25.svg b/archive/bbs-go-active/site/src/public/images/avatars/25.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/25.svg rename to archive/bbs-go-active/site/src/public/images/avatars/25.svg diff --git a/bbs-go-active/site/src/public/images/avatars/26.png b/archive/bbs-go-active/site/src/public/images/avatars/26.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/26.png rename to archive/bbs-go-active/site/src/public/images/avatars/26.png diff --git a/bbs-go-active/site/src/public/images/avatars/26.svg b/archive/bbs-go-active/site/src/public/images/avatars/26.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/26.svg rename to archive/bbs-go-active/site/src/public/images/avatars/26.svg diff --git a/bbs-go-active/site/src/public/images/avatars/27.png b/archive/bbs-go-active/site/src/public/images/avatars/27.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/27.png rename to archive/bbs-go-active/site/src/public/images/avatars/27.png diff --git a/bbs-go-active/site/src/public/images/avatars/27.svg b/archive/bbs-go-active/site/src/public/images/avatars/27.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/27.svg rename to archive/bbs-go-active/site/src/public/images/avatars/27.svg diff --git a/bbs-go-active/site/src/public/images/avatars/28.png b/archive/bbs-go-active/site/src/public/images/avatars/28.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/28.png rename to archive/bbs-go-active/site/src/public/images/avatars/28.png diff --git a/bbs-go-active/site/src/public/images/avatars/28.svg b/archive/bbs-go-active/site/src/public/images/avatars/28.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/28.svg rename to archive/bbs-go-active/site/src/public/images/avatars/28.svg diff --git a/bbs-go-active/site/src/public/images/avatars/29.png b/archive/bbs-go-active/site/src/public/images/avatars/29.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/29.png rename to archive/bbs-go-active/site/src/public/images/avatars/29.png diff --git a/bbs-go-active/site/src/public/images/avatars/29.svg b/archive/bbs-go-active/site/src/public/images/avatars/29.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/29.svg rename to archive/bbs-go-active/site/src/public/images/avatars/29.svg diff --git a/bbs-go-active/site/src/public/images/avatars/3.png b/archive/bbs-go-active/site/src/public/images/avatars/3.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/3.png rename to archive/bbs-go-active/site/src/public/images/avatars/3.png diff --git a/bbs-go-active/site/src/public/images/avatars/3.svg b/archive/bbs-go-active/site/src/public/images/avatars/3.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/3.svg rename to archive/bbs-go-active/site/src/public/images/avatars/3.svg diff --git a/bbs-go-active/site/src/public/images/avatars/30.png b/archive/bbs-go-active/site/src/public/images/avatars/30.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/30.png rename to archive/bbs-go-active/site/src/public/images/avatars/30.png diff --git a/bbs-go-active/site/src/public/images/avatars/30.svg b/archive/bbs-go-active/site/src/public/images/avatars/30.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/30.svg rename to archive/bbs-go-active/site/src/public/images/avatars/30.svg diff --git a/bbs-go-active/site/src/public/images/avatars/31.png b/archive/bbs-go-active/site/src/public/images/avatars/31.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/31.png rename to archive/bbs-go-active/site/src/public/images/avatars/31.png diff --git a/bbs-go-active/site/src/public/images/avatars/31.svg b/archive/bbs-go-active/site/src/public/images/avatars/31.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/31.svg rename to archive/bbs-go-active/site/src/public/images/avatars/31.svg diff --git a/bbs-go-active/site/src/public/images/avatars/32.png b/archive/bbs-go-active/site/src/public/images/avatars/32.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/32.png rename to archive/bbs-go-active/site/src/public/images/avatars/32.png diff --git a/bbs-go-active/site/src/public/images/avatars/32.svg b/archive/bbs-go-active/site/src/public/images/avatars/32.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/32.svg rename to archive/bbs-go-active/site/src/public/images/avatars/32.svg diff --git a/bbs-go-active/site/src/public/images/avatars/33.png b/archive/bbs-go-active/site/src/public/images/avatars/33.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/33.png rename to archive/bbs-go-active/site/src/public/images/avatars/33.png diff --git a/bbs-go-active/site/src/public/images/avatars/33.svg b/archive/bbs-go-active/site/src/public/images/avatars/33.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/33.svg rename to archive/bbs-go-active/site/src/public/images/avatars/33.svg diff --git a/bbs-go-active/site/src/public/images/avatars/34.png b/archive/bbs-go-active/site/src/public/images/avatars/34.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/34.png rename to archive/bbs-go-active/site/src/public/images/avatars/34.png diff --git a/bbs-go-active/site/src/public/images/avatars/34.svg b/archive/bbs-go-active/site/src/public/images/avatars/34.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/34.svg rename to archive/bbs-go-active/site/src/public/images/avatars/34.svg diff --git a/bbs-go-active/site/src/public/images/avatars/35.png b/archive/bbs-go-active/site/src/public/images/avatars/35.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/35.png rename to archive/bbs-go-active/site/src/public/images/avatars/35.png diff --git a/bbs-go-active/site/src/public/images/avatars/35.svg b/archive/bbs-go-active/site/src/public/images/avatars/35.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/35.svg rename to archive/bbs-go-active/site/src/public/images/avatars/35.svg diff --git a/bbs-go-active/site/src/public/images/avatars/36.png b/archive/bbs-go-active/site/src/public/images/avatars/36.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/36.png rename to archive/bbs-go-active/site/src/public/images/avatars/36.png diff --git a/bbs-go-active/site/src/public/images/avatars/36.svg b/archive/bbs-go-active/site/src/public/images/avatars/36.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/36.svg rename to archive/bbs-go-active/site/src/public/images/avatars/36.svg diff --git a/bbs-go-active/site/src/public/images/avatars/37.png b/archive/bbs-go-active/site/src/public/images/avatars/37.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/37.png rename to archive/bbs-go-active/site/src/public/images/avatars/37.png diff --git a/bbs-go-active/site/src/public/images/avatars/37.svg b/archive/bbs-go-active/site/src/public/images/avatars/37.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/37.svg rename to archive/bbs-go-active/site/src/public/images/avatars/37.svg diff --git a/bbs-go-active/site/src/public/images/avatars/38.png b/archive/bbs-go-active/site/src/public/images/avatars/38.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/38.png rename to archive/bbs-go-active/site/src/public/images/avatars/38.png diff --git a/bbs-go-active/site/src/public/images/avatars/38.svg b/archive/bbs-go-active/site/src/public/images/avatars/38.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/38.svg rename to archive/bbs-go-active/site/src/public/images/avatars/38.svg diff --git a/bbs-go-active/site/src/public/images/avatars/39.png b/archive/bbs-go-active/site/src/public/images/avatars/39.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/39.png rename to archive/bbs-go-active/site/src/public/images/avatars/39.png diff --git a/bbs-go-active/site/src/public/images/avatars/39.svg b/archive/bbs-go-active/site/src/public/images/avatars/39.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/39.svg rename to archive/bbs-go-active/site/src/public/images/avatars/39.svg diff --git a/bbs-go-active/site/src/public/images/avatars/4.png b/archive/bbs-go-active/site/src/public/images/avatars/4.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/4.png rename to archive/bbs-go-active/site/src/public/images/avatars/4.png diff --git a/bbs-go-active/site/src/public/images/avatars/4.svg b/archive/bbs-go-active/site/src/public/images/avatars/4.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/4.svg rename to archive/bbs-go-active/site/src/public/images/avatars/4.svg diff --git a/bbs-go-active/site/src/public/images/avatars/40.png b/archive/bbs-go-active/site/src/public/images/avatars/40.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/40.png rename to archive/bbs-go-active/site/src/public/images/avatars/40.png diff --git a/bbs-go-active/site/src/public/images/avatars/40.svg b/archive/bbs-go-active/site/src/public/images/avatars/40.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/40.svg rename to archive/bbs-go-active/site/src/public/images/avatars/40.svg diff --git a/bbs-go-active/site/src/public/images/avatars/41.png b/archive/bbs-go-active/site/src/public/images/avatars/41.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/41.png rename to archive/bbs-go-active/site/src/public/images/avatars/41.png diff --git a/bbs-go-active/site/src/public/images/avatars/41.svg b/archive/bbs-go-active/site/src/public/images/avatars/41.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/41.svg rename to archive/bbs-go-active/site/src/public/images/avatars/41.svg diff --git a/bbs-go-active/site/src/public/images/avatars/42.png b/archive/bbs-go-active/site/src/public/images/avatars/42.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/42.png rename to archive/bbs-go-active/site/src/public/images/avatars/42.png diff --git a/bbs-go-active/site/src/public/images/avatars/42.svg b/archive/bbs-go-active/site/src/public/images/avatars/42.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/42.svg rename to archive/bbs-go-active/site/src/public/images/avatars/42.svg diff --git a/bbs-go-active/site/src/public/images/avatars/43.png b/archive/bbs-go-active/site/src/public/images/avatars/43.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/43.png rename to archive/bbs-go-active/site/src/public/images/avatars/43.png diff --git a/bbs-go-active/site/src/public/images/avatars/43.svg b/archive/bbs-go-active/site/src/public/images/avatars/43.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/43.svg rename to archive/bbs-go-active/site/src/public/images/avatars/43.svg diff --git a/bbs-go-active/site/src/public/images/avatars/44.png b/archive/bbs-go-active/site/src/public/images/avatars/44.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/44.png rename to archive/bbs-go-active/site/src/public/images/avatars/44.png diff --git a/bbs-go-active/site/src/public/images/avatars/44.svg b/archive/bbs-go-active/site/src/public/images/avatars/44.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/44.svg rename to archive/bbs-go-active/site/src/public/images/avatars/44.svg diff --git a/bbs-go-active/site/src/public/images/avatars/45.png b/archive/bbs-go-active/site/src/public/images/avatars/45.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/45.png rename to archive/bbs-go-active/site/src/public/images/avatars/45.png diff --git a/bbs-go-active/site/src/public/images/avatars/45.svg b/archive/bbs-go-active/site/src/public/images/avatars/45.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/45.svg rename to archive/bbs-go-active/site/src/public/images/avatars/45.svg diff --git a/bbs-go-active/site/src/public/images/avatars/46.png b/archive/bbs-go-active/site/src/public/images/avatars/46.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/46.png rename to archive/bbs-go-active/site/src/public/images/avatars/46.png diff --git a/bbs-go-active/site/src/public/images/avatars/46.svg b/archive/bbs-go-active/site/src/public/images/avatars/46.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/46.svg rename to archive/bbs-go-active/site/src/public/images/avatars/46.svg diff --git a/bbs-go-active/site/src/public/images/avatars/47.png b/archive/bbs-go-active/site/src/public/images/avatars/47.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/47.png rename to archive/bbs-go-active/site/src/public/images/avatars/47.png diff --git a/bbs-go-active/site/src/public/images/avatars/47.svg b/archive/bbs-go-active/site/src/public/images/avatars/47.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/47.svg rename to archive/bbs-go-active/site/src/public/images/avatars/47.svg diff --git a/bbs-go-active/site/src/public/images/avatars/48.png b/archive/bbs-go-active/site/src/public/images/avatars/48.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/48.png rename to archive/bbs-go-active/site/src/public/images/avatars/48.png diff --git a/bbs-go-active/site/src/public/images/avatars/48.svg b/archive/bbs-go-active/site/src/public/images/avatars/48.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/48.svg rename to archive/bbs-go-active/site/src/public/images/avatars/48.svg diff --git a/bbs-go-active/site/src/public/images/avatars/49.png b/archive/bbs-go-active/site/src/public/images/avatars/49.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/49.png rename to archive/bbs-go-active/site/src/public/images/avatars/49.png diff --git a/bbs-go-active/site/src/public/images/avatars/49.svg b/archive/bbs-go-active/site/src/public/images/avatars/49.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/49.svg rename to archive/bbs-go-active/site/src/public/images/avatars/49.svg diff --git a/bbs-go-active/site/src/public/images/avatars/5.png b/archive/bbs-go-active/site/src/public/images/avatars/5.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/5.png rename to archive/bbs-go-active/site/src/public/images/avatars/5.png diff --git a/bbs-go-active/site/src/public/images/avatars/5.svg b/archive/bbs-go-active/site/src/public/images/avatars/5.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/5.svg rename to archive/bbs-go-active/site/src/public/images/avatars/5.svg diff --git a/bbs-go-active/site/src/public/images/avatars/50.png b/archive/bbs-go-active/site/src/public/images/avatars/50.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/50.png rename to archive/bbs-go-active/site/src/public/images/avatars/50.png diff --git a/bbs-go-active/site/src/public/images/avatars/50.svg b/archive/bbs-go-active/site/src/public/images/avatars/50.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/50.svg rename to archive/bbs-go-active/site/src/public/images/avatars/50.svg diff --git a/bbs-go-active/site/src/public/images/avatars/51.png b/archive/bbs-go-active/site/src/public/images/avatars/51.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/51.png rename to archive/bbs-go-active/site/src/public/images/avatars/51.png diff --git a/bbs-go-active/site/src/public/images/avatars/51.svg b/archive/bbs-go-active/site/src/public/images/avatars/51.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/51.svg rename to archive/bbs-go-active/site/src/public/images/avatars/51.svg diff --git a/bbs-go-active/site/src/public/images/avatars/52.png b/archive/bbs-go-active/site/src/public/images/avatars/52.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/52.png rename to archive/bbs-go-active/site/src/public/images/avatars/52.png diff --git a/bbs-go-active/site/src/public/images/avatars/52.svg b/archive/bbs-go-active/site/src/public/images/avatars/52.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/52.svg rename to archive/bbs-go-active/site/src/public/images/avatars/52.svg diff --git a/bbs-go-active/site/src/public/images/avatars/53.png b/archive/bbs-go-active/site/src/public/images/avatars/53.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/53.png rename to archive/bbs-go-active/site/src/public/images/avatars/53.png diff --git a/bbs-go-active/site/src/public/images/avatars/53.svg b/archive/bbs-go-active/site/src/public/images/avatars/53.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/53.svg rename to archive/bbs-go-active/site/src/public/images/avatars/53.svg diff --git a/bbs-go-active/site/src/public/images/avatars/54.png b/archive/bbs-go-active/site/src/public/images/avatars/54.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/54.png rename to archive/bbs-go-active/site/src/public/images/avatars/54.png diff --git a/bbs-go-active/site/src/public/images/avatars/54.svg b/archive/bbs-go-active/site/src/public/images/avatars/54.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/54.svg rename to archive/bbs-go-active/site/src/public/images/avatars/54.svg diff --git a/bbs-go-active/site/src/public/images/avatars/55.png b/archive/bbs-go-active/site/src/public/images/avatars/55.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/55.png rename to archive/bbs-go-active/site/src/public/images/avatars/55.png diff --git a/bbs-go-active/site/src/public/images/avatars/55.svg b/archive/bbs-go-active/site/src/public/images/avatars/55.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/55.svg rename to archive/bbs-go-active/site/src/public/images/avatars/55.svg diff --git a/bbs-go-active/site/src/public/images/avatars/56.png b/archive/bbs-go-active/site/src/public/images/avatars/56.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/56.png rename to archive/bbs-go-active/site/src/public/images/avatars/56.png diff --git a/bbs-go-active/site/src/public/images/avatars/56.svg b/archive/bbs-go-active/site/src/public/images/avatars/56.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/56.svg rename to archive/bbs-go-active/site/src/public/images/avatars/56.svg diff --git a/bbs-go-active/site/src/public/images/avatars/57.png b/archive/bbs-go-active/site/src/public/images/avatars/57.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/57.png rename to archive/bbs-go-active/site/src/public/images/avatars/57.png diff --git a/bbs-go-active/site/src/public/images/avatars/57.svg b/archive/bbs-go-active/site/src/public/images/avatars/57.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/57.svg rename to archive/bbs-go-active/site/src/public/images/avatars/57.svg diff --git a/bbs-go-active/site/src/public/images/avatars/58.png b/archive/bbs-go-active/site/src/public/images/avatars/58.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/58.png rename to archive/bbs-go-active/site/src/public/images/avatars/58.png diff --git a/bbs-go-active/site/src/public/images/avatars/58.svg b/archive/bbs-go-active/site/src/public/images/avatars/58.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/58.svg rename to archive/bbs-go-active/site/src/public/images/avatars/58.svg diff --git a/bbs-go-active/site/src/public/images/avatars/59.png b/archive/bbs-go-active/site/src/public/images/avatars/59.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/59.png rename to archive/bbs-go-active/site/src/public/images/avatars/59.png diff --git a/bbs-go-active/site/src/public/images/avatars/59.svg b/archive/bbs-go-active/site/src/public/images/avatars/59.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/59.svg rename to archive/bbs-go-active/site/src/public/images/avatars/59.svg diff --git a/bbs-go-active/site/src/public/images/avatars/6.png b/archive/bbs-go-active/site/src/public/images/avatars/6.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/6.png rename to archive/bbs-go-active/site/src/public/images/avatars/6.png diff --git a/bbs-go-active/site/src/public/images/avatars/6.svg b/archive/bbs-go-active/site/src/public/images/avatars/6.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/6.svg rename to archive/bbs-go-active/site/src/public/images/avatars/6.svg diff --git a/bbs-go-active/site/src/public/images/avatars/60.png b/archive/bbs-go-active/site/src/public/images/avatars/60.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/60.png rename to archive/bbs-go-active/site/src/public/images/avatars/60.png diff --git a/bbs-go-active/site/src/public/images/avatars/60.svg b/archive/bbs-go-active/site/src/public/images/avatars/60.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/60.svg rename to archive/bbs-go-active/site/src/public/images/avatars/60.svg diff --git a/bbs-go-active/site/src/public/images/avatars/61.png b/archive/bbs-go-active/site/src/public/images/avatars/61.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/61.png rename to archive/bbs-go-active/site/src/public/images/avatars/61.png diff --git a/bbs-go-active/site/src/public/images/avatars/61.svg b/archive/bbs-go-active/site/src/public/images/avatars/61.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/61.svg rename to archive/bbs-go-active/site/src/public/images/avatars/61.svg diff --git a/bbs-go-active/site/src/public/images/avatars/62.png b/archive/bbs-go-active/site/src/public/images/avatars/62.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/62.png rename to archive/bbs-go-active/site/src/public/images/avatars/62.png diff --git a/bbs-go-active/site/src/public/images/avatars/62.svg b/archive/bbs-go-active/site/src/public/images/avatars/62.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/62.svg rename to archive/bbs-go-active/site/src/public/images/avatars/62.svg diff --git a/bbs-go-active/site/src/public/images/avatars/63.png b/archive/bbs-go-active/site/src/public/images/avatars/63.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/63.png rename to archive/bbs-go-active/site/src/public/images/avatars/63.png diff --git a/bbs-go-active/site/src/public/images/avatars/63.svg b/archive/bbs-go-active/site/src/public/images/avatars/63.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/63.svg rename to archive/bbs-go-active/site/src/public/images/avatars/63.svg diff --git a/bbs-go-active/site/src/public/images/avatars/64.png b/archive/bbs-go-active/site/src/public/images/avatars/64.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/64.png rename to archive/bbs-go-active/site/src/public/images/avatars/64.png diff --git a/bbs-go-active/site/src/public/images/avatars/64.svg b/archive/bbs-go-active/site/src/public/images/avatars/64.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/64.svg rename to archive/bbs-go-active/site/src/public/images/avatars/64.svg diff --git a/bbs-go-active/site/src/public/images/avatars/65.png b/archive/bbs-go-active/site/src/public/images/avatars/65.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/65.png rename to archive/bbs-go-active/site/src/public/images/avatars/65.png diff --git a/bbs-go-active/site/src/public/images/avatars/65.svg b/archive/bbs-go-active/site/src/public/images/avatars/65.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/65.svg rename to archive/bbs-go-active/site/src/public/images/avatars/65.svg diff --git a/bbs-go-active/site/src/public/images/avatars/66.png b/archive/bbs-go-active/site/src/public/images/avatars/66.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/66.png rename to archive/bbs-go-active/site/src/public/images/avatars/66.png diff --git a/bbs-go-active/site/src/public/images/avatars/66.svg b/archive/bbs-go-active/site/src/public/images/avatars/66.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/66.svg rename to archive/bbs-go-active/site/src/public/images/avatars/66.svg diff --git a/bbs-go-active/site/src/public/images/avatars/67.png b/archive/bbs-go-active/site/src/public/images/avatars/67.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/67.png rename to archive/bbs-go-active/site/src/public/images/avatars/67.png diff --git a/bbs-go-active/site/src/public/images/avatars/67.svg b/archive/bbs-go-active/site/src/public/images/avatars/67.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/67.svg rename to archive/bbs-go-active/site/src/public/images/avatars/67.svg diff --git a/bbs-go-active/site/src/public/images/avatars/68.png b/archive/bbs-go-active/site/src/public/images/avatars/68.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/68.png rename to archive/bbs-go-active/site/src/public/images/avatars/68.png diff --git a/bbs-go-active/site/src/public/images/avatars/68.svg b/archive/bbs-go-active/site/src/public/images/avatars/68.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/68.svg rename to archive/bbs-go-active/site/src/public/images/avatars/68.svg diff --git a/bbs-go-active/site/src/public/images/avatars/69.png b/archive/bbs-go-active/site/src/public/images/avatars/69.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/69.png rename to archive/bbs-go-active/site/src/public/images/avatars/69.png diff --git a/bbs-go-active/site/src/public/images/avatars/69.svg b/archive/bbs-go-active/site/src/public/images/avatars/69.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/69.svg rename to archive/bbs-go-active/site/src/public/images/avatars/69.svg diff --git a/bbs-go-active/site/src/public/images/avatars/7.png b/archive/bbs-go-active/site/src/public/images/avatars/7.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/7.png rename to archive/bbs-go-active/site/src/public/images/avatars/7.png diff --git a/bbs-go-active/site/src/public/images/avatars/7.svg b/archive/bbs-go-active/site/src/public/images/avatars/7.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/7.svg rename to archive/bbs-go-active/site/src/public/images/avatars/7.svg diff --git a/bbs-go-active/site/src/public/images/avatars/70.png b/archive/bbs-go-active/site/src/public/images/avatars/70.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/70.png rename to archive/bbs-go-active/site/src/public/images/avatars/70.png diff --git a/bbs-go-active/site/src/public/images/avatars/70.svg b/archive/bbs-go-active/site/src/public/images/avatars/70.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/70.svg rename to archive/bbs-go-active/site/src/public/images/avatars/70.svg diff --git a/bbs-go-active/site/src/public/images/avatars/71.png b/archive/bbs-go-active/site/src/public/images/avatars/71.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/71.png rename to archive/bbs-go-active/site/src/public/images/avatars/71.png diff --git a/bbs-go-active/site/src/public/images/avatars/71.svg b/archive/bbs-go-active/site/src/public/images/avatars/71.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/71.svg rename to archive/bbs-go-active/site/src/public/images/avatars/71.svg diff --git a/bbs-go-active/site/src/public/images/avatars/72.png b/archive/bbs-go-active/site/src/public/images/avatars/72.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/72.png rename to archive/bbs-go-active/site/src/public/images/avatars/72.png diff --git a/bbs-go-active/site/src/public/images/avatars/72.svg b/archive/bbs-go-active/site/src/public/images/avatars/72.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/72.svg rename to archive/bbs-go-active/site/src/public/images/avatars/72.svg diff --git a/bbs-go-active/site/src/public/images/avatars/73.png b/archive/bbs-go-active/site/src/public/images/avatars/73.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/73.png rename to archive/bbs-go-active/site/src/public/images/avatars/73.png diff --git a/bbs-go-active/site/src/public/images/avatars/73.svg b/archive/bbs-go-active/site/src/public/images/avatars/73.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/73.svg rename to archive/bbs-go-active/site/src/public/images/avatars/73.svg diff --git a/bbs-go-active/site/src/public/images/avatars/74.png b/archive/bbs-go-active/site/src/public/images/avatars/74.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/74.png rename to archive/bbs-go-active/site/src/public/images/avatars/74.png diff --git a/bbs-go-active/site/src/public/images/avatars/74.svg b/archive/bbs-go-active/site/src/public/images/avatars/74.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/74.svg rename to archive/bbs-go-active/site/src/public/images/avatars/74.svg diff --git a/bbs-go-active/site/src/public/images/avatars/75.png b/archive/bbs-go-active/site/src/public/images/avatars/75.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/75.png rename to archive/bbs-go-active/site/src/public/images/avatars/75.png diff --git a/bbs-go-active/site/src/public/images/avatars/75.svg b/archive/bbs-go-active/site/src/public/images/avatars/75.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/75.svg rename to archive/bbs-go-active/site/src/public/images/avatars/75.svg diff --git a/bbs-go-active/site/src/public/images/avatars/76.png b/archive/bbs-go-active/site/src/public/images/avatars/76.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/76.png rename to archive/bbs-go-active/site/src/public/images/avatars/76.png diff --git a/bbs-go-active/site/src/public/images/avatars/76.svg b/archive/bbs-go-active/site/src/public/images/avatars/76.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/76.svg rename to archive/bbs-go-active/site/src/public/images/avatars/76.svg diff --git a/bbs-go-active/site/src/public/images/avatars/77.png b/archive/bbs-go-active/site/src/public/images/avatars/77.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/77.png rename to archive/bbs-go-active/site/src/public/images/avatars/77.png diff --git a/bbs-go-active/site/src/public/images/avatars/77.svg b/archive/bbs-go-active/site/src/public/images/avatars/77.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/77.svg rename to archive/bbs-go-active/site/src/public/images/avatars/77.svg diff --git a/bbs-go-active/site/src/public/images/avatars/78.png b/archive/bbs-go-active/site/src/public/images/avatars/78.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/78.png rename to archive/bbs-go-active/site/src/public/images/avatars/78.png diff --git a/bbs-go-active/site/src/public/images/avatars/78.svg b/archive/bbs-go-active/site/src/public/images/avatars/78.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/78.svg rename to archive/bbs-go-active/site/src/public/images/avatars/78.svg diff --git a/bbs-go-active/site/src/public/images/avatars/79.png b/archive/bbs-go-active/site/src/public/images/avatars/79.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/79.png rename to archive/bbs-go-active/site/src/public/images/avatars/79.png diff --git a/bbs-go-active/site/src/public/images/avatars/79.svg b/archive/bbs-go-active/site/src/public/images/avatars/79.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/79.svg rename to archive/bbs-go-active/site/src/public/images/avatars/79.svg diff --git a/bbs-go-active/site/src/public/images/avatars/8.png b/archive/bbs-go-active/site/src/public/images/avatars/8.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/8.png rename to archive/bbs-go-active/site/src/public/images/avatars/8.png diff --git a/bbs-go-active/site/src/public/images/avatars/8.svg b/archive/bbs-go-active/site/src/public/images/avatars/8.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/8.svg rename to archive/bbs-go-active/site/src/public/images/avatars/8.svg diff --git a/bbs-go-active/site/src/public/images/avatars/80.png b/archive/bbs-go-active/site/src/public/images/avatars/80.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/80.png rename to archive/bbs-go-active/site/src/public/images/avatars/80.png diff --git a/bbs-go-active/site/src/public/images/avatars/80.svg b/archive/bbs-go-active/site/src/public/images/avatars/80.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/80.svg rename to archive/bbs-go-active/site/src/public/images/avatars/80.svg diff --git a/bbs-go-active/site/src/public/images/avatars/81.png b/archive/bbs-go-active/site/src/public/images/avatars/81.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/81.png rename to archive/bbs-go-active/site/src/public/images/avatars/81.png diff --git a/bbs-go-active/site/src/public/images/avatars/81.svg b/archive/bbs-go-active/site/src/public/images/avatars/81.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/81.svg rename to archive/bbs-go-active/site/src/public/images/avatars/81.svg diff --git a/bbs-go-active/site/src/public/images/avatars/82.png b/archive/bbs-go-active/site/src/public/images/avatars/82.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/82.png rename to archive/bbs-go-active/site/src/public/images/avatars/82.png diff --git a/bbs-go-active/site/src/public/images/avatars/82.svg b/archive/bbs-go-active/site/src/public/images/avatars/82.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/82.svg rename to archive/bbs-go-active/site/src/public/images/avatars/82.svg diff --git a/bbs-go-active/site/src/public/images/avatars/83.png b/archive/bbs-go-active/site/src/public/images/avatars/83.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/83.png rename to archive/bbs-go-active/site/src/public/images/avatars/83.png diff --git a/bbs-go-active/site/src/public/images/avatars/83.svg b/archive/bbs-go-active/site/src/public/images/avatars/83.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/83.svg rename to archive/bbs-go-active/site/src/public/images/avatars/83.svg diff --git a/bbs-go-active/site/src/public/images/avatars/84.png b/archive/bbs-go-active/site/src/public/images/avatars/84.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/84.png rename to archive/bbs-go-active/site/src/public/images/avatars/84.png diff --git a/bbs-go-active/site/src/public/images/avatars/84.svg b/archive/bbs-go-active/site/src/public/images/avatars/84.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/84.svg rename to archive/bbs-go-active/site/src/public/images/avatars/84.svg diff --git a/bbs-go-active/site/src/public/images/avatars/85.png b/archive/bbs-go-active/site/src/public/images/avatars/85.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/85.png rename to archive/bbs-go-active/site/src/public/images/avatars/85.png diff --git a/bbs-go-active/site/src/public/images/avatars/85.svg b/archive/bbs-go-active/site/src/public/images/avatars/85.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/85.svg rename to archive/bbs-go-active/site/src/public/images/avatars/85.svg diff --git a/bbs-go-active/site/src/public/images/avatars/86.png b/archive/bbs-go-active/site/src/public/images/avatars/86.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/86.png rename to archive/bbs-go-active/site/src/public/images/avatars/86.png diff --git a/bbs-go-active/site/src/public/images/avatars/86.svg b/archive/bbs-go-active/site/src/public/images/avatars/86.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/86.svg rename to archive/bbs-go-active/site/src/public/images/avatars/86.svg diff --git a/bbs-go-active/site/src/public/images/avatars/87.png b/archive/bbs-go-active/site/src/public/images/avatars/87.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/87.png rename to archive/bbs-go-active/site/src/public/images/avatars/87.png diff --git a/bbs-go-active/site/src/public/images/avatars/87.svg b/archive/bbs-go-active/site/src/public/images/avatars/87.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/87.svg rename to archive/bbs-go-active/site/src/public/images/avatars/87.svg diff --git a/bbs-go-active/site/src/public/images/avatars/88.png b/archive/bbs-go-active/site/src/public/images/avatars/88.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/88.png rename to archive/bbs-go-active/site/src/public/images/avatars/88.png diff --git a/bbs-go-active/site/src/public/images/avatars/88.svg b/archive/bbs-go-active/site/src/public/images/avatars/88.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/88.svg rename to archive/bbs-go-active/site/src/public/images/avatars/88.svg diff --git a/bbs-go-active/site/src/public/images/avatars/89.png b/archive/bbs-go-active/site/src/public/images/avatars/89.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/89.png rename to archive/bbs-go-active/site/src/public/images/avatars/89.png diff --git a/bbs-go-active/site/src/public/images/avatars/89.svg b/archive/bbs-go-active/site/src/public/images/avatars/89.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/89.svg rename to archive/bbs-go-active/site/src/public/images/avatars/89.svg diff --git a/bbs-go-active/site/src/public/images/avatars/9.png b/archive/bbs-go-active/site/src/public/images/avatars/9.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/9.png rename to archive/bbs-go-active/site/src/public/images/avatars/9.png diff --git a/bbs-go-active/site/src/public/images/avatars/9.svg b/archive/bbs-go-active/site/src/public/images/avatars/9.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/9.svg rename to archive/bbs-go-active/site/src/public/images/avatars/9.svg diff --git a/bbs-go-active/site/src/public/images/avatars/90.png b/archive/bbs-go-active/site/src/public/images/avatars/90.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/90.png rename to archive/bbs-go-active/site/src/public/images/avatars/90.png diff --git a/bbs-go-active/site/src/public/images/avatars/90.svg b/archive/bbs-go-active/site/src/public/images/avatars/90.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/90.svg rename to archive/bbs-go-active/site/src/public/images/avatars/90.svg diff --git a/bbs-go-active/site/src/public/images/avatars/91.png b/archive/bbs-go-active/site/src/public/images/avatars/91.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/91.png rename to archive/bbs-go-active/site/src/public/images/avatars/91.png diff --git a/bbs-go-active/site/src/public/images/avatars/91.svg b/archive/bbs-go-active/site/src/public/images/avatars/91.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/91.svg rename to archive/bbs-go-active/site/src/public/images/avatars/91.svg diff --git a/bbs-go-active/site/src/public/images/avatars/92.png b/archive/bbs-go-active/site/src/public/images/avatars/92.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/92.png rename to archive/bbs-go-active/site/src/public/images/avatars/92.png diff --git a/bbs-go-active/site/src/public/images/avatars/92.svg b/archive/bbs-go-active/site/src/public/images/avatars/92.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/92.svg rename to archive/bbs-go-active/site/src/public/images/avatars/92.svg diff --git a/bbs-go-active/site/src/public/images/avatars/93.png b/archive/bbs-go-active/site/src/public/images/avatars/93.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/93.png rename to archive/bbs-go-active/site/src/public/images/avatars/93.png diff --git a/bbs-go-active/site/src/public/images/avatars/93.svg b/archive/bbs-go-active/site/src/public/images/avatars/93.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/93.svg rename to archive/bbs-go-active/site/src/public/images/avatars/93.svg diff --git a/bbs-go-active/site/src/public/images/avatars/94.png b/archive/bbs-go-active/site/src/public/images/avatars/94.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/94.png rename to archive/bbs-go-active/site/src/public/images/avatars/94.png diff --git a/bbs-go-active/site/src/public/images/avatars/94.svg b/archive/bbs-go-active/site/src/public/images/avatars/94.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/94.svg rename to archive/bbs-go-active/site/src/public/images/avatars/94.svg diff --git a/bbs-go-active/site/src/public/images/avatars/95.png b/archive/bbs-go-active/site/src/public/images/avatars/95.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/95.png rename to archive/bbs-go-active/site/src/public/images/avatars/95.png diff --git a/bbs-go-active/site/src/public/images/avatars/95.svg b/archive/bbs-go-active/site/src/public/images/avatars/95.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/95.svg rename to archive/bbs-go-active/site/src/public/images/avatars/95.svg diff --git a/bbs-go-active/site/src/public/images/avatars/96.png b/archive/bbs-go-active/site/src/public/images/avatars/96.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/96.png rename to archive/bbs-go-active/site/src/public/images/avatars/96.png diff --git a/bbs-go-active/site/src/public/images/avatars/96.svg b/archive/bbs-go-active/site/src/public/images/avatars/96.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/96.svg rename to archive/bbs-go-active/site/src/public/images/avatars/96.svg diff --git a/bbs-go-active/site/src/public/images/avatars/97.png b/archive/bbs-go-active/site/src/public/images/avatars/97.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/97.png rename to archive/bbs-go-active/site/src/public/images/avatars/97.png diff --git a/bbs-go-active/site/src/public/images/avatars/97.svg b/archive/bbs-go-active/site/src/public/images/avatars/97.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/97.svg rename to archive/bbs-go-active/site/src/public/images/avatars/97.svg diff --git a/bbs-go-active/site/src/public/images/avatars/98.png b/archive/bbs-go-active/site/src/public/images/avatars/98.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/98.png rename to archive/bbs-go-active/site/src/public/images/avatars/98.png diff --git a/bbs-go-active/site/src/public/images/avatars/98.svg b/archive/bbs-go-active/site/src/public/images/avatars/98.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/98.svg rename to archive/bbs-go-active/site/src/public/images/avatars/98.svg diff --git a/bbs-go-active/site/src/public/images/avatars/99.png b/archive/bbs-go-active/site/src/public/images/avatars/99.png similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/99.png rename to archive/bbs-go-active/site/src/public/images/avatars/99.png diff --git a/bbs-go-active/site/src/public/images/avatars/99.svg b/archive/bbs-go-active/site/src/public/images/avatars/99.svg similarity index 100% rename from bbs-go-active/site/src/public/images/avatars/99.svg rename to archive/bbs-go-active/site/src/public/images/avatars/99.svg diff --git a/bbs-go-active/site/src/public/robots.txt b/archive/bbs-go-active/site/src/public/robots.txt similarity index 100% rename from bbs-go-active/site/src/public/robots.txt rename to archive/bbs-go-active/site/src/public/robots.txt diff --git a/bbs-go-active/site/src/server/middleware/index.ts b/archive/bbs-go-active/site/src/server/middleware/index.ts similarity index 100% rename from bbs-go-active/site/src/server/middleware/index.ts rename to archive/bbs-go-active/site/src/server/middleware/index.ts diff --git a/bbs-go-active/site/src/stores/config.js b/archive/bbs-go-active/site/src/stores/config.js similarity index 100% rename from bbs-go-active/site/src/stores/config.js rename to archive/bbs-go-active/site/src/stores/config.js diff --git a/bbs-go-active/site/src/stores/env.ts b/archive/bbs-go-active/site/src/stores/env.ts similarity index 100% rename from bbs-go-active/site/src/stores/env.ts rename to archive/bbs-go-active/site/src/stores/env.ts diff --git a/bbs-go-active/site/src/stores/user.js b/archive/bbs-go-active/site/src/stores/user.js similarity index 100% rename from bbs-go-active/site/src/stores/user.js rename to archive/bbs-go-active/site/src/stores/user.js diff --git a/bbs-go-active/site/tsconfig.json b/archive/bbs-go-active/site/tsconfig.json similarity index 100% rename from bbs-go-active/site/tsconfig.json rename to archive/bbs-go-active/site/tsconfig.json diff --git a/bbs-go-active/start.sh b/archive/bbs-go-active/start.sh similarity index 100% rename from bbs-go-active/start.sh rename to archive/bbs-go-active/start.sh diff --git a/bbs-go-active/vetur.config.js b/archive/bbs-go-active/vetur.config.js similarity index 100% rename from bbs-go-active/vetur.config.js rename to archive/bbs-go-active/vetur.config.js diff --git a/bbs-go/.dockerignore b/archive/bbs-go/.dockerignore similarity index 100% rename from bbs-go/.dockerignore rename to archive/bbs-go/.dockerignore diff --git a/bbs-go/.github/workflows/bbs-go-admin.yml b/archive/bbs-go/.github/workflows/bbs-go-admin.yml similarity index 100% rename from bbs-go/.github/workflows/bbs-go-admin.yml rename to archive/bbs-go/.github/workflows/bbs-go-admin.yml diff --git a/bbs-go/.github/workflows/bbs-go-docker.yml b/archive/bbs-go/.github/workflows/bbs-go-docker.yml similarity index 100% rename from bbs-go/.github/workflows/bbs-go-docker.yml rename to archive/bbs-go/.github/workflows/bbs-go-docker.yml diff --git a/bbs-go/.github/workflows/bbs-go-server.yml b/archive/bbs-go/.github/workflows/bbs-go-server.yml similarity index 94% rename from bbs-go/.github/workflows/bbs-go-server.yml rename to archive/bbs-go/.github/workflows/bbs-go-server.yml index 7806d84..744d0fd 100644 --- a/bbs-go/.github/workflows/bbs-go-server.yml +++ b/archive/bbs-go/.github/workflows/bbs-go-server.yml @@ -1,26 +1,26 @@ -name: bbs-go-server - -on: [ push ] - -jobs: - - build: - name: Build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Set up Go - uses: actions/setup-go@v2 - with: - go-version: 1.21 - - - name: Install dependencies - working-directory: ./server - run: | - go mod download - - - name: Build - working-directory: ./server - run: | - make build +name: bbs-go-server + +on: [ push ] + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.21 + + - name: Install dependencies + working-directory: ./server + run: | + go mod download + + - name: Build + working-directory: ./server + run: | + make build diff --git a/bbs-go-active/.github/workflows/bbs-go-site.yml b/archive/bbs-go/.github/workflows/bbs-go-site.yml similarity index 95% rename from bbs-go-active/.github/workflows/bbs-go-site.yml rename to archive/bbs-go/.github/workflows/bbs-go-site.yml index 00d72b9..efe2d79 100644 --- a/bbs-go-active/.github/workflows/bbs-go-site.yml +++ b/archive/bbs-go/.github/workflows/bbs-go-site.yml @@ -1,32 +1,32 @@ -name: bbs-go-site - -on: [ push ] - -jobs: - build: - - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [ 20.x ] - - steps: - - uses: actions/checkout@v3 - - uses: pnpm/action-setup@v3 - with: - version: 8 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: "pnpm" - cache-dependency-path: site/pnpm-lock.yaml - - name: Install dependencies - working-directory: ./site - run: | - pnpm install - - name: Build - working-directory: ./site - run: | +name: bbs-go-site + +on: [ push ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [ 20.x ] + + steps: + - uses: actions/checkout@v3 + - uses: pnpm/action-setup@v3 + with: + version: 8 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: "pnpm" + cache-dependency-path: site/pnpm-lock.yaml + - name: Install dependencies + working-directory: ./site + run: | + pnpm install + - name: Build + working-directory: ./site + run: | pnpm build \ No newline at end of file diff --git a/bbs-go-active/.gitignore b/archive/bbs-go/.gitignore similarity index 92% rename from bbs-go-active/.gitignore rename to archive/bbs-go/.gitignore index 1b7f072..92904c5 100644 --- a/bbs-go-active/.gitignore +++ b/archive/bbs-go/.gitignore @@ -1,7 +1,7 @@ -.idea -dist -*.log -.DS_Store -node_modules -.nuxt +.idea +dist +*.log +.DS_Store +node_modules +.nuxt .docker-compose/mysql/data \ No newline at end of file diff --git a/bbs-go/Dockerfile b/archive/bbs-go/Dockerfile similarity index 100% rename from bbs-go/Dockerfile rename to archive/bbs-go/Dockerfile diff --git a/bbs-go/LICENSE b/archive/bbs-go/LICENSE similarity index 98% rename from bbs-go/LICENSE rename to archive/bbs-go/LICENSE index 3877ae0..f288702 100644 --- a/bbs-go/LICENSE +++ b/archive/bbs-go/LICENSE @@ -1,674 +1,674 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/bbs-go/README.md b/archive/bbs-go/README.md similarity index 97% rename from bbs-go/README.md rename to archive/bbs-go/README.md index c6a5409..c4481cb 100644 --- a/bbs-go/README.md +++ b/archive/bbs-go/README.md @@ -1,85 +1,85 @@ -## 项目地址 - -- 演示站:[https://bbs.bbs-go.com](https://bbs.bbs-go.com) -- 文档地址:[https://bbs-go.com](https://bbs-go.com) -- 问题反馈: [https://mlog.club/topics/node/3](https://mlog.club/topics/node/3) -- Github: [https://github.com/mlogclub/bbs-go](https://github.com/mlogclub/bbs-go) -- Gitee: [https://gitee.com/mlogclub/bbs-go](https://gitee.com/mlogclub/bbs-go) - -## 联系我 - -### 用户交流群 - -![BBS-GO用户交流群](docs/images/qq.png) - -### 加我微信 - -![BBS-GO用户交流群](docs/images/wechat.png) - -## 介绍 - -`bbs-go` 是一个基于 Go 语言开发的开源社区论坛系统。它的设计旨在提供轻量、高效的社区讨论平台,支持现代化的 Web 技术栈,并且易于扩展和部署。bbs-go 项目采用模块化架构,能够与其他服务和前端框架无缝集成,适合各种规模的在线社区。 - -项目的主要特点包括: - -- **高性能**:基于 Go 语言的并发特性,能够在高负载下保持良好的性能表现。 -- **灵活性**:支持自定义配置、插件扩展,易于适应不同需求。 -- **简单易用**:提供简洁的管理后台,方便社区管理员管理论坛内容和用户。 -- **支持 MySQL 数据库**:提供对常见数据库的支持,确保数据存储的可靠性和稳定性。 -- **响应式设计**:前端使用现代化的技术,能够在移动设备和桌面设备上提供良好的用户体验。 - -项目主要面向开发者和社区管理者,适合搭建技术讨论、兴趣分享等类型的社区论坛。 - -![bbs-go功能简介](docs/images/features.jpg) - -## 模块 - -### server - -[![bbs-go-server](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-server.yml/badge.svg)](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-server.yml) - -> 基于`Golang`搭建,提供接口数据支撑。 - -技术栈 - -- iris ([https://github.com/kataras/iris](https://github.com/kataras/iris)) Go语言 mvc 框架 -- gorm ([http://gorm.io](http://gorm.io)) 最好用的Go语言数据库orm框架 -- resty ([https://github.com/go-resty/resty](https://github.com/go-resty/resty)) Go语言好用的 http-client -- cron ([https://github.com/robfig/cron](https://github.com/robfig/cron)) 定时任务框架 -- goquery ([https://github.com/PuerkitoBio/goquery](https://github.com/PuerkitoBio/goquery)) html dom 元素解析 - -### site - -[![bbs-go-site](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-site.yml/badge.svg)](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-site.yml) - -> 前端页面渲染服务,基于`nuxt.js`搭建。 - -技术栈 - -- vue.js ([https://vuejs.org](https://vuejs.org)) 渐进式 JavaScript 框架 -- nuxt.js ([https://nuxtjs.org](https://nuxtjs.org)) 基于Vue的服务端渲染框架,效率高到爆 - -### admin - -[![bbs-go-admin](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-admin.yml/badge.svg)](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-admin.yml) - -> 管理后台系统,基于`vue.js + element-ui`搭建。 - -技术栈 - -- vue.js ([https://vuejs.org](https://vuejs.org)) 渐进式 JavaScript 框架 -- element-ui ([https://element.eleme.cn](https://element.eleme.cn)) 饿了么开源的基于 vue.js 的前端库 - -## 功能预览 - -![首页.png](https://s2.loli.net/2022/04/12/DpvPwB9dlQ6Chef.png) -![发帖.png](https://s2.loli.net/2022/04/12/KC8eXfE6sDLq34V.png) -![发动态.png](https://s2.loli.net/2022/04/12/14pMPuGjEU6kiWV.png) -![个人中心.png](https://s2.loli.net/2022/04/12/1PVNjMh9nUAXsl8.png) -![手机版.png](https://s2.loli.net/2022/04/12/mowWb78CGIaH6T2.png) -![后台首页.png](https://s2.loli.net/2022/04/12/ErX2BLTnh7ldz8D.png) -![后台配置.png](https://s2.loli.net/2022/04/12/PwK6aC74XEZlIOL.png) - -## Contributors - - +## 项目地址 + +- 演示站:[https://bbs.bbs-go.com](https://bbs.bbs-go.com) +- 文档地址:[https://bbs-go.com](https://bbs-go.com) +- 问题反馈: [https://mlog.club/topics/node/3](https://mlog.club/topics/node/3) +- Github: [https://github.com/mlogclub/bbs-go](https://github.com/mlogclub/bbs-go) +- Gitee: [https://gitee.com/mlogclub/bbs-go](https://gitee.com/mlogclub/bbs-go) + +## 联系我 + +### 用户交流群 + +![BBS-GO用户交流群](docs/images/qq.png) + +### 加我微信 + +![BBS-GO用户交流群](docs/images/wechat.png) + +## 介绍 + +`bbs-go` 是一个基于 Go 语言开发的开源社区论坛系统。它的设计旨在提供轻量、高效的社区讨论平台,支持现代化的 Web 技术栈,并且易于扩展和部署。bbs-go 项目采用模块化架构,能够与其他服务和前端框架无缝集成,适合各种规模的在线社区。 + +项目的主要特点包括: + +- **高性能**:基于 Go 语言的并发特性,能够在高负载下保持良好的性能表现。 +- **灵活性**:支持自定义配置、插件扩展,易于适应不同需求。 +- **简单易用**:提供简洁的管理后台,方便社区管理员管理论坛内容和用户。 +- **支持 MySQL 数据库**:提供对常见数据库的支持,确保数据存储的可靠性和稳定性。 +- **响应式设计**:前端使用现代化的技术,能够在移动设备和桌面设备上提供良好的用户体验。 + +项目主要面向开发者和社区管理者,适合搭建技术讨论、兴趣分享等类型的社区论坛。 + +![bbs-go功能简介](docs/images/features.jpg) + +## 模块 + +### server + +[![bbs-go-server](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-server.yml/badge.svg)](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-server.yml) + +> 基于`Golang`搭建,提供接口数据支撑。 + +技术栈 + +- iris ([https://github.com/kataras/iris](https://github.com/kataras/iris)) Go语言 mvc 框架 +- gorm ([http://gorm.io](http://gorm.io)) 最好用的Go语言数据库orm框架 +- resty ([https://github.com/go-resty/resty](https://github.com/go-resty/resty)) Go语言好用的 http-client +- cron ([https://github.com/robfig/cron](https://github.com/robfig/cron)) 定时任务框架 +- goquery ([https://github.com/PuerkitoBio/goquery](https://github.com/PuerkitoBio/goquery)) html dom 元素解析 + +### site + +[![bbs-go-site](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-site.yml/badge.svg)](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-site.yml) + +> 前端页面渲染服务,基于`nuxt.js`搭建。 + +技术栈 + +- vue.js ([https://vuejs.org](https://vuejs.org)) 渐进式 JavaScript 框架 +- nuxt.js ([https://nuxtjs.org](https://nuxtjs.org)) 基于Vue的服务端渲染框架,效率高到爆 + +### admin + +[![bbs-go-admin](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-admin.yml/badge.svg)](https://github.com/mlogclub/bbs-go/actions/workflows/bbs-go-admin.yml) + +> 管理后台系统,基于`vue.js + element-ui`搭建。 + +技术栈 + +- vue.js ([https://vuejs.org](https://vuejs.org)) 渐进式 JavaScript 框架 +- element-ui ([https://element.eleme.cn](https://element.eleme.cn)) 饿了么开源的基于 vue.js 的前端库 + +## 功能预览 + +![首页.png](https://s2.loli.net/2022/04/12/DpvPwB9dlQ6Chef.png) +![发帖.png](https://s2.loli.net/2022/04/12/KC8eXfE6sDLq34V.png) +![发动态.png](https://s2.loli.net/2022/04/12/14pMPuGjEU6kiWV.png) +![个人中心.png](https://s2.loli.net/2022/04/12/1PVNjMh9nUAXsl8.png) +![手机版.png](https://s2.loli.net/2022/04/12/mowWb78CGIaH6T2.png) +![后台首页.png](https://s2.loli.net/2022/04/12/ErX2BLTnh7ldz8D.png) +![后台配置.png](https://s2.loli.net/2022/04/12/PwK6aC74XEZlIOL.png) + +## Contributors + + diff --git a/bbs-go/admin/.env.development b/archive/bbs-go/admin/.env.development similarity index 100% rename from bbs-go/admin/.env.development rename to archive/bbs-go/admin/.env.development diff --git a/bbs-go/admin/.env.docker b/archive/bbs-go/admin/.env.docker similarity index 100% rename from bbs-go/admin/.env.docker rename to archive/bbs-go/admin/.env.docker diff --git a/bbs-go/admin/.env.production b/archive/bbs-go/admin/.env.production similarity index 100% rename from bbs-go/admin/.env.production rename to archive/bbs-go/admin/.env.production diff --git a/bbs-go/admin/.eslintignore b/archive/bbs-go/admin/.eslintignore similarity index 100% rename from bbs-go/admin/.eslintignore rename to archive/bbs-go/admin/.eslintignore diff --git a/bbs-go/admin/.eslintrc-auto-import.json b/archive/bbs-go/admin/.eslintrc-auto-import.json similarity index 100% rename from bbs-go/admin/.eslintrc-auto-import.json rename to archive/bbs-go/admin/.eslintrc-auto-import.json diff --git a/bbs-go/admin/.eslintrc.js b/archive/bbs-go/admin/.eslintrc.js similarity index 100% rename from bbs-go/admin/.eslintrc.js rename to archive/bbs-go/admin/.eslintrc.js diff --git a/bbs-go/admin/.gitignore b/archive/bbs-go/admin/.gitignore similarity index 100% rename from bbs-go/admin/.gitignore rename to archive/bbs-go/admin/.gitignore diff --git a/bbs-go/admin/.husky/commit-msg b/archive/bbs-go/admin/.husky/commit-msg similarity index 100% rename from bbs-go/admin/.husky/commit-msg rename to archive/bbs-go/admin/.husky/commit-msg diff --git a/bbs-go/admin/.husky/pre-commit b/archive/bbs-go/admin/.husky/pre-commit similarity index 100% rename from bbs-go/admin/.husky/pre-commit rename to archive/bbs-go/admin/.husky/pre-commit diff --git a/bbs-go/admin/.prettierignore b/archive/bbs-go/admin/.prettierignore similarity index 100% rename from bbs-go/admin/.prettierignore rename to archive/bbs-go/admin/.prettierignore diff --git a/bbs-go/admin/.prettierrc.js b/archive/bbs-go/admin/.prettierrc.js similarity index 100% rename from bbs-go/admin/.prettierrc.js rename to archive/bbs-go/admin/.prettierrc.js diff --git a/bbs-go/admin/.stylelintrc.js b/archive/bbs-go/admin/.stylelintrc.js similarity index 100% rename from bbs-go/admin/.stylelintrc.js rename to archive/bbs-go/admin/.stylelintrc.js diff --git a/bbs-go/admin/.vscode/settings.json b/archive/bbs-go/admin/.vscode/settings.json similarity index 100% rename from bbs-go/admin/.vscode/settings.json rename to archive/bbs-go/admin/.vscode/settings.json diff --git a/bbs-go/admin/CNAME b/archive/bbs-go/admin/CNAME similarity index 100% rename from bbs-go/admin/CNAME rename to archive/bbs-go/admin/CNAME diff --git a/bbs-go/admin/babel.config.js b/archive/bbs-go/admin/babel.config.js similarity index 100% rename from bbs-go/admin/babel.config.js rename to archive/bbs-go/admin/babel.config.js diff --git a/bbs-go/admin/commitlint.config.js b/archive/bbs-go/admin/commitlint.config.js similarity index 100% rename from bbs-go/admin/commitlint.config.js rename to archive/bbs-go/admin/commitlint.config.js diff --git a/bbs-go/admin/components.d.ts b/archive/bbs-go/admin/components.d.ts similarity index 100% rename from bbs-go/admin/components.d.ts rename to archive/bbs-go/admin/components.d.ts diff --git a/bbs-go/admin/config/plugin/arcoResolver.ts b/archive/bbs-go/admin/config/plugin/arcoResolver.ts similarity index 100% rename from bbs-go/admin/config/plugin/arcoResolver.ts rename to archive/bbs-go/admin/config/plugin/arcoResolver.ts diff --git a/bbs-go/admin/config/plugin/arcoStyleImport.ts b/archive/bbs-go/admin/config/plugin/arcoStyleImport.ts similarity index 100% rename from bbs-go/admin/config/plugin/arcoStyleImport.ts rename to archive/bbs-go/admin/config/plugin/arcoStyleImport.ts diff --git a/bbs-go/admin/config/plugin/compress.ts b/archive/bbs-go/admin/config/plugin/compress.ts similarity index 100% rename from bbs-go/admin/config/plugin/compress.ts rename to archive/bbs-go/admin/config/plugin/compress.ts diff --git a/bbs-go/admin/config/plugin/imagemin.ts b/archive/bbs-go/admin/config/plugin/imagemin.ts similarity index 100% rename from bbs-go/admin/config/plugin/imagemin.ts rename to archive/bbs-go/admin/config/plugin/imagemin.ts diff --git a/bbs-go/admin/config/plugin/visualizer.ts b/archive/bbs-go/admin/config/plugin/visualizer.ts similarity index 100% rename from bbs-go/admin/config/plugin/visualizer.ts rename to archive/bbs-go/admin/config/plugin/visualizer.ts diff --git a/bbs-go/admin/config/utils/index.ts b/archive/bbs-go/admin/config/utils/index.ts similarity index 100% rename from bbs-go/admin/config/utils/index.ts rename to archive/bbs-go/admin/config/utils/index.ts diff --git a/bbs-go/admin/config/vite.config.base.ts b/archive/bbs-go/admin/config/vite.config.base.ts similarity index 100% rename from bbs-go/admin/config/vite.config.base.ts rename to archive/bbs-go/admin/config/vite.config.base.ts diff --git a/bbs-go/admin/config/vite.config.dev.ts b/archive/bbs-go/admin/config/vite.config.dev.ts similarity index 100% rename from bbs-go/admin/config/vite.config.dev.ts rename to archive/bbs-go/admin/config/vite.config.dev.ts diff --git a/bbs-go/admin/config/vite.config.docker.ts b/archive/bbs-go/admin/config/vite.config.docker.ts similarity index 100% rename from bbs-go/admin/config/vite.config.docker.ts rename to archive/bbs-go/admin/config/vite.config.docker.ts diff --git a/bbs-go/admin/config/vite.config.prod.ts b/archive/bbs-go/admin/config/vite.config.prod.ts similarity index 100% rename from bbs-go/admin/config/vite.config.prod.ts rename to archive/bbs-go/admin/config/vite.config.prod.ts diff --git a/bbs-go/admin/index.html b/archive/bbs-go/admin/index.html similarity index 100% rename from bbs-go/admin/index.html rename to archive/bbs-go/admin/index.html diff --git a/bbs-go/admin/package.json b/archive/bbs-go/admin/package.json similarity index 100% rename from bbs-go/admin/package.json rename to archive/bbs-go/admin/package.json diff --git a/bbs-go/admin/pnpm-lock.yaml b/archive/bbs-go/admin/pnpm-lock.yaml similarity index 100% rename from bbs-go/admin/pnpm-lock.yaml rename to archive/bbs-go/admin/pnpm-lock.yaml diff --git a/bbs-go/admin/src/App.vue b/archive/bbs-go/admin/src/App.vue similarity index 100% rename from bbs-go/admin/src/App.vue rename to archive/bbs-go/admin/src/App.vue diff --git a/bbs-go/admin/src/api/interceptor.ts b/archive/bbs-go/admin/src/api/interceptor.ts similarity index 100% rename from bbs-go/admin/src/api/interceptor.ts rename to archive/bbs-go/admin/src/api/interceptor.ts diff --git a/bbs-go/admin/src/api/user.ts b/archive/bbs-go/admin/src/api/user.ts similarity index 100% rename from bbs-go/admin/src/api/user.ts rename to archive/bbs-go/admin/src/api/user.ts diff --git a/bbs-go/admin/src/assets/images/logo.png b/archive/bbs-go/admin/src/assets/images/logo.png similarity index 100% rename from bbs-go/admin/src/assets/images/logo.png rename to archive/bbs-go/admin/src/assets/images/logo.png diff --git a/bbs-go/admin/src/assets/images/logo364x364.png b/archive/bbs-go/admin/src/assets/images/logo364x364.png similarity index 100% rename from bbs-go/admin/src/assets/images/logo364x364.png rename to archive/bbs-go/admin/src/assets/images/logo364x364.png diff --git a/bbs-go/admin/src/assets/style/breakpoint.less b/archive/bbs-go/admin/src/assets/style/breakpoint.less similarity index 100% rename from bbs-go/admin/src/assets/style/breakpoint.less rename to archive/bbs-go/admin/src/assets/style/breakpoint.less diff --git a/bbs-go/admin/src/assets/style/custom.less b/archive/bbs-go/admin/src/assets/style/custom.less similarity index 100% rename from bbs-go/admin/src/assets/style/custom.less rename to archive/bbs-go/admin/src/assets/style/custom.less diff --git a/bbs-go/admin/src/assets/style/global.less b/archive/bbs-go/admin/src/assets/style/global.less similarity index 100% rename from bbs-go/admin/src/assets/style/global.less rename to archive/bbs-go/admin/src/assets/style/global.less diff --git a/bbs-go/admin/src/auto-imports.d.ts b/archive/bbs-go/admin/src/auto-imports.d.ts similarity index 100% rename from bbs-go/admin/src/auto-imports.d.ts rename to archive/bbs-go/admin/src/auto-imports.d.ts diff --git a/bbs-go/admin/src/components/ImageUpload.vue b/archive/bbs-go/admin/src/components/ImageUpload.vue similarity index 100% rename from bbs-go/admin/src/components/ImageUpload.vue rename to archive/bbs-go/admin/src/components/ImageUpload.vue diff --git a/bbs-go/admin/src/components/breadcrumb/index.vue b/archive/bbs-go/admin/src/components/breadcrumb/index.vue similarity index 100% rename from bbs-go/admin/src/components/breadcrumb/index.vue rename to archive/bbs-go/admin/src/components/breadcrumb/index.vue diff --git a/bbs-go/admin/src/components/chart/index.vue b/archive/bbs-go/admin/src/components/chart/index.vue similarity index 100% rename from bbs-go/admin/src/components/chart/index.vue rename to archive/bbs-go/admin/src/components/chart/index.vue diff --git a/bbs-go/admin/src/components/footer/index.vue b/archive/bbs-go/admin/src/components/footer/index.vue similarity index 100% rename from bbs-go/admin/src/components/footer/index.vue rename to archive/bbs-go/admin/src/components/footer/index.vue diff --git a/bbs-go/admin/src/components/global-setting/block.vue b/archive/bbs-go/admin/src/components/global-setting/block.vue similarity index 100% rename from bbs-go/admin/src/components/global-setting/block.vue rename to archive/bbs-go/admin/src/components/global-setting/block.vue diff --git a/bbs-go/admin/src/components/global-setting/form-wrapper.vue b/archive/bbs-go/admin/src/components/global-setting/form-wrapper.vue similarity index 100% rename from bbs-go/admin/src/components/global-setting/form-wrapper.vue rename to archive/bbs-go/admin/src/components/global-setting/form-wrapper.vue diff --git a/bbs-go/admin/src/components/global-setting/index.vue b/archive/bbs-go/admin/src/components/global-setting/index.vue similarity index 100% rename from bbs-go/admin/src/components/global-setting/index.vue rename to archive/bbs-go/admin/src/components/global-setting/index.vue diff --git a/bbs-go/admin/src/components/index.ts b/archive/bbs-go/admin/src/components/index.ts similarity index 100% rename from bbs-go/admin/src/components/index.ts rename to archive/bbs-go/admin/src/components/index.ts diff --git a/bbs-go/admin/src/components/menu/index.vue b/archive/bbs-go/admin/src/components/menu/index.vue similarity index 100% rename from bbs-go/admin/src/components/menu/index.vue rename to archive/bbs-go/admin/src/components/menu/index.vue diff --git a/bbs-go/admin/src/components/menu/use-menu-tree.ts b/archive/bbs-go/admin/src/components/menu/use-menu-tree.ts similarity index 100% rename from bbs-go/admin/src/components/menu/use-menu-tree.ts rename to archive/bbs-go/admin/src/components/menu/use-menu-tree.ts diff --git a/bbs-go/admin/src/components/navbar/index.vue b/archive/bbs-go/admin/src/components/navbar/index.vue similarity index 100% rename from bbs-go/admin/src/components/navbar/index.vue rename to archive/bbs-go/admin/src/components/navbar/index.vue diff --git a/bbs-go/admin/src/components/tab-bar/index.vue b/archive/bbs-go/admin/src/components/tab-bar/index.vue similarity index 100% rename from bbs-go/admin/src/components/tab-bar/index.vue rename to archive/bbs-go/admin/src/components/tab-bar/index.vue diff --git a/bbs-go/admin/src/components/tab-bar/readme.md b/archive/bbs-go/admin/src/components/tab-bar/readme.md similarity index 100% rename from bbs-go/admin/src/components/tab-bar/readme.md rename to archive/bbs-go/admin/src/components/tab-bar/readme.md diff --git a/bbs-go/admin/src/components/tab-bar/tab-item.vue b/archive/bbs-go/admin/src/components/tab-bar/tab-item.vue similarity index 100% rename from bbs-go/admin/src/components/tab-bar/tab-item.vue rename to archive/bbs-go/admin/src/components/tab-bar/tab-item.vue diff --git a/bbs-go/admin/src/composables/arco.ts b/archive/bbs-go/admin/src/composables/arco.ts similarity index 100% rename from bbs-go/admin/src/composables/arco.ts rename to archive/bbs-go/admin/src/composables/arco.ts diff --git a/bbs-go/admin/src/composables/index.ts b/archive/bbs-go/admin/src/composables/index.ts similarity index 100% rename from bbs-go/admin/src/composables/index.ts rename to archive/bbs-go/admin/src/composables/index.ts diff --git a/bbs-go/admin/src/composables/types.ts b/archive/bbs-go/admin/src/composables/types.ts similarity index 100% rename from bbs-go/admin/src/composables/types.ts rename to archive/bbs-go/admin/src/composables/types.ts diff --git a/bbs-go/admin/src/directive/index.ts b/archive/bbs-go/admin/src/directive/index.ts similarity index 100% rename from bbs-go/admin/src/directive/index.ts rename to archive/bbs-go/admin/src/directive/index.ts diff --git a/bbs-go/admin/src/directive/permission/index.ts b/archive/bbs-go/admin/src/directive/permission/index.ts similarity index 100% rename from bbs-go/admin/src/directive/permission/index.ts rename to archive/bbs-go/admin/src/directive/permission/index.ts diff --git a/bbs-go/admin/src/env.d.ts b/archive/bbs-go/admin/src/env.d.ts similarity index 100% rename from bbs-go/admin/src/env.d.ts rename to archive/bbs-go/admin/src/env.d.ts diff --git a/bbs-go/admin/src/hooks/chart-option.ts b/archive/bbs-go/admin/src/hooks/chart-option.ts similarity index 100% rename from bbs-go/admin/src/hooks/chart-option.ts rename to archive/bbs-go/admin/src/hooks/chart-option.ts diff --git a/bbs-go/admin/src/hooks/loading.ts b/archive/bbs-go/admin/src/hooks/loading.ts similarity index 100% rename from bbs-go/admin/src/hooks/loading.ts rename to archive/bbs-go/admin/src/hooks/loading.ts diff --git a/bbs-go/admin/src/hooks/locale.ts b/archive/bbs-go/admin/src/hooks/locale.ts similarity index 100% rename from bbs-go/admin/src/hooks/locale.ts rename to archive/bbs-go/admin/src/hooks/locale.ts diff --git a/bbs-go/admin/src/hooks/permission.ts b/archive/bbs-go/admin/src/hooks/permission.ts similarity index 100% rename from bbs-go/admin/src/hooks/permission.ts rename to archive/bbs-go/admin/src/hooks/permission.ts diff --git a/bbs-go/admin/src/hooks/request.ts b/archive/bbs-go/admin/src/hooks/request.ts similarity index 100% rename from bbs-go/admin/src/hooks/request.ts rename to archive/bbs-go/admin/src/hooks/request.ts diff --git a/bbs-go/admin/src/hooks/responsive.ts b/archive/bbs-go/admin/src/hooks/responsive.ts similarity index 100% rename from bbs-go/admin/src/hooks/responsive.ts rename to archive/bbs-go/admin/src/hooks/responsive.ts diff --git a/bbs-go/admin/src/hooks/themes.ts b/archive/bbs-go/admin/src/hooks/themes.ts similarity index 100% rename from bbs-go/admin/src/hooks/themes.ts rename to archive/bbs-go/admin/src/hooks/themes.ts diff --git a/bbs-go/admin/src/hooks/user.ts b/archive/bbs-go/admin/src/hooks/user.ts similarity index 100% rename from bbs-go/admin/src/hooks/user.ts rename to archive/bbs-go/admin/src/hooks/user.ts diff --git a/bbs-go/admin/src/hooks/visible.ts b/archive/bbs-go/admin/src/hooks/visible.ts similarity index 100% rename from bbs-go/admin/src/hooks/visible.ts rename to archive/bbs-go/admin/src/hooks/visible.ts diff --git a/bbs-go/admin/src/layout/default-layout.vue b/archive/bbs-go/admin/src/layout/default-layout.vue similarity index 100% rename from bbs-go/admin/src/layout/default-layout.vue rename to archive/bbs-go/admin/src/layout/default-layout.vue diff --git a/bbs-go/admin/src/layout/page-layout.vue b/archive/bbs-go/admin/src/layout/page-layout.vue similarity index 100% rename from bbs-go/admin/src/layout/page-layout.vue rename to archive/bbs-go/admin/src/layout/page-layout.vue diff --git a/bbs-go/admin/src/locale/en-US.ts b/archive/bbs-go/admin/src/locale/en-US.ts similarity index 100% rename from bbs-go/admin/src/locale/en-US.ts rename to archive/bbs-go/admin/src/locale/en-US.ts diff --git a/bbs-go/admin/src/locale/en-US/settings.ts b/archive/bbs-go/admin/src/locale/en-US/settings.ts similarity index 100% rename from bbs-go/admin/src/locale/en-US/settings.ts rename to archive/bbs-go/admin/src/locale/en-US/settings.ts diff --git a/bbs-go/admin/src/locale/index.ts b/archive/bbs-go/admin/src/locale/index.ts similarity index 100% rename from bbs-go/admin/src/locale/index.ts rename to archive/bbs-go/admin/src/locale/index.ts diff --git a/bbs-go/admin/src/locale/zh-CN.ts b/archive/bbs-go/admin/src/locale/zh-CN.ts similarity index 100% rename from bbs-go/admin/src/locale/zh-CN.ts rename to archive/bbs-go/admin/src/locale/zh-CN.ts diff --git a/bbs-go/admin/src/locale/zh-CN/settings.ts b/archive/bbs-go/admin/src/locale/zh-CN/settings.ts similarity index 100% rename from bbs-go/admin/src/locale/zh-CN/settings.ts rename to archive/bbs-go/admin/src/locale/zh-CN/settings.ts diff --git a/bbs-go/admin/src/main.ts b/archive/bbs-go/admin/src/main.ts similarity index 100% rename from bbs-go/admin/src/main.ts rename to archive/bbs-go/admin/src/main.ts diff --git a/bbs-go/admin/src/router/app-menus/index.ts b/archive/bbs-go/admin/src/router/app-menus/index.ts similarity index 100% rename from bbs-go/admin/src/router/app-menus/index.ts rename to archive/bbs-go/admin/src/router/app-menus/index.ts diff --git a/bbs-go/admin/src/router/constants.ts b/archive/bbs-go/admin/src/router/constants.ts similarity index 100% rename from bbs-go/admin/src/router/constants.ts rename to archive/bbs-go/admin/src/router/constants.ts diff --git a/bbs-go/admin/src/router/guard/index.ts b/archive/bbs-go/admin/src/router/guard/index.ts similarity index 100% rename from bbs-go/admin/src/router/guard/index.ts rename to archive/bbs-go/admin/src/router/guard/index.ts diff --git a/bbs-go/admin/src/router/guard/loadRouters.ts b/archive/bbs-go/admin/src/router/guard/loadRouters.ts similarity index 100% rename from bbs-go/admin/src/router/guard/loadRouters.ts rename to archive/bbs-go/admin/src/router/guard/loadRouters.ts diff --git a/bbs-go/admin/src/router/guard/permission.ts b/archive/bbs-go/admin/src/router/guard/permission.ts similarity index 100% rename from bbs-go/admin/src/router/guard/permission.ts rename to archive/bbs-go/admin/src/router/guard/permission.ts diff --git a/bbs-go/admin/src/router/guard/userLoginInfo.ts b/archive/bbs-go/admin/src/router/guard/userLoginInfo.ts similarity index 100% rename from bbs-go/admin/src/router/guard/userLoginInfo.ts rename to archive/bbs-go/admin/src/router/guard/userLoginInfo.ts diff --git a/bbs-go/admin/src/router/index.ts b/archive/bbs-go/admin/src/router/index.ts similarity index 100% rename from bbs-go/admin/src/router/index.ts rename to archive/bbs-go/admin/src/router/index.ts diff --git a/bbs-go/admin/src/router/routes/base.ts b/archive/bbs-go/admin/src/router/routes/base.ts similarity index 100% rename from bbs-go/admin/src/router/routes/base.ts rename to archive/bbs-go/admin/src/router/routes/base.ts diff --git a/bbs-go/admin/src/router/routes/externalModules/docs.ts b/archive/bbs-go/admin/src/router/routes/externalModules/docs.ts similarity index 100% rename from bbs-go/admin/src/router/routes/externalModules/docs.ts rename to archive/bbs-go/admin/src/router/routes/externalModules/docs.ts diff --git a/bbs-go/admin/src/router/routes/index.ts b/archive/bbs-go/admin/src/router/routes/index.ts similarity index 100% rename from bbs-go/admin/src/router/routes/index.ts rename to archive/bbs-go/admin/src/router/routes/index.ts diff --git a/bbs-go/admin/src/router/routes/modules/dashboard.ts b/archive/bbs-go/admin/src/router/routes/modules/dashboard.ts similarity index 100% rename from bbs-go/admin/src/router/routes/modules/dashboard.ts rename to archive/bbs-go/admin/src/router/routes/modules/dashboard.ts diff --git a/bbs-go/admin/src/router/routes/types.ts b/archive/bbs-go/admin/src/router/routes/types.ts similarity index 100% rename from bbs-go/admin/src/router/routes/types.ts rename to archive/bbs-go/admin/src/router/routes/types.ts diff --git a/bbs-go/admin/src/router/typings.d.ts b/archive/bbs-go/admin/src/router/typings.d.ts similarity index 100% rename from bbs-go/admin/src/router/typings.d.ts rename to archive/bbs-go/admin/src/router/typings.d.ts diff --git a/bbs-go/admin/src/store/index.ts b/archive/bbs-go/admin/src/store/index.ts similarity index 100% rename from bbs-go/admin/src/store/index.ts rename to archive/bbs-go/admin/src/store/index.ts diff --git a/bbs-go/admin/src/store/modules/app/index.ts b/archive/bbs-go/admin/src/store/modules/app/index.ts similarity index 100% rename from bbs-go/admin/src/store/modules/app/index.ts rename to archive/bbs-go/admin/src/store/modules/app/index.ts diff --git a/bbs-go/admin/src/store/modules/app/types.ts b/archive/bbs-go/admin/src/store/modules/app/types.ts similarity index 100% rename from bbs-go/admin/src/store/modules/app/types.ts rename to archive/bbs-go/admin/src/store/modules/app/types.ts diff --git a/bbs-go/admin/src/store/modules/dict/index.js b/archive/bbs-go/admin/src/store/modules/dict/index.js similarity index 100% rename from bbs-go/admin/src/store/modules/dict/index.js rename to archive/bbs-go/admin/src/store/modules/dict/index.js diff --git a/bbs-go/admin/src/store/modules/tab-bar/index.ts b/archive/bbs-go/admin/src/store/modules/tab-bar/index.ts similarity index 100% rename from bbs-go/admin/src/store/modules/tab-bar/index.ts rename to archive/bbs-go/admin/src/store/modules/tab-bar/index.ts diff --git a/bbs-go/admin/src/store/modules/tab-bar/types.ts b/archive/bbs-go/admin/src/store/modules/tab-bar/types.ts similarity index 100% rename from bbs-go/admin/src/store/modules/tab-bar/types.ts rename to archive/bbs-go/admin/src/store/modules/tab-bar/types.ts diff --git a/bbs-go/admin/src/store/modules/user/index.ts b/archive/bbs-go/admin/src/store/modules/user/index.ts similarity index 100% rename from bbs-go/admin/src/store/modules/user/index.ts rename to archive/bbs-go/admin/src/store/modules/user/index.ts diff --git a/bbs-go/admin/src/store/modules/user/types.ts b/archive/bbs-go/admin/src/store/modules/user/types.ts similarity index 100% rename from bbs-go/admin/src/store/modules/user/types.ts rename to archive/bbs-go/admin/src/store/modules/user/types.ts diff --git a/bbs-go/admin/src/types/echarts.ts b/archive/bbs-go/admin/src/types/echarts.ts similarity index 100% rename from bbs-go/admin/src/types/echarts.ts rename to archive/bbs-go/admin/src/types/echarts.ts diff --git a/bbs-go/admin/src/types/global.ts b/archive/bbs-go/admin/src/types/global.ts similarity index 100% rename from bbs-go/admin/src/types/global.ts rename to archive/bbs-go/admin/src/types/global.ts diff --git a/bbs-go/admin/src/utils/auth.ts b/archive/bbs-go/admin/src/utils/auth.ts similarity index 100% rename from bbs-go/admin/src/utils/auth.ts rename to archive/bbs-go/admin/src/utils/auth.ts diff --git a/bbs-go/admin/src/utils/event.ts b/archive/bbs-go/admin/src/utils/event.ts similarity index 100% rename from bbs-go/admin/src/utils/event.ts rename to archive/bbs-go/admin/src/utils/event.ts diff --git a/bbs-go/admin/src/utils/index.ts b/archive/bbs-go/admin/src/utils/index.ts similarity index 100% rename from bbs-go/admin/src/utils/index.ts rename to archive/bbs-go/admin/src/utils/index.ts diff --git a/bbs-go/admin/src/utils/is.ts b/archive/bbs-go/admin/src/utils/is.ts similarity index 100% rename from bbs-go/admin/src/utils/is.ts rename to archive/bbs-go/admin/src/utils/is.ts diff --git a/bbs-go/admin/src/utils/monitor.ts b/archive/bbs-go/admin/src/utils/monitor.ts similarity index 100% rename from bbs-go/admin/src/utils/monitor.ts rename to archive/bbs-go/admin/src/utils/monitor.ts diff --git a/bbs-go/admin/src/utils/route-listener.ts b/archive/bbs-go/admin/src/utils/route-listener.ts similarity index 100% rename from bbs-go/admin/src/utils/route-listener.ts rename to archive/bbs-go/admin/src/utils/route-listener.ts diff --git a/bbs-go/admin/src/views/login/components/banner.vue b/archive/bbs-go/admin/src/views/login/components/banner.vue similarity index 100% rename from bbs-go/admin/src/views/login/components/banner.vue rename to archive/bbs-go/admin/src/views/login/components/banner.vue diff --git a/bbs-go/admin/src/views/login/components/login-form.vue b/archive/bbs-go/admin/src/views/login/components/login-form.vue similarity index 100% rename from bbs-go/admin/src/views/login/components/login-form.vue rename to archive/bbs-go/admin/src/views/login/components/login-form.vue diff --git a/bbs-go/admin/src/views/login/index.vue b/archive/bbs-go/admin/src/views/login/index.vue similarity index 100% rename from bbs-go/admin/src/views/login/index.vue rename to archive/bbs-go/admin/src/views/login/index.vue diff --git a/bbs-go/admin/src/views/login/locale/en-US.ts b/archive/bbs-go/admin/src/views/login/locale/en-US.ts similarity index 100% rename from bbs-go/admin/src/views/login/locale/en-US.ts rename to archive/bbs-go/admin/src/views/login/locale/en-US.ts diff --git a/bbs-go/admin/src/views/login/locale/zh-CN.ts b/archive/bbs-go/admin/src/views/login/locale/zh-CN.ts similarity index 100% rename from bbs-go/admin/src/views/login/locale/zh-CN.ts rename to archive/bbs-go/admin/src/views/login/locale/zh-CN.ts diff --git a/bbs-go/admin/src/views/not-found/index.vue b/archive/bbs-go/admin/src/views/not-found/index.vue similarity index 100% rename from bbs-go/admin/src/views/not-found/index.vue rename to archive/bbs-go/admin/src/views/not-found/index.vue diff --git a/bbs-go/admin/src/views/pages/article/components/ArticleList.vue b/archive/bbs-go/admin/src/views/pages/article/components/ArticleList.vue similarity index 100% rename from bbs-go/admin/src/views/pages/article/components/ArticleList.vue rename to archive/bbs-go/admin/src/views/pages/article/components/ArticleList.vue diff --git a/bbs-go/admin/src/views/pages/article/index.vue b/archive/bbs-go/admin/src/views/pages/article/index.vue similarity index 100% rename from bbs-go/admin/src/views/pages/article/index.vue rename to archive/bbs-go/admin/src/views/pages/article/index.vue diff --git a/bbs-go/admin/src/views/pages/dashboard/index.vue b/archive/bbs-go/admin/src/views/pages/dashboard/index.vue similarity index 100% rename from bbs-go/admin/src/views/pages/dashboard/index.vue rename to archive/bbs-go/admin/src/views/pages/dashboard/index.vue diff --git a/bbs-go/admin/src/views/pages/forbidden-word/components/Edit.vue b/archive/bbs-go/admin/src/views/pages/forbidden-word/components/Edit.vue similarity index 100% rename from bbs-go/admin/src/views/pages/forbidden-word/components/Edit.vue rename to archive/bbs-go/admin/src/views/pages/forbidden-word/components/Edit.vue diff --git a/bbs-go/admin/src/views/pages/forbidden-word/index.vue b/archive/bbs-go/admin/src/views/pages/forbidden-word/index.vue similarity index 100% rename from bbs-go/admin/src/views/pages/forbidden-word/index.vue rename to archive/bbs-go/admin/src/views/pages/forbidden-word/index.vue diff --git a/bbs-go/admin/src/views/pages/link/components/Edit.vue b/archive/bbs-go/admin/src/views/pages/link/components/Edit.vue similarity index 100% rename from bbs-go/admin/src/views/pages/link/components/Edit.vue rename to archive/bbs-go/admin/src/views/pages/link/components/Edit.vue diff --git a/bbs-go/admin/src/views/pages/link/index.vue b/archive/bbs-go/admin/src/views/pages/link/index.vue similarity index 100% rename from bbs-go/admin/src/views/pages/link/index.vue rename to archive/bbs-go/admin/src/views/pages/link/index.vue diff --git a/bbs-go/admin/src/views/pages/settings/components/CommonSettings.vue b/archive/bbs-go/admin/src/views/pages/settings/components/CommonSettings.vue similarity index 100% rename from bbs-go/admin/src/views/pages/settings/components/CommonSettings.vue rename to archive/bbs-go/admin/src/views/pages/settings/components/CommonSettings.vue diff --git a/bbs-go/admin/src/views/pages/settings/components/NavSettings.vue b/archive/bbs-go/admin/src/views/pages/settings/components/NavSettings.vue similarity index 100% rename from bbs-go/admin/src/views/pages/settings/components/NavSettings.vue rename to archive/bbs-go/admin/src/views/pages/settings/components/NavSettings.vue diff --git a/bbs-go/admin/src/views/pages/settings/components/ScoreSettings.vue b/archive/bbs-go/admin/src/views/pages/settings/components/ScoreSettings.vue similarity index 100% rename from bbs-go/admin/src/views/pages/settings/components/ScoreSettings.vue rename to archive/bbs-go/admin/src/views/pages/settings/components/ScoreSettings.vue diff --git a/bbs-go/admin/src/views/pages/settings/components/SpamSettings.vue b/archive/bbs-go/admin/src/views/pages/settings/components/SpamSettings.vue similarity index 100% rename from bbs-go/admin/src/views/pages/settings/components/SpamSettings.vue rename to archive/bbs-go/admin/src/views/pages/settings/components/SpamSettings.vue diff --git a/bbs-go/admin/src/views/pages/settings/index.vue b/archive/bbs-go/admin/src/views/pages/settings/index.vue similarity index 100% rename from bbs-go/admin/src/views/pages/settings/index.vue rename to archive/bbs-go/admin/src/views/pages/settings/index.vue diff --git a/bbs-go/admin/src/views/pages/system/api/components/Edit.vue b/archive/bbs-go/admin/src/views/pages/system/api/components/Edit.vue similarity index 100% rename from bbs-go/admin/src/views/pages/system/api/components/Edit.vue rename to archive/bbs-go/admin/src/views/pages/system/api/components/Edit.vue diff --git a/bbs-go/admin/src/views/pages/system/api/index.vue b/archive/bbs-go/admin/src/views/pages/system/api/index.vue similarity index 100% rename from bbs-go/admin/src/views/pages/system/api/index.vue rename to archive/bbs-go/admin/src/views/pages/system/api/index.vue diff --git a/bbs-go/admin/src/views/pages/system/dict/components/Dict.vue b/archive/bbs-go/admin/src/views/pages/system/dict/components/Dict.vue similarity index 100% rename from bbs-go/admin/src/views/pages/system/dict/components/Dict.vue rename to archive/bbs-go/admin/src/views/pages/system/dict/components/Dict.vue diff --git a/bbs-go/admin/src/views/pages/system/dict/components/DictEdit.vue b/archive/bbs-go/admin/src/views/pages/system/dict/components/DictEdit.vue similarity index 100% rename from bbs-go/admin/src/views/pages/system/dict/components/DictEdit.vue rename to archive/bbs-go/admin/src/views/pages/system/dict/components/DictEdit.vue diff --git a/bbs-go/admin/src/views/pages/system/dict/components/DictType.vue b/archive/bbs-go/admin/src/views/pages/system/dict/components/DictType.vue similarity index 100% rename from bbs-go/admin/src/views/pages/system/dict/components/DictType.vue rename to archive/bbs-go/admin/src/views/pages/system/dict/components/DictType.vue diff --git a/bbs-go/admin/src/views/pages/system/dict/components/DictTypeEdit.vue b/archive/bbs-go/admin/src/views/pages/system/dict/components/DictTypeEdit.vue similarity index 100% rename from bbs-go/admin/src/views/pages/system/dict/components/DictTypeEdit.vue rename to archive/bbs-go/admin/src/views/pages/system/dict/components/DictTypeEdit.vue diff --git a/bbs-go/admin/src/views/pages/system/dict/index.vue b/archive/bbs-go/admin/src/views/pages/system/dict/index.vue similarity index 100% rename from bbs-go/admin/src/views/pages/system/dict/index.vue rename to archive/bbs-go/admin/src/views/pages/system/dict/index.vue diff --git a/bbs-go/admin/src/views/pages/system/menu/components/Edit.vue b/archive/bbs-go/admin/src/views/pages/system/menu/components/Edit.vue similarity index 100% rename from bbs-go/admin/src/views/pages/system/menu/components/Edit.vue rename to archive/bbs-go/admin/src/views/pages/system/menu/components/Edit.vue diff --git a/bbs-go/admin/src/views/pages/system/menu/components/IconPicker.vue b/archive/bbs-go/admin/src/views/pages/system/menu/components/IconPicker.vue similarity index 100% rename from bbs-go/admin/src/views/pages/system/menu/components/IconPicker.vue rename to archive/bbs-go/admin/src/views/pages/system/menu/components/IconPicker.vue diff --git a/bbs-go/admin/src/views/pages/system/menu/index.vue b/archive/bbs-go/admin/src/views/pages/system/menu/index.vue similarity index 100% rename from bbs-go/admin/src/views/pages/system/menu/index.vue rename to archive/bbs-go/admin/src/views/pages/system/menu/index.vue diff --git a/bbs-go/admin/src/views/pages/system/permission/index.vue b/archive/bbs-go/admin/src/views/pages/system/permission/index.vue similarity index 100% rename from bbs-go/admin/src/views/pages/system/permission/index.vue rename to archive/bbs-go/admin/src/views/pages/system/permission/index.vue diff --git a/bbs-go/admin/src/views/pages/system/role/components/Edit.vue b/archive/bbs-go/admin/src/views/pages/system/role/components/Edit.vue similarity index 100% rename from bbs-go/admin/src/views/pages/system/role/components/Edit.vue rename to archive/bbs-go/admin/src/views/pages/system/role/components/Edit.vue diff --git a/bbs-go/admin/src/views/pages/system/role/index.vue b/archive/bbs-go/admin/src/views/pages/system/role/index.vue similarity index 100% rename from bbs-go/admin/src/views/pages/system/role/index.vue rename to archive/bbs-go/admin/src/views/pages/system/role/index.vue diff --git a/bbs-go/admin/src/views/pages/topic-node/components/Edit.vue b/archive/bbs-go/admin/src/views/pages/topic-node/components/Edit.vue similarity index 100% rename from bbs-go/admin/src/views/pages/topic-node/components/Edit.vue rename to archive/bbs-go/admin/src/views/pages/topic-node/components/Edit.vue diff --git a/bbs-go/admin/src/views/pages/topic-node/index.vue b/archive/bbs-go/admin/src/views/pages/topic-node/index.vue similarity index 100% rename from bbs-go/admin/src/views/pages/topic-node/index.vue rename to archive/bbs-go/admin/src/views/pages/topic-node/index.vue diff --git a/bbs-go/admin/src/views/pages/topic/components/TopicList.vue b/archive/bbs-go/admin/src/views/pages/topic/components/TopicList.vue similarity index 100% rename from bbs-go/admin/src/views/pages/topic/components/TopicList.vue rename to archive/bbs-go/admin/src/views/pages/topic/components/TopicList.vue diff --git a/bbs-go/admin/src/views/pages/topic/index.vue b/archive/bbs-go/admin/src/views/pages/topic/index.vue similarity index 100% rename from bbs-go/admin/src/views/pages/topic/index.vue rename to archive/bbs-go/admin/src/views/pages/topic/index.vue diff --git a/bbs-go/admin/src/views/pages/user/components/Edit.vue b/archive/bbs-go/admin/src/views/pages/user/components/Edit.vue similarity index 100% rename from bbs-go/admin/src/views/pages/user/components/Edit.vue rename to archive/bbs-go/admin/src/views/pages/user/components/Edit.vue diff --git a/bbs-go/admin/src/views/pages/user/index.vue b/archive/bbs-go/admin/src/views/pages/user/index.vue similarity index 100% rename from bbs-go/admin/src/views/pages/user/index.vue rename to archive/bbs-go/admin/src/views/pages/user/index.vue diff --git a/bbs-go/admin/src/views/redirect/index.vue b/archive/bbs-go/admin/src/views/redirect/index.vue similarity index 100% rename from bbs-go/admin/src/views/redirect/index.vue rename to archive/bbs-go/admin/src/views/redirect/index.vue diff --git a/bbs-go/admin/tsconfig.json b/archive/bbs-go/admin/tsconfig.json similarity index 100% rename from bbs-go/admin/tsconfig.json rename to archive/bbs-go/admin/tsconfig.json diff --git a/bbs-go/bbs-go.code-workspace b/archive/bbs-go/bbs-go.code-workspace similarity index 100% rename from bbs-go/bbs-go.code-workspace rename to archive/bbs-go/bbs-go.code-workspace diff --git a/bbs-go/docker-compose.yml b/archive/bbs-go/docker-compose.yml similarity index 100% rename from bbs-go/docker-compose.yml rename to archive/bbs-go/docker-compose.yml diff --git a/bbs-go/docs/images/features.jpg b/archive/bbs-go/docs/images/features.jpg similarity index 100% rename from bbs-go/docs/images/features.jpg rename to archive/bbs-go/docs/images/features.jpg diff --git a/bbs-go/docs/images/qq.png b/archive/bbs-go/docs/images/qq.png similarity index 100% rename from bbs-go/docs/images/qq.png rename to archive/bbs-go/docs/images/qq.png diff --git a/bbs-go/docs/images/qq_big.png b/archive/bbs-go/docs/images/qq_big.png similarity index 100% rename from bbs-go/docs/images/qq_big.png rename to archive/bbs-go/docs/images/qq_big.png diff --git a/bbs-go/docs/images/wechat.png b/archive/bbs-go/docs/images/wechat.png similarity index 100% rename from bbs-go/docs/images/wechat.png rename to archive/bbs-go/docs/images/wechat.png diff --git a/bbs-go/docs/images/wechat_big.png b/archive/bbs-go/docs/images/wechat_big.png similarity index 100% rename from bbs-go/docs/images/wechat_big.png rename to archive/bbs-go/docs/images/wechat_big.png diff --git a/bbs-go/server/.gitignore b/archive/bbs-go/server/.gitignore similarity index 91% rename from bbs-go/server/.gitignore rename to archive/bbs-go/server/.gitignore index 1bc9e25..d2a3544 100644 --- a/bbs-go/server/.gitignore +++ b/archive/bbs-go/server/.gitignore @@ -1,41 +1,41 @@ -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib -.DS_Store - -# Test binary, build with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -bbs-go - -bbs-go.yaml -bbs-go.prod.yaml -bbs-go.dev.yaml -bbs-go.test.yaml - -.idea/* -build/* - -cscope.files -tags - -logs/*.log -web/* -tmp/* -admin/* - -internal/web* - -cmd/generator/* -go.work -go.work.sum - -ip2region.xdb - -__debug_bin* +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib +.DS_Store + +# Test binary, build with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +bbs-go + +bbs-go.yaml +bbs-go.prod.yaml +bbs-go.dev.yaml +bbs-go.test.yaml + +.idea/* +build/* + +cscope.files +tags + +logs/*.log +web/* +tmp/* +admin/* + +internal/web* + +cmd/generator/* +go.work +go.work.sum + +ip2region.xdb + +__debug_bin* diff --git a/bbs-go/server/LICENSE b/archive/bbs-go/server/LICENSE similarity index 98% rename from bbs-go/server/LICENSE rename to archive/bbs-go/server/LICENSE index 3877ae0..f288702 100644 --- a/bbs-go/server/LICENSE +++ b/archive/bbs-go/server/LICENSE @@ -1,674 +1,674 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/bbs-go/server/Makefile b/archive/bbs-go/server/Makefile similarity index 100% rename from bbs-go/server/Makefile rename to archive/bbs-go/server/Makefile diff --git a/bbs-go/server/README.md b/archive/bbs-go/server/README.md similarity index 97% rename from bbs-go/server/README.md rename to archive/bbs-go/server/README.md index 59d46bf..93cf58c 100644 --- a/bbs-go/server/README.md +++ b/archive/bbs-go/server/README.md @@ -1,2 +1,2 @@ -## 介绍 -该项目使用Golang进行构建,具体参见:https://mlog.club +## 介绍 +该项目使用Golang进行构建,具体参见:https://mlog.club diff --git a/bbs-go/server/bbs-go.docker.yaml b/archive/bbs-go/server/bbs-go.docker.yaml similarity index 100% rename from bbs-go/server/bbs-go.docker.yaml rename to archive/bbs-go/server/bbs-go.docker.yaml diff --git a/bbs-go/server/bbs-go.example.yaml b/archive/bbs-go/server/bbs-go.example.yaml similarity index 97% rename from bbs-go/server/bbs-go.example.yaml rename to archive/bbs-go/server/bbs-go.example.yaml index cd537f6..d339583 100644 --- a/bbs-go/server/bbs-go.example.yaml +++ b/archive/bbs-go/server/bbs-go.example.yaml @@ -1,65 +1,65 @@ -Port: 8082 # 端口 -BaseUrl: https://mlog.club # 网站域名 -IpDataPath: # IP数据文件,默认读取当前目录下ip2region.xdb文件,最新数据文件请从这里下载:https://github.com/lionsoul2014/ip2region/tree/master/data -AllowedOrigins: - - "*" - -# 日志配置 -Logger: - Filename: /data/logs/bbs-go.log # 日志文件的位置 - MaxSize: 100 # 文件最大尺寸(以MB为单位) - MaxAge: 10 # 保留旧文件的最大天数 - MaxBackups: 10 # 保留的最大旧文件数量 - - -# 数据库连接 -DB: - Url: username:password@tcp(localhost:3306)/bbsgo_db?charset=utf8mb4&parseTime=True&multiStatements=true&loc=Local - MaxIdleConns: 50 - MaxOpenConns: 200 - -# 上传配置 -Uploader: - # 启用上传方式 - Enable: Oss - # 阿里云oss配置 - AliyunOss: - Host: # 阿里云OSS资源外网访问地址 - Bucket: # 阿里云OSS bucket名称 - Endpoint: # 阿里云OSS Endpoint - AccessId: # 阿里云OSS accessID - AccessSecret: # 阿里云OSS accessKey - StyleSplitter: # 阿里云oss图片样式分隔符 - StyleAvatar: # 头像图片样式名称 - StylePreview: # 预览图片样式名称 - StyleSmall: # 小图样式名称 - StyleDetail: # 详情图片样式名称 - # 本地文件上传 - Local: - Host: https://st.mlog.club/ # 上传文件域名 - Path: /data/www/st.mlog.club # 上传目录 - -# 邮件服务器配置,用于邮件通知 -Smtp: - Host: # smtp服务地址,请设置成你自己的,例如:smtp.qq.com - Port: # smtp服务端口,请设置成你自己额,例如:25 - Username: # 请配置成你自己的 - Password: # 请配置成你自己的 - SSL: true - -# 百度SEO相关配置 -# 文档:https://ziyuan.baidu.com/college/courseinfo?id=267&page=2#h2_article_title14 -BaiduSEO: - Site: - Token: - -# 神马搜索SEO相关 -# 文档:https://zhanzhang.sm.cn/open/mip -SmSEO: - Site: - UserName: - Token: - -# search -Search: +Port: 8082 # 端口 +BaseUrl: https://mlog.club # 网站域名 +IpDataPath: # IP数据文件,默认读取当前目录下ip2region.xdb文件,最新数据文件请从这里下载:https://github.com/lionsoul2014/ip2region/tree/master/data +AllowedOrigins: + - "*" + +# 日志配置 +Logger: + Filename: /data/logs/bbs-go.log # 日志文件的位置 + MaxSize: 100 # 文件最大尺寸(以MB为单位) + MaxAge: 10 # 保留旧文件的最大天数 + MaxBackups: 10 # 保留的最大旧文件数量 + + +# 数据库连接 +DB: + Url: username:password@tcp(localhost:3306)/bbsgo_db?charset=utf8mb4&parseTime=True&multiStatements=true&loc=Local + MaxIdleConns: 50 + MaxOpenConns: 200 + +# 上传配置 +Uploader: + # 启用上传方式 + Enable: Oss + # 阿里云oss配置 + AliyunOss: + Host: # 阿里云OSS资源外网访问地址 + Bucket: # 阿里云OSS bucket名称 + Endpoint: # 阿里云OSS Endpoint + AccessId: # 阿里云OSS accessID + AccessSecret: # 阿里云OSS accessKey + StyleSplitter: # 阿里云oss图片样式分隔符 + StyleAvatar: # 头像图片样式名称 + StylePreview: # 预览图片样式名称 + StyleSmall: # 小图样式名称 + StyleDetail: # 详情图片样式名称 + # 本地文件上传 + Local: + Host: https://st.mlog.club/ # 上传文件域名 + Path: /data/www/st.mlog.club # 上传目录 + +# 邮件服务器配置,用于邮件通知 +Smtp: + Host: # smtp服务地址,请设置成你自己的,例如:smtp.qq.com + Port: # smtp服务端口,请设置成你自己额,例如:25 + Username: # 请配置成你自己的 + Password: # 请配置成你自己的 + SSL: true + +# 百度SEO相关配置 +# 文档:https://ziyuan.baidu.com/college/courseinfo?id=267&page=2#h2_article_title14 +BaiduSEO: + Site: + Token: + +# 神马搜索SEO相关 +# 文档:https://zhanzhang.sm.cn/open/mip +SmSEO: + Site: + UserName: + Token: + +# search +Search: IndexPath: # 索引路径 \ No newline at end of file diff --git a/bbs-go/server/cmd/test/main.go b/archive/bbs-go/server/cmd/test/main.go similarity index 100% rename from bbs-go/server/cmd/test/main.go rename to archive/bbs-go/server/cmd/test/main.go diff --git a/bbs-go/server/go.mod b/archive/bbs-go/server/go.mod similarity index 100% rename from bbs-go/server/go.mod rename to archive/bbs-go/server/go.mod diff --git a/bbs-go/server/go.sum b/archive/bbs-go/server/go.sum similarity index 100% rename from bbs-go/server/go.sum rename to archive/bbs-go/server/go.sum diff --git a/bbs-go/server/internal/cache/article_tag_cache.go b/archive/bbs-go/server/internal/cache/article_tag_cache.go similarity index 100% rename from bbs-go/server/internal/cache/article_tag_cache.go rename to archive/bbs-go/server/internal/cache/article_tag_cache.go diff --git a/bbs-go/server/internal/cache/forbidden_word_cache.go b/archive/bbs-go/server/internal/cache/forbidden_word_cache.go similarity index 100% rename from bbs-go/server/internal/cache/forbidden_word_cache.go rename to archive/bbs-go/server/internal/cache/forbidden_word_cache.go diff --git a/bbs-go/server/internal/cache/sys_config_cache.go b/archive/bbs-go/server/internal/cache/sys_config_cache.go similarity index 100% rename from bbs-go/server/internal/cache/sys_config_cache.go rename to archive/bbs-go/server/internal/cache/sys_config_cache.go diff --git a/bbs-go/server/internal/cache/tag_cache.go b/archive/bbs-go/server/internal/cache/tag_cache.go similarity index 100% rename from bbs-go/server/internal/cache/tag_cache.go rename to archive/bbs-go/server/internal/cache/tag_cache.go diff --git a/bbs-go/server/internal/cache/topic_cache.go b/archive/bbs-go/server/internal/cache/topic_cache.go similarity index 100% rename from bbs-go/server/internal/cache/topic_cache.go rename to archive/bbs-go/server/internal/cache/topic_cache.go diff --git a/bbs-go/server/internal/cache/user_cache.go b/archive/bbs-go/server/internal/cache/user_cache.go similarity index 100% rename from bbs-go/server/internal/cache/user_cache.go rename to archive/bbs-go/server/internal/cache/user_cache.go diff --git a/bbs-go/server/internal/cache/user_token_cache.go b/archive/bbs-go/server/internal/cache/user_token_cache.go similarity index 100% rename from bbs-go/server/internal/cache/user_token_cache.go rename to archive/bbs-go/server/internal/cache/user_token_cache.go diff --git a/bbs-go/server/internal/cache/utils.go b/archive/bbs-go/server/internal/cache/utils.go similarity index 100% rename from bbs-go/server/internal/cache/utils.go rename to archive/bbs-go/server/internal/cache/utils.go diff --git a/bbs-go/server/internal/controllers/admin/api_controller.go b/archive/bbs-go/server/internal/controllers/admin/api_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/api_controller.go rename to archive/bbs-go/server/internal/controllers/admin/api_controller.go diff --git a/bbs-go/server/internal/controllers/admin/article_controller.go b/archive/bbs-go/server/internal/controllers/admin/article_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/article_controller.go rename to archive/bbs-go/server/internal/controllers/admin/article_controller.go diff --git a/bbs-go/server/internal/controllers/admin/article_tag_controller.go b/archive/bbs-go/server/internal/controllers/admin/article_tag_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/article_tag_controller.go rename to archive/bbs-go/server/internal/controllers/admin/article_tag_controller.go diff --git a/bbs-go/server/internal/controllers/admin/check_in_controller.go b/archive/bbs-go/server/internal/controllers/admin/check_in_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/check_in_controller.go rename to archive/bbs-go/server/internal/controllers/admin/check_in_controller.go diff --git a/bbs-go/server/internal/controllers/admin/comment_controller.go b/archive/bbs-go/server/internal/controllers/admin/comment_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/comment_controller.go rename to archive/bbs-go/server/internal/controllers/admin/comment_controller.go diff --git a/bbs-go/server/internal/controllers/admin/common_controller.go b/archive/bbs-go/server/internal/controllers/admin/common_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/common_controller.go rename to archive/bbs-go/server/internal/controllers/admin/common_controller.go diff --git a/bbs-go/server/internal/controllers/admin/dict_controller.go b/archive/bbs-go/server/internal/controllers/admin/dict_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/dict_controller.go rename to archive/bbs-go/server/internal/controllers/admin/dict_controller.go diff --git a/bbs-go/server/internal/controllers/admin/dict_type_controller.go b/archive/bbs-go/server/internal/controllers/admin/dict_type_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/dict_type_controller.go rename to archive/bbs-go/server/internal/controllers/admin/dict_type_controller.go diff --git a/bbs-go/server/internal/controllers/admin/email_code_controller.go b/archive/bbs-go/server/internal/controllers/admin/email_code_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/email_code_controller.go rename to archive/bbs-go/server/internal/controllers/admin/email_code_controller.go diff --git a/bbs-go/server/internal/controllers/admin/favorite_controller.go b/archive/bbs-go/server/internal/controllers/admin/favorite_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/favorite_controller.go rename to archive/bbs-go/server/internal/controllers/admin/favorite_controller.go diff --git a/bbs-go/server/internal/controllers/admin/forbidden_word_controller.go b/archive/bbs-go/server/internal/controllers/admin/forbidden_word_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/forbidden_word_controller.go rename to archive/bbs-go/server/internal/controllers/admin/forbidden_word_controller.go diff --git a/bbs-go/server/internal/controllers/admin/link_controller.go b/archive/bbs-go/server/internal/controllers/admin/link_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/link_controller.go rename to archive/bbs-go/server/internal/controllers/admin/link_controller.go diff --git a/bbs-go/server/internal/controllers/admin/menu_api_controller.go b/archive/bbs-go/server/internal/controllers/admin/menu_api_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/menu_api_controller.go rename to archive/bbs-go/server/internal/controllers/admin/menu_api_controller.go diff --git a/bbs-go/server/internal/controllers/admin/menu_controller.go b/archive/bbs-go/server/internal/controllers/admin/menu_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/menu_controller.go rename to archive/bbs-go/server/internal/controllers/admin/menu_controller.go diff --git a/bbs-go/server/internal/controllers/admin/message_controller.go b/archive/bbs-go/server/internal/controllers/admin/message_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/message_controller.go rename to archive/bbs-go/server/internal/controllers/admin/message_controller.go diff --git a/bbs-go/server/internal/controllers/admin/operate_log_controller.go b/archive/bbs-go/server/internal/controllers/admin/operate_log_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/operate_log_controller.go rename to archive/bbs-go/server/internal/controllers/admin/operate_log_controller.go diff --git a/bbs-go/server/internal/controllers/admin/role_controller.go b/archive/bbs-go/server/internal/controllers/admin/role_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/role_controller.go rename to archive/bbs-go/server/internal/controllers/admin/role_controller.go diff --git a/bbs-go/server/internal/controllers/admin/sys_config_controller.go b/archive/bbs-go/server/internal/controllers/admin/sys_config_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/sys_config_controller.go rename to archive/bbs-go/server/internal/controllers/admin/sys_config_controller.go diff --git a/bbs-go/server/internal/controllers/admin/tag_controller.go b/archive/bbs-go/server/internal/controllers/admin/tag_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/tag_controller.go rename to archive/bbs-go/server/internal/controllers/admin/tag_controller.go diff --git a/bbs-go/server/internal/controllers/admin/topic_controller.go b/archive/bbs-go/server/internal/controllers/admin/topic_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/topic_controller.go rename to archive/bbs-go/server/internal/controllers/admin/topic_controller.go diff --git a/bbs-go/server/internal/controllers/admin/topic_node_controller.go b/archive/bbs-go/server/internal/controllers/admin/topic_node_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/topic_node_controller.go rename to archive/bbs-go/server/internal/controllers/admin/topic_node_controller.go diff --git a/bbs-go/server/internal/controllers/admin/topic_tag_controller.go b/archive/bbs-go/server/internal/controllers/admin/topic_tag_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/topic_tag_controller.go rename to archive/bbs-go/server/internal/controllers/admin/topic_tag_controller.go diff --git a/bbs-go/server/internal/controllers/admin/user_controller.go b/archive/bbs-go/server/internal/controllers/admin/user_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/user_controller.go rename to archive/bbs-go/server/internal/controllers/admin/user_controller.go diff --git a/bbs-go/server/internal/controllers/admin/user_feed_controller.go b/archive/bbs-go/server/internal/controllers/admin/user_feed_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/user_feed_controller.go rename to archive/bbs-go/server/internal/controllers/admin/user_feed_controller.go diff --git a/bbs-go/server/internal/controllers/admin/user_follow_controller.go b/archive/bbs-go/server/internal/controllers/admin/user_follow_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/user_follow_controller.go rename to archive/bbs-go/server/internal/controllers/admin/user_follow_controller.go diff --git a/bbs-go/server/internal/controllers/admin/user_report_controller.go b/archive/bbs-go/server/internal/controllers/admin/user_report_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/user_report_controller.go rename to archive/bbs-go/server/internal/controllers/admin/user_report_controller.go diff --git a/bbs-go/server/internal/controllers/admin/user_score_log_controller.go b/archive/bbs-go/server/internal/controllers/admin/user_score_log_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/admin/user_score_log_controller.go rename to archive/bbs-go/server/internal/controllers/admin/user_score_log_controller.go diff --git a/bbs-go/server/internal/controllers/api/article_controller.go b/archive/bbs-go/server/internal/controllers/api/article_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/article_controller.go rename to archive/bbs-go/server/internal/controllers/api/article_controller.go diff --git a/bbs-go/server/internal/controllers/api/captcha_controller.go b/archive/bbs-go/server/internal/controllers/api/captcha_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/captcha_controller.go rename to archive/bbs-go/server/internal/controllers/api/captcha_controller.go diff --git a/bbs-go/server/internal/controllers/api/checkin_controller.go b/archive/bbs-go/server/internal/controllers/api/checkin_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/checkin_controller.go rename to archive/bbs-go/server/internal/controllers/api/checkin_controller.go diff --git a/bbs-go/server/internal/controllers/api/comment_controller.go b/archive/bbs-go/server/internal/controllers/api/comment_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/comment_controller.go rename to archive/bbs-go/server/internal/controllers/api/comment_controller.go diff --git a/bbs-go/server/internal/controllers/api/config_controller.go b/archive/bbs-go/server/internal/controllers/api/config_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/config_controller.go rename to archive/bbs-go/server/internal/controllers/api/config_controller.go diff --git a/bbs-go/server/internal/controllers/api/fans_controller.go b/archive/bbs-go/server/internal/controllers/api/fans_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/fans_controller.go rename to archive/bbs-go/server/internal/controllers/api/fans_controller.go diff --git a/bbs-go/server/internal/controllers/api/favorite_controller.go b/archive/bbs-go/server/internal/controllers/api/favorite_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/favorite_controller.go rename to archive/bbs-go/server/internal/controllers/api/favorite_controller.go diff --git a/bbs-go/server/internal/controllers/api/like_controller.go b/archive/bbs-go/server/internal/controllers/api/like_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/like_controller.go rename to archive/bbs-go/server/internal/controllers/api/like_controller.go diff --git a/bbs-go/server/internal/controllers/api/link_controller.go b/archive/bbs-go/server/internal/controllers/api/link_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/link_controller.go rename to archive/bbs-go/server/internal/controllers/api/link_controller.go diff --git a/bbs-go/server/internal/controllers/api/login_controller.go b/archive/bbs-go/server/internal/controllers/api/login_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/login_controller.go rename to archive/bbs-go/server/internal/controllers/api/login_controller.go diff --git a/bbs-go/server/internal/controllers/api/search_controller.go b/archive/bbs-go/server/internal/controllers/api/search_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/search_controller.go rename to archive/bbs-go/server/internal/controllers/api/search_controller.go diff --git a/bbs-go/server/internal/controllers/api/tag_controller.go b/archive/bbs-go/server/internal/controllers/api/tag_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/tag_controller.go rename to archive/bbs-go/server/internal/controllers/api/tag_controller.go diff --git a/bbs-go/server/internal/controllers/api/topic_controller.go b/archive/bbs-go/server/internal/controllers/api/topic_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/topic_controller.go rename to archive/bbs-go/server/internal/controllers/api/topic_controller.go diff --git a/bbs-go/server/internal/controllers/api/upload_controller.go b/archive/bbs-go/server/internal/controllers/api/upload_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/upload_controller.go rename to archive/bbs-go/server/internal/controllers/api/upload_controller.go diff --git a/bbs-go/server/internal/controllers/api/user_controller.go b/archive/bbs-go/server/internal/controllers/api/user_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/user_controller.go rename to archive/bbs-go/server/internal/controllers/api/user_controller.go diff --git a/bbs-go/server/internal/controllers/api/user_report_controller.go b/archive/bbs-go/server/internal/controllers/api/user_report_controller.go similarity index 100% rename from bbs-go/server/internal/controllers/api/user_report_controller.go rename to archive/bbs-go/server/internal/controllers/api/user_report_controller.go diff --git a/bbs-go/server/internal/controllers/render/article_render.go b/archive/bbs-go/server/internal/controllers/render/article_render.go similarity index 100% rename from bbs-go/server/internal/controllers/render/article_render.go rename to archive/bbs-go/server/internal/controllers/render/article_render.go diff --git a/bbs-go/server/internal/controllers/render/base.go b/archive/bbs-go/server/internal/controllers/render/base.go similarity index 100% rename from bbs-go/server/internal/controllers/render/base.go rename to archive/bbs-go/server/internal/controllers/render/base.go diff --git a/bbs-go/server/internal/controllers/render/comment_render.go b/archive/bbs-go/server/internal/controllers/render/comment_render.go similarity index 100% rename from bbs-go/server/internal/controllers/render/comment_render.go rename to archive/bbs-go/server/internal/controllers/render/comment_render.go diff --git a/bbs-go/server/internal/controllers/render/dict_render.go b/archive/bbs-go/server/internal/controllers/render/dict_render.go similarity index 100% rename from bbs-go/server/internal/controllers/render/dict_render.go rename to archive/bbs-go/server/internal/controllers/render/dict_render.go diff --git a/bbs-go/server/internal/controllers/render/favorite_render.go b/archive/bbs-go/server/internal/controllers/render/favorite_render.go similarity index 100% rename from bbs-go/server/internal/controllers/render/favorite_render.go rename to archive/bbs-go/server/internal/controllers/render/favorite_render.go diff --git a/bbs-go/server/internal/controllers/render/menu_render.go b/archive/bbs-go/server/internal/controllers/render/menu_render.go similarity index 100% rename from bbs-go/server/internal/controllers/render/menu_render.go rename to archive/bbs-go/server/internal/controllers/render/menu_render.go diff --git a/bbs-go/server/internal/controllers/render/message_render.go b/archive/bbs-go/server/internal/controllers/render/message_render.go similarity index 100% rename from bbs-go/server/internal/controllers/render/message_render.go rename to archive/bbs-go/server/internal/controllers/render/message_render.go diff --git a/bbs-go/server/internal/controllers/render/misc_render.go b/archive/bbs-go/server/internal/controllers/render/misc_render.go similarity index 100% rename from bbs-go/server/internal/controllers/render/misc_render.go rename to archive/bbs-go/server/internal/controllers/render/misc_render.go diff --git a/bbs-go/server/internal/controllers/render/node_render.go b/archive/bbs-go/server/internal/controllers/render/node_render.go similarity index 100% rename from bbs-go/server/internal/controllers/render/node_render.go rename to archive/bbs-go/server/internal/controllers/render/node_render.go diff --git a/bbs-go/server/internal/controllers/render/oss_image_style.go b/archive/bbs-go/server/internal/controllers/render/oss_image_style.go similarity index 100% rename from bbs-go/server/internal/controllers/render/oss_image_style.go rename to archive/bbs-go/server/internal/controllers/render/oss_image_style.go diff --git a/bbs-go/server/internal/controllers/render/tag_render.go b/archive/bbs-go/server/internal/controllers/render/tag_render.go similarity index 100% rename from bbs-go/server/internal/controllers/render/tag_render.go rename to archive/bbs-go/server/internal/controllers/render/tag_render.go diff --git a/bbs-go/server/internal/controllers/render/topic_render.go b/archive/bbs-go/server/internal/controllers/render/topic_render.go similarity index 100% rename from bbs-go/server/internal/controllers/render/topic_render.go rename to archive/bbs-go/server/internal/controllers/render/topic_render.go diff --git a/bbs-go/server/internal/controllers/render/topic_search_render.go b/archive/bbs-go/server/internal/controllers/render/topic_search_render.go similarity index 100% rename from bbs-go/server/internal/controllers/render/topic_search_render.go rename to archive/bbs-go/server/internal/controllers/render/topic_search_render.go diff --git a/bbs-go/server/internal/controllers/render/user_render.go b/archive/bbs-go/server/internal/controllers/render/user_render.go similarity index 100% rename from bbs-go/server/internal/controllers/render/user_render.go rename to archive/bbs-go/server/internal/controllers/render/user_render.go diff --git a/bbs-go/server/internal/middleware/api_auth_middleware.go b/archive/bbs-go/server/internal/middleware/api_auth_middleware.go similarity index 100% rename from bbs-go/server/internal/middleware/api_auth_middleware.go rename to archive/bbs-go/server/internal/middleware/api_auth_middleware.go diff --git a/bbs-go/server/internal/models/constants/constants.go b/archive/bbs-go/server/internal/models/constants/constants.go similarity index 100% rename from bbs-go/server/internal/models/constants/constants.go rename to archive/bbs-go/server/internal/models/constants/constants.go diff --git a/bbs-go/server/internal/models/data.go b/archive/bbs-go/server/internal/models/data.go similarity index 100% rename from bbs-go/server/internal/models/data.go rename to archive/bbs-go/server/internal/models/data.go diff --git a/bbs-go/server/internal/models/dto/dto.go b/archive/bbs-go/server/internal/models/dto/dto.go similarity index 100% rename from bbs-go/server/internal/models/dto/dto.go rename to archive/bbs-go/server/internal/models/dto/dto.go diff --git a/bbs-go/server/internal/models/form.go b/archive/bbs-go/server/internal/models/form.go similarity index 100% rename from bbs-go/server/internal/models/form.go rename to archive/bbs-go/server/internal/models/form.go diff --git a/bbs-go/server/internal/models/model_methods.go b/archive/bbs-go/server/internal/models/model_methods.go similarity index 100% rename from bbs-go/server/internal/models/model_methods.go rename to archive/bbs-go/server/internal/models/model_methods.go diff --git a/bbs-go/server/internal/models/models.go b/archive/bbs-go/server/internal/models/models.go similarity index 100% rename from bbs-go/server/internal/models/models.go rename to archive/bbs-go/server/internal/models/models.go diff --git a/bbs-go/server/internal/models/models_system.go b/archive/bbs-go/server/internal/models/models_system.go similarity index 100% rename from bbs-go/server/internal/models/models_system.go rename to archive/bbs-go/server/internal/models/models_system.go diff --git a/bbs-go/server/internal/models/response.go b/archive/bbs-go/server/internal/models/response.go similarity index 100% rename from bbs-go/server/internal/models/response.go rename to archive/bbs-go/server/internal/models/response.go diff --git a/bbs-go/server/internal/pkg/bbsurls/urls.go b/archive/bbs-go/server/internal/pkg/bbsurls/urls.go similarity index 100% rename from bbs-go/server/internal/pkg/bbsurls/urls.go rename to archive/bbs-go/server/internal/pkg/bbsurls/urls.go diff --git a/bbs-go/server/internal/pkg/common/utils.go b/archive/bbs-go/server/internal/pkg/common/utils.go similarity index 100% rename from bbs-go/server/internal/pkg/common/utils.go rename to archive/bbs-go/server/internal/pkg/common/utils.go diff --git a/bbs-go/server/internal/pkg/config/config.go b/archive/bbs-go/server/internal/pkg/config/config.go similarity index 100% rename from bbs-go/server/internal/pkg/config/config.go rename to archive/bbs-go/server/internal/pkg/config/config.go diff --git a/bbs-go/server/internal/pkg/email/email.go b/archive/bbs-go/server/internal/pkg/email/email.go similarity index 100% rename from bbs-go/server/internal/pkg/email/email.go rename to archive/bbs-go/server/internal/pkg/email/email.go diff --git a/bbs-go/server/internal/pkg/errs/code_errors.go b/archive/bbs-go/server/internal/pkg/errs/code_errors.go similarity index 100% rename from bbs-go/server/internal/pkg/errs/code_errors.go rename to archive/bbs-go/server/internal/pkg/errs/code_errors.go diff --git a/bbs-go/server/internal/pkg/event/ants_test.go b/archive/bbs-go/server/internal/pkg/event/ants_test.go similarity index 100% rename from bbs-go/server/internal/pkg/event/ants_test.go rename to archive/bbs-go/server/internal/pkg/event/ants_test.go diff --git a/bbs-go/server/internal/pkg/event/data.go b/archive/bbs-go/server/internal/pkg/event/data.go similarity index 100% rename from bbs-go/server/internal/pkg/event/data.go rename to archive/bbs-go/server/internal/pkg/event/data.go diff --git a/bbs-go/server/internal/pkg/event/event.go b/archive/bbs-go/server/internal/pkg/event/event.go similarity index 100% rename from bbs-go/server/internal/pkg/event/event.go rename to archive/bbs-go/server/internal/pkg/event/event.go diff --git a/bbs-go/server/internal/pkg/event/event_test.go b/archive/bbs-go/server/internal/pkg/event/event_test.go similarity index 100% rename from bbs-go/server/internal/pkg/event/event_test.go rename to archive/bbs-go/server/internal/pkg/event/event_test.go diff --git a/bbs-go/server/internal/pkg/gormlogs/gorm.go b/archive/bbs-go/server/internal/pkg/gormlogs/gorm.go similarity index 100% rename from bbs-go/server/internal/pkg/gormlogs/gorm.go rename to archive/bbs-go/server/internal/pkg/gormlogs/gorm.go diff --git a/bbs-go/server/internal/pkg/gormlogs/gorm_options.go b/archive/bbs-go/server/internal/pkg/gormlogs/gorm_options.go similarity index 100% rename from bbs-go/server/internal/pkg/gormlogs/gorm_options.go rename to archive/bbs-go/server/internal/pkg/gormlogs/gorm_options.go diff --git a/bbs-go/server/internal/pkg/html/html.go b/archive/bbs-go/server/internal/pkg/html/html.go similarity index 100% rename from bbs-go/server/internal/pkg/html/html.go rename to archive/bbs-go/server/internal/pkg/html/html.go diff --git a/bbs-go/server/internal/pkg/iplocator/iplocator.go b/archive/bbs-go/server/internal/pkg/iplocator/iplocator.go similarity index 100% rename from bbs-go/server/internal/pkg/iplocator/iplocator.go rename to archive/bbs-go/server/internal/pkg/iplocator/iplocator.go diff --git a/bbs-go/server/internal/pkg/iplocator/iplocator_test.go b/archive/bbs-go/server/internal/pkg/iplocator/iplocator_test.go similarity index 100% rename from bbs-go/server/internal/pkg/iplocator/iplocator_test.go rename to archive/bbs-go/server/internal/pkg/iplocator/iplocator_test.go diff --git a/bbs-go/server/internal/pkg/markdown/utils.go b/archive/bbs-go/server/internal/pkg/markdown/utils.go similarity index 100% rename from bbs-go/server/internal/pkg/markdown/utils.go rename to archive/bbs-go/server/internal/pkg/markdown/utils.go diff --git a/bbs-go/server/internal/pkg/msg/data.go b/archive/bbs-go/server/internal/pkg/msg/data.go similarity index 100% rename from bbs-go/server/internal/pkg/msg/data.go rename to archive/bbs-go/server/internal/pkg/msg/data.go diff --git a/bbs-go/server/internal/pkg/search/common.go b/archive/bbs-go/server/internal/pkg/search/common.go similarity index 100% rename from bbs-go/server/internal/pkg/search/common.go rename to archive/bbs-go/server/internal/pkg/search/common.go diff --git a/bbs-go/server/internal/pkg/search/search.go b/archive/bbs-go/server/internal/pkg/search/search.go similarity index 100% rename from bbs-go/server/internal/pkg/search/search.go rename to archive/bbs-go/server/internal/pkg/search/search.go diff --git a/bbs-go/server/internal/pkg/search/search_test.go b/archive/bbs-go/server/internal/pkg/search/search_test.go similarity index 100% rename from bbs-go/server/internal/pkg/search/search_test.go rename to archive/bbs-go/server/internal/pkg/search/search_test.go diff --git a/bbs-go/server/internal/pkg/seo/push.go b/archive/bbs-go/server/internal/pkg/seo/push.go similarity index 100% rename from bbs-go/server/internal/pkg/seo/push.go rename to archive/bbs-go/server/internal/pkg/seo/push.go diff --git a/bbs-go/server/internal/pkg/sitemap/sitemap.go b/archive/bbs-go/server/internal/pkg/sitemap/sitemap.go similarity index 100% rename from bbs-go/server/internal/pkg/sitemap/sitemap.go rename to archive/bbs-go/server/internal/pkg/sitemap/sitemap.go diff --git a/bbs-go/server/internal/pkg/text/text.go b/archive/bbs-go/server/internal/pkg/text/text.go similarity index 100% rename from bbs-go/server/internal/pkg/text/text.go rename to archive/bbs-go/server/internal/pkg/text/text.go diff --git a/bbs-go/server/internal/pkg/token/constants.go b/archive/bbs-go/server/internal/pkg/token/constants.go similarity index 100% rename from bbs-go/server/internal/pkg/token/constants.go rename to archive/bbs-go/server/internal/pkg/token/constants.go diff --git a/bbs-go/server/internal/pkg/token/user_token.go b/archive/bbs-go/server/internal/pkg/token/user_token.go similarity index 100% rename from bbs-go/server/internal/pkg/token/user_token.go rename to archive/bbs-go/server/internal/pkg/token/user_token.go diff --git a/bbs-go/server/internal/pkg/uploader/aliyun_oss_uploader.go b/archive/bbs-go/server/internal/pkg/uploader/aliyun_oss_uploader.go similarity index 100% rename from bbs-go/server/internal/pkg/uploader/aliyun_oss_uploader.go rename to archive/bbs-go/server/internal/pkg/uploader/aliyun_oss_uploader.go diff --git a/bbs-go/server/internal/pkg/uploader/local_uploader.go b/archive/bbs-go/server/internal/pkg/uploader/local_uploader.go similarity index 100% rename from bbs-go/server/internal/pkg/uploader/local_uploader.go rename to archive/bbs-go/server/internal/pkg/uploader/local_uploader.go diff --git a/bbs-go/server/internal/pkg/uploader/uploader.go b/archive/bbs-go/server/internal/pkg/uploader/uploader.go similarity index 100% rename from bbs-go/server/internal/pkg/uploader/uploader.go rename to archive/bbs-go/server/internal/pkg/uploader/uploader.go diff --git a/bbs-go/server/internal/pkg/uploader/utils.go b/archive/bbs-go/server/internal/pkg/uploader/utils.go similarity index 100% rename from bbs-go/server/internal/pkg/uploader/utils.go rename to archive/bbs-go/server/internal/pkg/uploader/utils.go diff --git a/bbs-go/server/internal/pkg/urls/ant_matcher.go b/archive/bbs-go/server/internal/pkg/urls/ant_matcher.go similarity index 100% rename from bbs-go/server/internal/pkg/urls/ant_matcher.go rename to archive/bbs-go/server/internal/pkg/urls/ant_matcher.go diff --git a/bbs-go/server/internal/pkg/validate/validate.go b/archive/bbs-go/server/internal/pkg/validate/validate.go similarity index 100% rename from bbs-go/server/internal/pkg/validate/validate.go rename to archive/bbs-go/server/internal/pkg/validate/validate.go diff --git a/bbs-go/server/internal/repositories/api_repository.go b/archive/bbs-go/server/internal/repositories/api_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/api_repository.go rename to archive/bbs-go/server/internal/repositories/api_repository.go diff --git a/bbs-go/server/internal/repositories/article_repository.go b/archive/bbs-go/server/internal/repositories/article_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/article_repository.go rename to archive/bbs-go/server/internal/repositories/article_repository.go diff --git a/bbs-go/server/internal/repositories/article_tag_repository.go b/archive/bbs-go/server/internal/repositories/article_tag_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/article_tag_repository.go rename to archive/bbs-go/server/internal/repositories/article_tag_repository.go diff --git a/bbs-go/server/internal/repositories/check_in_repository.go b/archive/bbs-go/server/internal/repositories/check_in_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/check_in_repository.go rename to archive/bbs-go/server/internal/repositories/check_in_repository.go diff --git a/bbs-go/server/internal/repositories/comment_repository.go b/archive/bbs-go/server/internal/repositories/comment_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/comment_repository.go rename to archive/bbs-go/server/internal/repositories/comment_repository.go diff --git a/bbs-go/server/internal/repositories/dict_repository.go b/archive/bbs-go/server/internal/repositories/dict_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/dict_repository.go rename to archive/bbs-go/server/internal/repositories/dict_repository.go diff --git a/bbs-go/server/internal/repositories/dict_type_repository.go b/archive/bbs-go/server/internal/repositories/dict_type_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/dict_type_repository.go rename to archive/bbs-go/server/internal/repositories/dict_type_repository.go diff --git a/bbs-go/server/internal/repositories/email_code_repository.go b/archive/bbs-go/server/internal/repositories/email_code_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/email_code_repository.go rename to archive/bbs-go/server/internal/repositories/email_code_repository.go diff --git a/bbs-go/server/internal/repositories/favorite_repository.go b/archive/bbs-go/server/internal/repositories/favorite_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/favorite_repository.go rename to archive/bbs-go/server/internal/repositories/favorite_repository.go diff --git a/bbs-go/server/internal/repositories/forbidden_word_repository.go b/archive/bbs-go/server/internal/repositories/forbidden_word_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/forbidden_word_repository.go rename to archive/bbs-go/server/internal/repositories/forbidden_word_repository.go diff --git a/bbs-go/server/internal/repositories/link_repository.go b/archive/bbs-go/server/internal/repositories/link_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/link_repository.go rename to archive/bbs-go/server/internal/repositories/link_repository.go diff --git a/bbs-go/server/internal/repositories/menu_api_repository.go b/archive/bbs-go/server/internal/repositories/menu_api_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/menu_api_repository.go rename to archive/bbs-go/server/internal/repositories/menu_api_repository.go diff --git a/bbs-go/server/internal/repositories/menu_repository.go b/archive/bbs-go/server/internal/repositories/menu_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/menu_repository.go rename to archive/bbs-go/server/internal/repositories/menu_repository.go diff --git a/bbs-go/server/internal/repositories/message_repository.go b/archive/bbs-go/server/internal/repositories/message_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/message_repository.go rename to archive/bbs-go/server/internal/repositories/message_repository.go diff --git a/bbs-go/server/internal/repositories/operate_log_repository.go b/archive/bbs-go/server/internal/repositories/operate_log_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/operate_log_repository.go rename to archive/bbs-go/server/internal/repositories/operate_log_repository.go diff --git a/bbs-go/server/internal/repositories/role_menu_repository.go b/archive/bbs-go/server/internal/repositories/role_menu_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/role_menu_repository.go rename to archive/bbs-go/server/internal/repositories/role_menu_repository.go diff --git a/bbs-go/server/internal/repositories/role_repository.go b/archive/bbs-go/server/internal/repositories/role_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/role_repository.go rename to archive/bbs-go/server/internal/repositories/role_repository.go diff --git a/bbs-go/server/internal/repositories/sys_config_repository.go b/archive/bbs-go/server/internal/repositories/sys_config_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/sys_config_repository.go rename to archive/bbs-go/server/internal/repositories/sys_config_repository.go diff --git a/bbs-go/server/internal/repositories/tag_repository.go b/archive/bbs-go/server/internal/repositories/tag_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/tag_repository.go rename to archive/bbs-go/server/internal/repositories/tag_repository.go diff --git a/bbs-go/server/internal/repositories/topic_node_repository.go b/archive/bbs-go/server/internal/repositories/topic_node_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/topic_node_repository.go rename to archive/bbs-go/server/internal/repositories/topic_node_repository.go diff --git a/bbs-go/server/internal/repositories/topic_repository.go b/archive/bbs-go/server/internal/repositories/topic_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/topic_repository.go rename to archive/bbs-go/server/internal/repositories/topic_repository.go diff --git a/bbs-go/server/internal/repositories/topic_tag_repository.go b/archive/bbs-go/server/internal/repositories/topic_tag_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/topic_tag_repository.go rename to archive/bbs-go/server/internal/repositories/topic_tag_repository.go diff --git a/bbs-go/server/internal/repositories/user_feed_repository.go b/archive/bbs-go/server/internal/repositories/user_feed_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/user_feed_repository.go rename to archive/bbs-go/server/internal/repositories/user_feed_repository.go diff --git a/bbs-go/server/internal/repositories/user_follow_repository.go b/archive/bbs-go/server/internal/repositories/user_follow_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/user_follow_repository.go rename to archive/bbs-go/server/internal/repositories/user_follow_repository.go diff --git a/bbs-go/server/internal/repositories/user_like_repository.go b/archive/bbs-go/server/internal/repositories/user_like_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/user_like_repository.go rename to archive/bbs-go/server/internal/repositories/user_like_repository.go diff --git a/bbs-go/server/internal/repositories/user_report_repository.go b/archive/bbs-go/server/internal/repositories/user_report_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/user_report_repository.go rename to archive/bbs-go/server/internal/repositories/user_report_repository.go diff --git a/bbs-go/server/internal/repositories/user_repository.go b/archive/bbs-go/server/internal/repositories/user_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/user_repository.go rename to archive/bbs-go/server/internal/repositories/user_repository.go diff --git a/bbs-go/server/internal/repositories/user_role_repository.go b/archive/bbs-go/server/internal/repositories/user_role_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/user_role_repository.go rename to archive/bbs-go/server/internal/repositories/user_role_repository.go diff --git a/bbs-go/server/internal/repositories/user_score_log_repository.go b/archive/bbs-go/server/internal/repositories/user_score_log_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/user_score_log_repository.go rename to archive/bbs-go/server/internal/repositories/user_score_log_repository.go diff --git a/bbs-go/server/internal/repositories/user_token_repository.go b/archive/bbs-go/server/internal/repositories/user_token_repository.go similarity index 100% rename from bbs-go/server/internal/repositories/user_token_repository.go rename to archive/bbs-go/server/internal/repositories/user_token_repository.go diff --git a/bbs-go/server/internal/scheduler/cron.go b/archive/bbs-go/server/internal/scheduler/cron.go similarity index 100% rename from bbs-go/server/internal/scheduler/cron.go rename to archive/bbs-go/server/internal/scheduler/cron.go diff --git a/bbs-go/server/internal/server/init.go b/archive/bbs-go/server/internal/server/init.go similarity index 100% rename from bbs-go/server/internal/server/init.go rename to archive/bbs-go/server/internal/server/init.go diff --git a/bbs-go/server/internal/server/init_logger.go b/archive/bbs-go/server/internal/server/init_logger.go similarity index 100% rename from bbs-go/server/internal/server/init_logger.go rename to archive/bbs-go/server/internal/server/init_logger.go diff --git a/bbs-go/server/internal/server/router.go b/archive/bbs-go/server/internal/server/router.go similarity index 100% rename from bbs-go/server/internal/server/router.go rename to archive/bbs-go/server/internal/server/router.go diff --git a/bbs-go/server/internal/services/api_service.go b/archive/bbs-go/server/internal/services/api_service.go similarity index 100% rename from bbs-go/server/internal/services/api_service.go rename to archive/bbs-go/server/internal/services/api_service.go diff --git a/bbs-go/server/internal/services/article_service.go b/archive/bbs-go/server/internal/services/article_service.go similarity index 100% rename from bbs-go/server/internal/services/article_service.go rename to archive/bbs-go/server/internal/services/article_service.go diff --git a/bbs-go/server/internal/services/article_tag_service.go b/archive/bbs-go/server/internal/services/article_tag_service.go similarity index 100% rename from bbs-go/server/internal/services/article_tag_service.go rename to archive/bbs-go/server/internal/services/article_tag_service.go diff --git a/bbs-go/server/internal/services/check_in_service.go b/archive/bbs-go/server/internal/services/check_in_service.go similarity index 100% rename from bbs-go/server/internal/services/check_in_service.go rename to archive/bbs-go/server/internal/services/check_in_service.go diff --git a/bbs-go/server/internal/services/comment_service.go b/archive/bbs-go/server/internal/services/comment_service.go similarity index 100% rename from bbs-go/server/internal/services/comment_service.go rename to archive/bbs-go/server/internal/services/comment_service.go diff --git a/bbs-go/server/internal/services/dict_service.go b/archive/bbs-go/server/internal/services/dict_service.go similarity index 100% rename from bbs-go/server/internal/services/dict_service.go rename to archive/bbs-go/server/internal/services/dict_service.go diff --git a/bbs-go/server/internal/services/dict_type_service.go b/archive/bbs-go/server/internal/services/dict_type_service.go similarity index 100% rename from bbs-go/server/internal/services/dict_type_service.go rename to archive/bbs-go/server/internal/services/dict_type_service.go diff --git a/bbs-go/server/internal/services/email_code_service.go b/archive/bbs-go/server/internal/services/email_code_service.go similarity index 100% rename from bbs-go/server/internal/services/email_code_service.go rename to archive/bbs-go/server/internal/services/email_code_service.go diff --git a/bbs-go/server/internal/services/eventhandler/comment_create_handler.go b/archive/bbs-go/server/internal/services/eventhandler/comment_create_handler.go similarity index 100% rename from bbs-go/server/internal/services/eventhandler/comment_create_handler.go rename to archive/bbs-go/server/internal/services/eventhandler/comment_create_handler.go diff --git a/bbs-go/server/internal/services/eventhandler/follow_handler.go b/archive/bbs-go/server/internal/services/eventhandler/follow_handler.go similarity index 100% rename from bbs-go/server/internal/services/eventhandler/follow_handler.go rename to archive/bbs-go/server/internal/services/eventhandler/follow_handler.go diff --git a/bbs-go/server/internal/services/eventhandler/topic_create_handler.go b/archive/bbs-go/server/internal/services/eventhandler/topic_create_handler.go similarity index 100% rename from bbs-go/server/internal/services/eventhandler/topic_create_handler.go rename to archive/bbs-go/server/internal/services/eventhandler/topic_create_handler.go diff --git a/bbs-go/server/internal/services/eventhandler/topic_delete_handler.go b/archive/bbs-go/server/internal/services/eventhandler/topic_delete_handler.go similarity index 100% rename from bbs-go/server/internal/services/eventhandler/topic_delete_handler.go rename to archive/bbs-go/server/internal/services/eventhandler/topic_delete_handler.go diff --git a/bbs-go/server/internal/services/eventhandler/topic_recommend_handler.go b/archive/bbs-go/server/internal/services/eventhandler/topic_recommend_handler.go similarity index 100% rename from bbs-go/server/internal/services/eventhandler/topic_recommend_handler.go rename to archive/bbs-go/server/internal/services/eventhandler/topic_recommend_handler.go diff --git a/bbs-go/server/internal/services/eventhandler/unfollow_handler.go b/archive/bbs-go/server/internal/services/eventhandler/unfollow_handler.go similarity index 100% rename from bbs-go/server/internal/services/eventhandler/unfollow_handler.go rename to archive/bbs-go/server/internal/services/eventhandler/unfollow_handler.go diff --git a/bbs-go/server/internal/services/eventhandler/user_favorite_handler.go b/archive/bbs-go/server/internal/services/eventhandler/user_favorite_handler.go similarity index 100% rename from bbs-go/server/internal/services/eventhandler/user_favorite_handler.go rename to archive/bbs-go/server/internal/services/eventhandler/user_favorite_handler.go diff --git a/bbs-go/server/internal/services/eventhandler/user_like_handler.go b/archive/bbs-go/server/internal/services/eventhandler/user_like_handler.go similarity index 100% rename from bbs-go/server/internal/services/eventhandler/user_like_handler.go rename to archive/bbs-go/server/internal/services/eventhandler/user_like_handler.go diff --git a/bbs-go/server/internal/services/favorite_service.go b/archive/bbs-go/server/internal/services/favorite_service.go similarity index 100% rename from bbs-go/server/internal/services/favorite_service.go rename to archive/bbs-go/server/internal/services/favorite_service.go diff --git a/bbs-go/server/internal/services/forbidden_word_service.go b/archive/bbs-go/server/internal/services/forbidden_word_service.go similarity index 100% rename from bbs-go/server/internal/services/forbidden_word_service.go rename to archive/bbs-go/server/internal/services/forbidden_word_service.go diff --git a/bbs-go/server/internal/services/link_service.go b/archive/bbs-go/server/internal/services/link_service.go similarity index 100% rename from bbs-go/server/internal/services/link_service.go rename to archive/bbs-go/server/internal/services/link_service.go diff --git a/bbs-go/server/internal/services/menu_api_service.go b/archive/bbs-go/server/internal/services/menu_api_service.go similarity index 100% rename from bbs-go/server/internal/services/menu_api_service.go rename to archive/bbs-go/server/internal/services/menu_api_service.go diff --git a/bbs-go/server/internal/services/menu_service.go b/archive/bbs-go/server/internal/services/menu_service.go similarity index 100% rename from bbs-go/server/internal/services/menu_service.go rename to archive/bbs-go/server/internal/services/menu_service.go diff --git a/bbs-go/server/internal/services/message_service.go b/archive/bbs-go/server/internal/services/message_service.go similarity index 100% rename from bbs-go/server/internal/services/message_service.go rename to archive/bbs-go/server/internal/services/message_service.go diff --git a/bbs-go/server/internal/services/operate_log_service.go b/archive/bbs-go/server/internal/services/operate_log_service.go similarity index 100% rename from bbs-go/server/internal/services/operate_log_service.go rename to archive/bbs-go/server/internal/services/operate_log_service.go diff --git a/bbs-go/server/internal/services/role_menu_service.go b/archive/bbs-go/server/internal/services/role_menu_service.go similarity index 100% rename from bbs-go/server/internal/services/role_menu_service.go rename to archive/bbs-go/server/internal/services/role_menu_service.go diff --git a/bbs-go/server/internal/services/role_service.go b/archive/bbs-go/server/internal/services/role_service.go similarity index 100% rename from bbs-go/server/internal/services/role_service.go rename to archive/bbs-go/server/internal/services/role_service.go diff --git a/bbs-go/server/internal/services/sys_config_service.go b/archive/bbs-go/server/internal/services/sys_config_service.go similarity index 100% rename from bbs-go/server/internal/services/sys_config_service.go rename to archive/bbs-go/server/internal/services/sys_config_service.go diff --git a/bbs-go/server/internal/services/tag_service.go b/archive/bbs-go/server/internal/services/tag_service.go similarity index 100% rename from bbs-go/server/internal/services/tag_service.go rename to archive/bbs-go/server/internal/services/tag_service.go diff --git a/bbs-go/server/internal/services/topic_node_service.go b/archive/bbs-go/server/internal/services/topic_node_service.go similarity index 100% rename from bbs-go/server/internal/services/topic_node_service.go rename to archive/bbs-go/server/internal/services/topic_node_service.go diff --git a/bbs-go/server/internal/services/topic_publish_service.go b/archive/bbs-go/server/internal/services/topic_publish_service.go similarity index 100% rename from bbs-go/server/internal/services/topic_publish_service.go rename to archive/bbs-go/server/internal/services/topic_publish_service.go diff --git a/bbs-go/server/internal/services/topic_service.go b/archive/bbs-go/server/internal/services/topic_service.go similarity index 100% rename from bbs-go/server/internal/services/topic_service.go rename to archive/bbs-go/server/internal/services/topic_service.go diff --git a/bbs-go/server/internal/services/topic_tag_service.go b/archive/bbs-go/server/internal/services/topic_tag_service.go similarity index 100% rename from bbs-go/server/internal/services/topic_tag_service.go rename to archive/bbs-go/server/internal/services/topic_tag_service.go diff --git a/bbs-go/server/internal/services/user_feed_service.go b/archive/bbs-go/server/internal/services/user_feed_service.go similarity index 100% rename from bbs-go/server/internal/services/user_feed_service.go rename to archive/bbs-go/server/internal/services/user_feed_service.go diff --git a/bbs-go/server/internal/services/user_follow_service.go b/archive/bbs-go/server/internal/services/user_follow_service.go similarity index 100% rename from bbs-go/server/internal/services/user_follow_service.go rename to archive/bbs-go/server/internal/services/user_follow_service.go diff --git a/bbs-go/server/internal/services/user_like_service.go b/archive/bbs-go/server/internal/services/user_like_service.go similarity index 100% rename from bbs-go/server/internal/services/user_like_service.go rename to archive/bbs-go/server/internal/services/user_like_service.go diff --git a/bbs-go/server/internal/services/user_report_service.go b/archive/bbs-go/server/internal/services/user_report_service.go similarity index 100% rename from bbs-go/server/internal/services/user_report_service.go rename to archive/bbs-go/server/internal/services/user_report_service.go diff --git a/bbs-go/server/internal/services/user_role_service.go b/archive/bbs-go/server/internal/services/user_role_service.go similarity index 100% rename from bbs-go/server/internal/services/user_role_service.go rename to archive/bbs-go/server/internal/services/user_role_service.go diff --git a/bbs-go/server/internal/services/user_score_log_service.go b/archive/bbs-go/server/internal/services/user_score_log_service.go similarity index 100% rename from bbs-go/server/internal/services/user_score_log_service.go rename to archive/bbs-go/server/internal/services/user_score_log_service.go diff --git a/bbs-go/server/internal/services/user_service.go b/archive/bbs-go/server/internal/services/user_service.go similarity index 100% rename from bbs-go/server/internal/services/user_service.go rename to archive/bbs-go/server/internal/services/user_service.go diff --git a/bbs-go/server/internal/services/user_token_service.go b/archive/bbs-go/server/internal/services/user_token_service.go similarity index 100% rename from bbs-go/server/internal/services/user_token_service.go rename to archive/bbs-go/server/internal/services/user_token_service.go diff --git a/bbs-go/server/internal/spam/captcha_strategy.go b/archive/bbs-go/server/internal/spam/captcha_strategy.go similarity index 100% rename from bbs-go/server/internal/spam/captcha_strategy.go rename to archive/bbs-go/server/internal/spam/captcha_strategy.go diff --git a/bbs-go/server/internal/spam/email_verify_strategy.go b/archive/bbs-go/server/internal/spam/email_verify_strategy.go similarity index 100% rename from bbs-go/server/internal/spam/email_verify_strategy.go rename to archive/bbs-go/server/internal/spam/email_verify_strategy.go diff --git a/bbs-go/server/internal/spam/post_frequency_strategy.go b/archive/bbs-go/server/internal/spam/post_frequency_strategy.go similarity index 100% rename from bbs-go/server/internal/spam/post_frequency_strategy.go rename to archive/bbs-go/server/internal/spam/post_frequency_strategy.go diff --git a/bbs-go/server/internal/spam/spam.go b/archive/bbs-go/server/internal/spam/spam.go similarity index 100% rename from bbs-go/server/internal/spam/spam.go rename to archive/bbs-go/server/internal/spam/spam.go diff --git a/bbs-go/server/internal/spam/strategy.go b/archive/bbs-go/server/internal/spam/strategy.go similarity index 100% rename from bbs-go/server/internal/spam/strategy.go rename to archive/bbs-go/server/internal/spam/strategy.go diff --git a/bbs-go/server/main.go b/archive/bbs-go/server/main.go similarity index 100% rename from bbs-go/server/main.go rename to archive/bbs-go/server/main.go diff --git a/bbs-go/server/migrations/0000001_init.up.sql b/archive/bbs-go/server/migrations/0000001_init.up.sql similarity index 100% rename from bbs-go/server/migrations/0000001_init.up.sql rename to archive/bbs-go/server/migrations/0000001_init.up.sql diff --git a/bbs-go/server/start.sh b/archive/bbs-go/server/start.sh similarity index 100% rename from bbs-go/server/start.sh rename to archive/bbs-go/server/start.sh diff --git a/bbs-go/site/.env.docker b/archive/bbs-go/site/.env.docker similarity index 100% rename from bbs-go/site/.env.docker rename to archive/bbs-go/site/.env.docker diff --git a/bbs-go/site/.env.example b/archive/bbs-go/site/.env.example similarity index 100% rename from bbs-go/site/.env.example rename to archive/bbs-go/site/.env.example diff --git a/bbs-go/site/.env.local b/archive/bbs-go/site/.env.local similarity index 100% rename from bbs-go/site/.env.local rename to archive/bbs-go/site/.env.local diff --git a/bbs-go/site/.eslintrc b/archive/bbs-go/site/.eslintrc similarity index 100% rename from bbs-go/site/.eslintrc rename to archive/bbs-go/site/.eslintrc diff --git a/bbs-go/site/.gitignore b/archive/bbs-go/site/.gitignore similarity index 100% rename from bbs-go/site/.gitignore rename to archive/bbs-go/site/.gitignore diff --git a/bbs-go/site/.npmrc b/archive/bbs-go/site/.npmrc similarity index 100% rename from bbs-go/site/.npmrc rename to archive/bbs-go/site/.npmrc diff --git a/bbs-go/site/.vscode/settings.json b/archive/bbs-go/site/.vscode/settings.json similarity index 100% rename from bbs-go/site/.vscode/settings.json rename to archive/bbs-go/site/.vscode/settings.json diff --git a/bbs-go/site/README.md b/archive/bbs-go/site/README.md similarity index 100% rename from bbs-go/site/README.md rename to archive/bbs-go/site/README.md diff --git a/bbs-go/site/ecosystem.config.js b/archive/bbs-go/site/ecosystem.config.js similarity index 100% rename from bbs-go/site/ecosystem.config.js rename to archive/bbs-go/site/ecosystem.config.js diff --git a/bbs-go/site/nuxt.config.ts b/archive/bbs-go/site/nuxt.config.ts similarity index 100% rename from bbs-go/site/nuxt.config.ts rename to archive/bbs-go/site/nuxt.config.ts diff --git a/bbs-go/site/package.json b/archive/bbs-go/site/package.json similarity index 100% rename from bbs-go/site/package.json rename to archive/bbs-go/site/package.json diff --git a/bbs-go/site/pnpm-lock.yaml b/archive/bbs-go/site/pnpm-lock.yaml similarity index 100% rename from bbs-go/site/pnpm-lock.yaml rename to archive/bbs-go/site/pnpm-lock.yaml diff --git a/bbs-go/site/server/tsconfig.json b/archive/bbs-go/site/server/tsconfig.json similarity index 100% rename from bbs-go/site/server/tsconfig.json rename to archive/bbs-go/site/server/tsconfig.json diff --git a/bbs-go/site/src/app.vue b/archive/bbs-go/site/src/app.vue similarity index 100% rename from bbs-go/site/src/app.vue rename to archive/bbs-go/site/src/app.vue diff --git a/bbs-go/site/src/assets/css/bulma.scss b/archive/bbs-go/site/src/assets/css/bulma.scss similarity index 100% rename from bbs-go/site/src/assets/css/bulma.scss rename to archive/bbs-go/site/src/assets/css/bulma.scss diff --git a/bbs-go/site/src/assets/css/common.scss b/archive/bbs-go/site/src/assets/css/common.scss similarity index 100% rename from bbs-go/site/src/assets/css/common.scss rename to archive/bbs-go/site/src/assets/css/common.scss diff --git a/bbs-go/site/src/assets/css/highlightjs.scss b/archive/bbs-go/site/src/assets/css/highlightjs.scss similarity index 100% rename from bbs-go/site/src/assets/css/highlightjs.scss rename to archive/bbs-go/site/src/assets/css/highlightjs.scss diff --git a/bbs-go/site/src/assets/css/index.scss b/archive/bbs-go/site/src/assets/css/index.scss similarity index 100% rename from bbs-go/site/src/assets/css/index.scss rename to archive/bbs-go/site/src/assets/css/index.scss diff --git a/bbs-go/site/src/assets/css/nav.scss b/archive/bbs-go/site/src/assets/css/nav.scss similarity index 100% rename from bbs-go/site/src/assets/css/nav.scss rename to archive/bbs-go/site/src/assets/css/nav.scss diff --git a/bbs-go/site/src/assets/css/signin.scss b/archive/bbs-go/site/src/assets/css/signin.scss similarity index 100% rename from bbs-go/site/src/assets/css/signin.scss rename to archive/bbs-go/site/src/assets/css/signin.scss diff --git a/bbs-go/site/src/assets/css/topic.scss b/archive/bbs-go/site/src/assets/css/topic.scss similarity index 100% rename from bbs-go/site/src/assets/css/topic.scss rename to archive/bbs-go/site/src/assets/css/topic.scss diff --git a/bbs-go/site/src/assets/iconfont/demo.css b/archive/bbs-go/site/src/assets/iconfont/demo.css similarity index 100% rename from bbs-go/site/src/assets/iconfont/demo.css rename to archive/bbs-go/site/src/assets/iconfont/demo.css diff --git a/bbs-go/site/src/assets/iconfont/demo_index.html b/archive/bbs-go/site/src/assets/iconfont/demo_index.html similarity index 100% rename from bbs-go/site/src/assets/iconfont/demo_index.html rename to archive/bbs-go/site/src/assets/iconfont/demo_index.html diff --git a/bbs-go/site/src/assets/iconfont/iconfont.css b/archive/bbs-go/site/src/assets/iconfont/iconfont.css similarity index 100% rename from bbs-go/site/src/assets/iconfont/iconfont.css rename to archive/bbs-go/site/src/assets/iconfont/iconfont.css diff --git a/bbs-go/site/src/assets/iconfont/iconfont.js b/archive/bbs-go/site/src/assets/iconfont/iconfont.js similarity index 100% rename from bbs-go/site/src/assets/iconfont/iconfont.js rename to archive/bbs-go/site/src/assets/iconfont/iconfont.js diff --git a/bbs-go/site/src/assets/iconfont/iconfont.json b/archive/bbs-go/site/src/assets/iconfont/iconfont.json similarity index 100% rename from bbs-go/site/src/assets/iconfont/iconfont.json rename to archive/bbs-go/site/src/assets/iconfont/iconfont.json diff --git a/bbs-go/site/src/assets/iconfont/iconfont.ttf b/archive/bbs-go/site/src/assets/iconfont/iconfont.ttf similarity index 100% rename from bbs-go/site/src/assets/iconfont/iconfont.ttf rename to archive/bbs-go/site/src/assets/iconfont/iconfont.ttf diff --git a/bbs-go/site/src/assets/iconfont/iconfont.woff b/archive/bbs-go/site/src/assets/iconfont/iconfont.woff similarity index 100% rename from bbs-go/site/src/assets/iconfont/iconfont.woff rename to archive/bbs-go/site/src/assets/iconfont/iconfont.woff diff --git a/bbs-go/site/src/assets/iconfont/iconfont.woff2 b/archive/bbs-go/site/src/assets/iconfont/iconfont.woff2 similarity index 100% rename from bbs-go/site/src/assets/iconfont/iconfont.woff2 rename to archive/bbs-go/site/src/assets/iconfont/iconfont.woff2 diff --git a/bbs-go/site/src/assets/images/close2.png b/archive/bbs-go/site/src/assets/images/close2.png similarity index 100% rename from bbs-go/site/src/assets/images/close2.png rename to archive/bbs-go/site/src/assets/images/close2.png diff --git a/bbs-go/site/src/assets/images/default-user-bg.jpg b/archive/bbs-go/site/src/assets/images/default-user-bg.jpg similarity index 100% rename from bbs-go/site/src/assets/images/default-user-bg.jpg rename to archive/bbs-go/site/src/assets/images/default-user-bg.jpg diff --git a/bbs-go/site/src/assets/images/default-user-bg1.jpg b/archive/bbs-go/site/src/assets/images/default-user-bg1.jpg similarity index 100% rename from bbs-go/site/src/assets/images/default-user-bg1.jpg rename to archive/bbs-go/site/src/assets/images/default-user-bg1.jpg diff --git a/bbs-go/site/src/assets/images/feed.png b/archive/bbs-go/site/src/assets/images/feed.png similarity index 100% rename from bbs-go/site/src/assets/images/feed.png rename to archive/bbs-go/site/src/assets/images/feed.png diff --git a/bbs-go/site/src/assets/images/logo.png b/archive/bbs-go/site/src/assets/images/logo.png similarity index 100% rename from bbs-go/site/src/assets/images/logo.png rename to archive/bbs-go/site/src/assets/images/logo.png diff --git a/bbs-go/site/src/assets/images/logo364x364.png b/archive/bbs-go/site/src/assets/images/logo364x364.png similarity index 100% rename from bbs-go/site/src/assets/images/logo364x364.png rename to archive/bbs-go/site/src/assets/images/logo364x364.png diff --git a/bbs-go/site/src/assets/images/net.png b/archive/bbs-go/site/src/assets/images/net.png similarity index 100% rename from bbs-go/site/src/assets/images/net.png rename to archive/bbs-go/site/src/assets/images/net.png diff --git a/bbs-go/site/src/assets/images/new.png b/archive/bbs-go/site/src/assets/images/new.png similarity index 100% rename from bbs-go/site/src/assets/images/new.png rename to archive/bbs-go/site/src/assets/images/new.png diff --git a/bbs-go/site/src/assets/images/node.png b/archive/bbs-go/site/src/assets/images/node.png similarity index 100% rename from bbs-go/site/src/assets/images/node.png rename to archive/bbs-go/site/src/assets/images/node.png diff --git a/bbs-go/site/src/assets/images/recommend.png b/archive/bbs-go/site/src/assets/images/recommend.png similarity index 100% rename from bbs-go/site/src/assets/images/recommend.png rename to archive/bbs-go/site/src/assets/images/recommend.png diff --git a/bbs-go/site/src/components/ArticleList.vue b/archive/bbs-go/site/src/components/ArticleList.vue similarity index 100% rename from bbs-go/site/src/components/ArticleList.vue rename to archive/bbs-go/site/src/components/ArticleList.vue diff --git a/bbs-go/site/src/components/ArticleManageMenu.vue b/archive/bbs-go/site/src/components/ArticleManageMenu.vue similarity index 100% rename from bbs-go/site/src/components/ArticleManageMenu.vue rename to archive/bbs-go/site/src/components/ArticleManageMenu.vue diff --git a/bbs-go/site/src/components/AvatarEdit.vue b/archive/bbs-go/site/src/components/AvatarEdit.vue similarity index 100% rename from bbs-go/site/src/components/AvatarEdit.vue rename to archive/bbs-go/site/src/components/AvatarEdit.vue diff --git a/bbs-go/site/src/components/CheckIn.vue b/archive/bbs-go/site/src/components/CheckIn.vue similarity index 100% rename from bbs-go/site/src/components/CheckIn.vue rename to archive/bbs-go/site/src/components/CheckIn.vue diff --git a/bbs-go/site/src/components/ColorMode.vue b/archive/bbs-go/site/src/components/ColorMode.vue similarity index 100% rename from bbs-go/site/src/components/ColorMode.vue rename to archive/bbs-go/site/src/components/ColorMode.vue diff --git a/bbs-go/site/src/components/CreateTopicBtn.vue b/archive/bbs-go/site/src/components/CreateTopicBtn.vue similarity index 100% rename from bbs-go/site/src/components/CreateTopicBtn.vue rename to archive/bbs-go/site/src/components/CreateTopicBtn.vue diff --git a/bbs-go/site/src/components/FansWidget.vue b/archive/bbs-go/site/src/components/FansWidget.vue similarity index 100% rename from bbs-go/site/src/components/FansWidget.vue rename to archive/bbs-go/site/src/components/FansWidget.vue diff --git a/bbs-go/site/src/components/FollowBtn.vue b/archive/bbs-go/site/src/components/FollowBtn.vue similarity index 100% rename from bbs-go/site/src/components/FollowBtn.vue rename to archive/bbs-go/site/src/components/FollowBtn.vue diff --git a/bbs-go/site/src/components/FollowWidget.vue b/archive/bbs-go/site/src/components/FollowWidget.vue similarity index 100% rename from bbs-go/site/src/components/FollowWidget.vue rename to archive/bbs-go/site/src/components/FollowWidget.vue diff --git a/bbs-go/site/src/components/FriendLinks.vue b/archive/bbs-go/site/src/components/FriendLinks.vue similarity index 100% rename from bbs-go/site/src/components/FriendLinks.vue rename to archive/bbs-go/site/src/components/FriendLinks.vue diff --git a/bbs-go/site/src/components/ImageUpload.vue b/archive/bbs-go/site/src/components/ImageUpload.vue similarity index 100% rename from bbs-go/site/src/components/ImageUpload.vue rename to archive/bbs-go/site/src/components/ImageUpload.vue diff --git a/bbs-go/site/src/components/LoadMoreAsync.vue b/archive/bbs-go/site/src/components/LoadMoreAsync.vue similarity index 100% rename from bbs-go/site/src/components/LoadMoreAsync.vue rename to archive/bbs-go/site/src/components/LoadMoreAsync.vue diff --git a/bbs-go/site/src/components/MarkdownEditor.vue b/archive/bbs-go/site/src/components/MarkdownEditor.vue similarity index 100% rename from bbs-go/site/src/components/MarkdownEditor.vue rename to archive/bbs-go/site/src/components/MarkdownEditor.vue diff --git a/bbs-go/site/src/components/MsgNotice.vue b/archive/bbs-go/site/src/components/MsgNotice.vue similarity index 100% rename from bbs-go/site/src/components/MsgNotice.vue rename to archive/bbs-go/site/src/components/MsgNotice.vue diff --git a/bbs-go/site/src/components/MyAvatar.vue b/archive/bbs-go/site/src/components/MyAvatar.vue similarity index 100% rename from bbs-go/site/src/components/MyAvatar.vue rename to archive/bbs-go/site/src/components/MyAvatar.vue diff --git a/bbs-go/site/src/components/MyAvatar.vue.bak b/archive/bbs-go/site/src/components/MyAvatar.vue.bak similarity index 100% rename from bbs-go/site/src/components/MyAvatar.vue.bak rename to archive/bbs-go/site/src/components/MyAvatar.vue.bak diff --git a/bbs-go/site/src/components/MyCounts.vue b/archive/bbs-go/site/src/components/MyCounts.vue similarity index 100% rename from bbs-go/site/src/components/MyCounts.vue rename to archive/bbs-go/site/src/components/MyCounts.vue diff --git a/bbs-go/site/src/components/MyDialog.vue b/archive/bbs-go/site/src/components/MyDialog.vue similarity index 100% rename from bbs-go/site/src/components/MyDialog.vue rename to archive/bbs-go/site/src/components/MyDialog.vue diff --git a/bbs-go/site/src/components/MyEmpty.vue b/archive/bbs-go/site/src/components/MyEmpty.vue similarity index 100% rename from bbs-go/site/src/components/MyEmpty.vue rename to archive/bbs-go/site/src/components/MyEmpty.vue diff --git a/bbs-go/site/src/components/MyFooter.vue b/archive/bbs-go/site/src/components/MyFooter.vue similarity index 100% rename from bbs-go/site/src/components/MyFooter.vue rename to archive/bbs-go/site/src/components/MyFooter.vue diff --git a/bbs-go/site/src/components/MyHeader.vue b/archive/bbs-go/site/src/components/MyHeader.vue similarity index 100% rename from bbs-go/site/src/components/MyHeader.vue rename to archive/bbs-go/site/src/components/MyHeader.vue diff --git a/bbs-go/site/src/components/MyProfile.vue b/archive/bbs-go/site/src/components/MyProfile.vue similarity index 100% rename from bbs-go/site/src/components/MyProfile.vue rename to archive/bbs-go/site/src/components/MyProfile.vue diff --git a/bbs-go/site/src/components/ScoreRank.vue b/archive/bbs-go/site/src/components/ScoreRank.vue similarity index 100% rename from bbs-go/site/src/components/ScoreRank.vue rename to archive/bbs-go/site/src/components/ScoreRank.vue diff --git a/bbs-go/site/src/components/SearchInput.vue b/archive/bbs-go/site/src/components/SearchInput.vue similarity index 100% rename from bbs-go/site/src/components/SearchInput.vue rename to archive/bbs-go/site/src/components/SearchInput.vue diff --git a/bbs-go/site/src/components/SearchTopicList.vue b/archive/bbs-go/site/src/components/SearchTopicList.vue similarity index 100% rename from bbs-go/site/src/components/SearchTopicList.vue rename to archive/bbs-go/site/src/components/SearchTopicList.vue diff --git a/bbs-go/site/src/components/SearchTopicsNav.vue b/archive/bbs-go/site/src/components/SearchTopicsNav.vue similarity index 100% rename from bbs-go/site/src/components/SearchTopicsNav.vue rename to archive/bbs-go/site/src/components/SearchTopicsNav.vue diff --git a/bbs-go/site/src/components/SimpleEditor.vue b/archive/bbs-go/site/src/components/SimpleEditor.vue similarity index 100% rename from bbs-go/site/src/components/SimpleEditor.vue rename to archive/bbs-go/site/src/components/SimpleEditor.vue diff --git a/bbs-go/site/src/components/SiteNotice.vue b/archive/bbs-go/site/src/components/SiteNotice.vue similarity index 100% rename from bbs-go/site/src/components/SiteNotice.vue rename to archive/bbs-go/site/src/components/SiteNotice.vue diff --git a/bbs-go/site/src/components/TagInput.vue b/archive/bbs-go/site/src/components/TagInput.vue similarity index 100% rename from bbs-go/site/src/components/TagInput.vue rename to archive/bbs-go/site/src/components/TagInput.vue diff --git a/bbs-go/site/src/components/TextEditor.vue b/archive/bbs-go/site/src/components/TextEditor.vue similarity index 100% rename from bbs-go/site/src/components/TextEditor.vue rename to archive/bbs-go/site/src/components/TextEditor.vue diff --git a/bbs-go/site/src/components/TopicList.vue b/archive/bbs-go/site/src/components/TopicList.vue similarity index 100% rename from bbs-go/site/src/components/TopicList.vue rename to archive/bbs-go/site/src/components/TopicList.vue diff --git a/bbs-go/site/src/components/TopicList.vue.bak b/archive/bbs-go/site/src/components/TopicList.vue.bak similarity index 100% rename from bbs-go/site/src/components/TopicList.vue.bak rename to archive/bbs-go/site/src/components/TopicList.vue.bak diff --git a/bbs-go/site/src/components/TopicManageMenu.vue b/archive/bbs-go/site/src/components/TopicManageMenu.vue similarity index 100% rename from bbs-go/site/src/components/TopicManageMenu.vue rename to archive/bbs-go/site/src/components/TopicManageMenu.vue diff --git a/bbs-go/site/src/components/TopicsNav.vue b/archive/bbs-go/site/src/components/TopicsNav.vue similarity index 100% rename from bbs-go/site/src/components/TopicsNav.vue rename to archive/bbs-go/site/src/components/TopicsNav.vue diff --git a/bbs-go/site/src/components/TopicsNav.vue.bak b/archive/bbs-go/site/src/components/TopicsNav.vue.bak similarity index 100% rename from bbs-go/site/src/components/TopicsNav.vue.bak rename to archive/bbs-go/site/src/components/TopicsNav.vue.bak diff --git a/bbs-go/site/src/components/UserCenterSidebar.vue b/archive/bbs-go/site/src/components/UserCenterSidebar.vue similarity index 100% rename from bbs-go/site/src/components/UserCenterSidebar.vue rename to archive/bbs-go/site/src/components/UserCenterSidebar.vue diff --git a/bbs-go/site/src/components/UserFollowList.vue b/archive/bbs-go/site/src/components/UserFollowList.vue similarity index 100% rename from bbs-go/site/src/components/UserFollowList.vue rename to archive/bbs-go/site/src/components/UserFollowList.vue diff --git a/bbs-go/site/src/components/UserInfo.vue b/archive/bbs-go/site/src/components/UserInfo.vue similarity index 100% rename from bbs-go/site/src/components/UserInfo.vue rename to archive/bbs-go/site/src/components/UserInfo.vue diff --git a/bbs-go/site/src/components/UserProfile.vue b/archive/bbs-go/site/src/components/UserProfile.vue similarity index 100% rename from bbs-go/site/src/components/UserProfile.vue rename to archive/bbs-go/site/src/components/UserProfile.vue diff --git a/bbs-go/site/src/components/comment/Input.vue b/archive/bbs-go/site/src/components/comment/Input.vue similarity index 100% rename from bbs-go/site/src/components/comment/Input.vue rename to archive/bbs-go/site/src/components/comment/Input.vue diff --git a/bbs-go/site/src/components/comment/List.vue b/archive/bbs-go/site/src/components/comment/List.vue similarity index 100% rename from bbs-go/site/src/components/comment/List.vue rename to archive/bbs-go/site/src/components/comment/List.vue diff --git a/bbs-go/site/src/components/comment/SubList.vue b/archive/bbs-go/site/src/components/comment/SubList.vue similarity index 100% rename from bbs-go/site/src/components/comment/SubList.vue rename to archive/bbs-go/site/src/components/comment/SubList.vue diff --git a/bbs-go/site/src/components/comment/index.vue b/archive/bbs-go/site/src/components/comment/index.vue similarity index 100% rename from bbs-go/site/src/components/comment/index.vue rename to archive/bbs-go/site/src/components/comment/index.vue diff --git a/bbs-go/site/src/composables/config.js b/archive/bbs-go/site/src/composables/config.js similarity index 100% rename from bbs-go/site/src/composables/config.js rename to archive/bbs-go/site/src/composables/config.js diff --git a/bbs-go/site/src/composables/http.js b/archive/bbs-go/site/src/composables/http.js similarity index 100% rename from bbs-go/site/src/composables/http.js rename to archive/bbs-go/site/src/composables/http.js diff --git a/bbs-go/site/src/composables/ui.js b/archive/bbs-go/site/src/composables/ui.js similarity index 100% rename from bbs-go/site/src/composables/ui.js rename to archive/bbs-go/site/src/composables/ui.js diff --git a/bbs-go/site/src/composables/user.js b/archive/bbs-go/site/src/composables/user.js similarity index 100% rename from bbs-go/site/src/composables/user.js rename to archive/bbs-go/site/src/composables/user.js diff --git a/bbs-go/site/src/composables/utils.js b/archive/bbs-go/site/src/composables/utils.js similarity index 100% rename from bbs-go/site/src/composables/utils.js rename to archive/bbs-go/site/src/composables/utils.js diff --git a/bbs-go/site/src/error.vue b/archive/bbs-go/site/src/error.vue similarity index 100% rename from bbs-go/site/src/error.vue rename to archive/bbs-go/site/src/error.vue diff --git a/bbs-go/site/src/layouts/default.vue b/archive/bbs-go/site/src/layouts/default.vue similarity index 100% rename from bbs-go/site/src/layouts/default.vue rename to archive/bbs-go/site/src/layouts/default.vue diff --git a/bbs-go/site/src/layouts/profile.vue b/archive/bbs-go/site/src/layouts/profile.vue similarity index 100% rename from bbs-go/site/src/layouts/profile.vue rename to archive/bbs-go/site/src/layouts/profile.vue diff --git a/bbs-go/site/src/layouts/ucenter.vue b/archive/bbs-go/site/src/layouts/ucenter.vue similarity index 100% rename from bbs-go/site/src/layouts/ucenter.vue rename to archive/bbs-go/site/src/layouts/ucenter.vue diff --git a/bbs-go/site/src/middleware/auth.js b/archive/bbs-go/site/src/middleware/auth.js similarity index 100% rename from bbs-go/site/src/middleware/auth.js rename to archive/bbs-go/site/src/middleware/auth.js diff --git a/bbs-go/site/src/middleware/fetch.global.ts b/archive/bbs-go/site/src/middleware/fetch.global.ts similarity index 100% rename from bbs-go/site/src/middleware/fetch.global.ts rename to archive/bbs-go/site/src/middleware/fetch.global.ts diff --git a/bbs-go/site/src/pages/about.vue b/archive/bbs-go/site/src/pages/about.vue similarity index 100% rename from bbs-go/site/src/pages/about.vue rename to archive/bbs-go/site/src/pages/about.vue diff --git a/bbs-go/site/src/pages/article/[id].vue b/archive/bbs-go/site/src/pages/article/[id].vue similarity index 100% rename from bbs-go/site/src/pages/article/[id].vue rename to archive/bbs-go/site/src/pages/article/[id].vue diff --git a/bbs-go/site/src/pages/article/create.vue b/archive/bbs-go/site/src/pages/article/create.vue similarity index 100% rename from bbs-go/site/src/pages/article/create.vue rename to archive/bbs-go/site/src/pages/article/create.vue diff --git a/bbs-go/site/src/pages/article/edit/[id].vue b/archive/bbs-go/site/src/pages/article/edit/[id].vue similarity index 100% rename from bbs-go/site/src/pages/article/edit/[id].vue rename to archive/bbs-go/site/src/pages/article/edit/[id].vue diff --git a/bbs-go/site/src/pages/articles/index.vue b/archive/bbs-go/site/src/pages/articles/index.vue similarity index 100% rename from bbs-go/site/src/pages/articles/index.vue rename to archive/bbs-go/site/src/pages/articles/index.vue diff --git a/bbs-go/site/src/pages/articles/tag/[id].vue b/archive/bbs-go/site/src/pages/articles/tag/[id].vue similarity index 100% rename from bbs-go/site/src/pages/articles/tag/[id].vue rename to archive/bbs-go/site/src/pages/articles/tag/[id].vue diff --git a/bbs-go/site/src/pages/index.vue b/archive/bbs-go/site/src/pages/index.vue similarity index 100% rename from bbs-go/site/src/pages/index.vue rename to archive/bbs-go/site/src/pages/index.vue diff --git a/bbs-go/site/src/pages/index.vue.bak b/archive/bbs-go/site/src/pages/index.vue.bak similarity index 100% rename from bbs-go/site/src/pages/index.vue.bak rename to archive/bbs-go/site/src/pages/index.vue.bak diff --git a/bbs-go/site/src/pages/links.vue b/archive/bbs-go/site/src/pages/links.vue similarity index 100% rename from bbs-go/site/src/pages/links.vue rename to archive/bbs-go/site/src/pages/links.vue diff --git a/bbs-go/site/src/pages/redirect.vue b/archive/bbs-go/site/src/pages/redirect.vue similarity index 100% rename from bbs-go/site/src/pages/redirect.vue rename to archive/bbs-go/site/src/pages/redirect.vue diff --git a/bbs-go/site/src/pages/search/index.vue b/archive/bbs-go/site/src/pages/search/index.vue similarity index 100% rename from bbs-go/site/src/pages/search/index.vue rename to archive/bbs-go/site/src/pages/search/index.vue diff --git a/bbs-go/site/src/pages/topic/[id].vue b/archive/bbs-go/site/src/pages/topic/[id].vue similarity index 100% rename from bbs-go/site/src/pages/topic/[id].vue rename to archive/bbs-go/site/src/pages/topic/[id].vue diff --git a/bbs-go/site/src/pages/topic/create.vue b/archive/bbs-go/site/src/pages/topic/create.vue similarity index 100% rename from bbs-go/site/src/pages/topic/create.vue rename to archive/bbs-go/site/src/pages/topic/create.vue diff --git a/bbs-go/site/src/pages/topic/edit/[id].vue b/archive/bbs-go/site/src/pages/topic/edit/[id].vue similarity index 100% rename from bbs-go/site/src/pages/topic/edit/[id].vue rename to archive/bbs-go/site/src/pages/topic/edit/[id].vue diff --git a/bbs-go/site/src/pages/topics/index.vue b/archive/bbs-go/site/src/pages/topics/index.vue similarity index 100% rename from bbs-go/site/src/pages/topics/index.vue rename to archive/bbs-go/site/src/pages/topics/index.vue diff --git a/bbs-go/site/src/pages/topics/node/[id].vue b/archive/bbs-go/site/src/pages/topics/node/[id].vue similarity index 100% rename from bbs-go/site/src/pages/topics/node/[id].vue rename to archive/bbs-go/site/src/pages/topics/node/[id].vue diff --git a/bbs-go/site/src/pages/topics/tag/[id].vue b/archive/bbs-go/site/src/pages/topics/tag/[id].vue similarity index 100% rename from bbs-go/site/src/pages/topics/tag/[id].vue rename to archive/bbs-go/site/src/pages/topics/tag/[id].vue diff --git a/bbs-go/site/src/pages/user/[userId]/articles.vue b/archive/bbs-go/site/src/pages/user/[userId]/articles.vue similarity index 100% rename from bbs-go/site/src/pages/user/[userId]/articles.vue rename to archive/bbs-go/site/src/pages/user/[userId]/articles.vue diff --git a/bbs-go/site/src/pages/user/[userId]/fans.vue b/archive/bbs-go/site/src/pages/user/[userId]/fans.vue similarity index 100% rename from bbs-go/site/src/pages/user/[userId]/fans.vue rename to archive/bbs-go/site/src/pages/user/[userId]/fans.vue diff --git a/bbs-go/site/src/pages/user/[userId]/followed.vue b/archive/bbs-go/site/src/pages/user/[userId]/followed.vue similarity index 100% rename from bbs-go/site/src/pages/user/[userId]/followed.vue rename to archive/bbs-go/site/src/pages/user/[userId]/followed.vue diff --git a/bbs-go/site/src/pages/user/[userId]/index.vue b/archive/bbs-go/site/src/pages/user/[userId]/index.vue similarity index 100% rename from bbs-go/site/src/pages/user/[userId]/index.vue rename to archive/bbs-go/site/src/pages/user/[userId]/index.vue diff --git a/bbs-go/site/src/pages/user/email/verify.vue b/archive/bbs-go/site/src/pages/user/email/verify.vue similarity index 100% rename from bbs-go/site/src/pages/user/email/verify.vue rename to archive/bbs-go/site/src/pages/user/email/verify.vue diff --git a/bbs-go/site/src/pages/user/favorites.vue b/archive/bbs-go/site/src/pages/user/favorites.vue similarity index 100% rename from bbs-go/site/src/pages/user/favorites.vue rename to archive/bbs-go/site/src/pages/user/favorites.vue diff --git a/bbs-go/site/src/pages/user/messages.vue b/archive/bbs-go/site/src/pages/user/messages.vue similarity index 100% rename from bbs-go/site/src/pages/user/messages.vue rename to archive/bbs-go/site/src/pages/user/messages.vue diff --git a/bbs-go/site/src/pages/user/profile/account.vue b/archive/bbs-go/site/src/pages/user/profile/account.vue similarity index 100% rename from bbs-go/site/src/pages/user/profile/account.vue rename to archive/bbs-go/site/src/pages/user/profile/account.vue diff --git a/bbs-go/site/src/pages/user/profile/index.vue b/archive/bbs-go/site/src/pages/user/profile/index.vue similarity index 100% rename from bbs-go/site/src/pages/user/profile/index.vue rename to archive/bbs-go/site/src/pages/user/profile/index.vue diff --git a/bbs-go/site/src/pages/user/scores.vue b/archive/bbs-go/site/src/pages/user/scores.vue similarity index 100% rename from bbs-go/site/src/pages/user/scores.vue rename to archive/bbs-go/site/src/pages/user/scores.vue diff --git a/bbs-go/site/src/pages/user/signin.vue b/archive/bbs-go/site/src/pages/user/signin.vue similarity index 100% rename from bbs-go/site/src/pages/user/signin.vue rename to archive/bbs-go/site/src/pages/user/signin.vue diff --git a/bbs-go/site/src/pages/user/signup.vue b/archive/bbs-go/site/src/pages/user/signup.vue similarity index 100% rename from bbs-go/site/src/pages/user/signup.vue rename to archive/bbs-go/site/src/pages/user/signup.vue diff --git a/bbs-go/site/src/plugins/clickOutside.js b/archive/bbs-go/site/src/plugins/clickOutside.js similarity index 100% rename from bbs-go/site/src/plugins/clickOutside.js rename to archive/bbs-go/site/src/plugins/clickOutside.js diff --git a/bbs-go/site/src/public/favicon.ico b/archive/bbs-go/site/src/public/favicon.ico similarity index 100% rename from bbs-go/site/src/public/favicon.ico rename to archive/bbs-go/site/src/public/favicon.ico diff --git a/bbs-go/site/src/public/icon.png b/archive/bbs-go/site/src/public/icon.png similarity index 100% rename from bbs-go/site/src/public/icon.png rename to archive/bbs-go/site/src/public/icon.png diff --git a/bbs-go/site/src/public/images/avatars/0.png b/archive/bbs-go/site/src/public/images/avatars/0.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/0.png rename to archive/bbs-go/site/src/public/images/avatars/0.png diff --git a/bbs-go/site/src/public/images/avatars/0.svg b/archive/bbs-go/site/src/public/images/avatars/0.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/0.svg rename to archive/bbs-go/site/src/public/images/avatars/0.svg diff --git a/bbs-go/site/src/public/images/avatars/1.png b/archive/bbs-go/site/src/public/images/avatars/1.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/1.png rename to archive/bbs-go/site/src/public/images/avatars/1.png diff --git a/bbs-go/site/src/public/images/avatars/1.svg b/archive/bbs-go/site/src/public/images/avatars/1.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/1.svg rename to archive/bbs-go/site/src/public/images/avatars/1.svg diff --git a/bbs-go/site/src/public/images/avatars/10.png b/archive/bbs-go/site/src/public/images/avatars/10.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/10.png rename to archive/bbs-go/site/src/public/images/avatars/10.png diff --git a/bbs-go/site/src/public/images/avatars/10.svg b/archive/bbs-go/site/src/public/images/avatars/10.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/10.svg rename to archive/bbs-go/site/src/public/images/avatars/10.svg diff --git a/bbs-go/site/src/public/images/avatars/100.png b/archive/bbs-go/site/src/public/images/avatars/100.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/100.png rename to archive/bbs-go/site/src/public/images/avatars/100.png diff --git a/bbs-go/site/src/public/images/avatars/100.svg b/archive/bbs-go/site/src/public/images/avatars/100.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/100.svg rename to archive/bbs-go/site/src/public/images/avatars/100.svg diff --git a/bbs-go/site/src/public/images/avatars/101.png b/archive/bbs-go/site/src/public/images/avatars/101.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/101.png rename to archive/bbs-go/site/src/public/images/avatars/101.png diff --git a/bbs-go/site/src/public/images/avatars/101.svg b/archive/bbs-go/site/src/public/images/avatars/101.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/101.svg rename to archive/bbs-go/site/src/public/images/avatars/101.svg diff --git a/bbs-go/site/src/public/images/avatars/102.png b/archive/bbs-go/site/src/public/images/avatars/102.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/102.png rename to archive/bbs-go/site/src/public/images/avatars/102.png diff --git a/bbs-go/site/src/public/images/avatars/102.svg b/archive/bbs-go/site/src/public/images/avatars/102.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/102.svg rename to archive/bbs-go/site/src/public/images/avatars/102.svg diff --git a/bbs-go/site/src/public/images/avatars/103.png b/archive/bbs-go/site/src/public/images/avatars/103.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/103.png rename to archive/bbs-go/site/src/public/images/avatars/103.png diff --git a/bbs-go/site/src/public/images/avatars/103.svg b/archive/bbs-go/site/src/public/images/avatars/103.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/103.svg rename to archive/bbs-go/site/src/public/images/avatars/103.svg diff --git a/bbs-go/site/src/public/images/avatars/104.png b/archive/bbs-go/site/src/public/images/avatars/104.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/104.png rename to archive/bbs-go/site/src/public/images/avatars/104.png diff --git a/bbs-go/site/src/public/images/avatars/104.svg b/archive/bbs-go/site/src/public/images/avatars/104.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/104.svg rename to archive/bbs-go/site/src/public/images/avatars/104.svg diff --git a/bbs-go/site/src/public/images/avatars/105.png b/archive/bbs-go/site/src/public/images/avatars/105.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/105.png rename to archive/bbs-go/site/src/public/images/avatars/105.png diff --git a/bbs-go/site/src/public/images/avatars/105.svg b/archive/bbs-go/site/src/public/images/avatars/105.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/105.svg rename to archive/bbs-go/site/src/public/images/avatars/105.svg diff --git a/bbs-go/site/src/public/images/avatars/106.png b/archive/bbs-go/site/src/public/images/avatars/106.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/106.png rename to archive/bbs-go/site/src/public/images/avatars/106.png diff --git a/bbs-go/site/src/public/images/avatars/106.svg b/archive/bbs-go/site/src/public/images/avatars/106.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/106.svg rename to archive/bbs-go/site/src/public/images/avatars/106.svg diff --git a/bbs-go/site/src/public/images/avatars/107.png b/archive/bbs-go/site/src/public/images/avatars/107.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/107.png rename to archive/bbs-go/site/src/public/images/avatars/107.png diff --git a/bbs-go/site/src/public/images/avatars/107.svg b/archive/bbs-go/site/src/public/images/avatars/107.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/107.svg rename to archive/bbs-go/site/src/public/images/avatars/107.svg diff --git a/bbs-go/site/src/public/images/avatars/108.png b/archive/bbs-go/site/src/public/images/avatars/108.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/108.png rename to archive/bbs-go/site/src/public/images/avatars/108.png diff --git a/bbs-go/site/src/public/images/avatars/108.svg b/archive/bbs-go/site/src/public/images/avatars/108.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/108.svg rename to archive/bbs-go/site/src/public/images/avatars/108.svg diff --git a/bbs-go/site/src/public/images/avatars/109.png b/archive/bbs-go/site/src/public/images/avatars/109.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/109.png rename to archive/bbs-go/site/src/public/images/avatars/109.png diff --git a/bbs-go/site/src/public/images/avatars/109.svg b/archive/bbs-go/site/src/public/images/avatars/109.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/109.svg rename to archive/bbs-go/site/src/public/images/avatars/109.svg diff --git a/bbs-go/site/src/public/images/avatars/11.png b/archive/bbs-go/site/src/public/images/avatars/11.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/11.png rename to archive/bbs-go/site/src/public/images/avatars/11.png diff --git a/bbs-go/site/src/public/images/avatars/11.svg b/archive/bbs-go/site/src/public/images/avatars/11.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/11.svg rename to archive/bbs-go/site/src/public/images/avatars/11.svg diff --git a/bbs-go/site/src/public/images/avatars/110.png b/archive/bbs-go/site/src/public/images/avatars/110.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/110.png rename to archive/bbs-go/site/src/public/images/avatars/110.png diff --git a/bbs-go/site/src/public/images/avatars/110.svg b/archive/bbs-go/site/src/public/images/avatars/110.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/110.svg rename to archive/bbs-go/site/src/public/images/avatars/110.svg diff --git a/bbs-go/site/src/public/images/avatars/111.png b/archive/bbs-go/site/src/public/images/avatars/111.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/111.png rename to archive/bbs-go/site/src/public/images/avatars/111.png diff --git a/bbs-go/site/src/public/images/avatars/111.svg b/archive/bbs-go/site/src/public/images/avatars/111.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/111.svg rename to archive/bbs-go/site/src/public/images/avatars/111.svg diff --git a/bbs-go/site/src/public/images/avatars/112.png b/archive/bbs-go/site/src/public/images/avatars/112.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/112.png rename to archive/bbs-go/site/src/public/images/avatars/112.png diff --git a/bbs-go/site/src/public/images/avatars/112.svg b/archive/bbs-go/site/src/public/images/avatars/112.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/112.svg rename to archive/bbs-go/site/src/public/images/avatars/112.svg diff --git a/bbs-go/site/src/public/images/avatars/113.png b/archive/bbs-go/site/src/public/images/avatars/113.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/113.png rename to archive/bbs-go/site/src/public/images/avatars/113.png diff --git a/bbs-go/site/src/public/images/avatars/113.svg b/archive/bbs-go/site/src/public/images/avatars/113.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/113.svg rename to archive/bbs-go/site/src/public/images/avatars/113.svg diff --git a/bbs-go/site/src/public/images/avatars/114.png b/archive/bbs-go/site/src/public/images/avatars/114.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/114.png rename to archive/bbs-go/site/src/public/images/avatars/114.png diff --git a/bbs-go/site/src/public/images/avatars/114.svg b/archive/bbs-go/site/src/public/images/avatars/114.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/114.svg rename to archive/bbs-go/site/src/public/images/avatars/114.svg diff --git a/bbs-go/site/src/public/images/avatars/115.png b/archive/bbs-go/site/src/public/images/avatars/115.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/115.png rename to archive/bbs-go/site/src/public/images/avatars/115.png diff --git a/bbs-go/site/src/public/images/avatars/115.svg b/archive/bbs-go/site/src/public/images/avatars/115.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/115.svg rename to archive/bbs-go/site/src/public/images/avatars/115.svg diff --git a/bbs-go/site/src/public/images/avatars/116.png b/archive/bbs-go/site/src/public/images/avatars/116.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/116.png rename to archive/bbs-go/site/src/public/images/avatars/116.png diff --git a/bbs-go/site/src/public/images/avatars/116.svg b/archive/bbs-go/site/src/public/images/avatars/116.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/116.svg rename to archive/bbs-go/site/src/public/images/avatars/116.svg diff --git a/bbs-go/site/src/public/images/avatars/117.png b/archive/bbs-go/site/src/public/images/avatars/117.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/117.png rename to archive/bbs-go/site/src/public/images/avatars/117.png diff --git a/bbs-go/site/src/public/images/avatars/117.svg b/archive/bbs-go/site/src/public/images/avatars/117.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/117.svg rename to archive/bbs-go/site/src/public/images/avatars/117.svg diff --git a/bbs-go/site/src/public/images/avatars/118.png b/archive/bbs-go/site/src/public/images/avatars/118.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/118.png rename to archive/bbs-go/site/src/public/images/avatars/118.png diff --git a/bbs-go/site/src/public/images/avatars/118.svg b/archive/bbs-go/site/src/public/images/avatars/118.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/118.svg rename to archive/bbs-go/site/src/public/images/avatars/118.svg diff --git a/bbs-go/site/src/public/images/avatars/119.png b/archive/bbs-go/site/src/public/images/avatars/119.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/119.png rename to archive/bbs-go/site/src/public/images/avatars/119.png diff --git a/bbs-go/site/src/public/images/avatars/119.svg b/archive/bbs-go/site/src/public/images/avatars/119.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/119.svg rename to archive/bbs-go/site/src/public/images/avatars/119.svg diff --git a/bbs-go/site/src/public/images/avatars/12.png b/archive/bbs-go/site/src/public/images/avatars/12.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/12.png rename to archive/bbs-go/site/src/public/images/avatars/12.png diff --git a/bbs-go/site/src/public/images/avatars/12.svg b/archive/bbs-go/site/src/public/images/avatars/12.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/12.svg rename to archive/bbs-go/site/src/public/images/avatars/12.svg diff --git a/bbs-go/site/src/public/images/avatars/120.png b/archive/bbs-go/site/src/public/images/avatars/120.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/120.png rename to archive/bbs-go/site/src/public/images/avatars/120.png diff --git a/bbs-go/site/src/public/images/avatars/120.svg b/archive/bbs-go/site/src/public/images/avatars/120.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/120.svg rename to archive/bbs-go/site/src/public/images/avatars/120.svg diff --git a/bbs-go/site/src/public/images/avatars/121.png b/archive/bbs-go/site/src/public/images/avatars/121.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/121.png rename to archive/bbs-go/site/src/public/images/avatars/121.png diff --git a/bbs-go/site/src/public/images/avatars/121.svg b/archive/bbs-go/site/src/public/images/avatars/121.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/121.svg rename to archive/bbs-go/site/src/public/images/avatars/121.svg diff --git a/bbs-go/site/src/public/images/avatars/122.png b/archive/bbs-go/site/src/public/images/avatars/122.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/122.png rename to archive/bbs-go/site/src/public/images/avatars/122.png diff --git a/bbs-go/site/src/public/images/avatars/122.svg b/archive/bbs-go/site/src/public/images/avatars/122.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/122.svg rename to archive/bbs-go/site/src/public/images/avatars/122.svg diff --git a/bbs-go/site/src/public/images/avatars/123.png b/archive/bbs-go/site/src/public/images/avatars/123.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/123.png rename to archive/bbs-go/site/src/public/images/avatars/123.png diff --git a/bbs-go/site/src/public/images/avatars/123.svg b/archive/bbs-go/site/src/public/images/avatars/123.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/123.svg rename to archive/bbs-go/site/src/public/images/avatars/123.svg diff --git a/bbs-go/site/src/public/images/avatars/124.png b/archive/bbs-go/site/src/public/images/avatars/124.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/124.png rename to archive/bbs-go/site/src/public/images/avatars/124.png diff --git a/bbs-go/site/src/public/images/avatars/124.svg b/archive/bbs-go/site/src/public/images/avatars/124.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/124.svg rename to archive/bbs-go/site/src/public/images/avatars/124.svg diff --git a/bbs-go/site/src/public/images/avatars/125.png b/archive/bbs-go/site/src/public/images/avatars/125.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/125.png rename to archive/bbs-go/site/src/public/images/avatars/125.png diff --git a/bbs-go/site/src/public/images/avatars/125.svg b/archive/bbs-go/site/src/public/images/avatars/125.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/125.svg rename to archive/bbs-go/site/src/public/images/avatars/125.svg diff --git a/bbs-go/site/src/public/images/avatars/126.png b/archive/bbs-go/site/src/public/images/avatars/126.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/126.png rename to archive/bbs-go/site/src/public/images/avatars/126.png diff --git a/bbs-go/site/src/public/images/avatars/126.svg b/archive/bbs-go/site/src/public/images/avatars/126.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/126.svg rename to archive/bbs-go/site/src/public/images/avatars/126.svg diff --git a/bbs-go/site/src/public/images/avatars/127.png b/archive/bbs-go/site/src/public/images/avatars/127.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/127.png rename to archive/bbs-go/site/src/public/images/avatars/127.png diff --git a/bbs-go/site/src/public/images/avatars/127.svg b/archive/bbs-go/site/src/public/images/avatars/127.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/127.svg rename to archive/bbs-go/site/src/public/images/avatars/127.svg diff --git a/bbs-go/site/src/public/images/avatars/13.png b/archive/bbs-go/site/src/public/images/avatars/13.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/13.png rename to archive/bbs-go/site/src/public/images/avatars/13.png diff --git a/bbs-go/site/src/public/images/avatars/13.svg b/archive/bbs-go/site/src/public/images/avatars/13.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/13.svg rename to archive/bbs-go/site/src/public/images/avatars/13.svg diff --git a/bbs-go/site/src/public/images/avatars/14.png b/archive/bbs-go/site/src/public/images/avatars/14.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/14.png rename to archive/bbs-go/site/src/public/images/avatars/14.png diff --git a/bbs-go/site/src/public/images/avatars/14.svg b/archive/bbs-go/site/src/public/images/avatars/14.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/14.svg rename to archive/bbs-go/site/src/public/images/avatars/14.svg diff --git a/bbs-go/site/src/public/images/avatars/15.png b/archive/bbs-go/site/src/public/images/avatars/15.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/15.png rename to archive/bbs-go/site/src/public/images/avatars/15.png diff --git a/bbs-go/site/src/public/images/avatars/15.svg b/archive/bbs-go/site/src/public/images/avatars/15.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/15.svg rename to archive/bbs-go/site/src/public/images/avatars/15.svg diff --git a/bbs-go/site/src/public/images/avatars/16.png b/archive/bbs-go/site/src/public/images/avatars/16.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/16.png rename to archive/bbs-go/site/src/public/images/avatars/16.png diff --git a/bbs-go/site/src/public/images/avatars/16.svg b/archive/bbs-go/site/src/public/images/avatars/16.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/16.svg rename to archive/bbs-go/site/src/public/images/avatars/16.svg diff --git a/bbs-go/site/src/public/images/avatars/17.png b/archive/bbs-go/site/src/public/images/avatars/17.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/17.png rename to archive/bbs-go/site/src/public/images/avatars/17.png diff --git a/bbs-go/site/src/public/images/avatars/17.svg b/archive/bbs-go/site/src/public/images/avatars/17.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/17.svg rename to archive/bbs-go/site/src/public/images/avatars/17.svg diff --git a/bbs-go/site/src/public/images/avatars/18.png b/archive/bbs-go/site/src/public/images/avatars/18.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/18.png rename to archive/bbs-go/site/src/public/images/avatars/18.png diff --git a/bbs-go/site/src/public/images/avatars/18.svg b/archive/bbs-go/site/src/public/images/avatars/18.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/18.svg rename to archive/bbs-go/site/src/public/images/avatars/18.svg diff --git a/bbs-go/site/src/public/images/avatars/19.png b/archive/bbs-go/site/src/public/images/avatars/19.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/19.png rename to archive/bbs-go/site/src/public/images/avatars/19.png diff --git a/bbs-go/site/src/public/images/avatars/19.svg b/archive/bbs-go/site/src/public/images/avatars/19.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/19.svg rename to archive/bbs-go/site/src/public/images/avatars/19.svg diff --git a/bbs-go/site/src/public/images/avatars/2.png b/archive/bbs-go/site/src/public/images/avatars/2.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/2.png rename to archive/bbs-go/site/src/public/images/avatars/2.png diff --git a/bbs-go/site/src/public/images/avatars/2.svg b/archive/bbs-go/site/src/public/images/avatars/2.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/2.svg rename to archive/bbs-go/site/src/public/images/avatars/2.svg diff --git a/bbs-go/site/src/public/images/avatars/20.png b/archive/bbs-go/site/src/public/images/avatars/20.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/20.png rename to archive/bbs-go/site/src/public/images/avatars/20.png diff --git a/bbs-go/site/src/public/images/avatars/20.svg b/archive/bbs-go/site/src/public/images/avatars/20.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/20.svg rename to archive/bbs-go/site/src/public/images/avatars/20.svg diff --git a/bbs-go/site/src/public/images/avatars/21.png b/archive/bbs-go/site/src/public/images/avatars/21.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/21.png rename to archive/bbs-go/site/src/public/images/avatars/21.png diff --git a/bbs-go/site/src/public/images/avatars/21.svg b/archive/bbs-go/site/src/public/images/avatars/21.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/21.svg rename to archive/bbs-go/site/src/public/images/avatars/21.svg diff --git a/bbs-go/site/src/public/images/avatars/22.png b/archive/bbs-go/site/src/public/images/avatars/22.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/22.png rename to archive/bbs-go/site/src/public/images/avatars/22.png diff --git a/bbs-go/site/src/public/images/avatars/22.svg b/archive/bbs-go/site/src/public/images/avatars/22.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/22.svg rename to archive/bbs-go/site/src/public/images/avatars/22.svg diff --git a/bbs-go/site/src/public/images/avatars/23.png b/archive/bbs-go/site/src/public/images/avatars/23.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/23.png rename to archive/bbs-go/site/src/public/images/avatars/23.png diff --git a/bbs-go/site/src/public/images/avatars/23.svg b/archive/bbs-go/site/src/public/images/avatars/23.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/23.svg rename to archive/bbs-go/site/src/public/images/avatars/23.svg diff --git a/bbs-go/site/src/public/images/avatars/24.png b/archive/bbs-go/site/src/public/images/avatars/24.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/24.png rename to archive/bbs-go/site/src/public/images/avatars/24.png diff --git a/bbs-go/site/src/public/images/avatars/24.svg b/archive/bbs-go/site/src/public/images/avatars/24.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/24.svg rename to archive/bbs-go/site/src/public/images/avatars/24.svg diff --git a/bbs-go/site/src/public/images/avatars/25.png b/archive/bbs-go/site/src/public/images/avatars/25.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/25.png rename to archive/bbs-go/site/src/public/images/avatars/25.png diff --git a/bbs-go/site/src/public/images/avatars/25.svg b/archive/bbs-go/site/src/public/images/avatars/25.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/25.svg rename to archive/bbs-go/site/src/public/images/avatars/25.svg diff --git a/bbs-go/site/src/public/images/avatars/26.png b/archive/bbs-go/site/src/public/images/avatars/26.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/26.png rename to archive/bbs-go/site/src/public/images/avatars/26.png diff --git a/bbs-go/site/src/public/images/avatars/26.svg b/archive/bbs-go/site/src/public/images/avatars/26.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/26.svg rename to archive/bbs-go/site/src/public/images/avatars/26.svg diff --git a/bbs-go/site/src/public/images/avatars/27.png b/archive/bbs-go/site/src/public/images/avatars/27.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/27.png rename to archive/bbs-go/site/src/public/images/avatars/27.png diff --git a/bbs-go/site/src/public/images/avatars/27.svg b/archive/bbs-go/site/src/public/images/avatars/27.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/27.svg rename to archive/bbs-go/site/src/public/images/avatars/27.svg diff --git a/bbs-go/site/src/public/images/avatars/28.png b/archive/bbs-go/site/src/public/images/avatars/28.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/28.png rename to archive/bbs-go/site/src/public/images/avatars/28.png diff --git a/bbs-go/site/src/public/images/avatars/28.svg b/archive/bbs-go/site/src/public/images/avatars/28.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/28.svg rename to archive/bbs-go/site/src/public/images/avatars/28.svg diff --git a/bbs-go/site/src/public/images/avatars/29.png b/archive/bbs-go/site/src/public/images/avatars/29.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/29.png rename to archive/bbs-go/site/src/public/images/avatars/29.png diff --git a/bbs-go/site/src/public/images/avatars/29.svg b/archive/bbs-go/site/src/public/images/avatars/29.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/29.svg rename to archive/bbs-go/site/src/public/images/avatars/29.svg diff --git a/bbs-go/site/src/public/images/avatars/3.png b/archive/bbs-go/site/src/public/images/avatars/3.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/3.png rename to archive/bbs-go/site/src/public/images/avatars/3.png diff --git a/bbs-go/site/src/public/images/avatars/3.svg b/archive/bbs-go/site/src/public/images/avatars/3.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/3.svg rename to archive/bbs-go/site/src/public/images/avatars/3.svg diff --git a/bbs-go/site/src/public/images/avatars/30.png b/archive/bbs-go/site/src/public/images/avatars/30.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/30.png rename to archive/bbs-go/site/src/public/images/avatars/30.png diff --git a/bbs-go/site/src/public/images/avatars/30.svg b/archive/bbs-go/site/src/public/images/avatars/30.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/30.svg rename to archive/bbs-go/site/src/public/images/avatars/30.svg diff --git a/bbs-go/site/src/public/images/avatars/31.png b/archive/bbs-go/site/src/public/images/avatars/31.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/31.png rename to archive/bbs-go/site/src/public/images/avatars/31.png diff --git a/bbs-go/site/src/public/images/avatars/31.svg b/archive/bbs-go/site/src/public/images/avatars/31.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/31.svg rename to archive/bbs-go/site/src/public/images/avatars/31.svg diff --git a/bbs-go/site/src/public/images/avatars/32.png b/archive/bbs-go/site/src/public/images/avatars/32.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/32.png rename to archive/bbs-go/site/src/public/images/avatars/32.png diff --git a/bbs-go/site/src/public/images/avatars/32.svg b/archive/bbs-go/site/src/public/images/avatars/32.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/32.svg rename to archive/bbs-go/site/src/public/images/avatars/32.svg diff --git a/bbs-go/site/src/public/images/avatars/33.png b/archive/bbs-go/site/src/public/images/avatars/33.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/33.png rename to archive/bbs-go/site/src/public/images/avatars/33.png diff --git a/bbs-go/site/src/public/images/avatars/33.svg b/archive/bbs-go/site/src/public/images/avatars/33.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/33.svg rename to archive/bbs-go/site/src/public/images/avatars/33.svg diff --git a/bbs-go/site/src/public/images/avatars/34.png b/archive/bbs-go/site/src/public/images/avatars/34.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/34.png rename to archive/bbs-go/site/src/public/images/avatars/34.png diff --git a/bbs-go/site/src/public/images/avatars/34.svg b/archive/bbs-go/site/src/public/images/avatars/34.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/34.svg rename to archive/bbs-go/site/src/public/images/avatars/34.svg diff --git a/bbs-go/site/src/public/images/avatars/35.png b/archive/bbs-go/site/src/public/images/avatars/35.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/35.png rename to archive/bbs-go/site/src/public/images/avatars/35.png diff --git a/bbs-go/site/src/public/images/avatars/35.svg b/archive/bbs-go/site/src/public/images/avatars/35.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/35.svg rename to archive/bbs-go/site/src/public/images/avatars/35.svg diff --git a/bbs-go/site/src/public/images/avatars/36.png b/archive/bbs-go/site/src/public/images/avatars/36.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/36.png rename to archive/bbs-go/site/src/public/images/avatars/36.png diff --git a/bbs-go/site/src/public/images/avatars/36.svg b/archive/bbs-go/site/src/public/images/avatars/36.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/36.svg rename to archive/bbs-go/site/src/public/images/avatars/36.svg diff --git a/bbs-go/site/src/public/images/avatars/37.png b/archive/bbs-go/site/src/public/images/avatars/37.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/37.png rename to archive/bbs-go/site/src/public/images/avatars/37.png diff --git a/bbs-go/site/src/public/images/avatars/37.svg b/archive/bbs-go/site/src/public/images/avatars/37.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/37.svg rename to archive/bbs-go/site/src/public/images/avatars/37.svg diff --git a/bbs-go/site/src/public/images/avatars/38.png b/archive/bbs-go/site/src/public/images/avatars/38.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/38.png rename to archive/bbs-go/site/src/public/images/avatars/38.png diff --git a/bbs-go/site/src/public/images/avatars/38.svg b/archive/bbs-go/site/src/public/images/avatars/38.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/38.svg rename to archive/bbs-go/site/src/public/images/avatars/38.svg diff --git a/bbs-go/site/src/public/images/avatars/39.png b/archive/bbs-go/site/src/public/images/avatars/39.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/39.png rename to archive/bbs-go/site/src/public/images/avatars/39.png diff --git a/bbs-go/site/src/public/images/avatars/39.svg b/archive/bbs-go/site/src/public/images/avatars/39.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/39.svg rename to archive/bbs-go/site/src/public/images/avatars/39.svg diff --git a/bbs-go/site/src/public/images/avatars/4.png b/archive/bbs-go/site/src/public/images/avatars/4.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/4.png rename to archive/bbs-go/site/src/public/images/avatars/4.png diff --git a/bbs-go/site/src/public/images/avatars/4.svg b/archive/bbs-go/site/src/public/images/avatars/4.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/4.svg rename to archive/bbs-go/site/src/public/images/avatars/4.svg diff --git a/bbs-go/site/src/public/images/avatars/40.png b/archive/bbs-go/site/src/public/images/avatars/40.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/40.png rename to archive/bbs-go/site/src/public/images/avatars/40.png diff --git a/bbs-go/site/src/public/images/avatars/40.svg b/archive/bbs-go/site/src/public/images/avatars/40.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/40.svg rename to archive/bbs-go/site/src/public/images/avatars/40.svg diff --git a/bbs-go/site/src/public/images/avatars/41.png b/archive/bbs-go/site/src/public/images/avatars/41.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/41.png rename to archive/bbs-go/site/src/public/images/avatars/41.png diff --git a/bbs-go/site/src/public/images/avatars/41.svg b/archive/bbs-go/site/src/public/images/avatars/41.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/41.svg rename to archive/bbs-go/site/src/public/images/avatars/41.svg diff --git a/bbs-go/site/src/public/images/avatars/42.png b/archive/bbs-go/site/src/public/images/avatars/42.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/42.png rename to archive/bbs-go/site/src/public/images/avatars/42.png diff --git a/bbs-go/site/src/public/images/avatars/42.svg b/archive/bbs-go/site/src/public/images/avatars/42.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/42.svg rename to archive/bbs-go/site/src/public/images/avatars/42.svg diff --git a/bbs-go/site/src/public/images/avatars/43.png b/archive/bbs-go/site/src/public/images/avatars/43.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/43.png rename to archive/bbs-go/site/src/public/images/avatars/43.png diff --git a/bbs-go/site/src/public/images/avatars/43.svg b/archive/bbs-go/site/src/public/images/avatars/43.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/43.svg rename to archive/bbs-go/site/src/public/images/avatars/43.svg diff --git a/bbs-go/site/src/public/images/avatars/44.png b/archive/bbs-go/site/src/public/images/avatars/44.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/44.png rename to archive/bbs-go/site/src/public/images/avatars/44.png diff --git a/bbs-go/site/src/public/images/avatars/44.svg b/archive/bbs-go/site/src/public/images/avatars/44.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/44.svg rename to archive/bbs-go/site/src/public/images/avatars/44.svg diff --git a/bbs-go/site/src/public/images/avatars/45.png b/archive/bbs-go/site/src/public/images/avatars/45.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/45.png rename to archive/bbs-go/site/src/public/images/avatars/45.png diff --git a/bbs-go/site/src/public/images/avatars/45.svg b/archive/bbs-go/site/src/public/images/avatars/45.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/45.svg rename to archive/bbs-go/site/src/public/images/avatars/45.svg diff --git a/bbs-go/site/src/public/images/avatars/46.png b/archive/bbs-go/site/src/public/images/avatars/46.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/46.png rename to archive/bbs-go/site/src/public/images/avatars/46.png diff --git a/bbs-go/site/src/public/images/avatars/46.svg b/archive/bbs-go/site/src/public/images/avatars/46.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/46.svg rename to archive/bbs-go/site/src/public/images/avatars/46.svg diff --git a/bbs-go/site/src/public/images/avatars/47.png b/archive/bbs-go/site/src/public/images/avatars/47.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/47.png rename to archive/bbs-go/site/src/public/images/avatars/47.png diff --git a/bbs-go/site/src/public/images/avatars/47.svg b/archive/bbs-go/site/src/public/images/avatars/47.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/47.svg rename to archive/bbs-go/site/src/public/images/avatars/47.svg diff --git a/bbs-go/site/src/public/images/avatars/48.png b/archive/bbs-go/site/src/public/images/avatars/48.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/48.png rename to archive/bbs-go/site/src/public/images/avatars/48.png diff --git a/bbs-go/site/src/public/images/avatars/48.svg b/archive/bbs-go/site/src/public/images/avatars/48.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/48.svg rename to archive/bbs-go/site/src/public/images/avatars/48.svg diff --git a/bbs-go/site/src/public/images/avatars/49.png b/archive/bbs-go/site/src/public/images/avatars/49.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/49.png rename to archive/bbs-go/site/src/public/images/avatars/49.png diff --git a/bbs-go/site/src/public/images/avatars/49.svg b/archive/bbs-go/site/src/public/images/avatars/49.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/49.svg rename to archive/bbs-go/site/src/public/images/avatars/49.svg diff --git a/bbs-go/site/src/public/images/avatars/5.png b/archive/bbs-go/site/src/public/images/avatars/5.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/5.png rename to archive/bbs-go/site/src/public/images/avatars/5.png diff --git a/bbs-go/site/src/public/images/avatars/5.svg b/archive/bbs-go/site/src/public/images/avatars/5.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/5.svg rename to archive/bbs-go/site/src/public/images/avatars/5.svg diff --git a/bbs-go/site/src/public/images/avatars/50.png b/archive/bbs-go/site/src/public/images/avatars/50.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/50.png rename to archive/bbs-go/site/src/public/images/avatars/50.png diff --git a/bbs-go/site/src/public/images/avatars/50.svg b/archive/bbs-go/site/src/public/images/avatars/50.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/50.svg rename to archive/bbs-go/site/src/public/images/avatars/50.svg diff --git a/bbs-go/site/src/public/images/avatars/51.png b/archive/bbs-go/site/src/public/images/avatars/51.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/51.png rename to archive/bbs-go/site/src/public/images/avatars/51.png diff --git a/bbs-go/site/src/public/images/avatars/51.svg b/archive/bbs-go/site/src/public/images/avatars/51.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/51.svg rename to archive/bbs-go/site/src/public/images/avatars/51.svg diff --git a/bbs-go/site/src/public/images/avatars/52.png b/archive/bbs-go/site/src/public/images/avatars/52.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/52.png rename to archive/bbs-go/site/src/public/images/avatars/52.png diff --git a/bbs-go/site/src/public/images/avatars/52.svg b/archive/bbs-go/site/src/public/images/avatars/52.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/52.svg rename to archive/bbs-go/site/src/public/images/avatars/52.svg diff --git a/bbs-go/site/src/public/images/avatars/53.png b/archive/bbs-go/site/src/public/images/avatars/53.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/53.png rename to archive/bbs-go/site/src/public/images/avatars/53.png diff --git a/bbs-go/site/src/public/images/avatars/53.svg b/archive/bbs-go/site/src/public/images/avatars/53.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/53.svg rename to archive/bbs-go/site/src/public/images/avatars/53.svg diff --git a/bbs-go/site/src/public/images/avatars/54.png b/archive/bbs-go/site/src/public/images/avatars/54.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/54.png rename to archive/bbs-go/site/src/public/images/avatars/54.png diff --git a/bbs-go/site/src/public/images/avatars/54.svg b/archive/bbs-go/site/src/public/images/avatars/54.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/54.svg rename to archive/bbs-go/site/src/public/images/avatars/54.svg diff --git a/bbs-go/site/src/public/images/avatars/55.png b/archive/bbs-go/site/src/public/images/avatars/55.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/55.png rename to archive/bbs-go/site/src/public/images/avatars/55.png diff --git a/bbs-go/site/src/public/images/avatars/55.svg b/archive/bbs-go/site/src/public/images/avatars/55.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/55.svg rename to archive/bbs-go/site/src/public/images/avatars/55.svg diff --git a/bbs-go/site/src/public/images/avatars/56.png b/archive/bbs-go/site/src/public/images/avatars/56.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/56.png rename to archive/bbs-go/site/src/public/images/avatars/56.png diff --git a/bbs-go/site/src/public/images/avatars/56.svg b/archive/bbs-go/site/src/public/images/avatars/56.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/56.svg rename to archive/bbs-go/site/src/public/images/avatars/56.svg diff --git a/bbs-go/site/src/public/images/avatars/57.png b/archive/bbs-go/site/src/public/images/avatars/57.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/57.png rename to archive/bbs-go/site/src/public/images/avatars/57.png diff --git a/bbs-go/site/src/public/images/avatars/57.svg b/archive/bbs-go/site/src/public/images/avatars/57.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/57.svg rename to archive/bbs-go/site/src/public/images/avatars/57.svg diff --git a/bbs-go/site/src/public/images/avatars/58.png b/archive/bbs-go/site/src/public/images/avatars/58.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/58.png rename to archive/bbs-go/site/src/public/images/avatars/58.png diff --git a/bbs-go/site/src/public/images/avatars/58.svg b/archive/bbs-go/site/src/public/images/avatars/58.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/58.svg rename to archive/bbs-go/site/src/public/images/avatars/58.svg diff --git a/bbs-go/site/src/public/images/avatars/59.png b/archive/bbs-go/site/src/public/images/avatars/59.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/59.png rename to archive/bbs-go/site/src/public/images/avatars/59.png diff --git a/bbs-go/site/src/public/images/avatars/59.svg b/archive/bbs-go/site/src/public/images/avatars/59.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/59.svg rename to archive/bbs-go/site/src/public/images/avatars/59.svg diff --git a/bbs-go/site/src/public/images/avatars/6.png b/archive/bbs-go/site/src/public/images/avatars/6.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/6.png rename to archive/bbs-go/site/src/public/images/avatars/6.png diff --git a/bbs-go/site/src/public/images/avatars/6.svg b/archive/bbs-go/site/src/public/images/avatars/6.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/6.svg rename to archive/bbs-go/site/src/public/images/avatars/6.svg diff --git a/bbs-go/site/src/public/images/avatars/60.png b/archive/bbs-go/site/src/public/images/avatars/60.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/60.png rename to archive/bbs-go/site/src/public/images/avatars/60.png diff --git a/bbs-go/site/src/public/images/avatars/60.svg b/archive/bbs-go/site/src/public/images/avatars/60.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/60.svg rename to archive/bbs-go/site/src/public/images/avatars/60.svg diff --git a/bbs-go/site/src/public/images/avatars/61.png b/archive/bbs-go/site/src/public/images/avatars/61.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/61.png rename to archive/bbs-go/site/src/public/images/avatars/61.png diff --git a/bbs-go/site/src/public/images/avatars/61.svg b/archive/bbs-go/site/src/public/images/avatars/61.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/61.svg rename to archive/bbs-go/site/src/public/images/avatars/61.svg diff --git a/bbs-go/site/src/public/images/avatars/62.png b/archive/bbs-go/site/src/public/images/avatars/62.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/62.png rename to archive/bbs-go/site/src/public/images/avatars/62.png diff --git a/bbs-go/site/src/public/images/avatars/62.svg b/archive/bbs-go/site/src/public/images/avatars/62.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/62.svg rename to archive/bbs-go/site/src/public/images/avatars/62.svg diff --git a/bbs-go/site/src/public/images/avatars/63.png b/archive/bbs-go/site/src/public/images/avatars/63.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/63.png rename to archive/bbs-go/site/src/public/images/avatars/63.png diff --git a/bbs-go/site/src/public/images/avatars/63.svg b/archive/bbs-go/site/src/public/images/avatars/63.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/63.svg rename to archive/bbs-go/site/src/public/images/avatars/63.svg diff --git a/bbs-go/site/src/public/images/avatars/64.png b/archive/bbs-go/site/src/public/images/avatars/64.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/64.png rename to archive/bbs-go/site/src/public/images/avatars/64.png diff --git a/bbs-go/site/src/public/images/avatars/64.svg b/archive/bbs-go/site/src/public/images/avatars/64.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/64.svg rename to archive/bbs-go/site/src/public/images/avatars/64.svg diff --git a/bbs-go/site/src/public/images/avatars/65.png b/archive/bbs-go/site/src/public/images/avatars/65.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/65.png rename to archive/bbs-go/site/src/public/images/avatars/65.png diff --git a/bbs-go/site/src/public/images/avatars/65.svg b/archive/bbs-go/site/src/public/images/avatars/65.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/65.svg rename to archive/bbs-go/site/src/public/images/avatars/65.svg diff --git a/bbs-go/site/src/public/images/avatars/66.png b/archive/bbs-go/site/src/public/images/avatars/66.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/66.png rename to archive/bbs-go/site/src/public/images/avatars/66.png diff --git a/bbs-go/site/src/public/images/avatars/66.svg b/archive/bbs-go/site/src/public/images/avatars/66.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/66.svg rename to archive/bbs-go/site/src/public/images/avatars/66.svg diff --git a/bbs-go/site/src/public/images/avatars/67.png b/archive/bbs-go/site/src/public/images/avatars/67.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/67.png rename to archive/bbs-go/site/src/public/images/avatars/67.png diff --git a/bbs-go/site/src/public/images/avatars/67.svg b/archive/bbs-go/site/src/public/images/avatars/67.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/67.svg rename to archive/bbs-go/site/src/public/images/avatars/67.svg diff --git a/bbs-go/site/src/public/images/avatars/68.png b/archive/bbs-go/site/src/public/images/avatars/68.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/68.png rename to archive/bbs-go/site/src/public/images/avatars/68.png diff --git a/bbs-go/site/src/public/images/avatars/68.svg b/archive/bbs-go/site/src/public/images/avatars/68.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/68.svg rename to archive/bbs-go/site/src/public/images/avatars/68.svg diff --git a/bbs-go/site/src/public/images/avatars/69.png b/archive/bbs-go/site/src/public/images/avatars/69.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/69.png rename to archive/bbs-go/site/src/public/images/avatars/69.png diff --git a/bbs-go/site/src/public/images/avatars/69.svg b/archive/bbs-go/site/src/public/images/avatars/69.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/69.svg rename to archive/bbs-go/site/src/public/images/avatars/69.svg diff --git a/bbs-go/site/src/public/images/avatars/7.png b/archive/bbs-go/site/src/public/images/avatars/7.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/7.png rename to archive/bbs-go/site/src/public/images/avatars/7.png diff --git a/bbs-go/site/src/public/images/avatars/7.svg b/archive/bbs-go/site/src/public/images/avatars/7.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/7.svg rename to archive/bbs-go/site/src/public/images/avatars/7.svg diff --git a/bbs-go/site/src/public/images/avatars/70.png b/archive/bbs-go/site/src/public/images/avatars/70.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/70.png rename to archive/bbs-go/site/src/public/images/avatars/70.png diff --git a/bbs-go/site/src/public/images/avatars/70.svg b/archive/bbs-go/site/src/public/images/avatars/70.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/70.svg rename to archive/bbs-go/site/src/public/images/avatars/70.svg diff --git a/bbs-go/site/src/public/images/avatars/71.png b/archive/bbs-go/site/src/public/images/avatars/71.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/71.png rename to archive/bbs-go/site/src/public/images/avatars/71.png diff --git a/bbs-go/site/src/public/images/avatars/71.svg b/archive/bbs-go/site/src/public/images/avatars/71.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/71.svg rename to archive/bbs-go/site/src/public/images/avatars/71.svg diff --git a/bbs-go/site/src/public/images/avatars/72.png b/archive/bbs-go/site/src/public/images/avatars/72.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/72.png rename to archive/bbs-go/site/src/public/images/avatars/72.png diff --git a/bbs-go/site/src/public/images/avatars/72.svg b/archive/bbs-go/site/src/public/images/avatars/72.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/72.svg rename to archive/bbs-go/site/src/public/images/avatars/72.svg diff --git a/bbs-go/site/src/public/images/avatars/73.png b/archive/bbs-go/site/src/public/images/avatars/73.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/73.png rename to archive/bbs-go/site/src/public/images/avatars/73.png diff --git a/bbs-go/site/src/public/images/avatars/73.svg b/archive/bbs-go/site/src/public/images/avatars/73.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/73.svg rename to archive/bbs-go/site/src/public/images/avatars/73.svg diff --git a/bbs-go/site/src/public/images/avatars/74.png b/archive/bbs-go/site/src/public/images/avatars/74.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/74.png rename to archive/bbs-go/site/src/public/images/avatars/74.png diff --git a/bbs-go/site/src/public/images/avatars/74.svg b/archive/bbs-go/site/src/public/images/avatars/74.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/74.svg rename to archive/bbs-go/site/src/public/images/avatars/74.svg diff --git a/bbs-go/site/src/public/images/avatars/75.png b/archive/bbs-go/site/src/public/images/avatars/75.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/75.png rename to archive/bbs-go/site/src/public/images/avatars/75.png diff --git a/bbs-go/site/src/public/images/avatars/75.svg b/archive/bbs-go/site/src/public/images/avatars/75.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/75.svg rename to archive/bbs-go/site/src/public/images/avatars/75.svg diff --git a/bbs-go/site/src/public/images/avatars/76.png b/archive/bbs-go/site/src/public/images/avatars/76.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/76.png rename to archive/bbs-go/site/src/public/images/avatars/76.png diff --git a/bbs-go/site/src/public/images/avatars/76.svg b/archive/bbs-go/site/src/public/images/avatars/76.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/76.svg rename to archive/bbs-go/site/src/public/images/avatars/76.svg diff --git a/bbs-go/site/src/public/images/avatars/77.png b/archive/bbs-go/site/src/public/images/avatars/77.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/77.png rename to archive/bbs-go/site/src/public/images/avatars/77.png diff --git a/bbs-go/site/src/public/images/avatars/77.svg b/archive/bbs-go/site/src/public/images/avatars/77.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/77.svg rename to archive/bbs-go/site/src/public/images/avatars/77.svg diff --git a/bbs-go/site/src/public/images/avatars/78.png b/archive/bbs-go/site/src/public/images/avatars/78.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/78.png rename to archive/bbs-go/site/src/public/images/avatars/78.png diff --git a/bbs-go/site/src/public/images/avatars/78.svg b/archive/bbs-go/site/src/public/images/avatars/78.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/78.svg rename to archive/bbs-go/site/src/public/images/avatars/78.svg diff --git a/bbs-go/site/src/public/images/avatars/79.png b/archive/bbs-go/site/src/public/images/avatars/79.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/79.png rename to archive/bbs-go/site/src/public/images/avatars/79.png diff --git a/bbs-go/site/src/public/images/avatars/79.svg b/archive/bbs-go/site/src/public/images/avatars/79.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/79.svg rename to archive/bbs-go/site/src/public/images/avatars/79.svg diff --git a/bbs-go/site/src/public/images/avatars/8.png b/archive/bbs-go/site/src/public/images/avatars/8.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/8.png rename to archive/bbs-go/site/src/public/images/avatars/8.png diff --git a/bbs-go/site/src/public/images/avatars/8.svg b/archive/bbs-go/site/src/public/images/avatars/8.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/8.svg rename to archive/bbs-go/site/src/public/images/avatars/8.svg diff --git a/bbs-go/site/src/public/images/avatars/80.png b/archive/bbs-go/site/src/public/images/avatars/80.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/80.png rename to archive/bbs-go/site/src/public/images/avatars/80.png diff --git a/bbs-go/site/src/public/images/avatars/80.svg b/archive/bbs-go/site/src/public/images/avatars/80.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/80.svg rename to archive/bbs-go/site/src/public/images/avatars/80.svg diff --git a/bbs-go/site/src/public/images/avatars/81.png b/archive/bbs-go/site/src/public/images/avatars/81.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/81.png rename to archive/bbs-go/site/src/public/images/avatars/81.png diff --git a/bbs-go/site/src/public/images/avatars/81.svg b/archive/bbs-go/site/src/public/images/avatars/81.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/81.svg rename to archive/bbs-go/site/src/public/images/avatars/81.svg diff --git a/bbs-go/site/src/public/images/avatars/82.png b/archive/bbs-go/site/src/public/images/avatars/82.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/82.png rename to archive/bbs-go/site/src/public/images/avatars/82.png diff --git a/bbs-go/site/src/public/images/avatars/82.svg b/archive/bbs-go/site/src/public/images/avatars/82.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/82.svg rename to archive/bbs-go/site/src/public/images/avatars/82.svg diff --git a/bbs-go/site/src/public/images/avatars/83.png b/archive/bbs-go/site/src/public/images/avatars/83.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/83.png rename to archive/bbs-go/site/src/public/images/avatars/83.png diff --git a/bbs-go/site/src/public/images/avatars/83.svg b/archive/bbs-go/site/src/public/images/avatars/83.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/83.svg rename to archive/bbs-go/site/src/public/images/avatars/83.svg diff --git a/bbs-go/site/src/public/images/avatars/84.png b/archive/bbs-go/site/src/public/images/avatars/84.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/84.png rename to archive/bbs-go/site/src/public/images/avatars/84.png diff --git a/bbs-go/site/src/public/images/avatars/84.svg b/archive/bbs-go/site/src/public/images/avatars/84.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/84.svg rename to archive/bbs-go/site/src/public/images/avatars/84.svg diff --git a/bbs-go/site/src/public/images/avatars/85.png b/archive/bbs-go/site/src/public/images/avatars/85.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/85.png rename to archive/bbs-go/site/src/public/images/avatars/85.png diff --git a/bbs-go/site/src/public/images/avatars/85.svg b/archive/bbs-go/site/src/public/images/avatars/85.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/85.svg rename to archive/bbs-go/site/src/public/images/avatars/85.svg diff --git a/bbs-go/site/src/public/images/avatars/86.png b/archive/bbs-go/site/src/public/images/avatars/86.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/86.png rename to archive/bbs-go/site/src/public/images/avatars/86.png diff --git a/bbs-go/site/src/public/images/avatars/86.svg b/archive/bbs-go/site/src/public/images/avatars/86.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/86.svg rename to archive/bbs-go/site/src/public/images/avatars/86.svg diff --git a/bbs-go/site/src/public/images/avatars/87.png b/archive/bbs-go/site/src/public/images/avatars/87.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/87.png rename to archive/bbs-go/site/src/public/images/avatars/87.png diff --git a/bbs-go/site/src/public/images/avatars/87.svg b/archive/bbs-go/site/src/public/images/avatars/87.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/87.svg rename to archive/bbs-go/site/src/public/images/avatars/87.svg diff --git a/bbs-go/site/src/public/images/avatars/88.png b/archive/bbs-go/site/src/public/images/avatars/88.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/88.png rename to archive/bbs-go/site/src/public/images/avatars/88.png diff --git a/bbs-go/site/src/public/images/avatars/88.svg b/archive/bbs-go/site/src/public/images/avatars/88.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/88.svg rename to archive/bbs-go/site/src/public/images/avatars/88.svg diff --git a/bbs-go/site/src/public/images/avatars/89.png b/archive/bbs-go/site/src/public/images/avatars/89.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/89.png rename to archive/bbs-go/site/src/public/images/avatars/89.png diff --git a/bbs-go/site/src/public/images/avatars/89.svg b/archive/bbs-go/site/src/public/images/avatars/89.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/89.svg rename to archive/bbs-go/site/src/public/images/avatars/89.svg diff --git a/bbs-go/site/src/public/images/avatars/9.png b/archive/bbs-go/site/src/public/images/avatars/9.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/9.png rename to archive/bbs-go/site/src/public/images/avatars/9.png diff --git a/bbs-go/site/src/public/images/avatars/9.svg b/archive/bbs-go/site/src/public/images/avatars/9.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/9.svg rename to archive/bbs-go/site/src/public/images/avatars/9.svg diff --git a/bbs-go/site/src/public/images/avatars/90.png b/archive/bbs-go/site/src/public/images/avatars/90.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/90.png rename to archive/bbs-go/site/src/public/images/avatars/90.png diff --git a/bbs-go/site/src/public/images/avatars/90.svg b/archive/bbs-go/site/src/public/images/avatars/90.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/90.svg rename to archive/bbs-go/site/src/public/images/avatars/90.svg diff --git a/bbs-go/site/src/public/images/avatars/91.png b/archive/bbs-go/site/src/public/images/avatars/91.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/91.png rename to archive/bbs-go/site/src/public/images/avatars/91.png diff --git a/bbs-go/site/src/public/images/avatars/91.svg b/archive/bbs-go/site/src/public/images/avatars/91.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/91.svg rename to archive/bbs-go/site/src/public/images/avatars/91.svg diff --git a/bbs-go/site/src/public/images/avatars/92.png b/archive/bbs-go/site/src/public/images/avatars/92.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/92.png rename to archive/bbs-go/site/src/public/images/avatars/92.png diff --git a/bbs-go/site/src/public/images/avatars/92.svg b/archive/bbs-go/site/src/public/images/avatars/92.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/92.svg rename to archive/bbs-go/site/src/public/images/avatars/92.svg diff --git a/bbs-go/site/src/public/images/avatars/93.png b/archive/bbs-go/site/src/public/images/avatars/93.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/93.png rename to archive/bbs-go/site/src/public/images/avatars/93.png diff --git a/bbs-go/site/src/public/images/avatars/93.svg b/archive/bbs-go/site/src/public/images/avatars/93.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/93.svg rename to archive/bbs-go/site/src/public/images/avatars/93.svg diff --git a/bbs-go/site/src/public/images/avatars/94.png b/archive/bbs-go/site/src/public/images/avatars/94.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/94.png rename to archive/bbs-go/site/src/public/images/avatars/94.png diff --git a/bbs-go/site/src/public/images/avatars/94.svg b/archive/bbs-go/site/src/public/images/avatars/94.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/94.svg rename to archive/bbs-go/site/src/public/images/avatars/94.svg diff --git a/bbs-go/site/src/public/images/avatars/95.png b/archive/bbs-go/site/src/public/images/avatars/95.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/95.png rename to archive/bbs-go/site/src/public/images/avatars/95.png diff --git a/bbs-go/site/src/public/images/avatars/95.svg b/archive/bbs-go/site/src/public/images/avatars/95.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/95.svg rename to archive/bbs-go/site/src/public/images/avatars/95.svg diff --git a/bbs-go/site/src/public/images/avatars/96.png b/archive/bbs-go/site/src/public/images/avatars/96.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/96.png rename to archive/bbs-go/site/src/public/images/avatars/96.png diff --git a/bbs-go/site/src/public/images/avatars/96.svg b/archive/bbs-go/site/src/public/images/avatars/96.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/96.svg rename to archive/bbs-go/site/src/public/images/avatars/96.svg diff --git a/bbs-go/site/src/public/images/avatars/97.png b/archive/bbs-go/site/src/public/images/avatars/97.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/97.png rename to archive/bbs-go/site/src/public/images/avatars/97.png diff --git a/bbs-go/site/src/public/images/avatars/97.svg b/archive/bbs-go/site/src/public/images/avatars/97.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/97.svg rename to archive/bbs-go/site/src/public/images/avatars/97.svg diff --git a/bbs-go/site/src/public/images/avatars/98.png b/archive/bbs-go/site/src/public/images/avatars/98.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/98.png rename to archive/bbs-go/site/src/public/images/avatars/98.png diff --git a/bbs-go/site/src/public/images/avatars/98.svg b/archive/bbs-go/site/src/public/images/avatars/98.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/98.svg rename to archive/bbs-go/site/src/public/images/avatars/98.svg diff --git a/bbs-go/site/src/public/images/avatars/99.png b/archive/bbs-go/site/src/public/images/avatars/99.png similarity index 100% rename from bbs-go/site/src/public/images/avatars/99.png rename to archive/bbs-go/site/src/public/images/avatars/99.png diff --git a/bbs-go/site/src/public/images/avatars/99.svg b/archive/bbs-go/site/src/public/images/avatars/99.svg similarity index 100% rename from bbs-go/site/src/public/images/avatars/99.svg rename to archive/bbs-go/site/src/public/images/avatars/99.svg diff --git a/bbs-go/site/src/public/robots.txt b/archive/bbs-go/site/src/public/robots.txt similarity index 100% rename from bbs-go/site/src/public/robots.txt rename to archive/bbs-go/site/src/public/robots.txt diff --git a/bbs-go/site/src/server/middleware/index.ts b/archive/bbs-go/site/src/server/middleware/index.ts similarity index 100% rename from bbs-go/site/src/server/middleware/index.ts rename to archive/bbs-go/site/src/server/middleware/index.ts diff --git a/bbs-go/site/src/stores/config.js b/archive/bbs-go/site/src/stores/config.js similarity index 100% rename from bbs-go/site/src/stores/config.js rename to archive/bbs-go/site/src/stores/config.js diff --git a/bbs-go/site/src/stores/env.ts b/archive/bbs-go/site/src/stores/env.ts similarity index 100% rename from bbs-go/site/src/stores/env.ts rename to archive/bbs-go/site/src/stores/env.ts diff --git a/bbs-go/site/src/stores/user.js b/archive/bbs-go/site/src/stores/user.js similarity index 100% rename from bbs-go/site/src/stores/user.js rename to archive/bbs-go/site/src/stores/user.js diff --git a/bbs-go/site/tsconfig.json b/archive/bbs-go/site/tsconfig.json similarity index 100% rename from bbs-go/site/tsconfig.json rename to archive/bbs-go/site/tsconfig.json diff --git a/bbs-go/start.sh b/archive/bbs-go/start.sh similarity index 100% rename from bbs-go/start.sh rename to archive/bbs-go/start.sh diff --git a/bbs-go/vetur.config.js b/archive/bbs-go/vetur.config.js similarity index 100% rename from bbs-go/vetur.config.js rename to archive/bbs-go/vetur.config.js diff --git a/file-server/Dockerfile b/archive/file-server/Dockerfile similarity index 100% rename from file-server/Dockerfile rename to archive/file-server/Dockerfile diff --git a/file-server/docker-compose.yml b/archive/file-server/docker-compose.yml similarity index 100% rename from file-server/docker-compose.yml rename to archive/file-server/docker-compose.yml diff --git a/file-server/go.mod b/archive/file-server/go.mod similarity index 100% rename from file-server/go.mod rename to archive/file-server/go.mod diff --git a/file-server/main.go b/archive/file-server/main.go similarity index 100% rename from file-server/main.go rename to archive/file-server/main.go diff --git a/mongodb/docker-compose.yml b/archive/mongodb/docker-compose.yml similarity index 100% rename from mongodb/docker-compose.yml rename to archive/mongodb/docker-compose.yml diff --git a/registry/docker-compose.yml b/archive/registry/docker-compose.yml similarity index 96% rename from registry/docker-compose.yml rename to archive/registry/docker-compose.yml index f6cad3d..a92aec0 100644 --- a/registry/docker-compose.yml +++ b/archive/registry/docker-compose.yml @@ -1,14 +1,14 @@ -version: '3.8' - -services: - registry: - image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/registry:2.8.1 - container_name: registry - restart: always - environment: - REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /var/lib/registry - volumes: - - ./auth:/auth - - ./data:/var/lib/registry - ports: +version: '3.8' + +services: + registry: + image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/registry:2.8.1 + container_name: registry + restart: always + environment: + REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /var/lib/registry + volumes: + - ./auth:/auth + - ./data:/var/lib/registry + ports: - "3005:5000" \ No newline at end of file diff --git a/tailscale/config.yaml b/archive/tailscale/config.yaml similarity index 97% rename from tailscale/config.yaml rename to archive/tailscale/config.yaml index 1ed09ff..fb462e1 100644 --- a/tailscale/config.yaml +++ b/archive/tailscale/config.yaml @@ -1,337 +1,337 @@ ---- - -# - `/etc/headscale` -# - `~/.headscale` -# - 当前工作目录 - - -## 1. 更新Headscale配置启用HTTPS - -# 修改server_url为HTTPS -server_url: https://47.239.121.24:3009 - -# 启用HTTPS监听 -listen_addr: 0.0.0.0:8443 - -# 添加TLS配置 -tls_cert_path: "/var/lib/headscale/server.crt" -tls_key_path: "/var/lib/headscale/server.key" - -# 指标监听地址(建议保持内网访问) -metrics_listen_addr: 127.0.0.1:9090 - -# gRPC监听地址(用于远程CLI控制) -grpc_listen_addr: 0.0.0.0:50443 - -# 允许不安全的gRPC连接(不建议生产环境使用) -grpc_allow_insecure: true - -# Noise协议配置 -noise: - # 噪声协议私钥路径 - private_key_path: /var/lib/headscale/noise_private.key - -# IP地址分配前缀 -prefixes: - v4: 100.64.0.0/10 - v6: fd7a:115c:a1e0::/48 - # IP分配策略:sequential(顺序)或 random(随机) - allocation: sequential - -# DERP中继服务器配置 -derp: - server: - # 启用内置DERP服务器 - enabled: true - # 区域ID(避免与公共DERP区域冲突) - region_id: 999 - # 区域代码和名称(显示在客户端UI中) - region_code: "headscale" - region_name: "Headscale Embedded DERP" - # STUN服务监听地址(用于NAT穿透) - stun_listen_addr: "0.0.0.0:3478" - # DERP服务器私钥路径 - private_key_path: /var/lib/headscale/derp_server_private.key - # 自动添加内置DERP区域到DERP映射 - automatically_add_embedded_derp_region: true - # 公网IPv4/IPv6地址(提高连接稳定性) - ipv4: 47.239.121.24 - # ipv6: 2001:db8::1 - - # List of externally available DERP maps encoded in JSON - # urls: - # - https://controlplane.tailscale.com/derpmap/default - - # Locally available DERP map files encoded in YAML - # - # This option is mostly interesting for people hosting - # their own DERP servers: - # https://tailscale.com/kb/1118/custom-derp-servers/ - # - # paths: - # - /etc/headscale/derp-example.yaml - paths: [] - - # If enabled, a worker will be set up to periodically - # refresh the given sources and update the derpmap - # will be set up. - auto_update_enabled: true - - # How often should we check for DERP updates? - update_frequency: 24h - -# Disables the automatic check for headscale updates on startup -disable_check_updates: false - -# Time before an inactive ephemeral node is deleted? -ephemeral_node_inactivity_timeout: 30m - -database: - # Database type. Available options: sqlite, postgres - # Please note that using Postgres is highly discouraged as it is only supported for legacy reasons. - # All new development, testing and optimisations are done with SQLite in mind. - type: sqlite - - # Enable debug mode. This setting requires the log.level to be set to "debug" or "trace". - debug: true - - # GORM configuration settings. - gorm: - # Enable prepared statements. - prepare_stmt: true # 启用预处理语句 - parameterized_queries: true # 启用参数化查询 - skip_err_record_not_found: true # 跳过"记录未找到"错误 - slow_threshold: 1000 # 慢查询阈值(毫秒) - - # SQLite config - sqlite: - path: /var/lib/headscale/db.sqlite - write_ahead_log: true # 启用WAL模式(生产推荐) - wal_autocheckpoint: 1000 # WAL自动检查点阈值 - - # # Postgres config - # Please note that using Postgres is highly discouraged as it is only supported for legacy reasons. - # See database.type for more information. - # postgres: - # # If using a Unix socket to connect to Postgres, set the socket path in the 'host' field and leave 'port' blank. - # host: localhost - # port: 5432 - # name: headscale - # user: foo - # pass: bar - # max_open_conns: 10 - # max_idle_conns: 10 - # conn_max_idle_time_secs: 3600 - - # # If other 'sslmode' is required instead of 'require(true)' and 'disabled(false)', set the 'sslmode' you need - # # in the 'ssl' field. Refers to https://www.postgresql.org/docs/current/libpq-ssl.html Table 34.1. - # ssl: false - -### TLS configuration - 已注释掉,调试后再启用 -# -## Let's encrypt / ACME -# -# headscale supports automatically requesting and setting up -# TLS for a domain with Let's Encrypt. -# -# URL to ACME directory -# acme_url: https://acme-v02.api.letsencrypt.org/directory - -# Email to register with ACME provider -# acme_email: "" - -# Domain name to request a TLS certificate for: -# tls_letsencrypt_hostname: "" - -# Path to store certificates and metadata needed by -# letsencrypt -# For production: -# tls_letsencrypt_cache_dir: /var/lib/headscale/cache - -# Type of ACME challenge to use, currently supported types: -# HTTP-01 or TLS-ALPN-01 -# See: docs/ref/tls.md for more information -# tls_letsencrypt_challenge_type: HTTP-01 -# When HTTP-01 challenge is chosen, letsencrypt must set up a -# verification endpoint, and it will be listening on: -# :http = port 80 -# tls_letsencrypt_listen: ":http" - -## Use already defined certificates: -# tls_cert_path: "" -# tls_key_path: "" - -log: - # Output formatting for logs: text or json - format: text - level: info - -## Policy -# headscale supports Tailscale's ACL policies. -# Please have a look to their KB to better -# understand the concepts: https://tailscale.com/kb/1018/acls/ -policy: - # The mode can be "file" or "database" that defines - # where the ACL policies are stored and read from. - mode: file - # If the mode is set to "file", the path to a - # HuJSON file containing ACL policies. - path: "" - -## DNS -# -# headscale supports Tailscale's DNS configuration and MagicDNS. -# Please have a look to their KB to better understand the concepts: -# -# - https://tailscale.com/kb/1054/dns/ -# - https://tailscale.com/kb/1081/magicdns/ -# - https://tailscale.com/blog/2021-09-private-dns-withmagicdns/ -# -# Please note that for the DNS configuration to have any effect, -# clients must have the `--accept-dns=true` option enabled. This is the -# default for the Tailscale client. This option is enabled by default -# in the Tailscale client. -# -# Setting _any_ of the configuration and `--accept-dns=true` on the -# clients will integrate with the DNS manager on the client or -# overwrite /etc/resolv.conf. -# https://tailscale.com/kb/1235/resolv-conf -# -# If you want stop Headscale from managing the DNS configuration -# all the fields under `dns` should be set to empty values. -dns: - # Whether to use [MagicDNS](https://tailscale.com/kb/1081/magicdns/). - magic_dns: false - - # Defines the base domain to create the hostnames for MagicDNS. - # This domain _must_ be different from the server_url domain. - # `base_domain` must be a FQDN, without the trailing dot. - # The FQDN of the hosts will be - # `hostname.base_domain` (e.g., _myhost.example.com_). - base_domain: example.com - - # List of DNS servers to expose to clients. - nameservers: - global: - - 114.114.114.114 - - # NextDNS (see https://tailscale.com/kb/1218/nextdns/). - # "abc123" is example NextDNS ID, replace with yours. - # - https://dns.nextdns.io/abc123 - - # Split DNS (see https://tailscale.com/kb/1054/dns/), - # a map of domains and which DNS server to use for each. - split: - {} - # foo.bar.com: - # - 1.1.1.1 - # darp.headscale.net: - # - 1.1.1.1 - # - 8.8.8.8 - - # Set custom DNS search domains. With MagicDNS enabled, - # your tailnet base_domain is always the first search domain. - search_domains: [] - - # Extra DNS records - # so far only A and AAAA records are supported (on the tailscale side) - # See: docs/ref/dns.md - extra_records: [] - # - name: "grafana.myvpn.example.com" - # type: "A" - # value: "100.64.0.3" - # - # # you can also put it in one line - # - { name: "prometheus.myvpn.example.com", type: "A", value: "100.64.0.3" } - # - # Alternatively, extra DNS records can be loaded from a JSON file. - # Headscale processes this file on each change. - # extra_records_path: /var/lib/headscale/extra-records.json - -# Unix socket used for the CLI to connect without authentication -# Note: for production you will want to set this to something like: -unix_socket: /var/run/headscale/headscale.sock -unix_socket_permission: "0770" - -# headscale supports experimental OpenID connect support, -# it is still being tested and might have some bugs, please -# help us test it. -# OpenID Connect -# oidc: -# only_start_if_oidc_is_available: true -# issuer: "https://your-oidc.issuer.com/path" -# client_id: "your-oidc-client-id" -# client_secret: "your-oidc-client-secret" -# # Alternatively, set `client_secret_path` to read the secret from the file. -# # It resolves environment variables, making integration to systemd's -# # `LoadCredential` straightforward: -# client_secret_path: "${CREDENTIALS_DIRECTORY}/oidc_client_secret" -# # client_secret and client_secret_path are mutually exclusive. -# -# # The amount of time from a node is authenticated with OpenID until it -# # expires and needs to reauthenticate. -# # Setting the value to "0" will mean no expiry. -# expiry: 180d -# -# # Use the expiry from the token received from OpenID when the user logged -# # in, this will typically lead to frequent need to reauthenticate and should -# # only been enabled if you know what you are doing. -# # Note: enabling this will cause `oidc.expiry` to be ignored. -# use_expiry_from_token: false -# -# # Customize the scopes used in the OIDC flow, defaults to "openid", "profile" and "email" and add custom query -# # parameters to the Authorize Endpoint request. Scopes default to "openid", "profile" and "email". -# -# scope: ["openid", "profile", "email", "custom"] -# extra_params: -# domain_hint: example.com -# -# # List allowed principal domains and/or users. If an authenticated user's domain is not in this list, the -# # authentication request will be rejected. -# -# allowed_domains: -# - example.com -# # Note: Groups from keycloak have a leading '/' -# allowed_groups: -# - /headscale -# allowed_users: -# - alice@example.com -# -# # Optional: PKCE (Proof Key for Code Exchange) configuration -# # PKCE adds an additional layer of security to the OAuth 2.0 authorization code flow -# # by preventing authorization code interception attacks -# # See https://datatracker.ietf.org/doc/html/rfc7636 -# pkce: -# # Enable or disable PKCE support (default: false) -# enabled: false -# # PKCE method to use: -# # - plain: Use plain code verifier -# # - S256: Use SHA256 hashed code verifier (default, recommended) -# method: S256 -# -# # Map legacy users from pre-0.24.0 versions of headscale to the new OIDC users -# # by taking the username from the legacy user and matching it with the username -# # provided by the OIDC. This is useful when migrating from legacy users to OIDC -# # to force them using the unique identifier from the OIDC and to give them a -# # proper display name and picture if available. -# # Note that this will only work if the username from the legacy user is the same -# # and there is a possibility for account takeover should a username have changed -# # with the provider. -# # When this feature is disabled, it will cause all new logins to be created as new users. -# # Note this option will be removed in the future and should be set to false -# # on all new installations, or when all users have logged in with OIDC once. -# map_legacy_users: false - -# Logtail configuration -# Logtail is Tailscales logging and auditing infrastructure, it allows the control panel -# to instruct tailscale nodes to log their activity to a remote server. -logtail: - # Enable logtail for this headscales clients. - # As there is currently no support for overriding the log server in headscale, this is - # disabled by default. Enabling this will make your clients send logs to Tailscale Inc. - enabled: true - -# Enabling this option makes devices prefer a random port for WireGuard traffic over the -# default static port 41641. This option is intended as a workaround for some buggy -# firewall devices. See https://tailscale.com/kb/1181/firewalls/ for more information. -randomize_client_port: false +--- + +# - `/etc/headscale` +# - `~/.headscale` +# - 当前工作目录 + + +## 1. 更新Headscale配置启用HTTPS + +# 修改server_url为HTTPS +server_url: https://47.239.121.24:3009 + +# 启用HTTPS监听 +listen_addr: 0.0.0.0:8443 + +# 添加TLS配置 +tls_cert_path: "/var/lib/headscale/server.crt" +tls_key_path: "/var/lib/headscale/server.key" + +# 指标监听地址(建议保持内网访问) +metrics_listen_addr: 127.0.0.1:9090 + +# gRPC监听地址(用于远程CLI控制) +grpc_listen_addr: 0.0.0.0:50443 + +# 允许不安全的gRPC连接(不建议生产环境使用) +grpc_allow_insecure: true + +# Noise协议配置 +noise: + # 噪声协议私钥路径 + private_key_path: /var/lib/headscale/noise_private.key + +# IP地址分配前缀 +prefixes: + v4: 100.64.0.0/10 + v6: fd7a:115c:a1e0::/48 + # IP分配策略:sequential(顺序)或 random(随机) + allocation: sequential + +# DERP中继服务器配置 +derp: + server: + # 启用内置DERP服务器 + enabled: true + # 区域ID(避免与公共DERP区域冲突) + region_id: 999 + # 区域代码和名称(显示在客户端UI中) + region_code: "headscale" + region_name: "Headscale Embedded DERP" + # STUN服务监听地址(用于NAT穿透) + stun_listen_addr: "0.0.0.0:3478" + # DERP服务器私钥路径 + private_key_path: /var/lib/headscale/derp_server_private.key + # 自动添加内置DERP区域到DERP映射 + automatically_add_embedded_derp_region: true + # 公网IPv4/IPv6地址(提高连接稳定性) + ipv4: 47.239.121.24 + # ipv6: 2001:db8::1 + + # List of externally available DERP maps encoded in JSON + # urls: + # - https://controlplane.tailscale.com/derpmap/default + + # Locally available DERP map files encoded in YAML + # + # This option is mostly interesting for people hosting + # their own DERP servers: + # https://tailscale.com/kb/1118/custom-derp-servers/ + # + # paths: + # - /etc/headscale/derp-example.yaml + paths: [] + + # If enabled, a worker will be set up to periodically + # refresh the given sources and update the derpmap + # will be set up. + auto_update_enabled: true + + # How often should we check for DERP updates? + update_frequency: 24h + +# Disables the automatic check for headscale updates on startup +disable_check_updates: false + +# Time before an inactive ephemeral node is deleted? +ephemeral_node_inactivity_timeout: 30m + +database: + # Database type. Available options: sqlite, postgres + # Please note that using Postgres is highly discouraged as it is only supported for legacy reasons. + # All new development, testing and optimisations are done with SQLite in mind. + type: sqlite + + # Enable debug mode. This setting requires the log.level to be set to "debug" or "trace". + debug: true + + # GORM configuration settings. + gorm: + # Enable prepared statements. + prepare_stmt: true # 启用预处理语句 + parameterized_queries: true # 启用参数化查询 + skip_err_record_not_found: true # 跳过"记录未找到"错误 + slow_threshold: 1000 # 慢查询阈值(毫秒) + + # SQLite config + sqlite: + path: /var/lib/headscale/db.sqlite + write_ahead_log: true # 启用WAL模式(生产推荐) + wal_autocheckpoint: 1000 # WAL自动检查点阈值 + + # # Postgres config + # Please note that using Postgres is highly discouraged as it is only supported for legacy reasons. + # See database.type for more information. + # postgres: + # # If using a Unix socket to connect to Postgres, set the socket path in the 'host' field and leave 'port' blank. + # host: localhost + # port: 5432 + # name: headscale + # user: foo + # pass: bar + # max_open_conns: 10 + # max_idle_conns: 10 + # conn_max_idle_time_secs: 3600 + + # # If other 'sslmode' is required instead of 'require(true)' and 'disabled(false)', set the 'sslmode' you need + # # in the 'ssl' field. Refers to https://www.postgresql.org/docs/current/libpq-ssl.html Table 34.1. + # ssl: false + +### TLS configuration - 已注释掉,调试后再启用 +# +## Let's encrypt / ACME +# +# headscale supports automatically requesting and setting up +# TLS for a domain with Let's Encrypt. +# +# URL to ACME directory +# acme_url: https://acme-v02.api.letsencrypt.org/directory + +# Email to register with ACME provider +# acme_email: "" + +# Domain name to request a TLS certificate for: +# tls_letsencrypt_hostname: "" + +# Path to store certificates and metadata needed by +# letsencrypt +# For production: +# tls_letsencrypt_cache_dir: /var/lib/headscale/cache + +# Type of ACME challenge to use, currently supported types: +# HTTP-01 or TLS-ALPN-01 +# See: docs/ref/tls.md for more information +# tls_letsencrypt_challenge_type: HTTP-01 +# When HTTP-01 challenge is chosen, letsencrypt must set up a +# verification endpoint, and it will be listening on: +# :http = port 80 +# tls_letsencrypt_listen: ":http" + +## Use already defined certificates: +# tls_cert_path: "" +# tls_key_path: "" + +log: + # Output formatting for logs: text or json + format: text + level: info + +## Policy +# headscale supports Tailscale's ACL policies. +# Please have a look to their KB to better +# understand the concepts: https://tailscale.com/kb/1018/acls/ +policy: + # The mode can be "file" or "database" that defines + # where the ACL policies are stored and read from. + mode: file + # If the mode is set to "file", the path to a + # HuJSON file containing ACL policies. + path: "" + +## DNS +# +# headscale supports Tailscale's DNS configuration and MagicDNS. +# Please have a look to their KB to better understand the concepts: +# +# - https://tailscale.com/kb/1054/dns/ +# - https://tailscale.com/kb/1081/magicdns/ +# - https://tailscale.com/blog/2021-09-private-dns-withmagicdns/ +# +# Please note that for the DNS configuration to have any effect, +# clients must have the `--accept-dns=true` option enabled. This is the +# default for the Tailscale client. This option is enabled by default +# in the Tailscale client. +# +# Setting _any_ of the configuration and `--accept-dns=true` on the +# clients will integrate with the DNS manager on the client or +# overwrite /etc/resolv.conf. +# https://tailscale.com/kb/1235/resolv-conf +# +# If you want stop Headscale from managing the DNS configuration +# all the fields under `dns` should be set to empty values. +dns: + # Whether to use [MagicDNS](https://tailscale.com/kb/1081/magicdns/). + magic_dns: false + + # Defines the base domain to create the hostnames for MagicDNS. + # This domain _must_ be different from the server_url domain. + # `base_domain` must be a FQDN, without the trailing dot. + # The FQDN of the hosts will be + # `hostname.base_domain` (e.g., _myhost.example.com_). + base_domain: example.com + + # List of DNS servers to expose to clients. + nameservers: + global: + - 114.114.114.114 + + # NextDNS (see https://tailscale.com/kb/1218/nextdns/). + # "abc123" is example NextDNS ID, replace with yours. + # - https://dns.nextdns.io/abc123 + + # Split DNS (see https://tailscale.com/kb/1054/dns/), + # a map of domains and which DNS server to use for each. + split: + {} + # foo.bar.com: + # - 1.1.1.1 + # darp.headscale.net: + # - 1.1.1.1 + # - 8.8.8.8 + + # Set custom DNS search domains. With MagicDNS enabled, + # your tailnet base_domain is always the first search domain. + search_domains: [] + + # Extra DNS records + # so far only A and AAAA records are supported (on the tailscale side) + # See: docs/ref/dns.md + extra_records: [] + # - name: "grafana.myvpn.example.com" + # type: "A" + # value: "100.64.0.3" + # + # # you can also put it in one line + # - { name: "prometheus.myvpn.example.com", type: "A", value: "100.64.0.3" } + # + # Alternatively, extra DNS records can be loaded from a JSON file. + # Headscale processes this file on each change. + # extra_records_path: /var/lib/headscale/extra-records.json + +# Unix socket used for the CLI to connect without authentication +# Note: for production you will want to set this to something like: +unix_socket: /var/run/headscale/headscale.sock +unix_socket_permission: "0770" + +# headscale supports experimental OpenID connect support, +# it is still being tested and might have some bugs, please +# help us test it. +# OpenID Connect +# oidc: +# only_start_if_oidc_is_available: true +# issuer: "https://your-oidc.issuer.com/path" +# client_id: "your-oidc-client-id" +# client_secret: "your-oidc-client-secret" +# # Alternatively, set `client_secret_path` to read the secret from the file. +# # It resolves environment variables, making integration to systemd's +# # `LoadCredential` straightforward: +# client_secret_path: "${CREDENTIALS_DIRECTORY}/oidc_client_secret" +# # client_secret and client_secret_path are mutually exclusive. +# +# # The amount of time from a node is authenticated with OpenID until it +# # expires and needs to reauthenticate. +# # Setting the value to "0" will mean no expiry. +# expiry: 180d +# +# # Use the expiry from the token received from OpenID when the user logged +# # in, this will typically lead to frequent need to reauthenticate and should +# # only been enabled if you know what you are doing. +# # Note: enabling this will cause `oidc.expiry` to be ignored. +# use_expiry_from_token: false +# +# # Customize the scopes used in the OIDC flow, defaults to "openid", "profile" and "email" and add custom query +# # parameters to the Authorize Endpoint request. Scopes default to "openid", "profile" and "email". +# +# scope: ["openid", "profile", "email", "custom"] +# extra_params: +# domain_hint: example.com +# +# # List allowed principal domains and/or users. If an authenticated user's domain is not in this list, the +# # authentication request will be rejected. +# +# allowed_domains: +# - example.com +# # Note: Groups from keycloak have a leading '/' +# allowed_groups: +# - /headscale +# allowed_users: +# - alice@example.com +# +# # Optional: PKCE (Proof Key for Code Exchange) configuration +# # PKCE adds an additional layer of security to the OAuth 2.0 authorization code flow +# # by preventing authorization code interception attacks +# # See https://datatracker.ietf.org/doc/html/rfc7636 +# pkce: +# # Enable or disable PKCE support (default: false) +# enabled: false +# # PKCE method to use: +# # - plain: Use plain code verifier +# # - S256: Use SHA256 hashed code verifier (default, recommended) +# method: S256 +# +# # Map legacy users from pre-0.24.0 versions of headscale to the new OIDC users +# # by taking the username from the legacy user and matching it with the username +# # provided by the OIDC. This is useful when migrating from legacy users to OIDC +# # to force them using the unique identifier from the OIDC and to give them a +# # proper display name and picture if available. +# # Note that this will only work if the username from the legacy user is the same +# # and there is a possibility for account takeover should a username have changed +# # with the provider. +# # When this feature is disabled, it will cause all new logins to be created as new users. +# # Note this option will be removed in the future and should be set to false +# # on all new installations, or when all users have logged in with OIDC once. +# map_legacy_users: false + +# Logtail configuration +# Logtail is Tailscales logging and auditing infrastructure, it allows the control panel +# to instruct tailscale nodes to log their activity to a remote server. +logtail: + # Enable logtail for this headscales clients. + # As there is currently no support for overriding the log server in headscale, this is + # disabled by default. Enabling this will make your clients send logs to Tailscale Inc. + enabled: true + +# Enabling this option makes devices prefer a random port for WireGuard traffic over the +# default static port 41641. This option is intended as a workaround for some buggy +# firewall devices. See https://tailscale.com/kb/1181/firewalls/ for more information. +randomize_client_port: false diff --git a/tailscale/docker-compose.yml b/archive/tailscale/docker-compose.yml similarity index 96% rename from tailscale/docker-compose.yml rename to archive/tailscale/docker-compose.yml index 33b249c..bc3da0a 100644 --- a/tailscale/docker-compose.yml +++ b/archive/tailscale/docker-compose.yml @@ -1,28 +1,28 @@ -version: "3.9" -services: - headscale: - image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/headscale/headscale:v0.23.0-beta2 - container_name: headscale - restart: unless-stopped - environment: - - HEADSCALE_API_KEY=QC33VFzaUw.u1qwXFap0QpFAQnwkdGuUyvpspL15185A5JnWeFpt_c - command: serve --config /etc/headscale/config.yaml - volumes: - - ./data/headscale:/var/lib/headscale - - ./config.yaml:/etc/headscale/config.yaml - ports: - - "3008:8080" # Headscale API (HTTP) - - "3009:8443" # Headscale API (HTTPS) - - "9090:9090" # Metrics - - "3478:3478/udp" # STUN UDP - - "3478:3478/tcp" # STUN TCP - - "50443:50443" # gRPC - cap_add: - - NET_ADMIN - sysctls: - - net.ipv4.ip_forward=1 - - - - - +version: "3.9" +services: + headscale: + image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/headscale/headscale:v0.23.0-beta2 + container_name: headscale + restart: unless-stopped + environment: + - HEADSCALE_API_KEY=QC33VFzaUw.u1qwXFap0QpFAQnwkdGuUyvpspL15185A5JnWeFpt_c + command: serve --config /etc/headscale/config.yaml + volumes: + - ./data/headscale:/var/lib/headscale + - ./config.yaml:/etc/headscale/config.yaml + ports: + - "3008:8080" # Headscale API (HTTP) + - "3009:8443" # Headscale API (HTTPS) + - "9090:9090" # Metrics + - "3478:3478/udp" # STUN UDP + - "3478:3478/tcp" # STUN TCP + - "50443:50443" # gRPC + cap_add: + - NET_ADMIN + sysctls: + - net.ipv4.ip_forward=1 + + + + + diff --git a/dolibarr/README.md b/dolibarr/README.md new file mode 100644 index 0000000..190cdfa --- /dev/null +++ b/dolibarr/README.md @@ -0,0 +1,151 @@ +# Dolibarr ERP/CRM Docker部署指南 + +本指南将帮助您使用Docker Compose快速部署Dolibarr ERP/CRM系统。 + +## 功能特点 + +- 使用官方Dolibarr Docker镜像 +- 集成MariaDB数据库 +- 数据持久化存储 +- 可自定义配置 + +## 系统要求 + +- Docker 18.06.0+ +- Docker Compose 1.22.0+ + +## 部署步骤 + +### 1. 克隆或下载配置文件 + +确保您已经在`dolibarr`目录下有`docker-compose.yml`文件。 + +### 2. 启动服务 + +在`dolibarr`目录下执行以下命令: + +```bash +docker-compose up -d +``` + +这将启动两个容器: +- `dolibarr`:Dolibarr ERP/CRM应用 +- `dolibarr_db`:MariaDB数据库 + +### 3. 访问Dolibarr + +启动完成后,通过以下地址访问Dolibarr: + +``` +http://localhost:8080 +``` + +### 4. 完成安装 + +首次访问时,您需要完成Dolibarr的安装配置: + +1. 选择您的语言并点击"开始安装" +2. 检查系统需求(应该都是绿色的) +3. 数据库配置: + - 数据库类型:MySQL + - 数据库服务器:db + - 数据库名称:dolibarr + - 数据库用户:dolibarr + - 数据库密码:dolibarr_password +4. 点击"测试连接"并确认连接成功 +5. 完成剩余的安装步骤 + +## 配置说明 + +### 环境变量 + +在`docker-compose.yml`文件中,您可以修改以下环境变量: + +- `DOLI_ADMIN_LOGIN`:Dolibarr管理员用户名(默认:admin) +- `DOLI_ADMIN_PASSWORD`:Dolibarr管理员密码(默认:admin_password) +- `DOLI_URL_ROOT`:Dolibarr访问URL(默认:http://localhost:8080) +- `MYSQL_ROOT_PASSWORD`:MariaDB root用户密码(默认:root_password) +- `MYSQL_DATABASE`:数据库名称(默认:dolibarr) +- `MYSQL_USER`:数据库用户名(默认:dolibarr) +- `MYSQL_PASSWORD`:数据库密码(默认:dolibarr_password) + +### 端口映射 + +默认将Dolibarr的80端口映射到主机的8080端口。您可以通过修改`ports`部分来更改: + +```yaml +ports: + - "您选择的端口:80" +``` + +### 数据持久化 + +使用Docker卷来持久化存储数据: +- `dolibarr_html`:存储Dolibarr应用文件 +- `dolibarr_documents`:存储Dolibarr文档和上传文件 +- `dolibarr_db`:存储MariaDB数据库数据 + +## 管理命令 + +### 查看日志 + +```bash +# 查看Dolibarr日志 +docker-compose logs dolibarr + +# 查看数据库日志 +docker-compose logs db + +# 查看所有日志 +docker-compose logs +``` + +### 停止服务 + +```bash +docker-compose down +``` + +### 重启服务 + +```bash +docker-compose restart +``` + +### 更新服务 + +```bash +# 拉取最新镜像 +docker-compose pull + +# 重新启动服务 +docker-compose up -d +``` + +## 安全建议 + +1. 生产环境中请修改默认密码 +2. 考虑使用HTTPS协议访问 +3. 定期备份数据卷 +4. 限制容器的网络访问 + +## 常见问题 + +### Q: 无法访问Dolibarr? +A: 检查容器是否正在运行,端口是否正确映射,以及防火墙设置。 + +### Q: 忘记管理员密码? +A: 您可以通过修改数据库中的`llx_user`表来重置密码,或者在环境变量中重新设置`DOLI_ADMIN_PASSWORD`并重启容器。 + +### Q: 如何备份数据? +A: 您可以使用`docker cp`命令将数据卷中的内容复制到本地: + +```bash +docker cp dolibarr:/var/www/html ./backup/html +docker cp dolibarr:/var/www/documents ./backup/documents +docker exec dolibarr_db mysqldump -u root -proot_password dolibarr > ./backup/dolibarr.sql +``` + +## 联系方式 + +如有问题,请参考[Dolibarr官方文档](https://wiki.dolibarr.org/index.php/Main_Page)或[Docker Hub页面](https://hub.docker.com/r/dolibarr/dolibarr/)。 \ No newline at end of file diff --git a/dolibarr/docker-compose.yml b/dolibarr/docker-compose.yml new file mode 100644 index 0000000..3a8b23d --- /dev/null +++ b/dolibarr/docker-compose.yml @@ -0,0 +1,42 @@ +version: '3.7' + +services: + # Dolibarr ERP/CRM + dolibarr: + image: dolibarr/dolibarr:latest + container_name: dolibarr + restart: unless-stopped + ports: + - "8080:80" + depends_on: + - db + environment: + - DOLI_DB_HOST=db + - DOLI_DB_USER=dolibarr + - DOLI_DB_PASSWORD=dolibarr_password + - DOLI_DB_NAME=dolibarr + - DOLI_ADMIN_LOGIN=admin + - DOLI_ADMIN_PASSWORD=admin_password + - DOLI_URL_ROOT=http://localhost:8080 + volumes: + - dolibarr_html:/var/www/html + - dolibarr_documents:/var/www/documents + + # MariaDB Database + db: + image: mariadb:10.6 + container_name: dolibarr_db + restart: unless-stopped + environment: + - MYSQL_ROOT_PASSWORD=root_password + - MYSQL_DATABASE=dolibarr + - MYSQL_USER=dolibarr + - MYSQL_PASSWORD=dolibarr_password + volumes: + - dolibarr_db:/var/lib/mysql + command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci + +volumes: + dolibarr_html: + dolibarr_documents: + dolibarr_db: \ No newline at end of file diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 68ed88e..75a63a6 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -25,76 +25,7 @@ http { keepalive_timeout 65; - #gzip on; - - - server { - listen 443 ssl; - server_name active.deepseak.icu; - - ssl_certificate /etc/letsencrypt/live/registry.deepseak.icu/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/registry.deepseak.icu/privkey.pem; - - ssl_protocols TLSv1.2 TLSv1.3; - ssl_ciphers HIGH:!aNULL:!MD5; - client_max_body_size 5m; - - location / { - proxy_pass http://127.0.0.1:3006; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - } - - - server { - listen 443 ssl; - server_name bbs.deepseak.icu; - - ssl_certificate /etc/letsencrypt/live/registry.deepseak.icu/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/registry.deepseak.icu/privkey.pem; - - ssl_protocols TLSv1.2 TLSv1.3; - ssl_ciphers HIGH:!aNULL:!MD5; - client_max_body_size 5m; - - location / { - proxy_pass http://10.0.3.14:3003; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - } - - - - server { - listen 443 ssl; - server_name image.deepseak.icu; - - ssl_certificate /etc/letsencrypt/live/registry.deepseak.icu/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/registry.deepseak.icu/privkey.pem; - - - ssl_protocols TLSv1.2 TLSv1.3; - ssl_ciphers HIGH:!aNULL:!MD5; - - - location / { - proxy_pass http://10.0.3.14:3004; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - } - - - - + #gzip on; # 添加gitea的HTTP代理 server { listen 80;