From 70db79b50f7c07f712daaa0565ac268d67c0a154 Mon Sep 17 00:00:00 2001 From: DecDuck Date: Mon, 12 May 2025 09:44:08 +1000 Subject: [PATCH] feat: set data dir for headscale --- .gitmodules | 2 +- package.json | 3 ++- server/internal/config/sys-conf.ts | 7 +++++ server/internal/p2p/headscale.ts | 8 ++++-- yarn.lock | 41 +++++++++++++++++++++++++++--- 5 files changed, 53 insertions(+), 8 deletions(-) diff --git a/.gitmodules b/.gitmodules index e24bb0c..222a086 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "drop-base"] path = drop-base - url = https://github.com/Drop-OSS/drop-base.git + url = https://github.com/Drop-OSS/drop-base.git \ No newline at end of file diff --git a/package.json b/package.json index a46c996..ca073bb 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,8 @@ "@types/turndown": "^5.0.5", "autoprefixer": "^10.4.20", "eslint": "^9.24.0", - "eslint-config-prettier": "^10.1.1", + "eslint-config-prettier": "^10.1.5", + "eslint-plugin-prettier": "^5.4.0", "h3": "^1.15.1", "ofetch": "^1.4.1", "postcss": "^8.4.47", diff --git a/server/internal/config/sys-conf.ts b/server/internal/config/sys-conf.ts index 306d81e..0d0b5e2 100644 --- a/server/internal/config/sys-conf.ts +++ b/server/internal/config/sys-conf.ts @@ -1,6 +1,9 @@ +import path from "path"; + class SystemConfig { private libraryFolder = process.env.LIBRARY ?? "./.data/library"; private dataFolder = process.env.DATA ?? "./.data/data"; + private headscaleFolder = path.join(this.dataFolder, "headscale"); getLibraryFolder() { return this.libraryFolder; @@ -9,6 +12,10 @@ class SystemConfig { getDataFolder() { return this.dataFolder; } + + getHeadscaleFolder() { + return this.headscaleFolder; + } } export const systemConfig = new SystemConfig(); diff --git a/server/internal/p2p/headscale.ts b/server/internal/p2p/headscale.ts index f8847ce..0aacff1 100644 --- a/server/internal/p2p/headscale.ts +++ b/server/internal/p2p/headscale.ts @@ -1,5 +1,6 @@ -import type { HeadscaleService} from "@drop-oss/headscalez"; +import type { HeadscaleService } from "@drop-oss/headscalez"; import { startHeadscale } from "@drop-oss/headscalez"; +import { systemConfig } from "../config/sys-conf"; export class HeadscaleManager { private headscaleService?: HeadscaleService; @@ -11,7 +12,10 @@ export class HeadscaleManager { async setup() { const externalUrl = process.env.CONTROL_URL; if (externalUrl) { - const headscale = await startHeadscale({ externalUrl }); + const headscale = await startHeadscale({ + externalUrl, + dir: systemConfig.getHeadscaleFolder(), + }); this.headscaleService = headscale; } } diff --git a/yarn.lock b/yarn.lock index 9928e3c..92c2a1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1469,6 +1469,11 @@ resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.1.tgz#6d083acfddae21fb329c8df8c94bf895ce7d0c15" integrity sha512-VzgHzGblFmUeBmmrk55zPyrQIArQN4vujc9shWytaPdB3P7qhi0cpaiKIr7tlCmFv2lYUwnLospIqjL9ZSAhhg== +"@pkgr/core@^0.2.3": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.4.tgz#d897170a2b0ba51f78a099edccd968f7b103387c" + integrity sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw== + "@polka/url@^1.0.0-next.24": version "1.0.0-next.28" resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.28.tgz#d45e01c4a56f143ee69c54dd6b12eade9e270a73" @@ -3566,10 +3571,10 @@ eslint-config-flat-gitignore@^2.1.0: dependencies: "@eslint/compat" "^1.2.5" -eslint-config-prettier@^10.1.1: - version "10.1.1" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz#cf0ff6e5c4e7e15f129f1f1ce2a5ecba92dec132" - integrity sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw== +eslint-config-prettier@^10.1.5: + version "10.1.5" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz#00c18d7225043b6fbce6a665697377998d453782" + integrity sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw== eslint-flat-config-utils@^2.0.1: version "2.0.1" @@ -3628,6 +3633,14 @@ eslint-plugin-jsdoc@^50.6.9: spdx-expression-parse "^4.0.0" synckit "^0.9.1" +eslint-plugin-prettier@^5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.0.tgz#54d4748904e58eaf1ffe26c4bffa4986ca7f952b" + integrity sha512-BvQOvUhkVQM1i63iMETK9Hjud9QhqBnbtT1Zc642p9ynzBuCe5pybkOnvqZIBypXmMlsGcnU4HZ8sCTPfpAexA== + dependencies: + prettier-linter-helpers "^1.0.0" + synckit "^0.11.0" + eslint-plugin-regexp@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/eslint-plugin-regexp/-/eslint-plugin-regexp-2.7.0.tgz#84fa2d2b122e343f596cfb83ed8a5517a1dfef2a" @@ -3866,6 +3879,11 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + fast-fifo@^1.2.0, fast-fifo@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" @@ -6227,6 +6245,13 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + prettier@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" @@ -7037,6 +7062,14 @@ svgo@^3.2.0, svgo@^3.3.2: csso "^5.0.5" picocolors "^1.0.0" +synckit@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.4.tgz#48972326b59723fc15b8d159803cf8302b545d59" + integrity sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ== + dependencies: + "@pkgr/core" "^0.2.3" + tslib "^2.8.1" + synckit@^0.9.1: version "0.9.2" resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.9.2.tgz#a3a935eca7922d48b9e7d6c61822ee6c3ae4ec62"