From da9a3b3964159d064b47c80dd23f92e6c9055cc1 Mon Sep 17 00:00:00 2001 From: okxlin Date: Tue, 12 Nov 2024 00:41:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E8=B0=83=E6=95=B4blinko?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/blinko/0.2.2/.env.sample | 11 ++++ apps/blinko/0.2.2/data.yml | 25 ++++++--- apps/blinko/0.2.2/docker-compose.yml | 19 ++++--- apps/blinko/data.yml | 31 +++++++----- apps/blinko/latest/.env.sample | 11 ++++ apps/blinko/latest/data.yml | 70 ++++++++++++++++++++++++++ apps/blinko/latest/docker-compose.yml | 29 +++++++++++ apps/blinko/logo.png | Bin 22677 -> 3034 bytes 8 files changed, 167 insertions(+), 29 deletions(-) create mode 100644 apps/blinko/0.2.2/.env.sample create mode 100644 apps/blinko/latest/.env.sample create mode 100644 apps/blinko/latest/data.yml create mode 100644 apps/blinko/latest/docker-compose.yml diff --git a/apps/blinko/0.2.2/.env.sample b/apps/blinko/0.2.2/.env.sample new file mode 100644 index 00000000..0780dc5f --- /dev/null +++ b/apps/blinko/0.2.2/.env.sample @@ -0,0 +1,11 @@ +CONTAINER_NAME="blinko" +NEXTAUTH_SECRET="my_ultra_secure_nextauth_secret" +NEXTAUTH_URL="http://1.2.3.4:1111" +NEXT_PUBLIC_BASE_URL="http://1.2.3.4:1111" +PANEL_APP_PORT_HTTP=1111 +PANEL_DB_HOST="postgresql" +PANEL_DB_HOST_NAME="postgresql" +PANEL_DB_NAME="blinko" +PANEL_DB_PORT=5432 +PANEL_DB_USER="blinko" +PANEL_DB_USER_PASSWORD="blinko" diff --git a/apps/blinko/0.2.2/data.yml b/apps/blinko/0.2.2/data.yml index ed608453..64ad4f09 100644 --- a/apps/blinko/0.2.2/data.yml +++ b/apps/blinko/0.2.2/data.yml @@ -7,24 +7,25 @@ additionalProperties: required: true rule: paramPort type: number - - default: "" + - default: "http://1.2.3.4:1111" envKey: NEXTAUTH_URL labelEn: NextAuth URL - labelZh: NextAuth URL + labelZh: 基本 URL required: true rule: paramExtUrl type: text - - default: "" + - default: "http://1.2.3.4:1111" envKey: NEXT_PUBLIC_BASE_URL labelEn: Next Public Base URL - labelZh: Next Public Base URL + labelZh: 公共基本 URL required: true rule: paramExtUrl type: text - - default: my_ultra_secure_nextauth_secret + - default: "my_ultra_secure_nextauth_secret" envKey: NEXTAUTH_SECRET labelEn: NextAuth Secret labelZh: NextAuth 密钥 + random: true required: true rule: paramComplexity type: password @@ -35,7 +36,15 @@ additionalProperties: labelZh: PostgreSQL 数据库服务 required: true type: service - - default: blinko + - default: "5432" + edit: true + envKey: PANEL_DB_PORT + labelEn: Database Port Number + labelZh: 数据库端口号 + required: true + rule: paramPort + type: number + - default: "blinko" envKey: PANEL_DB_NAME labelEn: Database labelZh: 数据库名 @@ -43,7 +52,7 @@ additionalProperties: required: true rule: paramCommon type: text - - default: blinko + - default: "blinko" envKey: PANEL_DB_USER labelEn: User labelZh: 数据库用户 @@ -51,7 +60,7 @@ additionalProperties: required: true rule: paramCommon type: text - - default: blinko + - default: "blinko" envKey: PANEL_DB_USER_PASSWORD labelEn: Password labelZh: 数据库用户密码 diff --git a/apps/blinko/0.2.2/docker-compose.yml b/apps/blinko/0.2.2/docker-compose.yml index 8139eda0..3eaaac2f 100644 --- a/apps/blinko/0.2.2/docker-compose.yml +++ b/apps/blinko/0.2.2/docker-compose.yml @@ -1,10 +1,10 @@ -networks: - 1panel-network: - external: true services: blinko: - image: blinkospace/blinko:0.2.2 + image: "blinkospace/blinko:0.2.2" container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network environment: NODE_ENV: production NEXTAUTH_URL: ${NEXTAUTH_URL} @@ -12,8 +12,7 @@ services: NEXTAUTH_SECRET: ${NEXTAUTH_SECRET} DATABASE_URL: postgresql://${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} volumes: - - ~/data:/app/.blinko - restart: always + - "./data:/app/.blinko" ports: - "${PANEL_APP_PORT_HTTP}:1111" healthcheck: @@ -22,5 +21,9 @@ services: timeout: 10s retries: 5 start_period: 30s - networks: - - 1panel-network + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/blinko/data.yml b/apps/blinko/data.yml index 43c7bb5c..c8abe351 100644 --- a/apps/blinko/data.yml +++ b/apps/blinko/data.yml @@ -1,14 +1,19 @@ +name: Blinko +tags: + - 实用工具 +title: 一款开源、自托管的个人笔记工具 +description: 一款开源、自托管的个人笔记工具 additionalProperties: - crossVersionUpdate: true - document: https://blinko-doc.vercel.app/intro.html - github: https://github.com/blinko-space/blinko - key: blinko - limit: 0 - name: Blinko - shortDescEn: Blinko is an open-source tool that helps users quickly capture and - organize fleeting ideas to ensure no creative spark is lost. - shortDescZh: Blinko 是一个创新的开源项目,快速捕捉和整理瞬间的灵感 - tags: - - Tool - type: tool - website: https://blinko-demo.vercel.app/ + key: blinko + name: Blinko + tags: + - Tool + shortDescZh: 一款开源、自托管的个人笔记工具 + shortDescEn: An open-source, self-hosted personal note tool + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://blinko-demo.vercel.app + github: https://github.com/blinko-space/blinko + document: https://blinko-doc.vercel.app/intro.html diff --git a/apps/blinko/latest/.env.sample b/apps/blinko/latest/.env.sample new file mode 100644 index 00000000..0780dc5f --- /dev/null +++ b/apps/blinko/latest/.env.sample @@ -0,0 +1,11 @@ +CONTAINER_NAME="blinko" +NEXTAUTH_SECRET="my_ultra_secure_nextauth_secret" +NEXTAUTH_URL="http://1.2.3.4:1111" +NEXT_PUBLIC_BASE_URL="http://1.2.3.4:1111" +PANEL_APP_PORT_HTTP=1111 +PANEL_DB_HOST="postgresql" +PANEL_DB_HOST_NAME="postgresql" +PANEL_DB_NAME="blinko" +PANEL_DB_PORT=5432 +PANEL_DB_USER="blinko" +PANEL_DB_USER_PASSWORD="blinko" diff --git a/apps/blinko/latest/data.yml b/apps/blinko/latest/data.yml new file mode 100644 index 00000000..64ad4f09 --- /dev/null +++ b/apps/blinko/latest/data.yml @@ -0,0 +1,70 @@ +additionalProperties: + formFields: + - default: "1111" + envKey: PANEL_APP_PORT_HTTP + labelEn: HTTP Port + labelZh: HTTP 端口 + required: true + rule: paramPort + type: number + - default: "http://1.2.3.4:1111" + envKey: NEXTAUTH_URL + labelEn: NextAuth URL + labelZh: 基本 URL + required: true + rule: paramExtUrl + type: text + - default: "http://1.2.3.4:1111" + envKey: NEXT_PUBLIC_BASE_URL + labelEn: Next Public Base URL + labelZh: 公共基本 URL + required: true + rule: paramExtUrl + type: text + - default: "my_ultra_secure_nextauth_secret" + envKey: NEXTAUTH_SECRET + labelEn: NextAuth Secret + labelZh: NextAuth 密钥 + random: true + required: true + rule: paramComplexity + type: password + - default: "" + envKey: PANEL_DB_HOST + key: postgresql + labelEn: PostgreSQL Database Service + labelZh: PostgreSQL 数据库服务 + required: true + type: service + - default: "5432" + edit: true + envKey: PANEL_DB_PORT + labelEn: Database Port Number + labelZh: 数据库端口号 + required: true + rule: paramPort + type: number + - default: "blinko" + envKey: PANEL_DB_NAME + labelEn: Database + labelZh: 数据库名 + random: true + required: true + rule: paramCommon + type: text + - default: "blinko" + envKey: PANEL_DB_USER + labelEn: User + labelZh: 数据库用户 + random: true + required: true + rule: paramCommon + type: text + - default: "blinko" + envKey: PANEL_DB_USER_PASSWORD + labelEn: Password + labelZh: 数据库用户密码 + random: true + required: true + rule: paramComplexity + type: password diff --git a/apps/blinko/latest/docker-compose.yml b/apps/blinko/latest/docker-compose.yml new file mode 100644 index 00000000..9a80297e --- /dev/null +++ b/apps/blinko/latest/docker-compose.yml @@ -0,0 +1,29 @@ +services: + blinko: + image: "blinkospace/blinko:latest" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + environment: + NODE_ENV: production + NEXTAUTH_URL: ${NEXTAUTH_URL} + NEXT_PUBLIC_BASE_URL: ${NEXT_PUBLIC_BASE_URL} + NEXTAUTH_SECRET: ${NEXTAUTH_SECRET} + DATABASE_URL: postgresql://${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} + volumes: + - "./data:/app/.blinko" + ports: + - "${PANEL_APP_PORT_HTTP}:1111" + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:1111/"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 30s + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/blinko/logo.png b/apps/blinko/logo.png index 86cbc8007f8e261c85377627b7ec5804dc0e71b0..643f3ccec03128e7f6d5ff4f70d3c1517f9d583b 100644 GIT binary patch literal 3034 zcmdT`hd&hl<3`AyXJyYKE0kPPbXE>$kIsi|9ZDGuK1CU4luH*^Lkzn8eyW(%5;f|ii(QW&;Vxs*Q@`J3>W??6F23r(r_T) zmb!lf_PwW{sZeN;DiYF+Q80Fuw4!|(!qi+m~#TN55VCB*lhxv*KY$K>t?$3A0`2y#8-sD*WR;cTq%xE4kEs=uG7 zy_==9o1^sei%NBgc20wRM3dv2b}#?cFG?GQS4fp2XUAY~<%}?Jy4rub+;cizb6jM+ zzcY^etWba2BYJRXwfeUcxBbmcEU0Kl_IKD81MRMJ)K=tuN>DsLTpK6~_taq^&VEl1 zcG47uFw-wj^|Y3v`Oi#i(fr)3$s*xjF7(VWAD_ z^i#8?=B#jP!B33`46jae7|?vC)p^V%s{_-eGix?6%XHpuJSZdFO-`r@Qm=0g=$zev zuiQ!N*La0K9!#*ltT5T&v^d=E$!(d=*XVji89zL`XssKUWT$$gr0qFct6I{lVqvbM zej(MVAtO~GvqVutcHkWvQ|>)x&(nblEbW5bNB-2k@q!XBo$kr_%-T?Rc^R9|!q|hk zL(DL`W|!ju3#?)9bW$;P5Rmr8Feaf;r_R`sA1q0a*O3)ObzwcHOxZsT64dmZgEI{r zot*U%WiQxbT`vrVxDsjjd+{U3SUuFrxA?a^-szpbcoxa%j8^1Z<$R6Um6V8#!O*}6 zAABX7UJ3{07;<4TQ^Xx98iDBu_r|NTN7P)k+}GoO;2d?Kl1490XjoH$Q}2gQDW)uU zev>)4QDt5 z6|ZB6>V+o7{5if=4?St|!i^Kw5=NfXjGD;XOy2iqpp-noRd1o@ssd8Vj;NL_N36bZ zUGzXRpO@C4+9u1w26Y_$KF|k=eOdV8 zHeG=fonS+GT)T!naKE$u=lqaXt7oX7&Dsd#_fpyU?g@%2m@BtoG?N2UxPBE*e zC>2CM4fB+}Q?ct~q)F8}A=i4rzc#;??D;PbRWEU0aMjd})W3NPMvl(4kV6}pG_r;w z0~GZ4Jpx6|>_1KttQVY=zKd5!Ft1*rEqY9GsOB>JHbj72T!WhTzeJ>RdqFnIp8Fe^ zvTnZU)Y(~{8|BL>W(h&L*ln+I!xXGQ-TPXRf|{u&iL6U|*Sye};eG{wrCs|r0oSQTi9M(z6$iG;V5N0vPQ>B7Bkke+!Y zG~u)P9H$G+cnWi3qNK?zu<@a&j&*bHkmU4Av3yLr$yao#Oe%{i?R8EgHk<0D1d137 zbL*3djDr3W323&hy$)q`1d_+alQyOv1T<5Ba#Qw(&wQl-wPyR1`&!Ts{7eEH@#L@1EMyz*9}(*+S zv3BAbM&C<{SLEoTfpdvNyPqrVXNOa-5rh{GsczkS4Bym8a1UWm=Ur)?xYEU{;56=w z)7o;PjWEr6U~MH!OQhZfOPBH|!?rnRW9g|~+SQ9>pq?C#LX`fb@Tg4BVoWn` zehP&w%%BuY^$McDZ z%=9D}(;2{w&OI##A)|{`E>%0Ha5ZB}9Bf!GS7)pDo?rD1ZC_OxD}BkFq+U6MNSshD z3i(VN$}g=h@bD)`oBqxC*ct8mgr4x@9NFw@tB=_8jWN_tpo#T_E3 z<}IEIikq7{hB55yMRAfxBpt;T>fR=0TZoVJ?{N%?2X|VZRgE^?g=gpD`UGbUgk2b& z3tt)5i9f0|DD>79D~vl^c>A^e(l;}>_ISeL^%qxX4MRu7-Z^+Q1+;`3#JYy3&Ns(B z+V{DMu@x4VRh7MowU5(Uc`IpQmeHljpl}Vq1FAp&}`a^r_-K6+@meu`fzhICuDNEGZ-G@~7%(zD7BrQo{^ONuU$G<{G zEQ>adm^V$^>R-OH4GDtITk)N4D*roJYSm;FTcAD$Vcvj+b d&PxF&jC%HPVm+GE>+d0>GSoGJmFhT!{STIdgC+m~ literal 22677 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 L-R$nzP*46Ji6QR1