0.2.55 • Published 9 months ago

@filen/webdav v0.2.55

Weekly downloads
-
License
AGPLv3
Repository
github
Last release
9 months ago

Contributors Forks Stargazers Issues License

Installation

  1. Install using NPM
npm install @filen/webdav@latest
  1. Initialize the server (standalone mode, single user)
// Standalone mode, single user

import FilenSDK from "@filen/sdk"
import path from "path"
import os from "os"
import WebDAVServer from "@filen/webdav"

// Initialize a SDK instance (optional)
const filen = new FilenSDK({
	metadataCache: true,
	connectToSocket: true,
	tmpPath: path.join(os.tmpdir(), "filen-sdk")
})

await filen.login({
	email: "your@email.com",
	password: "supersecret123",
	twoFactorCode: "123456"
})

const hostname = "127.0.0.1"
const port = 1900
const https = false
const server = new WebDAVServer({
	hostname,
	port,
	https,
	user: {
		username: "admin",
		password: "admin",
		sdk: filen
	},
	authMode: "basic" | "digest"
})

await server.start()

console.log(
	`WebDAV server started on ${https ? "https" : "http"}://${hostname === "127.0.0.1" ? "local.webdav.filen.io" : hostname}:${port}`
)
  1. Initialize the server (proxy mode)

When in proxy mode, the server acts as a local WebDAV gateway for multiple Filen accounts. It accepts Filen login credentials formatted as follows (without the double backticks):

Username: "youremail@example.com"
Password: "password=yoursecretpassword&twoFactorAuthentication=<RECOVERY_CODE_OR_6_DIGIT_OTP_CODE>"

// You can also leave out the "&twoFactorAuthentication=" part if your account is not protected by 2FA.

Useful for everyone who wants to host a single WebDAV server for multiple accounts/users. Everything still runs client side, keeping the zero-knowledge end-to-end encryption intact.

// Proxy mode, multi user

import WebDAVServer from "@filen/webdav"

const hostname = "127.0.0.1"
const port = 1900
const https = false
const server = new WebDAVServer({
	hostname,
	port,
	https,
	// Omit the user object
	authMode: "basic" // Only basic auth is supported in proxy mode
})

await server.start()

console.log(
	`WebDAV server started on ${https ? "https" : "http"}://${hostname === "127.0.0.1" ? "local.webdav.filen.io" : hostname}:${port}`
)
  1. Initialize the server (cluster mode)
import FilenSDK from "@filen/sdk"
import path from "path"
import os from "os"
import { WebDAVServerCluster } from "@filen/webdav"

// Initialize a SDK instance (optional)
const filen = new FilenSDK({
	metadataCache: true,
	connectToSocket: true,
	tmpPath: path.join(os.tmpdir(), "filen-sdk")
})

await filen.login({
	email: "your@email.com",
	password: "supersecret123",
	twoFactorCode: "123456"
})

const hostname = "127.0.0.1"
const port = 1900
const https = false
const server = new WebDAVServerCluster({
	hostname,
	port,
	https,
	user: {
		username: "admin",
		password: "admin",
		sdk: filen
	},
	authMode: "basic" | "digest",
	threads: 16 // Number of threads to spawn. Defaults to CPU core count if omitted.
})

await server.start()

console.log(
	`WebDAV server cluster started on ${https ? "https" : "http"}://${
		hostname === "127.0.0.1" ? "local.webdav.filen.io" : hostname
	}:${port}`
)
  1. Access the server
// MacOS
mount_webdav -S -v 'Filen' http://${hostname}:${port} /mnt/filen

License

Distributed under the AGPL-3.0 License. See LICENSE for more information.

0.2.55

9 months ago

0.2.54

9 months ago

0.2.53

9 months ago

0.2.52

10 months ago

0.2.51

10 months ago

0.2.50

10 months ago

0.2.48

10 months ago

0.2.45

10 months ago

0.2.44

10 months ago

0.2.43

10 months ago

0.2.42

10 months ago

0.2.41

10 months ago

0.2.40

10 months ago

0.2.39

10 months ago

0.2.38

10 months ago

0.2.37

11 months ago

0.2.36

11 months ago

0.2.35

11 months ago

0.2.34

11 months ago

0.2.33

11 months ago

0.2.32

11 months ago

0.2.31

11 months ago

0.2.30

11 months ago

0.2.29

11 months ago

0.2.28

11 months ago

0.2.27

11 months ago

0.2.26

11 months ago

0.2.25

11 months ago

0.2.24

11 months ago

0.2.23

11 months ago

0.2.22

11 months ago

0.2.21

11 months ago

0.2.20

12 months ago

0.2.19

1 year ago

0.2.18

1 year ago

0.2.17

1 year ago

0.2.16

1 year ago

0.2.15

1 year ago

0.2.14

1 year ago

0.2.13

1 year ago

0.2.12

1 year ago

0.2.11

1 year ago

0.2.10

1 year ago

0.2.9

1 year ago

0.2.8

1 year ago

0.2.7

1 year ago

0.2.6

1 year ago

0.2.5

1 year ago

0.2.4

1 year ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.1

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago